Skip to content

Toolbars ​

Toolbars display frequently used actions relevant to the current page.

Overview · Specs · Guidelines · Accessibility

Variants ​

2 variants of toolbars.

  1. Docked toolbar
  2. Floating toolbar

Baseline variant ​

The baseline bottom app bar is no longer recommended. It should be replaced with the docked toolbar, which is very similar and more flexible.

Baseline bottom app bar, which looks like the docked toolbar, but is not recommended.

  1. Bottom app bar (not recommended)
VariantM3M3 Expressive
Docked toolbar--Available
Floating toolbar--Available
Bottom app barAvailableNot recommended.
Use docked toolbar.

Note

Implementation differs per platform. On Jetpack Compose, the floating toolbar is a separate component from the docked toolbar and bottom app bar.

Configurations ​

Color configuration of toolbars.

  1. Standard and vibrant toolbars
  2. Vertical floating toolbar
  3. Floating toolbar with FAB
CategoryConfigurationM3M3 Expressive
ColorStandard (default)Available as bottom app barAvailable
ColorVibrant--Available
Floating toolbar layoutHorizontal (default)--Available
Floating toolbar layoutVertical--Available
Other elementsWith FABAvailable as bottom app barAvailable*

Note

*Implementation differs per platform. On Jetpack Compose, floating toolbar with FAB is fully supported. On other platforms, each component needs to be added separately.

Tokens & specs ​

Browse the component elements, attributes, tokens, and their values. Jump to baseline bottom app bar specs

Design tokens

Token table

Machine-readable relationship table

Toolbars tokens · 5 token sets · 106 tokens · live token table · DSDB TOKEN_TABLE.2956a7939bf0879c

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

Toolbar - Color - Standard · md.comp.toolbar.standard · 33 tokens

For standard docked and floating toolbars.

GroupTokenTypeReference chainResolved valueOther contexts
Enabledmd.comp.toolbar.standard.button.container.colorColormd.sys.color.surface-container → md.ref.palette.neutral94#F3EDF7Dark: #211F26 via md.ref.palette.neutral12
Enabledmd.comp.toolbar.standard.selected.button.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.toolbar.standard.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.toolbar.standard.selected.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.toolbar.standard.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.toolbar.standard.selected.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.toolbar.standard.container.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)—
Enabledmd.comp.toolbar.standard.container.colorColormd.sys.color.surface-container → md.ref.palette.neutral94#F3EDF7Dark: #211F26 via md.ref.palette.neutral12
Disabledmd.comp.toolbar.standard.disabled.icon.opacityOpacity—0.38—
Disabledmd.comp.toolbar.standard.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.toolbar.standard.disabled.label-text.opacityOpacity—0.38—
Disabledmd.comp.toolbar.standard.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
Hoveredmd.comp.toolbar.standard.selected.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.toolbar.standard.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hoveredmd.comp.toolbar.standard.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.toolbar.standard.selected.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.toolbar.standard.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.toolbar.standard.selected.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.toolbar.standard.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.toolbar.standard.selected.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.toolbar.standard.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focusedmd.comp.toolbar.standard.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.toolbar.standard.selected.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.toolbar.standard.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.toolbar.standard.selected.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.toolbar.standard.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.toolbar.standard.selected.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.toolbar.standard.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressedmd.comp.toolbar.standard.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.toolbar.standard.selected.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.toolbar.standard.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.toolbar.standard.selected.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.toolbar.standard.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

Toolbar - Color - Vibrant · md.comp.toolbar.vibrant · 33 tokens

For vibrant docked and floating toolbars.

GroupTokenTypeReference chainResolved valueOther contexts
Enabledmd.comp.toolbar.vibrant.button.container.colorColormd.sys.color.primary-container → md.ref.palette.primary90#EADDFFDark: #4F378B via md.ref.palette.primary30
Medium contrast: #6750A4 via md.ref.palette.primary40
High contrast: #4F378B via md.ref.palette.primary30
Enabledmd.comp.toolbar.vibrant.selected.button.container.colorColormd.sys.color.surface-container → md.ref.palette.neutral94#F3EDF7Dark: #211F26 via md.ref.palette.neutral12
Enabledmd.comp.toolbar.vibrant.icon.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Enabledmd.comp.toolbar.vibrant.selected.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
Enabledmd.comp.toolbar.vibrant.label-text.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Enabledmd.comp.toolbar.vibrant.selected.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
Enabledmd.comp.toolbar.vibrant.container.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)—
Enabledmd.comp.toolbar.vibrant.container.colorColormd.sys.color.primary-container → md.ref.palette.primary90#EADDFFDark: #4F378B via md.ref.palette.primary30
Medium contrast: #6750A4 via md.ref.palette.primary40
High contrast: #4F378B via md.ref.palette.primary30
Disabledmd.comp.toolbar.vibrant.disabled.icon.opacityOpacity—0.38—
Disabledmd.comp.toolbar.vibrant.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.toolbar.vibrant.disabled.label-text.opacityOpacity—0.38—
Disabledmd.comp.toolbar.vibrant.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
Hoveredmd.comp.toolbar.vibrant.selected.hovered.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
Hoveredmd.comp.toolbar.vibrant.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hoveredmd.comp.toolbar.vibrant.hovered.icon.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Hoveredmd.comp.toolbar.vibrant.selected.hovered.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
Hoveredmd.comp.toolbar.vibrant.hovered.label-text.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Hoveredmd.comp.toolbar.vibrant.selected.hovered.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
Hoveredmd.comp.toolbar.vibrant.hovered.state-layer.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Focusedmd.comp.toolbar.vibrant.selected.focused.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
Focusedmd.comp.toolbar.vibrant.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focusedmd.comp.toolbar.vibrant.focused.icon.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Focusedmd.comp.toolbar.vibrant.selected.focused.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
Focusedmd.comp.toolbar.vibrant.focused.label-text.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Focusedmd.comp.toolbar.vibrant.selected.focused.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
Focusedmd.comp.toolbar.vibrant.focused.state-layer.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Pressedmd.comp.toolbar.vibrant.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
Pressedmd.comp.toolbar.vibrant.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressedmd.comp.toolbar.vibrant.pressed.icon.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Pressedmd.comp.toolbar.vibrant.selected.pressed.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
Pressedmd.comp.toolbar.vibrant.pressed.label-text.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Pressedmd.comp.toolbar.vibrant.selected.pressed.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
Pressedmd.comp.toolbar.vibrant.pressed.state-layer.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100

Toolbar - Docked · md.comp.toolbar.docked · 7 tokens

For docked toolbars.

GroupTokenTypeReference chainResolved valueOther contexts
Colormd.comp.toolbar.docked.container.color (deprecated)Colormd.sys.color.surface-container → md.ref.palette.neutral94#F3EDF7Dark: #211F26 via md.ref.palette.neutral12
Sizemd.comp.toolbar.docked.container.leading-spaceLengthmd.sys.measurement.space20016dp—
Sizemd.comp.toolbar.docked.container.trailing-spaceLengthmd.sys.measurement.space20016dp—
Sizemd.comp.toolbar.docked.container.max-spacingLength—32dp—
Sizemd.comp.toolbar.docked.container.min-spacingLength—4dp—
Sizemd.comp.toolbar.docked.container.heightLength—64dp—
Shapemd.comp.toolbar.docked.container.shapeShapemd.sys.shape.corner.noneRounded corners 0dp—

Toolbar - Floating · md.comp.toolbar.floating · 18 tokens

For floating toolbars.

GroupTokenTypeReference chainResolved valueOther contexts
Colormd.comp.toolbar.floating.vibrant.container.color (deprecated)Colormd.sys.color.primary-container → md.ref.palette.primary90#EADDFFDark: #4F378B via md.ref.palette.primary30
Medium contrast: #6750A4 via md.ref.palette.primary40
High contrast: #4F378B via md.ref.palette.primary30
Colormd.comp.toolbar.floating.vibrant.button.unselected.icon.color (deprecated)Colormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Colormd.comp.toolbar.floating.vibrant.button.unselected.text.color (deprecated)Colormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Colormd.comp.toolbar.floating.vibrant.button.selected.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
Colormd.comp.toolbar.floating.vibrant.button.selected.text.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
Colormd.comp.toolbar.floating.vibrant.button.selected.container.color (deprecated)Colormd.sys.color.surface-container → md.ref.palette.neutral94#F3EDF7Dark: #211F26 via md.ref.palette.neutral12
Colormd.comp.toolbar.floating.standard.container.color (deprecated)Colormd.sys.color.surface-container → md.ref.palette.neutral94#F3EDF7Dark: #211F26 via md.ref.palette.neutral12
Sizemd.comp.toolbar.floating.horizontal.container.heightLength—64dp—
Sizemd.comp.toolbar.floating.vertical.container.widthLength—64dp—
Sizemd.comp.toolbar.floating.container.leading-spaceLengthmd.sys.measurement.space1008dp—
Sizemd.comp.toolbar.floating.container.trailing-spaceLengthmd.sys.measurement.space1008dp—
Sizemd.comp.toolbar.floating.container.external-padding (deprecated)Length—16dp—
Sizemd.comp.toolbar.floating.horizontal.container.external-spaceLengthmd.sys.measurement.space20016dp—
Sizemd.comp.toolbar.floating.vertical.container.external-spaceLengthmd.sys.measurement.space30024dp—
Sizemd.comp.toolbar.floating.container.between-spaceLengthmd.sys.measurement.space504dp—
Sizemd.comp.toolbar.floating.container.height (deprecated)Length—64dp—
Shapemd.comp.toolbar.floating.container.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)—
Elevationmd.comp.toolbar.floating.container.elevationElevationmd.sys.elevation.level36dp—

Toolbar - Floating - FAB · md.comp.toolbar.floating.fab · 15 tokens

For floating toolbars with a FAB in them.

GroupTokenTypeReference chainResolved valueOther contexts
Expandedmd.comp.toolbar.floating.fab.container.widthLength—56dp—
Expandedmd.comp.toolbar.floating.fab.icon.sizeLength—24dp—
Expandedmd.comp.toolbar.floating.fab.container.shapeShapemd.sys.shape.corner.largeRounded corners 16dp—
Expandedmd.comp.toolbar.floating.fab.container.elevationElevationmd.sys.elevation.level11dp—
Expandedmd.comp.toolbar.floating.fab.container.heightLength—56dp—
Collapsedmd.comp.toolbar.floating.fab.medium.container.widthLength—80dp—
Collapsedmd.comp.toolbar.floating.fab.medium.icon.sizeLength—28dp—
Collapsedmd.comp.toolbar.floating.fab.medium.container.shapeShapemd.sys.shape.corner.large-increasedRounded corners 20dp—
Collapsedmd.comp.toolbar.floating.fab.medium.container.elevationElevationmd.sys.elevation.level23dp—
Collapsedmd.comp.toolbar.floating.fab.medium.container.heightLength—80dp—
Othermd.comp.toolbar.floating.fab.between-spaceLengthmd.sys.measurement.space1008dp—
Othermd.comp.toolbar.floating.fab.standard.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
Othermd.comp.toolbar.floating.fab.standard.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
Othermd.comp.toolbar.floating.fab.vibrant.container.colorColormd.sys.color.tertiary-container → md.ref.palette.tertiary90#FFD8E4Dark: #633B48 via md.ref.palette.tertiary30
Medium contrast: #7D5260 via md.ref.palette.tertiary40
High contrast: #633B48 via md.ref.palette.tertiary30
Othermd.comp.toolbar.floating.fab.vibrant.icon.colorColormd.sys.color.on-tertiary-container → md.ref.palette.tertiary30#633B48Dark: #FFD8E4 via md.ref.palette.tertiary90
Medium contrast: #FFFFFF via md.ref.palette.tertiary100
High contrast: #FFFFFF via md.ref.palette.tertiary100

Anatomy ​

2 elements of a toolbar.

  1. Container
  2. Placed components

Flexibility & slots ​

When configuring a toolbar, think of it as a container with several slots. 

Each slot can be a different element. The most common elements are icon buttons, buttons, and text fields.

A toolbar with 5 slots, conceptual spaces for UI elements, next to each other.

A toolbar is essentially a container with configurable slots

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

Standard ​

4 color roles in the standard color scheme of the floating toolbar in light and dark scheme.

Standard color schemes and icon button types:

  1. Surface container
  2. Filled button (Primary, On primary)
  3. Toggle tonal button (Secondary container, On secondary container)
  4. Standard button (Primary)

Vibrant ​

4 color roles in the vibrant color scheme of the floating toolbar in light and dark scheme.

Vibrant color scheme and icon button types:

  1. Primary container
  2. Filled button (Primary, On primary)
  3. Toggle tonal button: (Surface container, On surface)
  4. Standard button (On primary container)

Measurements ​

By default all toolbars are 64dp high, center-aligned, have equal padding between items, and have a minimum outside padding of 16dp.

Docked toolbar ​

Default internal padding of a docked toolbar.

  1. Default margins and padding
  2. Margins and padding with leading, middle, and trailing content

2 docked toolbars with different margins and alignment.

Alignment and padding can be configured to create unique layouts:

  1. Left and right alignment
  2. Center-aligned, 8dp padding between items

Floating toolbar ​

Diagram noting margin around edge of floating toolbar.

Default padding of floating toolbar

Diagram noting layout measurements.

Floating toolbar size and padding measurements

Diagram noting layout margins.

Floating toolbar margins


Bottom app bar (baseline) ​

Diagram of bottom app bar indicating the container.

  1. Container

Tokens & specs ​

Bottom app bar tokens are in one token set.

Design tokens

Token table

Machine-readable relationship table

Toolbars tokens · 6 token sets · 112 tokens · live token table · DSDB TOKEN_TABLE.2956a7939bf0879c

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

Bottom app bar (baseline) · md.comp.bottom-app-bar · 6 tokens

Baseline bottom app bar container tokens. For expressive, use `md.comp.toolbar.docked` and `md.comp.toolbar.standard` instead.

GroupTokenTypeReference chainResolved value
Enabled › Containermd.comp.bottom-app-bar.container.colorColormd.sys.color.surface-container#F0F4F9
Enabled › Containermd.comp.bottom-app-bar.container.shapeShapemd.sys.shape.corner.noneRounded corners 0dp
Enabled › Containermd.comp.bottom-app-bar.container.elevationElevationmd.sys.elevation.level23dp
Enabled › Containermd.comp.bottom-app-bar.container.surface-tint-layer.color (deprecated)Colormd.sys.color.surface-tint#6991D6
Enabled › Containermd.comp.bottom-app-bar.container.heightLength—80dp
Enabled › Containermd.comp.bottom-app-bar.with-fab.container.height (deprecated)Length—72dp

Toolbar - Docked · md.comp.toolbar.docked · 7 tokens

For docked toolbars.

GroupTokenTypeReference chainResolved value
Colormd.comp.toolbar.docked.container.color (deprecated)Colormd.sys.color.surface-container#F0F4F9
Sizemd.comp.toolbar.docked.container.leading-spaceLengthmd.sys.measurement.space20016dp
Sizemd.comp.toolbar.docked.container.trailing-spaceLengthmd.sys.measurement.space20016dp
Sizemd.comp.toolbar.docked.container.max-spacingLength—32dp
Sizemd.comp.toolbar.docked.container.min-spacingLength—4dp
Sizemd.comp.toolbar.docked.container.heightLength—64dp
Shapemd.comp.toolbar.docked.container.shapeShapemd.sys.shape.corner.noneRounded corners 0dp

Toolbar - Floating · md.comp.toolbar.floating · 18 tokens

For floating toolbars.

GroupTokenTypeReference chainResolved value
Colormd.comp.toolbar.floating.vibrant.container.color (deprecated)Colormd.sys.color.primary-container → md.ref.palette.primary90#D3E3FD
Colormd.comp.toolbar.floating.vibrant.button.unselected.icon.color (deprecated)Colormd.sys.color.on-primary-container → md.ref.palette.primary30#0842A0
Colormd.comp.toolbar.floating.vibrant.button.unselected.text.color (deprecated)Colormd.sys.color.on-primary-container → md.ref.palette.primary30#0842A0
Colormd.comp.toolbar.floating.vibrant.button.selected.icon.color (deprecated)Colormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Colormd.comp.toolbar.floating.vibrant.button.selected.text.color (deprecated)Colormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Colormd.comp.toolbar.floating.vibrant.button.selected.container.color (deprecated)Colormd.sys.color.surface-container#F0F4F9
Colormd.comp.toolbar.floating.standard.container.color (deprecated)Colormd.sys.color.surface-container#F0F4F9
Sizemd.comp.toolbar.floating.horizontal.container.heightLength—64dp
Sizemd.comp.toolbar.floating.vertical.container.widthLength—64dp
Sizemd.comp.toolbar.floating.container.leading-spaceLengthmd.sys.measurement.space1008dp
Sizemd.comp.toolbar.floating.container.trailing-spaceLengthmd.sys.measurement.space1008dp
Sizemd.comp.toolbar.floating.container.external-padding (deprecated)Length—16dp
Sizemd.comp.toolbar.floating.horizontal.container.external-spaceLengthmd.sys.measurement.space20016dp
Sizemd.comp.toolbar.floating.vertical.container.external-spaceLengthmd.sys.measurement.space30024dp
Sizemd.comp.toolbar.floating.container.between-spaceLengthmd.sys.measurement.space504dp
Sizemd.comp.toolbar.floating.container.height (deprecated)Length—64dp
Shapemd.comp.toolbar.floating.container.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)
Elevationmd.comp.toolbar.floating.container.elevationElevationmd.sys.elevation.level36dp

Toolbar - Color - Standard · md.comp.toolbar.standard · 33 tokens

For standard docked and floating toolbars.

GroupTokenTypeReference chainResolved value
Enabledmd.comp.toolbar.standard.button.container.colorColormd.sys.color.surface-container#F0F4F9
Enabledmd.comp.toolbar.standard.selected.button.container.colorColormd.sys.color.secondary-container → md.ref.palette.secondary90#C2E7FF
Enabledmd.comp.toolbar.standard.icon.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#444746
Enabledmd.comp.toolbar.standard.selected.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Enabledmd.comp.toolbar.standard.label-text.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#444746
Enabledmd.comp.toolbar.standard.selected.label-text.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Enabledmd.comp.toolbar.standard.container.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)
Enabledmd.comp.toolbar.standard.container.colorColormd.sys.color.surface-container#F0F4F9
Disabledmd.comp.toolbar.standard.disabled.icon.opacityOpacity—0.38
Disabledmd.comp.toolbar.standard.disabled.label-text.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Disabledmd.comp.toolbar.standard.disabled.label-text.opacityOpacity—0.38
Disabledmd.comp.toolbar.standard.disabled.icon.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Hoveredmd.comp.toolbar.standard.selected.hovered.state-layer.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Hoveredmd.comp.toolbar.standard.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08
Hoveredmd.comp.toolbar.standard.hovered.icon.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#444746
Hoveredmd.comp.toolbar.standard.selected.hovered.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Hoveredmd.comp.toolbar.standard.hovered.label-text.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#444746
Hoveredmd.comp.toolbar.standard.selected.hovered.label-text.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Hoveredmd.comp.toolbar.standard.hovered.state-layer.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#444746
Focusedmd.comp.toolbar.standard.selected.focused.state-layer.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Focusedmd.comp.toolbar.standard.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1
Focusedmd.comp.toolbar.standard.focused.icon.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#444746
Focusedmd.comp.toolbar.standard.selected.focused.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Focusedmd.comp.toolbar.standard.focused.label-text.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#444746
Focusedmd.comp.toolbar.standard.selected.focused.label-text.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Focusedmd.comp.toolbar.standard.focused.state-layer.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#444746
Pressedmd.comp.toolbar.standard.selected.pressed.state-layer.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Pressedmd.comp.toolbar.standard.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1
Pressedmd.comp.toolbar.standard.pressed.icon.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#444746
Pressedmd.comp.toolbar.standard.selected.pressed.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Pressedmd.comp.toolbar.standard.pressed.label-text.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#444746
Pressedmd.comp.toolbar.standard.selected.pressed.label-text.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Pressedmd.comp.toolbar.standard.pressed.state-layer.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#444746

Toolbar - Color - Vibrant · md.comp.toolbar.vibrant · 33 tokens

For vibrant docked and floating toolbars.

GroupTokenTypeReference chainResolved value
Enabledmd.comp.toolbar.vibrant.button.container.colorColormd.sys.color.primary-container → md.ref.palette.primary90#D3E3FD
Enabledmd.comp.toolbar.vibrant.selected.button.container.colorColormd.sys.color.surface-container#F0F4F9
Enabledmd.comp.toolbar.vibrant.icon.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#0842A0
Enabledmd.comp.toolbar.vibrant.selected.icon.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Enabledmd.comp.toolbar.vibrant.label-text.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#0842A0
Enabledmd.comp.toolbar.vibrant.selected.label-text.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Enabledmd.comp.toolbar.vibrant.container.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)
Enabledmd.comp.toolbar.vibrant.container.colorColormd.sys.color.primary-container → md.ref.palette.primary90#D3E3FD
Disabledmd.comp.toolbar.vibrant.disabled.icon.opacityOpacity—0.38
Disabledmd.comp.toolbar.vibrant.disabled.label-text.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Disabledmd.comp.toolbar.vibrant.disabled.label-text.opacityOpacity—0.38
Disabledmd.comp.toolbar.vibrant.disabled.icon.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Hoveredmd.comp.toolbar.vibrant.selected.hovered.state-layer.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Hoveredmd.comp.toolbar.vibrant.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08
Hoveredmd.comp.toolbar.vibrant.hovered.icon.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#0842A0
Hoveredmd.comp.toolbar.vibrant.selected.hovered.icon.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Hoveredmd.comp.toolbar.vibrant.hovered.label-text.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#0842A0
Hoveredmd.comp.toolbar.vibrant.selected.hovered.label-text.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Hoveredmd.comp.toolbar.vibrant.hovered.state-layer.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#0842A0
Focusedmd.comp.toolbar.vibrant.selected.focused.state-layer.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Focusedmd.comp.toolbar.vibrant.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1
Focusedmd.comp.toolbar.vibrant.focused.icon.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#0842A0
Focusedmd.comp.toolbar.vibrant.selected.focused.icon.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Focusedmd.comp.toolbar.vibrant.focused.label-text.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#0842A0
Focusedmd.comp.toolbar.vibrant.selected.focused.label-text.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Focusedmd.comp.toolbar.vibrant.focused.state-layer.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#0842A0
Pressedmd.comp.toolbar.vibrant.selected.pressed.state-layer.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Pressedmd.comp.toolbar.vibrant.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1
Pressedmd.comp.toolbar.vibrant.pressed.icon.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#0842A0
Pressedmd.comp.toolbar.vibrant.selected.pressed.icon.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Pressedmd.comp.toolbar.vibrant.pressed.label-text.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#0842A0
Pressedmd.comp.toolbar.vibrant.selected.pressed.label-text.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Pressedmd.comp.toolbar.vibrant.pressed.state-layer.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#0842A0

Toolbar - Floating - FAB · md.comp.toolbar.floating.fab · 15 tokens

For floating toolbars with a FAB in them.

GroupTokenTypeReference chainResolved value
Expandedmd.comp.toolbar.floating.fab.container.widthLength—56dp
Expandedmd.comp.toolbar.floating.fab.icon.sizeLength—24dp
Expandedmd.comp.toolbar.floating.fab.container.shapeShapemd.sys.shape.corner.largeRounded corners 16dp
Expandedmd.comp.toolbar.floating.fab.container.elevationElevationmd.sys.elevation.level11dp
Expandedmd.comp.toolbar.floating.fab.container.heightLength—56dp
Collapsedmd.comp.toolbar.floating.fab.medium.container.widthLength—80dp
Collapsedmd.comp.toolbar.floating.fab.medium.icon.sizeLength—28dp
Collapsedmd.comp.toolbar.floating.fab.medium.container.shapeShapemd.sys.shape.corner.large-increasedRounded corners 20dp
Collapsedmd.comp.toolbar.floating.fab.medium.container.elevationElevationmd.sys.elevation.level23dp
Collapsedmd.comp.toolbar.floating.fab.medium.container.heightLength—80dp
Othermd.comp.toolbar.floating.fab.between-spaceLengthmd.sys.measurement.space1008dp
Othermd.comp.toolbar.floating.fab.standard.container.colorColormd.sys.color.secondary-container → md.ref.palette.secondary90#C2E7FF
Othermd.comp.toolbar.floating.fab.standard.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Othermd.comp.toolbar.floating.fab.vibrant.container.colorColormd.sys.color.tertiary-container → md.ref.palette.tertiary90#C4EED0
Othermd.comp.toolbar.floating.fab.vibrant.icon.colorColormd.sys.color.on-tertiary-container → md.ref.palette.tertiary30#0F5223

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. Learn more about design tokens

Diagram of bottom app bar indicating its color mappings.

Bottom app bar color role used for light and dark themes:

  1. Surface container

Measurements ​

Diagram showing layout values and paddings for bottom app bar.

Bottom app bar padding and size measurements

Common layouts ​

Side by side view of bottom app bars in different configurations.

  1. Icon buttons and FAB
  2. Icon buttons and no FAB

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