Skip to content

Checkbox ​

Checkboxes allow users to select one or more items from a set. Checkboxes can turn an option on or off.

Overview · Specs · Guidelines · Accessibility

Tokens & specs ​

Browse the component elements, attributes, tokens, and their values.

Design tokens

Token table

Machine-readable relationship table

Checkbox tokens · 1 token set · 81 tokens · live token table · DSDB TOKEN_TABLE.31f16b44fe03b0c0

  • 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.

Checkbox · md.comp.checkbox · 81 tokens

For checkboxes.

GroupTokenTypeReference chainResolved valueOther contexts
Enabled › Containermd.comp.checkbox.container.width (deprecated)Length—18dp—
Enabled › Containermd.comp.checkbox.container.height (deprecated)Length—18dp—
Enabled › Containermd.comp.checkbox.container.sizeLength—18dp—
Enabled › Containermd.comp.checkbox.container.shapeShape—Rounded corners 2dp—
Enabled › Containermd.comp.checkbox.unselected.outline.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
Enabled › Containermd.comp.checkbox.unselected.outline.widthLength—2dp—
Enabled › Containermd.comp.checkbox.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
Enabled › Containermd.comp.checkbox.selected.outline.widthLength—0dp—
Enabled › Containermd.comp.checkbox.unselected.error.outline.colorColormd.sys.color.error → md.ref.palette.error40#B3261EDark: #F2B8B5 via md.ref.palette.error80
Medium contrast: #8C1D18 via md.ref.palette.error30
High contrast: #601410 via md.ref.palette.error20
Enabled › Containermd.comp.checkbox.selected.error.container.colorColormd.sys.color.error → md.ref.palette.error40#B3261EDark: #F2B8B5 via md.ref.palette.error80
Medium contrast: #8C1D18 via md.ref.palette.error30
High contrast: #601410 via md.ref.palette.error20
Enabled › Iconmd.comp.checkbox.icon.sizeLength—18dp—
Enabled › Iconmd.comp.checkbox.selected.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Enabled › Iconmd.comp.checkbox.selected.error.icon.colorColormd.sys.color.on-error → md.ref.palette.error100#FFFFFFDark: #601410 via md.ref.palette.error20
Enabled › Iconmd.comp.checkbox.unselected.icon.color (deprecated)Colormd.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
Enabled › State layermd.comp.checkbox.state-layer.sizeLength—40dp—
Enabled › State layermd.comp.checkbox.state-layer.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)—
Disabled › Containermd.comp.checkbox.unselected.disabled.outline.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
Disabled › Containermd.comp.checkbox.unselected.disabled.outline.widthLength—2dp—
Disabled › Containermd.comp.checkbox.unselected.disabled.container.opacityOpacity—0.38—
Disabled › Containermd.comp.checkbox.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
Disabled › Containermd.comp.checkbox.selected.disabled.container.opacityOpacity—0.38—
Disabled › Containermd.comp.checkbox.selected.disabled.container.outline.widthLength—0dp—
Disabled › Iconmd.comp.checkbox.selected.disabled.icon.colorColormd.sys.color.surface → md.ref.palette.neutral98#FEF7FFDark: #141218 via md.ref.palette.neutral6
Disabled › Iconmd.comp.checkbox.disabled.selected.icon.color (deprecated)Colormd.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
Disabled › Iconmd.comp.checkbox.disabled.selected.icon.opacity (deprecated)Opacity—0.38—
Disabled › Iconmd.comp.checkbox.disabled.unselected.icon.color (deprecated)Colormd.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
Disabled › Iconmd.comp.checkbox.disabled.unselected.icon.opacity (deprecated)Opacity—0.38—
Hovered › Containermd.comp.checkbox.unselected.hover.outline.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
Hovered › Containermd.comp.checkbox.unselected.hover.outline.widthLength—2dp—
Hovered › Containermd.comp.checkbox.selected.hover.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
Hovered › Containermd.comp.checkbox.selected.hover.outline.widthLength—0dp—
Hovered › Containermd.comp.checkbox.unselected.error.hover.outline.colorColormd.sys.color.error → md.ref.palette.error40#B3261EDark: #F2B8B5 via md.ref.palette.error80
Medium contrast: #8C1D18 via md.ref.palette.error30
High contrast: #601410 via md.ref.palette.error20
Hovered › Containermd.comp.checkbox.unselected.error.hover.outline.width (deprecated)Length—2dp—
Hovered › Containermd.comp.checkbox.selected.error.hover.container.colorColormd.sys.color.error → md.ref.palette.error40#B3261EDark: #F2B8B5 via md.ref.palette.error80
Medium contrast: #8C1D18 via md.ref.palette.error30
High contrast: #601410 via md.ref.palette.error20
Hovered › Containermd.comp.checkbox.selected.error.hover.outline.width (deprecated)Length—0dp—
Hovered › State layermd.comp.checkbox.selected.hover.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
Hovered › State layermd.comp.checkbox.selected.hover.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hovered › State layermd.comp.checkbox.unselected.hover.state-layer.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
Hovered › State layermd.comp.checkbox.unselected.hover.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hovered › State layermd.comp.checkbox.error.hover.state-layer.colorColormd.sys.color.error → md.ref.palette.error40#B3261EDark: #F2B8B5 via md.ref.palette.error80
Medium contrast: #8C1D18 via md.ref.palette.error30
High contrast: #601410 via md.ref.palette.error20
Hovered › State layermd.comp.checkbox.error.hover.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hovered › Iconmd.comp.checkbox.selected.hover.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Hovered › Iconmd.comp.checkbox.selected.error.hover.icon.colorColormd.sys.color.on-error → md.ref.palette.error100#FFFFFFDark: #601410 via md.ref.palette.error20
Hovered › Iconmd.comp.checkbox.unselected.hover.icon.color (deprecated)Colormd.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
Focused › Containermd.comp.checkbox.unselected.focus.outline.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
Focused › Containermd.comp.checkbox.unselected.focus.outline.widthLength—2dp—
Focused › Containermd.comp.checkbox.selected.focus.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
Focused › Containermd.comp.checkbox.selected.focus.outline.widthLength—0dp—
Focused › Containermd.comp.checkbox.unselected.error.focus.outline.colorColormd.sys.color.error → md.ref.palette.error40#B3261EDark: #F2B8B5 via md.ref.palette.error80
Medium contrast: #8C1D18 via md.ref.palette.error30
High contrast: #601410 via md.ref.palette.error20
Focused › Containermd.comp.checkbox.unselected.error.focus.outline.width (deprecated)Length—2dp—
Focused › Containermd.comp.checkbox.selected.error.focus.container.colorColormd.sys.color.error → md.ref.palette.error40#B3261EDark: #F2B8B5 via md.ref.palette.error80
Medium contrast: #8C1D18 via md.ref.palette.error30
High contrast: #601410 via md.ref.palette.error20
Focused › Containermd.comp.checkbox.selected.error.focus.outline.width (deprecated)Length—0dp—
Focused › State layermd.comp.checkbox.selected.focus.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
Focused › State layermd.comp.checkbox.selected.focus.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focused › State layermd.comp.checkbox.unselected.focus.state-layer.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
Focused › State layermd.comp.checkbox.unselected.focus.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focused › State layermd.comp.checkbox.error.focus.state-layer.colorColormd.sys.color.error → md.ref.palette.error40#B3261EDark: #F2B8B5 via md.ref.palette.error80
Medium contrast: #8C1D18 via md.ref.palette.error30
High contrast: #601410 via md.ref.palette.error20
Focused › State layermd.comp.checkbox.error.focus.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focused › Iconmd.comp.checkbox.selected.focus.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Focused › Iconmd.comp.checkbox.selected.error.focus.icon.colorColormd.sys.color.on-error → md.ref.palette.error100#FFFFFFDark: #601410 via md.ref.palette.error20
Focused › Iconmd.comp.checkbox.unselected.focus.icon.color (deprecated)Colormd.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
Focused › Focus indicatormd.comp.checkbox.focus.indicator.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
Focused › Focus indicatormd.comp.checkbox.focus.indicator.thicknessLengthmd.sys.state.focus-indicator.thickness3dp—
Focused › Focus indicatormd.comp.checkbox.focus.indicator.outline.offsetLengthmd.sys.state.focus-indicator.outer-offset2dp—
Pressed (ripple) › Containermd.comp.checkbox.unselected.pressed.outline.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
Pressed (ripple) › Containermd.comp.checkbox.unselected.pressed.outline.widthLength—2dp—
Pressed (ripple) › Containermd.comp.checkbox.selected.pressed.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
Pressed (ripple) › Containermd.comp.checkbox.selected.pressed.outline.widthLength—0dp—
Pressed (ripple) › Containermd.comp.checkbox.unselected.error.pressed.outline.colorColormd.sys.color.error → md.ref.palette.error40#B3261EDark: #F2B8B5 via md.ref.palette.error80
Medium contrast: #8C1D18 via md.ref.palette.error30
High contrast: #601410 via md.ref.palette.error20
Pressed (ripple) › Containermd.comp.checkbox.unselected.error.pressed.outline.width (deprecated)Length—2dp—
Pressed (ripple) › Containermd.comp.checkbox.selected.error.pressed.container.colorColormd.sys.color.error → md.ref.palette.error40#B3261EDark: #F2B8B5 via md.ref.palette.error80
Medium contrast: #8C1D18 via md.ref.palette.error30
High contrast: #601410 via md.ref.palette.error20
Pressed (ripple) › Containermd.comp.checkbox.selected.error.pressed.outline.width (deprecated)Length—0dp—
Pressed (ripple) › State layermd.comp.checkbox.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
Pressed (ripple) › State layermd.comp.checkbox.unselected.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressed (ripple) › State layermd.comp.checkbox.selected.pressed.state-layer.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
Pressed (ripple) › State layermd.comp.checkbox.selected.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressed (ripple) › State layermd.comp.checkbox.error.pressed.state-layer.colorColormd.sys.color.error → md.ref.palette.error40#B3261EDark: #F2B8B5 via md.ref.palette.error80
Medium contrast: #8C1D18 via md.ref.palette.error30
High contrast: #601410 via md.ref.palette.error20
Pressed (ripple) › State layermd.comp.checkbox.error.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressed (ripple) › Iconmd.comp.checkbox.selected.pressed.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Pressed (ripple) › Iconmd.comp.checkbox.selected.error.pressed.icon.colorColormd.sys.color.on-error → md.ref.palette.error100#FFFFFFDark: #601410 via md.ref.palette.error20
Pressed (ripple) › Iconmd.comp.checkbox.unselected.pressed.icon.color (deprecated)Colormd.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

Checkbox ​

Diagram of checkbox indicating the 2 parts of its anatomy.

  1. Container 
  2. Icon

Color ​

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

Checkbox color roles in light and dark themes.

  1. Checkbox
  2. State-layer
  3. Icon

Adjacent text label color ​

Use the color role on surface for adjacent text labels. This remains the same even if interacting with the label or component.

Checkboxes with text labels. The text color is the same for checked and unchecked checkboxes.

The text color remains the same regardless if the checkbox is selected or not

States ​

States are visual representations used to communicate the status of a component or interactive element. Learn more about interaction states

Side by side view of states in light and dark themes.

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

Measurements ​

Diagram of a selected checkbox with a container width and height of 18dp and a state-layer width and height of 40dp.

AttributeValue
Container size18dp
Container corner shape2dp
Icon size18dp
Icon alignmentCenter-aligned
Target size48dp
State-layer size40dp

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