object ButtonDefaults


Contains the default values used by Button

Summary

Public functions

ButtonColors

Creates a ButtonColors that represents the default background and content colors used in a Button.

ButtonColors
@Composable
buttonColors(
    containerColor: Color,
    contentColor: Color,
    secondaryContentColor: Color,
    iconColor: Color,
    disabledContainerColor: Color,
    disabledContentColor: Color,
    disabledSecondaryContentColor: Color,
    disabledIconColor: Color
)

Creates a ButtonColors that represents the default background and content colors used in a Button.

ButtonColors

Creates a ButtonColors with transparent background, the defaults for low emphasis buttons like ChildButton.

ButtonColors
@Composable
childButtonColors(
    contentColor: Color,
    secondaryContentColor: Color,
    iconColor: Color,
    disabledContentColor: Color,
    disabledSecondaryContentColor: Color,
    disabledIconColor: Color
)

Creates a ButtonColors with transparent background, the defaults for low emphasis buttons like ChildButton.

ButtonColors

Creates a ButtonColors with a muted background and contrasting content color, the defaults for medium emphasis buttons like FilledTonalButton.

ButtonColors
@Composable
filledTonalButtonColors(
    containerColor: Color,
    contentColor: Color,
    secondaryContentColor: Color,
    iconColor: Color,
    disabledContainerColor: Color,
    disabledContentColor: Color,
    disabledSecondaryContentColor: Color,
    disabledIconColor: Color
)

Creates a ButtonColors with a muted background and contrasting content color, the defaults for medium emphasis buttons like FilledTonalButton.

ButtonColors

Creates a ButtonColors as an alternative to the filledTonalButtonColors, giving a surface with more chroma to indicate selected or highlighted states that are not primary calls-to-action.

ButtonColors
@Composable
filledVariantButtonColors(
    containerColor: Color,
    contentColor: Color,
    secondaryContentColor: Color,
    iconColor: Color,
    disabledContainerColor: Color,
    disabledContentColor: Color,
    disabledSecondaryContentColor: Color,
    disabledIconColor: Color
)

Creates a ButtonColors as an alternative to the filledTonalButtonColors, giving a surface with more chroma to indicate selected or highlighted states that are not primary calls-to-action.

ButtonColors
@Composable
imageBackgroundButtonColors(
    backgroundImagePainter: Painter,
    backgroundImageScrimBrush: Brush,
    contentColor: Color,
    secondaryContentColor: Color,
    iconColor: Color,
    disabledContentColor: Color,
    disabledSecondaryContentColor: Color,
    disabledIconColor: Color,
    forcedSize: Size?
)

Creates a ButtonColors for a Button with an image background, typically with a scrim over the image to ensure that the content is visible.

BorderStroke
@Composable
outlinedButtonBorder(
    enabled: Boolean,
    borderColor: Color,
    disabledBorderColor: Color,
    borderWidth: Dp
)

Creates a BorderStroke, such as for an OutlinedButton

ButtonColors

Creates a ButtonColors with a transparent background (typically paired with ButtonDefaults.outlinedButtonBorder), the defaults for medium emphasis buttons like OutlinedButton, for important, non-primary actions that need attention.

ButtonColors
@Composable
outlinedButtonColors(
    contentColor: Color,
    secondaryContentColor: Color,
    iconColor: Color,
    disabledContentColor: Color,
    disabledSecondaryContentColor: Color,
    disabledIconColor: Color
)

Creates a ButtonColors with a transparent background (typically paired with ButtonDefaults.outlinedButtonBorder), the defaults for medium emphasis buttons like OutlinedButton, for important, non-primary actions that need attention.

Public properties

Dp

The recommended start padding to be used with Button with an extra large icon

Dp

The recommended horizontal padding used by Button by default

Dp

The recommended start padding to be used with Button with a large icon

Dp

The recommended vertical padding used by Button by default

PaddingValues

The default content padding used by Button with an extra large icon

PaddingValues

The default content padding used by Button with a large icon

PaddingValues

The default content padding used by CompactButton

Dp

The height applied for the CompactButton.

Dp
PaddingValues

The default padding to be provided around a CompactButton in order to ensure that its tappable area meets minimum UX guidance.

Dp
PaddingValues

The default content padding used by Button

Dp

The recommended icon size when used in Buttons for icons such as an avatar icon

Dp

The size of the icon when used with text inside a "CompactButton.

Dp

The default height applied for the Button.

Dp

The default size of the icon when used inside a Button.

Dp

The default size of the spacing between an icon and a text when they are used inside a Button.

Dp

The recommended icon size when used in Buttons for icons such as an app icon

Dp

The icon size for use with a CompactButton that has icon-only content.

RoundedCornerShape

Recommended RoundedCornerShape for CompactButton.

RoundedCornerShape

Recommended RoundedCornerShape for Button.

Public functions

buttonColors

Added in 1.0.0-alpha30
@Composable
fun buttonColors(): ButtonColors

Creates a ButtonColors that represents the default background and content colors used in a Button.

buttonColors

@Composable
fun buttonColors(
    containerColor: Color = Color.Unspecified,
    contentColor: Color = Color.Unspecified,
    secondaryContentColor: Color = Color.Unspecified,
    iconColor: Color = Color.Unspecified,
    disabledContainerColor: Color = Color.Unspecified,
    disabledContentColor: Color = Color.Unspecified,
    disabledSecondaryContentColor: Color = Color.Unspecified,
    disabledIconColor: Color = Color.Unspecified
): ButtonColors

Creates a ButtonColors that represents the default background and content colors used in a Button.

Parameters
containerColor: Color = Color.Unspecified

The background color of this Button when enabled

contentColor: Color = Color.Unspecified

The content color of this Button when enabled

secondaryContentColor: Color = Color.Unspecified

The content color of this Button when enabled

iconColor: Color = Color.Unspecified

The content color of this Button when enabled

disabledContainerColor: Color = Color.Unspecified

The background color of this Button when not enabled

disabledContentColor: Color = Color.Unspecified

The content color of this Button when not enabled

disabledSecondaryContentColor: Color = Color.Unspecified

The content color of this Button when not enabled

disabledIconColor: Color = Color.Unspecified

The content color of this Button when not enabled

childButtonColors

Added in 1.0.0-alpha30
@Composable
fun childButtonColors(): ButtonColors

Creates a ButtonColors with transparent background, the defaults for low emphasis buttons like ChildButton. Use childButtonColors for optional or supplementary actions with the least amount of prominence.

If a button is disabled then the content will have an alpha(DisabledContentAlpha) value applied and container will have an alpha(DisabledContainerAlpha) value applied.

childButtonColors

@Composable
fun childButtonColors(
    contentColor: Color = Color.Unspecified,
    secondaryContentColor: Color = Color.Unspecified,
    iconColor: Color = Color.Unspecified,
    disabledContentColor: Color = Color.Unspecified,
    disabledSecondaryContentColor: Color = Color.Unspecified,
    disabledIconColor: Color = Color.Unspecified
): ButtonColors

Creates a ButtonColors with transparent background, the defaults for low emphasis buttons like ChildButton. Use childButtonColors for optional or supplementary actions with the least amount of prominence.

If a button is disabled then the content will have an alpha(DisabledContentAlpha) value applied and container will have an alpha(DisabledContainerAlpha) value applied.

Parameters
contentColor: Color = Color.Unspecified

The content color of this Button when enabled

secondaryContentColor: Color = Color.Unspecified

The secondary content color of this Button when enabled, used for secondaryLabel content

iconColor: Color = Color.Unspecified

The icon color of this Button when enabled, used for icon content

disabledContentColor: Color = Color.Unspecified

The content color of this Button when not enabled

disabledSecondaryContentColor: Color = Color.Unspecified

The secondary content color of this Button when not enabled

disabledIconColor: Color = Color.Unspecified

The content color of this Button when not enabled

filledTonalButtonColors

Added in 1.0.0-alpha30
@Composable
fun filledTonalButtonColors(): ButtonColors

Creates a ButtonColors with a muted background and contrasting content color, the defaults for medium emphasis buttons like FilledTonalButton. Use filledTonalButtonColors for important actions that don't distract from other onscreen elements, such as final or unblocking actions in a flow with less emphasis than buttonColors.

If a button is disabled then the content will have an alpha(DisabledContentAlpha) value applied and container will have alpha (DisabledContainerAlpha) value applied.

filledTonalButtonColors

@Composable
fun filledTonalButtonColors(
    containerColor: Color = Color.Unspecified,
    contentColor: Color = Color.Unspecified,
    secondaryContentColor: Color = Color.Unspecified,
    iconColor: Color = Color.Unspecified,
    disabledContainerColor: Color = Color.Unspecified,
    disabledContentColor: Color = Color.Unspecified,
    disabledSecondaryContentColor: Color = Color.Unspecified,
    disabledIconColor: Color = Color.Unspecified
): ButtonColors

Creates a ButtonColors with a muted background and contrasting content color, the defaults for medium emphasis buttons like FilledTonalButton. Use filledTonalButtonColors for important actions that don't distract from other onscreen elements, such as final or unblocking actions in a flow with less emphasis than buttonColors.

If a button is disabled then the content will have an alpha(DisabledContentAlpha) value applied and container will have alpha (DisabledContainerAlpha) value applied.

Parameters
containerColor: Color = Color.Unspecified

The background color of this Button when enabled

contentColor: Color = Color.Unspecified

The content color of this Button when enabled

secondaryContentColor: Color = Color.Unspecified

The secondary content color of this Button when enabled, used for secondaryLabel content

iconColor: Color = Color.Unspecified

The icon color of this Button when enabled, used for icon content

disabledContainerColor: Color = Color.Unspecified

The background color of this Button when not enabled

disabledContentColor: Color = Color.Unspecified

The content color of this Button when not enabled

disabledSecondaryContentColor: Color = Color.Unspecified

The secondary content color of this Button when not enabled

disabledIconColor: Color = Color.Unspecified

The content color of this Button when not enabled

filledVariantButtonColors

Added in 1.0.0-alpha30
@Composable
fun filledVariantButtonColors(): ButtonColors

Creates a ButtonColors as an alternative to the filledTonalButtonColors, giving a surface with more chroma to indicate selected or highlighted states that are not primary calls-to-action. If the icon button is disabled then the colors will default to the MaterialTheme onSurface color with suitable alpha values applied.

If a button is disabled then the content will have an alpha(DisabledContentAlpha) value applied and container will have alpha (DisabledContainerAlpha) value applied.

Example of a Button with filledVariantButtonColors:

import androidx.wear.compose.material3.Button
import androidx.wear.compose.material3.ButtonDefaults
import androidx.wear.compose.material3.Text

Button(
    onClick = { /* Do something */ },
    colors = ButtonDefaults.filledVariantButtonColors(),
    label = { Text("Filled Variant Button") },
    modifier = modifier,
)

filledVariantButtonColors

@Composable
fun filledVariantButtonColors(
    containerColor: Color = Color.Unspecified,
    contentColor: Color = Color.Unspecified,
    secondaryContentColor: Color = Color.Unspecified,
    iconColor: Color = Color.Unspecified,
    disabledContainerColor: Color = Color.Unspecified,
    disabledContentColor: Color = Color.Unspecified,
    disabledSecondaryContentColor: Color = Color.Unspecified,
    disabledIconColor: Color = Color.Unspecified
): ButtonColors

Creates a ButtonColors as an alternative to the filledTonalButtonColors, giving a surface with more chroma to indicate selected or highlighted states that are not primary calls-to-action. If the icon button is disabled then the colors will default to the MaterialTheme onSurface color with suitable alpha values applied.

If a button is disabled then the content will have an alpha(DisabledContentAlpha) value applied and container will have alpha (DisabledContainerAlpha) value applied.

Example of a Button with filledVariantButtonColors:

import androidx.compose.foundation.layout.size
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.wear.compose.material3.Button
import androidx.wear.compose.material3.ButtonDefaults
import androidx.wear.compose.material3.Icon
import androidx.wear.compose.material3.Text

Button(
    onClick = { /* Do something */ },
    colors = ButtonDefaults.filledVariantButtonColors(),
    label = { Text("Filled Variant Button") },
    secondaryLabel = { Text("Secondary label") },
    icon = {
        Icon(
            painter = painterResource(R.drawable.ic_favorite_rounded),
            contentDescription = "Favorite icon",
            modifier = Modifier.size(ButtonDefaults.IconSize)
        )
    },
    modifier = modifier
)
Parameters
containerColor: Color = Color.Unspecified

The background color of this Button when enabled

contentColor: Color = Color.Unspecified

The content color of this Button when enabled

secondaryContentColor: Color = Color.Unspecified

The secondary content color of this Button when enabled, used for secondaryLabel content

iconColor: Color = Color.Unspecified

The icon color of this Button when enabled, used for icon content

disabledContainerColor: Color = Color.Unspecified

The background color of this Button when not enabled

disabledContentColor: Color = Color.Unspecified

The content color of this Button when not enabled

disabledSecondaryContentColor: Color = Color.Unspecified

The secondary content color of this Button when not enabled

disabledIconColor: Color = Color.Unspecified

The content color of this Button when not enabled

imageBackgroundButtonColors

@Composable
fun imageBackgroundButtonColors(
    backgroundImagePainter: Painter,
    backgroundImageScrimBrush: Brush = Brush.linearGradient( colors = listOf( ImageButtonTokens.BackgroundImageGradientColor.value.copy( alpha = ImageButtonTokens.GradientStartOpacity ), ImageButtonTokens.BackgroundImageGradientColor.value.copy( alpha = ImageButtonTokens.GradientEndOpacity ) ) ),
    contentColor: Color = ImageButtonTokens.ContentColor.value,
    secondaryContentColor: Color = ImageButtonTokens.SecondaryContentColor.value.copy( alpha = ImageButtonTokens.SecondaryContentOpacity ),
    iconColor: Color = ImageButtonTokens.IconColor.value,
    disabledContentColor: Color = ImageButtonTokens.DisabledContentColor.value.toDisabledColor( disabledAlpha = ImageButtonTokens.DisabledContentOpacity ),
    disabledSecondaryContentColor: Color = ImageButtonTokens.DisabledContentColor.value.toDisabledColor( disabledAlpha = ImageButtonTokens.DisabledContentOpacity ),
    disabledIconColor: Color = ImageButtonTokens.DisabledContentColor.value.toDisabledColor( disabledAlpha = ImageButtonTokens.DisabledContentOpacity ),
    forcedSize: Size? = Size.Unspecified
): ButtonColors

Creates a ButtonColors for a Button with an image background, typically with a scrim over the image to ensure that the content is visible. Uses a default content color of ColorScheme.onBackground.

Parameters
backgroundImagePainter: Painter

The Painter to use to draw the background of the Button

backgroundImageScrimBrush: Brush = Brush.linearGradient( colors = listOf( ImageButtonTokens.BackgroundImageGradientColor.value.copy( alpha = ImageButtonTokens.GradientStartOpacity ), ImageButtonTokens.BackgroundImageGradientColor.value.copy( alpha = ImageButtonTokens.GradientEndOpacity ) ) )

The Brush to use to paint a scrim over the background image to ensure that any text drawn over the image is legible

contentColor: Color = ImageButtonTokens.ContentColor.value

The content color of this Button when enabled

secondaryContentColor: Color = ImageButtonTokens.SecondaryContentColor.value.copy( alpha = ImageButtonTokens.SecondaryContentOpacity )

The secondary content color of this Button when enabled, used for secondaryLabel content

iconColor: Color = ImageButtonTokens.IconColor.value

The icon color of this Button when enabled, used for icon content

disabledContentColor: Color = ImageButtonTokens.DisabledContentColor.value.toDisabledColor( disabledAlpha = ImageButtonTokens.DisabledContentOpacity )

The content color of this Button when disabled

disabledSecondaryContentColor: Color = ImageButtonTokens.DisabledContentColor.value.toDisabledColor( disabledAlpha = ImageButtonTokens.DisabledContentOpacity )

The secondary content color of this Button when disabled, used for secondary label content

disabledIconColor: Color = ImageButtonTokens.DisabledContentColor.value.toDisabledColor( disabledAlpha = ImageButtonTokens.DisabledContentOpacity )

The icon color of this Button when disabled, used for icon content

forcedSize: Size? = Size.Unspecified

The value for Painter.intrinsicSize, a value of null will respect the backgroundImagePainter size. Defaults to Size.Unspecified which does not affect component size.

outlinedButtonBorder

@Composable
fun outlinedButtonBorder(
    enabled: Boolean,
    borderColor: Color = OutlinedButtonTokens.ContainerBorderColor.value,
    disabledBorderColor: Color = OutlinedButtonTokens.DisabledContainerBorderColor.value.toDisabledColor( disabledAlpha = OutlinedButtonTokens.DisabledContainerBorderOpacity ),
    borderWidth: Dp = OutlinedButtonTokens.ContainerBorderWidth
): BorderStroke

Creates a BorderStroke, such as for an OutlinedButton

Parameters
enabled: Boolean

Controls the color of the border based on the enabled/disabled state of the button

borderColor: Color = OutlinedButtonTokens.ContainerBorderColor.value

The color to use for the border for this outline when enabled

disabledBorderColor: Color = OutlinedButtonTokens.DisabledContainerBorderColor.value.toDisabledColor( disabledAlpha = OutlinedButtonTokens.DisabledContainerBorderOpacity )

The color to use for the border for this outline when disabled

borderWidth: Dp = OutlinedButtonTokens.ContainerBorderWidth

The width to use for the border for this outline. It is strongly recommended to use the default width as this outline is a key characteristic of Wear Material3.

outlinedButtonColors

Added in 1.0.0-alpha30
@Composable
fun outlinedButtonColors(): ButtonColors

Creates a ButtonColors with a transparent background (typically paired with ButtonDefaults.outlinedButtonBorder), the defaults for medium emphasis buttons like OutlinedButton, for important, non-primary actions that need attention.

If a button is disabled then the content will have an alpha(DisabledContentAlpha) value applied and container will have an alpha(DisabledContainerAlpha) applied.

outlinedButtonColors

@Composable
fun outlinedButtonColors(
    contentColor: Color = Color.Unspecified,
    secondaryContentColor: Color = Color.Unspecified,
    iconColor: Color = Color.Unspecified,
    disabledContentColor: Color = Color.Unspecified,
    disabledSecondaryContentColor: Color = Color.Unspecified,
    disabledIconColor: Color = Color.Unspecified
): ButtonColors

Creates a ButtonColors with a transparent background (typically paired with ButtonDefaults.outlinedButtonBorder), the defaults for medium emphasis buttons like OutlinedButton, for important, non-primary actions that need attention.

If a button is disabled then the content will have an alpha(DisabledContentAlpha) value applied and container will have an alpha(DisabledContainerAlpha) applied.

Parameters
contentColor: Color = Color.Unspecified

The content color of this Button when enabled

secondaryContentColor: Color = Color.Unspecified

The secondary content color of this Button when enabled, used for secondaryLabel content

iconColor: Color = Color.Unspecified

The icon color of this Button when enabled, used for icon content

disabledContentColor: Color = Color.Unspecified

The content color of this Button when not enabled

disabledSecondaryContentColor: Color = Color.Unspecified

The secondary content color of this Button when not enabled

disabledIconColor: Color = Color.Unspecified

The content color of this Button when not enabled

Public properties

ButtonExtraLargeIconStartPadding

Added in 1.0.0-alpha30
val ButtonExtraLargeIconStartPaddingDp

The recommended start padding to be used with Button with an extra large icon

ButtonHorizontalPadding

Added in 1.0.0-alpha30
val ButtonHorizontalPaddingDp

The recommended horizontal padding used by Button by default

ButtonLargeIconStartPadding

Added in 1.0.0-alpha30
val ButtonLargeIconStartPaddingDp

The recommended start padding to be used with Button with a large icon

ButtonVerticalPadding

Added in 1.0.0-alpha30
val ButtonVerticalPaddingDp

The recommended vertical padding used by Button by default

ButtonWithExtraLargeIconContentPadding

Added in 1.0.0-alpha30
val ButtonWithExtraLargeIconContentPaddingPaddingValues

The default content padding used by Button with an extra large icon

ButtonWithLargeIconContentPadding

Added in 1.0.0-alpha30
val ButtonWithLargeIconContentPaddingPaddingValues

The default content padding used by Button with a large icon

CompactButtonContentPadding

Added in 1.0.0-alpha30
val CompactButtonContentPaddingPaddingValues

The default content padding used by CompactButton

CompactButtonHeight

Added in 1.0.0-alpha30
val CompactButtonHeightDp

The height applied for the CompactButton. This includes a visible button height of 32.dp and 8.dp of padding above and below the button in order to meet accessibility guidelines that request a minimum of 48.dp height and width of tappable area.

Note that you can override it by adjusting Modifier.height and Modifier.padding directly on CompactButton.

CompactButtonHorizontalPadding

Added in 1.0.0-alpha30
val CompactButtonHorizontalPaddingDp

CompactButtonTapTargetPadding

Added in 1.0.0-alpha30
val CompactButtonTapTargetPaddingPaddingValues

The default padding to be provided around a CompactButton in order to ensure that its tappable area meets minimum UX guidance.

CompactButtonVerticalPadding

Added in 1.0.0-alpha30
val CompactButtonVerticalPaddingDp

ContentPadding

Added in 1.0.0-alpha30
val ContentPaddingPaddingValues

The default content padding used by Button

ExtraLargeIconSize

Added in 1.0.0-alpha30
val ExtraLargeIconSizeDp

The recommended icon size when used in Buttons for icons such as an avatar icon

ExtraSmallIconSize

Added in 1.0.0-alpha30
val ExtraSmallIconSizeDp

The size of the icon when used with text inside a "CompactButton.

Height

Added in 1.0.0-alpha30
val HeightDp

The default height applied for the Button. Note that you can override it by applying Modifier.heightIn directly on Button.

IconSize

Added in 1.0.0-alpha30
val IconSizeDp

The default size of the icon when used inside a Button.

IconSpacing

Added in 1.0.0-alpha30
val IconSpacingDp

The default size of the spacing between an icon and a text when they are used inside a Button.

LargeIconSize

Added in 1.0.0-alpha30
val LargeIconSizeDp

The recommended icon size when used in Buttons for icons such as an app icon

SmallIconSize

Added in 1.0.0-alpha30
val SmallIconSizeDp

The icon size for use with a CompactButton that has icon-only content.

compactButtonShape

Added in 1.0.0-alpha30
val compactButtonShapeRoundedCornerShape

Recommended RoundedCornerShape for CompactButton.

shape

Added in 1.0.0-alpha30
val shapeRoundedCornerShape

Recommended RoundedCornerShape for Button.