Icon buttons help people take supplementary actions with a single tap.
@OptIn(ExperimentalMaterial3ExpressiveApi::class, ExperimentalMaterial3Api::class)
@Preview
@Composable
fun LargeRoundUniformOutlinedIconButtonSample() {
val description = "Localized description"
// Icon button should have a tooltip associated with it for a11y.
TooltipBox(
positionProvider =
TooltipDefaults.rememberTooltipPositionProvider(TooltipAnchorPosition.Above),
tooltip = { PlainTooltip { Text(description) } },
state = rememberTooltipState(),
) {
OutlinedIconButton(
onClick = { /* doSomething() */ },
modifier = Modifier.size(IconButtonDefaults.largeContainerSize()),
shape = IconButtonDefaults.largeRoundShape,
) {
Icon(
Icons.Filled.Lock,
contentDescription = description,
modifier = Modifier.size(IconButtonDefaults.largeIconSize),
)
}
}
}
@OptIn(ExperimentalMaterial3Api::class)
@Preview
@Composable
fun OutlinedIconButtonSample() {
val description = "Localized description"
// Icon button should have a tooltip associated with it for a11y.
TooltipBox(
positionProvider =
TooltipDefaults.rememberTooltipPositionProvider(TooltipAnchorPosition.Above),
tooltip = { PlainTooltip { Text(description) } },
state = rememberTooltipState(),
) {
OutlinedIconButton(onClick = { /* doSomething() */ }) {
Icon(Icons.Filled.Lock, contentDescription = description)
}
}
}
@OptIn(ExperimentalMaterial3Api::class)
@ExperimentalMaterial3ExpressiveApi
@Preview
@Composable
fun OutlinedIconButtonWithAnimatedShapeSample() {
val description = "Localized description"
// Icon button should have a tooltip associated with it for a11y.
TooltipBox(
positionProvider =
TooltipDefaults.rememberTooltipPositionProvider(TooltipAnchorPosition.Above),
tooltip = { PlainTooltip { Text(description) } },
state = rememberTooltipState(),
) {
OutlinedIconButton(
onClick = { /* doSomething() */ },
shapes = IconButtonDefaults.shapes(),
) {
Icon(Icons.Filled.Lock, contentDescription = description)
}
}
}