Sliders
Sliders

Quantity stepper

A compact quantity stepper with tonal increment and decrement buttons.

1

Installation

caveui components are copy-paste Jetpack Compose built entirely on Material 3 — there's no caveui dependency to add. Make sure Material 3 is on your classpath (it ships with the Compose BOM), then copy the Usage snippet below into your project.

kotlin
// build.gradle.kts (module)
dependencies {
    implementation(platform("androidx.compose:compose-bom:2025.06.00"))
    implementation("androidx.compose.material3:material3")
}

Usage

kotlin
@Composable
fun Stepper() {
    var count by remember { mutableStateOf(1) }
    Row(
        verticalAlignment = Alignment.CenterVertically,
        horizontalArrangement = Arrangement.spacedBy(12.dp),
    ) {
        FilledTonalIconButton(
            onClick = { if (count > 0) count-- },
            enabled = count > 0,
        ) {
            Icon(Icons.Filled.Remove, contentDescription = "Decrease")
        }
        Text("$count", style = MaterialTheme.typography.titleMedium)
        FilledTonalIconButton(onClick = { count++ }) {
            Icon(Icons.Filled.Add, contentDescription = "Increase")
        }
    }
}