CustomizeInsetFocusRingSample
@Sampled
@Composable
fun CustomizeInsetFocusRingSample() {
// Customize the focus ring stroke sizes through the theme configuration.
CompositionLocalProvider(
LocalRippleThemeConfiguration provides
RippleThemeConfiguration(
RippleThemeConfiguration.Focus.InsetRing(
outerStrokeInset = 0.dp,
outerStrokeWidth = 3.dp,
innerStrokeInset = 0.dp,
innerStrokeWidth = 6.dp,
)
)
) {
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.spacedBy(4.dp, Alignment.CenterVertically),
horizontalAlignment = Alignment.CenterHorizontally,
) {
// Button is a standard Wear Material3 component that supports focus rings internally.
Button(onClick = { /* Do something */ }, label = { Text("Button") })
// SwitchButton is also a standard component that supports focus rings internally.
// We override its focus ring colors here.
CompositionLocalProvider(
LocalRippleConfiguration provides
RippleConfiguration(
focus =
RippleConfiguration.Focus.InsetRing(
outerStrokeColor = MaterialTheme.colorScheme.tertiary,
innerStrokeColor = MaterialTheme.colorScheme.onTertiary,
)
)
) {
SwitchButton(
checked = true,
onCheckedChange = { /* Do something */ },
label = { Text("SwitchButton") },
)
}
}
}
}