Pickers
Pickers

Birthday columns

Three aligned wheels for day, month and year with a centered selection band.

13

14

15

May

Jun

Jul

1997

1998

1999

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 BirthdayPicker() {
    val days = (1..31).map { it.toString() }
    val months = listOf("Jan", "Feb", "Mar", "Apr", "May", "Jun")
    val years = (1990..2010).map { it.toString() }
    Box(contentAlignment = Alignment.Center) {
        Row(horizontalArrangement = Arrangement.spacedBy(12.dp)) {
            listOf(days, months, years).forEach { column ->
                LazyColumn(
                    Modifier.height(120.dp),
                    contentPadding = PaddingValues(vertical = 44.dp),
                    horizontalAlignment = Alignment.CenterHorizontally,
                ) {
                    items(column) { v ->
                        Text(v, Modifier.height(32.dp).wrapContentHeight(),
                            style = MaterialTheme.typography.bodyLarge)
                    }
                }
            }
        }
        Box(Modifier.fillMaxWidth().height(32.dp)
            .border(1.dp, MaterialTheme.colorScheme.outlineVariant,
                MaterialTheme.shapes.small))
    }
}