Skip to content

Button groups ​

Button groups organize buttons and add interactions between them

Overview · Specs · Guidelines · Accessibility

Variants ​

Various colors and shapes of standard and connected button groups.

  1. Standard button group
  2. Connected button group
VariantM3M3 Expressive
Standard button group--Available
Connected button groupAvailable as segmented buttonAvailable

Configurations ​

Five sizes of button groups and two shapes of button groups.

Configurations for both variants of button groups:

  1. Extra small
  2. Small
  3. Medium
  4. Large
  5. Extra large
  6. Single-select and multi-select
  7. Round and square
CategoryConfigurationM3M3 Expressive
SizeXS, S, M, L, XL--Available
Default shapeRound, square--Available
SelectionSingle-select, multi-select, selection-requiredAvailable as segmented buttonAvailable

Tokens & specs ​

Standard and connected button group tokens are organized by size. Select the variant and size from the token set menu. Go to the button and icon button pages to view their tokens. Learn about design tokens

Design tokens

Token table

Machine-readable relationship table

Button groups tokens · 10 token sets · 55 tokens · live token table · DSDB TOKEN_TABLE.082d7fd6e058b011

  • Default context: none
  • Not configurable here (group default used): Theme: Light · Platform: Android · Audience: 1P Baseline · Motion scheme: Standard · Font: Static · Contrast: Default · iOS dark theme elevation: None · iOS weight setting: Default · Language height: Small
  • Reference chain: aliases from the token to its source value (token → alias → … → value). "—" means the token holds a literal value.

Button group standard - Size - Xsmall · md.comp.button-group.standard.xsmall · 5 tokens

For XS standard button groups.

GroupTokenTypeReference chainResolved value
Pressedmd.comp.button-group.standard.xsmall.pressed.item.width.motion.spring.dampeningDurationmd.sys.motion.spring.fast.spatial.damping0.9
Pressedmd.comp.button-group.standard.xsmall.pressed.item.width.motion.spring.stiffnessDurationmd.sys.motion.spring.fast.spatial.stiffness1400
Pressedmd.comp.button-group.standard.xsmall.pressed.item.width.multiplierLength—15%
Othermd.comp.button-group.standard.xsmall.container.heightLength—32dp
Othermd.comp.button-group.standard.xsmall.between-spaceLength—18dp

Button group standard - Size - Small · md.comp.button-group.standard.small · 5 tokens

For small standard button groups.

GroupTokenTypeReference chainResolved value
Pressedmd.comp.button-group.standard.small.pressed.item.width.motion.spring.stiffnessDurationmd.sys.motion.spring.fast.spatial.stiffness1400
Pressedmd.comp.button-group.standard.small.pressed.item.width.multiplierLength—15%
Pressedmd.comp.button-group.standard.small.pressed.item.width.motion.spring.dampeningDurationmd.sys.motion.spring.fast.spatial.damping0.9
Othermd.comp.button-group.standard.small.container.heightLength—40dp
Othermd.comp.button-group.standard.small.between-spaceLengthmd.sys.measurement.space15012dp

Button group standard - Size - Medium · md.comp.button-group.standard.medium · 5 tokens

For medium standard button groups.

GroupTokenTypeReference chainResolved value
Pressedmd.comp.button-group.standard.medium.pressed.item.width.motion.spring.stiffnessDurationmd.sys.motion.spring.fast.spatial.stiffness1400
Pressedmd.comp.button-group.standard.medium.pressed.item.width.multiplierLength—15%
Pressedmd.comp.button-group.standard.medium.pressed.item.width.motion.spring.dampeningDurationmd.sys.motion.spring.fast.spatial.damping0.9
Othermd.comp.button-group.standard.medium.container.heightLength—56dp
Othermd.comp.button-group.standard.medium.between-spaceLengthmd.sys.measurement.space1008dp

Button group standard - Size - Large · md.comp.button-group.standard.large · 5 tokens

For large standard button groups.

GroupTokenTypeReference chainResolved value
Pressedmd.comp.button-group.standard.large.pressed.item.width.motion.spring.stiffnessDurationmd.sys.motion.spring.fast.spatial.stiffness1400
Pressedmd.comp.button-group.standard.large.pressed.item.width.multiplierLength—15%
Pressedmd.comp.button-group.standard.large.pressed.item.width.motion.spring.dampeningDurationmd.sys.motion.spring.fast.spatial.damping0.9
Othermd.comp.button-group.standard.large.container.heightLength—96dp
Othermd.comp.button-group.standard.large.between-spaceLengthmd.sys.measurement.space1008dp

Button group standard - Size - Xlarge · md.comp.button-group.standard.xlarge · 5 tokens

For XL standard button groups.

GroupTokenTypeReference chainResolved value
Pressedmd.comp.button-group.standard.xlarge.pressed.item.width.motion.spring.stiffnessDurationmd.sys.motion.spring.fast.spatial.stiffness1400
Pressedmd.comp.button-group.standard.xlarge.pressed.item.width.multiplierLength—15%
Pressedmd.comp.button-group.standard.xlarge.pressed.item.width.motion.spring.dampeningDurationmd.sys.motion.spring.fast.spatial.damping0.9
Othermd.comp.button-group.standard.xlarge.container.heightLength—136dp
Othermd.comp.button-group.standard.xlarge.between-spaceLengthmd.sys.measurement.space1008dp

Button group connected - Size - Xsmall · md.comp.button-group.connected.xsmall · 6 tokens

For XS connected button groups.

GroupTokenTypeReference chainResolved value
All tokensmd.comp.button-group.connected.xsmall.container.heightLength—32dp
All tokensmd.comp.button-group.connected.xsmall.between-spaceLengthmd.sys.measurement.space252dp
All tokensmd.comp.button-group.connected.xsmall.container.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)
All tokensmd.comp.button-group.connected.xsmall.inner-corner.corner-sizeShapemd.sys.shape.corner-value.small8dp
All tokensmd.comp.button-group.connected.xsmall.pressed.inner-corner.corner-sizeShapemd.sys.shape.corner-value.extra-small4dp
All tokensmd.comp.button-group.connected.xsmall.selected.inner-corner.corner-sizeLength—50%

Button group connected - Size - Small · md.comp.button-group.connected.small · 6 tokens

For small connected button groups.

GroupTokenTypeReference chainResolved value
All tokensmd.comp.button-group.connected.small.container.heightLength—40dp
All tokensmd.comp.button-group.connected.small.between-spaceLengthmd.sys.measurement.space252dp
All tokensmd.comp.button-group.connected.small.container.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)
All tokensmd.comp.button-group.connected.small.inner-corner.corner-sizeShapemd.sys.shape.corner-value.small8dp
All tokensmd.comp.button-group.connected.small.pressed.inner-corner.corner-sizeShapemd.sys.shape.corner-value.extra-small4dp
All tokensmd.comp.button-group.connected.small.selected.inner-corner.corner-sizeLength—50%

Button group connected - Size - Medium · md.comp.button-group.connected.medium · 6 tokens

For medium connected button groups.

GroupTokenTypeReference chainResolved value
All tokensmd.comp.button-group.connected.medium.container.heightLength—56dp
All tokensmd.comp.button-group.connected.medium.between-spaceLengthmd.sys.measurement.space252dp
All tokensmd.comp.button-group.connected.medium.container.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)
All tokensmd.comp.button-group.connected.medium.inner-corner.corner-sizeShapemd.sys.shape.corner-value.small8dp
All tokensmd.comp.button-group.connected.medium.pressed.inner-corner.corner-sizeShapemd.sys.shape.corner-value.extra-small4dp
All tokensmd.comp.button-group.connected.medium.selected.inner-corner.corner-sizeLength—50%

Button group connected - Size - Large · md.comp.button-group.connected.large · 6 tokens

For large connected button groups.

GroupTokenTypeReference chainResolved value
All tokensmd.comp.button-group.connected.large.container.heightLength—96dp
All tokensmd.comp.button-group.connected.large.between-spaceLengthmd.sys.measurement.space252dp
All tokensmd.comp.button-group.connected.large.container.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)
All tokensmd.comp.button-group.connected.large.inner-corner.corner-sizeShapemd.sys.shape.corner-value.large16dp
All tokensmd.comp.button-group.connected.large.pressed.inner-corner.corner-sizeShapemd.sys.shape.corner-value.medium12dp
All tokensmd.comp.button-group.connected.large.selected.inner-corner.corner-sizeLength—50%

Button group connected - Size - Xlarge · md.comp.button-group.connected.xlarge · 6 tokens

For XL connected button groups.

GroupTokenTypeReference chainResolved value
All tokensmd.comp.button-group.connected.xlarge.container.heightLength—136dp
All tokensmd.comp.button-group.connected.xlarge.between-spaceLengthmd.sys.measurement.space252dp
All tokensmd.comp.button-group.connected.xlarge.container.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)
All tokensmd.comp.button-group.connected.xlarge.inner-corner.corner-sizeShapemd.sys.shape.corner-value.large-increased20dp
All tokensmd.comp.button-group.connected.xlarge.pressed.inner-corner.corner-sizeShapemd.sys.shape.corner-value.large16dp
All tokensmd.comp.button-group.connected.xlarge.selected.inner-corner.corner-sizeLength—50%

Anatomy ​

Button groups are invisible containers that add padding between buttons and modify button shape. They don’t contain any buttons by default.

The container outlined on both variants of button groups.

  1. Container

Common layouts ​

Mix and match buttons and icon buttons for different scenarios.

4 common layouts of button groups.

  1. Label buttons
  2. Label buttons and icon buttons
  3. Extra small icon buttons
  4. Large icon buttons

Color ​

Button groups have no color properties. They can use the default button or toggle button color styles, like filled, tonal, and outlined. Avoid using standard icon buttons or text buttons, as they have no container treatment.

The container outlined on both variants of button groups.

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

Selection & activation ​

Standard button groups add interaction between adjacent buttons when a button is selected or activated.

This interaction changes the width, shape, and padding of the selected or activated button, which adjusts the width of buttons directly next to it.

A selected button changes shape, and briefly changes the width of itself and adjacent buttons

Connected button groups don’t add any interaction between buttons when selected or activated. 

They only affect the shape of the button being selected or activated.

A selected button changes shape without affecting adjacent buttons

States ​

Standard button group ​

When a button is pressed, standard button groups modify the width and shape of that button and adjacent buttons.

5 states of a standard button group.

  1. Enabled
  2. Disabled
  3. Hovered
  4. Focused
  5. Pressed

When a toggle button is selected in a standard button group, its shape should change between square and round. The color should change according to the button specs.


5 states of a standard button group with toggle buttons.

  1. Enabled
  2. Disabled
  3. Hovered
  4. Focused
  5. Pressed

Connected button group ​

Connected button groups have different shape changes than standard button groups. Selecting a button does not affect adjacent buttons.

5 states of a segmented button group.

Connected button group unselected states:

  1. Enabled
  2. Disabled
  3. Hovered
  4. Focused
  5. Pressed

4 states of a segmented button group with toggle buttons.

Connected button group selected states:

  1. Enabled
  2. Hovered
  3. Focused
  4. Pressed

Measurements ​

Standard button group ​

Standard groups apply padding between all buttons. The amount of padding changes based on button size to ensure a minimum accessible target size of 48dp. More details on padding: Button specs, icon button specs

Standard button group padding measurements.

Standard button group inner padding:

  1. XS: 18dp
  2. S: 12dp
  3. M: 8dp
  4. L: 8dp
  5. XL: 8dp

Connected button group ​

For all connected button groups, use 2dp padding. This provides visual consistency at scale.

Connected button group padding and corner radius measurements.

Round connected button group inner padding is 2dp at every size. The outer shape is fully round, and the inner shape remains square with the following corner sizes:

  1. XS: 4dp
  2. S: 8dp
  3. M: 8dp
  4. L: 16dp
  5. XL: 20dp

Connected button group padding and corner radius measurements for square buttons.

Square connected button group inner padding is 2dp at every size. The outer shape has the following corner sizes:

  1. XS: 4dp
  2. S: 8dp
  3. M: 8dp
  4. L: 16dp
  5. XL: 20dp

Minimum widths ​

Extra small and small connected button groups have 48dp target areas and a minimum width of 48dp.

48x48dp accessible target areas on the XS and S connected button groups.

  1. Extra small
  2. Small

Density ​

Button groups adapt to density of the buttons inside. More on density

Connected button groups at 0, -1, -2, and -3 density.

Button groups adapt to the height of the buttons inside, including when density is applied

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