Loaders
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
val t = rememberInfiniteTransition(label = "bars")
val head by t.animateFloat(
initialValue = 0f,
targetValue = 12f,
animationSpec = infiniteRepeatable(tween(1000, easing = LinearEasing)),
label = "head",
)
val color = MaterialTheme.colorScheme.onSurface
Canvas(Modifier.size(32.dp)) {
val count = 12
repeat(count) { i ->
rotate(degrees = i * 30f) {
val fade = ((i + head.toInt()) % count) / count.toFloat()
drawRoundRect(
color = color.copy(alpha = 0.2f + 0.8f * fade),
topLeft = Offset(size.width / 2f - 1.5.dp.toPx(), 2.dp.toPx()),
size = Size(3.dp.toPx(), 8.dp.toPx()),
cornerRadius = CornerRadius(2.dp.toPx()),
)
}
}
}