Disclosures
Disclosuresanimated
Spoiler reveal
Blurred text that sharpens into view when the reader taps to reveal it.
The killer was the lighthouse keeper all along.
Tap to reveal
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 Spoiler(text: String) {
var revealed by remember { mutableStateOf(false) }
val blur by animateDpAsState(if (revealed) 0.dp else 8.dp, label = "blur")
Surface(
onClick = { revealed = true },
shape = MaterialTheme.shapes.small,
color = MaterialTheme.colorScheme.surfaceVariant,
) {
Text(
text,
Modifier.padding(12.dp).blur(blur),
style = MaterialTheme.typography.bodyMedium,
)
}
}