Skip to content

Split buttons ​

Split buttons combine a primary action with a secondary action in a single component.

Overview · Specs · Guidelines · Accessibility

Variants ​

1 type of split button.


VariantM3M3 Expressive
Split button--Available

Configurations ​

4 colors and 5 sizes of split buttons.

  1. Color configurations: Elevated, filled, tonal, outlined
  2. Size configurations: XS, S, M, L, XL
CategoryConfigurationM3M3 Expressive
SizeXS, S, M, L, XL--Available
ColorElevated, filled, tonal, outlined--Available

Tokens & specs ​

Use the table's menu to select a token set. Split button token sets are organized by size. Learn about design tokens

Design tokens

Token table

Machine-readable relationship table

Split buttons tokens · 5 token sets · 61 tokens · live token table · DSDB TOKEN_TABLE.624e8f2da4007fc8

  • Default context: Theme: Light · Platform: Android · Audience: 3P · Contrast: Default · iOS dark theme elevation: None · iOS weight setting: Default
  • Not configurable here (group default used): Motion scheme: Standard · Font: Static · Language height: Small
  • Other contexts: Theme: Dark · Platform: Web, Compose · Contrast: Medium contrast, High contrast. "Other contexts" lists values that differ from the default when only that one context changes.
  • Reference chain: aliases from the token to its source value (token → alias → … → value). "—" means the token holds a literal value.

Split button - Size - Xsmall · md.comp.split-button.xsmall · 13 tokens

For XS split buttons.

GroupTokenTypeReference chainResolved valueOther contexts
All tokensmd.comp.split-button.xsmall.container.heightLength—32dp—
All tokensmd.comp.split-button.xsmall.between-spaceLengthmd.sys.measurement.space252dp—
All tokensmd.comp.split-button.xsmall.container.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)—
All tokensmd.comp.split-button.xsmall.inner-corner.corner-sizeShapemd.sys.shape.corner-value.extra-small4dp—
All tokensmd.comp.split-button.xsmall.outer-corner.corner-sizeLength—50%—
All tokensmd.comp.split-button.xsmall.leading-button.leading-spaceLengthmd.sys.measurement.space15012dp—
All tokensmd.comp.split-button.xsmall.leading-button.trailing-spaceLengthmd.sys.measurement.space12510dp—
All tokensmd.comp.split-button.xsmall.trailing-button.icon.sizeLength—22dp—
All tokensmd.comp.split-button.xsmall.trailing-button.leading-spaceLength—13dp—
All tokensmd.comp.split-button.xsmall.trailing-button.trailing-spaceLength—13dp—
All tokensmd.comp.split-button.xsmall.inner-corner.hovered.corner-sizeShapemd.sys.shape.corner-value.small8dp—
All tokensmd.comp.split-button.xsmall.inner-corner.pressed.corner-sizeShapemd.sys.shape.corner-value.small8dp—
All tokensmd.comp.split-button.xsmall.trailing-button.inner-corner.selected.corner-sizeLength—50%—

Split button - Size - Small · md.comp.split-button.small · 12 tokens

For small split buttons.

GroupTokenTypeReference chainResolved valueOther contexts
All tokensmd.comp.split-button.small.container.heightLength—40dp—
All tokensmd.comp.split-button.small.between-spaceLengthmd.sys.measurement.space252dp—
All tokensmd.comp.split-button.small.container.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)—
All tokensmd.comp.split-button.small.inner-corner.corner-sizeShapemd.sys.shape.corner-value.extra-small4dp—
All tokensmd.comp.split-button.small.leading-button.leading-spaceLengthmd.sys.measurement.space20016dp—
All tokensmd.comp.split-button.small.leading-button.trailing-spaceLengthmd.sys.measurement.space15012dp—
All tokensmd.comp.split-button.small.trailing-button.icon.sizeLength—22dp—
All tokensmd.comp.split-button.small.trailing-button.leading-spaceLength—13dp—
All tokensmd.comp.split-button.small.trailing-button.trailing-spaceLength—13dp—
All tokensmd.comp.split-button.small.inner-corner.hovered.corner-sizeShapemd.sys.shape.corner-value.medium12dp—
All tokensmd.comp.split-button.small.inner-corner.pressed.corner-sizeShapemd.sys.shape.corner-value.medium12dp—
All tokensmd.comp.split-button.small.trailing-button.inner-corner.selected.corner-sizeLength—50%—

Split button - Size - Medium · md.comp.split-button.medium · 12 tokens

For medium split buttons.

GroupTokenTypeReference chainResolved valueOther contexts
All tokensmd.comp.split-button.medium.container.heightLength—56dp—
All tokensmd.comp.split-button.medium.between-spaceLengthmd.sys.measurement.space252dp—
All tokensmd.comp.split-button.medium.container.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)—
All tokensmd.comp.split-button.medium.inner-corner.corner-sizeShapemd.sys.shape.corner-value.extra-small4dp—
All tokensmd.comp.split-button.medium.leading-button.leading-spaceLengthmd.sys.measurement.space30024dp—
All tokensmd.comp.split-button.medium.leading-button.trailing-spaceLengthmd.sys.measurement.space30024dp—
All tokensmd.comp.split-button.medium.trailing-button.icon.sizeLength—26dp—
All tokensmd.comp.split-button.medium.trailing-button.leading-spaceLength—15dp—
All tokensmd.comp.split-button.medium.trailing-button.trailing-spaceLength—15dp—
All tokensmd.comp.split-button.medium.inner-corner.hovered.corner-sizeShapemd.sys.shape.corner-value.medium12dp—
All tokensmd.comp.split-button.medium.inner-corner.pressed.corner-sizeShapemd.sys.shape.corner-value.medium12dp—
All tokensmd.comp.split-button.medium.trailing-button.inner-corner.selected.corner-sizeLength—50%—

Split button - Size - Large · md.comp.split-button.large · 12 tokens

For large split buttons.

GroupTokenTypeReference chainResolved valueOther contexts
All tokensmd.comp.split-button.large.container.heightLength—96dp—
All tokensmd.comp.split-button.large.between-spaceLengthmd.sys.measurement.space252dp—
All tokensmd.comp.split-button.large.container.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)—
All tokensmd.comp.split-button.large.inner-corner.corner-sizeShapemd.sys.shape.corner-value.small8dp—
All tokensmd.comp.split-button.large.leading-button.leading-spaceLengthmd.sys.measurement.space60048dp—
All tokensmd.comp.split-button.large.leading-button.trailing-spaceLengthmd.sys.measurement.space60048dp—
All tokensmd.comp.split-button.large.trailing-button.icon.sizeLength—38dp—
All tokensmd.comp.split-button.large.trailing-button.leading-spaceLength—29dp—
All tokensmd.comp.split-button.large.trailing-button.trailing-spaceLength—29dp—
All tokensmd.comp.split-button.large.inner-corner.hovered.corner-sizeShapemd.sys.shape.corner-value.large-increased20dp—
All tokensmd.comp.split-button.large.inner-corner.pressed.corner-sizeShapemd.sys.shape.corner-value.large-increased20dp—
All tokensmd.comp.split-button.large.trailing-button.inner-corner.selected.corner-sizeLength—50%—

Split button - Size - Xlarge · md.comp.split-button.xlarge · 12 tokens

For XL split buttons.

GroupTokenTypeReference chainResolved valueOther contexts
All tokensmd.comp.split-button.xlarge.container.heightLength—136dp—
All tokensmd.comp.split-button.xlarge.between-spaceLengthmd.sys.measurement.space252dp—
All tokensmd.comp.split-button.xlarge.container.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)—
All tokensmd.comp.split-button.xlarge.inner-corner.corner-sizeShapemd.sys.shape.corner-value.medium12dp—
All tokensmd.comp.split-button.xlarge.leading-button.leading-spaceLengthmd.sys.measurement.space80064dp—
All tokensmd.comp.split-button.xlarge.leading-button.trailing-spaceLengthmd.sys.measurement.space80064dp—
All tokensmd.comp.split-button.xlarge.trailing-button.icon.sizeLength—50dp—
All tokensmd.comp.split-button.xlarge.trailing-button.leading-spaceLength—43dp—
All tokensmd.comp.split-button.xlarge.trailing-button.trailing-spaceLength—43dp—
All tokensmd.comp.split-button.xlarge.inner-corner.hovered.corner-sizeShapemd.sys.shape.corner-value.large-increased20dp—
All tokensmd.comp.split-button.xlarge.inner-corner.pressed.corner-sizeShapemd.sys.shape.corner-value.large-increased20dp—
All tokensmd.comp.split-button.xlarge.trailing-button.inner-corner.selected.corner-sizeLength—50%—

Anatomy ​

4 elements of a split button.

  1. Leading button
  2. Icon
  3. Label text
  4. Trailing button

The leading button in split buttons can have an icon, label text, or both. The trailing button should always have a menu icon.

3 customizations of the leading button in the split button.

  1. Label + icon
  2. Label
  3. Icon

Color ​

Color values are implemented through design tokens. For designers, this means working with color values that correspond with tokens; in implementation, a color value will be a token that references a value.

Split buttons use the same color schemes as standard buttons. However, unlike toggle buttons, the split button color doesn’t change when selected—only a state layer is applied.

Split buttons use the same colors and state layers as buttons, shown in the following token module. Go to buttons for more details.

4 color roles of the split button when unselected and selected in light and dark theme.

A: Unselected, B: Selected trailing icon

  1. Elevated
  2. Filled
  3. Tonal
  4. Outlined

Design tokens

Token table

Machine-readable relationship table

Split buttons tokens · 4 token sets · 205 tokens · live token table · DSDB TOKEN_TABLE.624e8f2da4007fc8

  • Default context: Theme: Light · Platform: Android · Audience: 3P · Contrast: Default · iOS dark theme elevation: None · iOS weight setting: Default
  • Not configurable here (group default used): Motion scheme: Standard · Font: Static · Language height: Small
  • Other contexts: Theme: Dark · Contrast: Medium contrast, High contrast. "Other contexts" lists values that differ from the default when only that one context changes.
  • Reference chain: aliases from the token to its source value (token → alias → … → value). "—" means the token holds a literal value.

Button - Color - Elevated · md.comp.button.elevated · 51 tokens

For elevated buttons.

GroupTokenTypeReference chainResolved valueOther contexts
Enabledmd.comp.button.elevated.unselected.container.colorColormd.sys.color.surface-container-low → md.ref.palette.neutral96#F7F2FADark: #1D1B20 via md.ref.palette.neutral10
Enabledmd.comp.button.elevated.selected.container.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Enabledmd.comp.button.elevated.container.shadow-colorColormd.sys.color.shadow → md.ref.palette.neutral0#000000—
Enabledmd.comp.button.elevated.container.elevationElevationmd.sys.elevation.level11dp—
Enabledmd.comp.button.elevated.label-text.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Enabledmd.comp.button.elevated.unselected.label-text.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Enabledmd.comp.button.elevated.selected.label-text.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Enabledmd.comp.button.elevated.icon.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Enabledmd.comp.button.elevated.unselected.icon.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Enabledmd.comp.button.elevated.selected.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Enabledmd.comp.button.elevated.container.colorColormd.sys.color.surface-container-low → md.ref.palette.neutral96#F7F2FADark: #1D1B20 via md.ref.palette.neutral10
Disabledmd.comp.button.elevated.disabled.container.opacityOpacity—0.1—
Disabledmd.comp.button.elevated.disabled.container.elevationElevationmd.sys.elevation.level00dp—
Disabledmd.comp.button.elevated.disabled.label-text.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1D1B20Dark: #E6E0E9 via md.ref.palette.neutral90
Medium contrast: #000000 via md.ref.palette.neutral0
High contrast: #000000 via md.ref.palette.neutral0
Disabledmd.comp.button.elevated.disabled.label-text.opacityOpacity—0.38—
Disabledmd.comp.button.elevated.disabled.icon.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1D1B20Dark: #E6E0E9 via md.ref.palette.neutral90
Medium contrast: #000000 via md.ref.palette.neutral0
High contrast: #000000 via md.ref.palette.neutral0
Disabledmd.comp.button.elevated.disabled.icon.opacityOpacity—0.38—
Disabledmd.comp.button.elevated.disabled.container.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1D1B20Dark: #E6E0E9 via md.ref.palette.neutral90
Medium contrast: #000000 via md.ref.palette.neutral0
High contrast: #000000 via md.ref.palette.neutral0
Hoveredmd.comp.button.elevated.unselected.hovered.state-layer.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Hoveredmd.comp.button.elevated.selected.hovered.state-layer.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Hoveredmd.comp.button.elevated.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hoveredmd.comp.button.elevated.hovered.container.elevation (deprecated)Elevationmd.sys.elevation.level23dp—
Hoveredmd.comp.button.elevated.hovered.label-text.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Hoveredmd.comp.button.elevated.unselected.hovered.label-text.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Hoveredmd.comp.button.elevated.selected.hovered.label-text.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Hoveredmd.comp.button.elevated.hovered.icon.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Hoveredmd.comp.button.elevated.unselected.hovered.icon.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Hoveredmd.comp.button.elevated.selected.hovered.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Hoveredmd.comp.button.elevated.hovered.state-layer.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Focusedmd.comp.button.elevated.unselected.focused.state-layer.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Focusedmd.comp.button.elevated.selected.focused.state-layer.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Focusedmd.comp.button.elevated.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focusedmd.comp.button.elevated.focused.container.elevationElevationmd.sys.elevation.level11dp—
Focusedmd.comp.button.elevated.focused.label-text.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Focusedmd.comp.button.elevated.unselected.focused.label-text.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Focusedmd.comp.button.elevated.selected.focused.label-text.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Focusedmd.comp.button.elevated.focused.icon.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Focusedmd.comp.button.elevated.unselected.focused.icon.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Focusedmd.comp.button.elevated.selected.focused.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Focusedmd.comp.button.elevated.focused.state-layer.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Pressedmd.comp.button.elevated.unselected.pressed.state-layer.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Pressedmd.comp.button.elevated.selected.pressed.state-layer.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Pressedmd.comp.button.elevated.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressedmd.comp.button.elevated.pressed.container.elevationElevationmd.sys.elevation.level11dp—
Pressedmd.comp.button.elevated.pressed.label-text.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Pressedmd.comp.button.elevated.unselected.pressed.label-text.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Pressedmd.comp.button.elevated.selected.pressed.label-text.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Pressedmd.comp.button.elevated.pressed.icon.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Pressedmd.comp.button.elevated.unselected.pressed.icon.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Pressedmd.comp.button.elevated.selected.pressed.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Pressedmd.comp.button.elevated.pressed.state-layer.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20

Button - Color - Filled · md.comp.button.filled · 51 tokens

For filled buttons.

GroupTokenTypeReference chainResolved valueOther contexts
Enabledmd.comp.button.filled.unselected.container.colorColormd.sys.color.surface-container → md.ref.palette.neutral94#F3EDF7Dark: #211F26 via md.ref.palette.neutral12
Enabledmd.comp.button.filled.selected.container.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Enabledmd.comp.button.filled.container.shadow-colorColormd.sys.color.shadow → md.ref.palette.neutral0#000000—
Enabledmd.comp.button.filled.container.elevationElevationmd.sys.elevation.level00dp—
Enabledmd.comp.button.filled.label-text.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Enabledmd.comp.button.filled.unselected.label-text.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Enabledmd.comp.button.filled.selected.label-text.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Enabledmd.comp.button.filled.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Enabledmd.comp.button.filled.unselected.icon.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Enabledmd.comp.button.filled.selected.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Enabledmd.comp.button.filled.container.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Disabledmd.comp.button.filled.disabled.container.opacityOpacity—0.1—
Disabledmd.comp.button.filled.disabled.container.elevationElevationmd.sys.elevation.level00dp—
Disabledmd.comp.button.filled.disabled.label-text.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1D1B20Dark: #E6E0E9 via md.ref.palette.neutral90
Medium contrast: #000000 via md.ref.palette.neutral0
High contrast: #000000 via md.ref.palette.neutral0
Disabledmd.comp.button.filled.disabled.label-text.opacityOpacity—0.38—
Disabledmd.comp.button.filled.disabled.icon.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1D1B20Dark: #E6E0E9 via md.ref.palette.neutral90
Medium contrast: #000000 via md.ref.palette.neutral0
High contrast: #000000 via md.ref.palette.neutral0
Disabledmd.comp.button.filled.disabled.icon.opacityOpacity—0.38—
Disabledmd.comp.button.filled.disabled.container.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1D1B20Dark: #E6E0E9 via md.ref.palette.neutral90
Medium contrast: #000000 via md.ref.palette.neutral0
High contrast: #000000 via md.ref.palette.neutral0
Hoveredmd.comp.button.filled.unselected.hovered.state-layer.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Hoveredmd.comp.button.filled.selected.hovered.state-layer.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Hoveredmd.comp.button.filled.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hoveredmd.comp.button.filled.hovered.container.elevation (deprecated)Elevationmd.sys.elevation.level11dp—
Hoveredmd.comp.button.filled.hovered.label-text.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Hoveredmd.comp.button.filled.unselected.hovered.label-text.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Hoveredmd.comp.button.filled.selected.hovered.label-text.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Hoveredmd.comp.button.filled.hovered.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Hoveredmd.comp.button.filled.unselected.hovered.icon.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Hoveredmd.comp.button.filled.selected.hovered.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Hoveredmd.comp.button.filled.hovered.state-layer.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Focusedmd.comp.button.filled.unselected.focused.state-layer.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Focusedmd.comp.button.filled.selected.focused.state-layer.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Focusedmd.comp.button.filled.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focusedmd.comp.button.filled.focused.container.elevationElevationmd.sys.elevation.level00dp—
Focusedmd.comp.button.filled.focused.label-text.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Focusedmd.comp.button.filled.unselected.focused.label-text.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Focusedmd.comp.button.filled.selected.focused.label-text.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Focusedmd.comp.button.filled.focused.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Focusedmd.comp.button.filled.unselected.focused.icon.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Focusedmd.comp.button.filled.selected.focused.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Focusedmd.comp.button.filled.focused.state-layer.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Pressedmd.comp.button.filled.pressed.state-layer.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Pressedmd.comp.button.filled.unselected.pressed.state-layer.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Pressedmd.comp.button.filled.selected.pressed.state-layer.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Pressedmd.comp.button.filled.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressedmd.comp.button.filled.pressed.container.elevationElevationmd.sys.elevation.level00dp—
Pressedmd.comp.button.filled.pressed.label-text.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Pressedmd.comp.button.filled.unselected.pressed.label-text.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Pressedmd.comp.button.filled.selected.pressed.label-text.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Pressedmd.comp.button.filled.pressed.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Pressedmd.comp.button.filled.unselected.pressed.icon.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Pressedmd.comp.button.filled.selected.pressed.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20

Button - Color - Tonal · md.comp.button.tonal · 51 tokens

For tonal buttons.

GroupTokenTypeReference chainResolved valueOther contexts
Enabledmd.comp.button.tonal.unselected.container.colorColormd.sys.color.secondary-container → md.ref.palette.secondary90#E8DEF8Dark: #4A4458 via md.ref.palette.secondary30
Medium contrast: #625B71 via md.ref.palette.secondary40
High contrast: #4A4458 via md.ref.palette.secondary30
Enabledmd.comp.button.tonal.selected.container.colorColormd.sys.color.secondary → md.ref.palette.secondary40#625B71Dark: #CCC2DC via md.ref.palette.secondary80
Medium contrast: #4A4458 via md.ref.palette.secondary30
High contrast: #332D41 via md.ref.palette.secondary20
Enabledmd.comp.button.tonal.container.shadow-colorColormd.sys.color.shadow → md.ref.palette.neutral0#000000—
Enabledmd.comp.button.tonal.container.elevationElevationmd.sys.elevation.level00dp—
Enabledmd.comp.button.tonal.label-text.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Enabledmd.comp.button.tonal.unselected.label-text.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Enabledmd.comp.button.tonal.selected.label-text.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Enabledmd.comp.button.tonal.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Enabledmd.comp.button.tonal.unselected.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Enabledmd.comp.button.tonal.selected.icon.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Enabledmd.comp.button.tonal.container.colorColormd.sys.color.secondary-container → md.ref.palette.secondary90#E8DEF8Dark: #4A4458 via md.ref.palette.secondary30
Medium contrast: #625B71 via md.ref.palette.secondary40
High contrast: #4A4458 via md.ref.palette.secondary30
Disabledmd.comp.button.tonal.disabled.container.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1D1B20Dark: #E6E0E9 via md.ref.palette.neutral90
Medium contrast: #000000 via md.ref.palette.neutral0
High contrast: #000000 via md.ref.palette.neutral0
Disabledmd.comp.button.tonal.disabled.container.opacityOpacity—0.1—
Disabledmd.comp.button.tonal.disabled.container.elevationElevationmd.sys.elevation.level00dp—
Disabledmd.comp.button.tonal.disabled.label-text.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1D1B20Dark: #E6E0E9 via md.ref.palette.neutral90
Medium contrast: #000000 via md.ref.palette.neutral0
High contrast: #000000 via md.ref.palette.neutral0
Disabledmd.comp.button.tonal.disabled.label-text.opacityOpacity—0.38—
Disabledmd.comp.button.tonal.disabled.icon.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1D1B20Dark: #E6E0E9 via md.ref.palette.neutral90
Medium contrast: #000000 via md.ref.palette.neutral0
High contrast: #000000 via md.ref.palette.neutral0
Disabledmd.comp.button.tonal.disabled.icon.opacityOpacity—0.38—
Hoveredmd.comp.button.tonal.unselected.hovered.state-layer.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Hoveredmd.comp.button.tonal.selected.hovered.state-layer.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Hoveredmd.comp.button.tonal.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hoveredmd.comp.button.tonal.hovered.container.elevation (deprecated)Elevationmd.sys.elevation.level11dp—
Hoveredmd.comp.button.tonal.hovered.label-text.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Hoveredmd.comp.button.tonal.unselected.hovered.label-text.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Hoveredmd.comp.button.tonal.selected.hovered.label-text.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Hoveredmd.comp.button.tonal.hovered.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Hoveredmd.comp.button.tonal.unselected.hovered.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Hoveredmd.comp.button.tonal.selected.hovered.icon.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Hoveredmd.comp.button.tonal.hovered.state-layer.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Focusedmd.comp.button.tonal.unselected.focused.state-layer.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Focusedmd.comp.button.tonal.selected.focused.state-layer.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Focusedmd.comp.button.tonal.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focusedmd.comp.button.tonal.focused.container.elevationElevationmd.sys.elevation.level00dp—
Focusedmd.comp.button.tonal.focused.label-text.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Focusedmd.comp.button.tonal.unselected.focused.label-text.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Focusedmd.comp.button.tonal.selected.focused.label-text.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Focusedmd.comp.button.tonal.focused.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Focusedmd.comp.button.tonal.unselected.focused.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Focusedmd.comp.button.tonal.selected.focused.icon.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Focusedmd.comp.button.tonal.focused.state-layer.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Pressedmd.comp.button.tonal.unselected.pressed.state-layer.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Pressedmd.comp.button.tonal.selected.pressed.state-layer.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Pressedmd.comp.button.tonal.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressedmd.comp.button.tonal.pressed.container.elevationElevationmd.sys.elevation.level00dp—
Pressedmd.comp.button.tonal.pressed.label-text.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Pressedmd.comp.button.tonal.unselected.pressed.label-text.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Pressedmd.comp.button.tonal.selected.pressed.label-text.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Pressedmd.comp.button.tonal.pressed.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Pressedmd.comp.button.tonal.unselected.pressed.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Pressedmd.comp.button.tonal.selected.pressed.icon.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Pressedmd.comp.button.tonal.pressed.state-layer.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100

Button - Color - Outlined · md.comp.button.outlined · 52 tokens

For outlined buttons.

GroupTokenTypeReference chainResolved valueOther contexts
Enabledmd.comp.button.outlined.selected.container.colorColormd.sys.color.inverse-surface → md.ref.palette.neutral20#322F35Dark: #E6E0E9 via md.ref.palette.neutral90
Enabledmd.comp.button.outlined.label-text.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Enabledmd.comp.button.outlined.unselected.label-text.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Enabledmd.comp.button.outlined.selected.label-text.colorColormd.sys.color.inverse-on-surface → md.ref.palette.neutral95#F5EFF7Dark: #322F35 via md.ref.palette.neutral20
Medium contrast: #FFFFFF via md.ref.palette.neutral100
High contrast: #FFFFFF via md.ref.palette.neutral100
Enabledmd.comp.button.outlined.icon.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Enabledmd.comp.button.outlined.unselected.icon.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Enabledmd.comp.button.outlined.selected.icon.colorColormd.sys.color.inverse-on-surface → md.ref.palette.neutral95#F5EFF7Dark: #322F35 via md.ref.palette.neutral20
Medium contrast: #FFFFFF via md.ref.palette.neutral100
High contrast: #FFFFFF via md.ref.palette.neutral100
Enabledmd.comp.button.outlined.outline.colorColormd.sys.color.outline-variant → md.ref.palette.neutral-variant80#CAC4D0Dark: #49454F via md.ref.palette.neutral-variant30
Medium contrast: #79747E via md.ref.palette.neutral-variant50
High contrast: #49454F via md.ref.palette.neutral-variant30
Disabledmd.comp.button.outlined.unselected.disabled.outline.colorColormd.sys.color.outline-variant → md.ref.palette.neutral-variant80#CAC4D0Dark: #49454F via md.ref.palette.neutral-variant30
Medium contrast: #79747E via md.ref.palette.neutral-variant50
High contrast: #49454F via md.ref.palette.neutral-variant30
Disabledmd.comp.button.outlined.selected.disabled.container.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1D1B20Dark: #E6E0E9 via md.ref.palette.neutral90
Medium contrast: #000000 via md.ref.palette.neutral0
High contrast: #000000 via md.ref.palette.neutral0
Disabledmd.comp.button.outlined.disabled.container.opacityOpacity—0.1—
Disabledmd.comp.button.outlined.disabled.label-text.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1D1B20Dark: #E6E0E9 via md.ref.palette.neutral90
Medium contrast: #000000 via md.ref.palette.neutral0
High contrast: #000000 via md.ref.palette.neutral0
Disabledmd.comp.button.outlined.disabled.label-text.opacityOpacity—0.38—
Disabledmd.comp.button.outlined.disabled.icon.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1D1B20Dark: #E6E0E9 via md.ref.palette.neutral90
Medium contrast: #000000 via md.ref.palette.neutral0
High contrast: #000000 via md.ref.palette.neutral0
Disabledmd.comp.button.outlined.disabled.icon.opacityOpacity—0.38—
Disabledmd.comp.button.outlined.disabled.outline.colorColormd.sys.color.outline-variant → md.ref.palette.neutral-variant80#CAC4D0Dark: #49454F via md.ref.palette.neutral-variant30
Medium contrast: #79747E via md.ref.palette.neutral-variant50
High contrast: #49454F via md.ref.palette.neutral-variant30
Hoveredmd.comp.button.outlined.unselected.hovered.state-layer.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Hoveredmd.comp.button.outlined.selected.hovered.state-layer.colorColormd.sys.color.inverse-on-surface → md.ref.palette.neutral95#F5EFF7Dark: #322F35 via md.ref.palette.neutral20
Medium contrast: #FFFFFF via md.ref.palette.neutral100
High contrast: #FFFFFF via md.ref.palette.neutral100
Hoveredmd.comp.button.outlined.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hoveredmd.comp.button.outlined.hovered.outline.colorColormd.sys.color.outline-variant → md.ref.palette.neutral-variant80#CAC4D0Dark: #49454F via md.ref.palette.neutral-variant30
Medium contrast: #79747E via md.ref.palette.neutral-variant50
High contrast: #49454F via md.ref.palette.neutral-variant30
Hoveredmd.comp.button.outlined.unselected.hovered.outline.colorColormd.sys.color.outline-variant → md.ref.palette.neutral-variant80#CAC4D0Dark: #49454F via md.ref.palette.neutral-variant30
Medium contrast: #79747E via md.ref.palette.neutral-variant50
High contrast: #49454F via md.ref.palette.neutral-variant30
Hoveredmd.comp.button.outlined.hovered.label-text.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Hoveredmd.comp.button.outlined.unselected.hovered.label-text.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Hoveredmd.comp.button.outlined.selected.hovered.label-text.colorColormd.sys.color.inverse-on-surface → md.ref.palette.neutral95#F5EFF7Dark: #322F35 via md.ref.palette.neutral20
Medium contrast: #FFFFFF via md.ref.palette.neutral100
High contrast: #FFFFFF via md.ref.palette.neutral100
Hoveredmd.comp.button.outlined.hovered.icon.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Hoveredmd.comp.button.outlined.unselected.hovered.icon.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Hoveredmd.comp.button.outlined.selected.hovered.icon.colorColormd.sys.color.inverse-on-surface → md.ref.palette.neutral95#F5EFF7Dark: #322F35 via md.ref.palette.neutral20
Medium contrast: #FFFFFF via md.ref.palette.neutral100
High contrast: #FFFFFF via md.ref.palette.neutral100
Hoveredmd.comp.button.outlined.hovered.state-layer.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Focusedmd.comp.button.outlined.unselected.focused.state-layer.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Focusedmd.comp.button.outlined.selected.focused.state-layer.colorColormd.sys.color.inverse-on-surface → md.ref.palette.neutral95#F5EFF7Dark: #322F35 via md.ref.palette.neutral20
Medium contrast: #FFFFFF via md.ref.palette.neutral100
High contrast: #FFFFFF via md.ref.palette.neutral100
Focusedmd.comp.button.outlined.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focusedmd.comp.button.outlined.focused.outline.colorColormd.sys.color.outline-variant → md.ref.palette.neutral-variant80#CAC4D0Dark: #49454F via md.ref.palette.neutral-variant30
Medium contrast: #79747E via md.ref.palette.neutral-variant50
High contrast: #49454F via md.ref.palette.neutral-variant30
Focusedmd.comp.button.outlined.unselected.focused.outline.colorColormd.sys.color.outline-variant → md.ref.palette.neutral-variant80#CAC4D0Dark: #49454F via md.ref.palette.neutral-variant30
Medium contrast: #79747E via md.ref.palette.neutral-variant50
High contrast: #49454F via md.ref.palette.neutral-variant30
Focusedmd.comp.button.outlined.focused.label-text.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Focusedmd.comp.button.outlined.unselected.focused.label-text.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Focusedmd.comp.button.outlined.selected.focused.label-text.colorColormd.sys.color.inverse-on-surface → md.ref.palette.neutral95#F5EFF7Dark: #322F35 via md.ref.palette.neutral20
Medium contrast: #FFFFFF via md.ref.palette.neutral100
High contrast: #FFFFFF via md.ref.palette.neutral100
Focusedmd.comp.button.outlined.focused.icon.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Focusedmd.comp.button.outlined.unselected.focused.icon.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Focusedmd.comp.button.outlined.selected.focused.icon.colorColormd.sys.color.inverse-on-surface → md.ref.palette.neutral95#F5EFF7Dark: #322F35 via md.ref.palette.neutral20
Medium contrast: #FFFFFF via md.ref.palette.neutral100
High contrast: #FFFFFF via md.ref.palette.neutral100
Focusedmd.comp.button.outlined.focused.state-layer.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Pressedmd.comp.button.outlined.unselected.pressed.state-layer.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Pressedmd.comp.button.outlined.selected.pressed.state-layer.colorColormd.sys.color.inverse-on-surface → md.ref.palette.neutral95#F5EFF7Dark: #322F35 via md.ref.palette.neutral20
Medium contrast: #FFFFFF via md.ref.palette.neutral100
High contrast: #FFFFFF via md.ref.palette.neutral100
Pressedmd.comp.button.outlined.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressedmd.comp.button.outlined.pressed.outline.colorColormd.sys.color.outline-variant → md.ref.palette.neutral-variant80#CAC4D0Dark: #49454F via md.ref.palette.neutral-variant30
Medium contrast: #79747E via md.ref.palette.neutral-variant50
High contrast: #49454F via md.ref.palette.neutral-variant30
Pressedmd.comp.button.outlined.unselected.pressed.outline.colorColormd.sys.color.outline-variant → md.ref.palette.neutral-variant80#CAC4D0Dark: #49454F via md.ref.palette.neutral-variant30
Medium contrast: #79747E via md.ref.palette.neutral-variant50
High contrast: #49454F via md.ref.palette.neutral-variant30
Pressedmd.comp.button.outlined.pressed.label-text.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Pressedmd.comp.button.outlined.unselected.pressed.label-text.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Pressedmd.comp.button.outlined.selected.pressed.label-text.colorColormd.sys.color.inverse-on-surface → md.ref.palette.neutral95#F5EFF7Dark: #322F35 via md.ref.palette.neutral20
Medium contrast: #FFFFFF via md.ref.palette.neutral100
High contrast: #FFFFFF via md.ref.palette.neutral100
Pressedmd.comp.button.outlined.pressed.icon.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Pressedmd.comp.button.outlined.unselected.pressed.icon.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0
Pressedmd.comp.button.outlined.selected.pressed.icon.colorColormd.sys.color.inverse-on-surface → md.ref.palette.neutral95#F5EFF7Dark: #322F35 via md.ref.palette.neutral20
Medium contrast: #FFFFFF via md.ref.palette.neutral100
High contrast: #FFFFFF via md.ref.palette.neutral100
Pressedmd.comp.button.outlined.pressed.state-layer.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#49454FDark: #CAC4D0 via md.ref.palette.neutral-variant80
Medium contrast: #322F37 via md.ref.palette.neutral-variant20
High contrast: #000000 via md.ref.palette.neutral-variant0

States ​

States are visual representations used to communicate the status of a component or an interactive element. 

Split button states use the same colors and state layers as buttons and icon buttons. Go to those specs for details.

Leading button shape ​

The inner corners change shape for hovered, focused, and pressed states.

5 states of the leading button in the split button.

  1. Enabled
  2. Disabled
  3. Hovered
  4. Focused
  5. Pressed, pressed with focus

Trailing button shape ​

The inner corners change shape for hovered, focused, and pressed states, and the icon becomes centered when selected.

6 states of the trailing menu button in the split button.

  1. Enabled
  2. Disabled
  3. Hovered
  4. Focused
  5. Pressed, pressed with focus
  6. Selected, selected with focus

Measurements ​

Text and icons are optically centered when the buttons are asymmetrical. They’re centered normally when symmetrical.

Padding and size measurements of the split button.

Menu icon offset when unselected:

  1. XS: -1dp from center
  2. S: -1dp from center
  3. M: -2dp from center
  4. L: -3dp from center
  5. XL: -6dp from center

The inner corner radius changes depending on button sizing. The space should always be 2dp.

Inner padding and inner corner measurements of the split button.

  1. Extra small 4dp
  2. Small 4dp
  3. Medium 4dp
  4. Large 8dp
  5. Extra large 12dp

Unofficial offline mirror. Content © Google, licensed under CC BY 4.0.