Skip to content

Navigation bar ​

Navigation bars let people switch between UI views on smaller devices. They’re a common navigation component on handheld screens.

Overview · Specs · Guidelines · Accessibility

Variants ​

The recommended flexible navigation bar.

  1. Flexible navigation bar

Baseline variants ​

The baseline nav bar is no longer recommended, and should be replaced by the flexible nav bar, which is shorter and supports horizontal navigation items in medium windows. View baseline nav bar specs

1 baseline navigation bar.

  1. Navigation bar (not recommended)
VariantM3M3 Expressive
Flexible navigation bar--Available
Navigation barAvailableNot recommended.
Use flexible navigation bar.

Configurations ​

In compact windows, navigation bars use vertical items. In medium windows, navigation bars should use horizontal items.

Two size configurations for navigation bar and items.

  1. Vertical navigation items
  2. Horizontal navigation items
CategoryConfigurationM3M3 Expressive
Navigation item layoutVertical (default)AvailableAvailable
Navigation item layoutHorizontal--Available

Tokens & specs ​

Use the table's menu to switch between token sets for the navigation bar and the nav items. Learn about design tokens

Design tokens

Token table

Machine-readable relationship table

Navigation bar tokens · 3 token sets · 33 tokens · live token table · DSDB TOKEN_TABLE.52865380210a9b69

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

Nav bar - Common · md.comp.nav-bar · 23 tokens

Common tokens for navigation bars.

GroupTokenTypeReference chainResolved valueOther contexts
Color › Hoveredmd.comp.nav-bar.item.active.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Color › Hoveredmd.comp.nav-bar.item.inactive.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
Color › Hoveredmd.comp.nav-bar.item.active.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
Color › Focusedmd.comp.nav-bar.item.active.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Color › Focusedmd.comp.nav-bar.item.inactive.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
Color › Focusedmd.comp.nav-bar.item.active.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
Color › Pressedmd.comp.nav-bar.item.active.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Color › Pressedmd.comp.nav-bar.item.inactive.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
Color › Pressedmd.comp.nav-bar.item.active.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
Color › Enabledmd.comp.nav-bar.container.shadow-colorColormd.sys.color.shadow → md.ref.palette.neutral0#000000—
Color › Enabledmd.comp.nav-bar.container.colorColormd.sys.color.surface-container → md.ref.palette.neutral94#F3EDF7Dark: #211F26 via md.ref.palette.neutral12
Color › Enabledmd.comp.nav-bar.item.active.indicator.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
Color › Enabledmd.comp.nav-bar.item.active.label-text.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
Color › Enabledmd.comp.nav-bar.item.inactive.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
Color › Enabledmd.comp.nav-bar.item.active.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
Color › Enabledmd.comp.nav-bar.item.inactive.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
Color › Enabledmd.comp.nav-bar.container.elevationElevationmd.sys.elevation.level23dp—
Nav itemmd.comp.nav-bar.item.between-spaceLengthmd.sys.measurement.space00dp—
Nav itemmd.comp.nav-bar.item.active-indicator.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)—
Nav itemmd.comp.nav-bar.item.active-indicator.icon-label-spaceLength—4dp—
Nav itemmd.comp.nav-bar.item.icon.sizeLength—24dp—
Containermd.comp.nav-bar.container.heightLength—64dp—
Containermd.comp.nav-bar.container.shapeShapemd.sys.shape.corner.noneRounded corners 0dp—

Nav bar - Item - Vertical · md.comp.nav-bar.item.vertical · 5 tokens

For vertical nav items, where elements are stacked.

GroupTokenTypeReference chainResolved valueOther contexts
All tokensmd.comp.nav-bar.item.vertical.label-text.fontTypographymd.sys.typescale.label-medium → composite
font names: md.sys.typescale.label-medium.font → md.ref.typeface.plain
font weight: md.sys.typescale.label-medium.weight → md.ref.typeface.weight-medium
font size: md.sys.typescale.label-medium.size
line height: md.sys.typescale.label-medium.line-height
font tracking: md.sys.typescale.label-medium.tracking
Roboto · weight 500 · size 12pt · line height 16pt · tracking 0.5pt—
All tokensmd.comp.nav-bar.item.vertical.active-indicator.heightLength—32dp—
All tokensmd.comp.nav-bar.item.vertical.active-indicator.widthLength—56dp—
All tokensmd.comp.nav-bar.item.vertical.container.between-spaceLengthmd.sys.measurement.space756dp—
All tokensmd.comp.nav-bar.item.vertical.active-indicator.icon-label-spaceLengthmd.sys.measurement.space504dp—

Nav bar - Item - Horizontal · md.comp.nav-bar.item.horizontal · 5 tokens

For horizontal nav items, where elements are side-by-side.

GroupTokenTypeReference chainResolved valueOther contexts
All tokensmd.comp.nav-bar.item.horizontal.label-text.fontTypographymd.sys.typescale.label-medium → composite
font names: md.sys.typescale.label-medium.font → md.ref.typeface.plain
font weight: md.sys.typescale.label-medium.weight → md.ref.typeface.weight-medium
font size: md.sys.typescale.label-medium.size
line height: md.sys.typescale.label-medium.line-height
font tracking: md.sys.typescale.label-medium.tracking
Roboto · weight 500 · size 12pt · line height 16pt · tracking 0.5pt—
All tokensmd.comp.nav-bar.item.horizontal.active-indicator.heightLength—40dp—
All tokensmd.comp.nav-bar.item.horizontal.active-indicator.leading-spaceLengthmd.sys.measurement.space20016dp—
All tokensmd.comp.nav-bar.item.horizontal.active-indicator.trailing-spaceLengthmd.sys.measurement.space20016dp—
All tokensmd.comp.nav-bar.item.horizontal.active-indicator.icon-label-spaceLengthmd.sys.measurement.space504dp—

Anatomy ​

Seven elements of the navigation bar.

  1. Container
  2. Icon
  3. Label text
  4. Active indicator
  5. Small badge (optional)
  6. Large badge (optional)
  7. Large badge label

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

Six color roles of the navigation bar.

Navigation bar color roles used for light and dark schemes:

  1. Surface container
  2. On-secondary container
  3. Secondary
  4. Secondary container
  5. On-surface variant
  6. On-surface variant

For badge color roles, go to badge specs.

States ​

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

Four states of the navigation bar items.

  1. Enabled
  2. Hovered (8% state layer)
  3. Focused (10% state layer)
  4. Pressed (10% state layer)

Measurements ​

The navigation bar stretches the full window width.

Navigation bar padding and size measurements.

Navigation bar padding and size measurements

Vertical navigation items dynamically change width to equally fit the container. Horizontal navigation items have a fixed width, so extra space is added to the ends of the navigation bar instead.

Navigation bar and item widths.

Navigation bar width and margins for compact and medium windows.

  1. Vertical navigation item
  2. Margin from window edge
  3. Horizontal navigation item


Baseline navigation bar ​

7 elements of baseline navigation bar.

  1. Container
  2. Icon
  3. Label text
  4. Active indicator
  5. Small badge
  6. Large badge
  7. Large badge label

Tokens & specs ​

These tokens are for the baseline navigation bar.

Design tokens

Token table

Machine-readable relationship table

Navigation bar tokens · 4 token sets · 85 tokens · live token table · DSDB TOKEN_TABLE.52865380210a9b69

  • Default context: Theme: Light · Platform: Android · Audience: 3P · Font: Static · Contrast: Default · iOS dark theme elevation: None · iOS weight setting: Default
  • Not configurable here (group default used): Motion scheme: Standard · 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.

Navigation bar (baseline) · md.comp.navigation-bar · 52 tokens

For baseline navigation bar. For expressive, use `md.comp.nav-bar` and corresponding `.item` token sets instead.

GroupTokenTypeReference chainResolved valueOther contexts
Enabled › Focus indicatormd.comp.navigation-bar.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
Enabled › Focus indicatormd.comp.navigation-bar.focus.indicator.thicknessLengthmd.sys.state.focus-indicator.thickness3dp—
Enabled › Focus indicatormd.comp.navigation-bar.focus.indicator.outline.offsetLengthmd.sys.state.focus-indicator.inner-offset-3dp—
Enabled › Containermd.comp.navigation-bar.container.colorColormd.sys.color.surface-container → md.ref.palette.neutral94#F3EDF7Dark: #211F26 via md.ref.palette.neutral12
Enabled › Containermd.comp.navigation-bar.container.shapeShapemd.sys.shape.corner.noneRounded corners 0dp—
Enabled › Containermd.comp.navigation-bar.container.heightLength—80dp—
Enabled › Containermd.comp.navigation-bar.container.elevationElevationmd.sys.elevation.level23dp—
Enabled › Containermd.comp.navigation-bar.container.surface-tint-layer.color (deprecated)Colormd.sys.color.surface-tint → md.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.navigation-bar.container.shadow-color (deprecated)Colormd.sys.color.shadow → md.ref.palette.neutral0#000000—
Enabled › Label textmd.comp.navigation-bar.label-text.fontFont namesmd.sys.typescale.label-medium.font → md.ref.typeface.plainRoboto—
Enabled › Label textmd.comp.navigation-bar.label-text.line-heightLine heightmd.sys.typescale.label-medium.line-height16pt—
Enabled › Label textmd.comp.navigation-bar.label-text.sizeFont sizemd.sys.typescale.label-medium.size12pt—
Enabled › Label textmd.comp.navigation-bar.label-text.weightFont weightmd.sys.typescale.label-medium.weight → md.ref.typeface.weight-medium500—
Enabled › Label textmd.comp.navigation-bar.active.label-text.weightFont weightmd.sys.typescale.label-medium.weight.prominent → md.ref.typeface.weight-bold700—
Enabled › Label textmd.comp.navigation-bar.label-text.trackingFont trackingmd.sys.typescale.label-medium.tracking0.5pt—
Enabled › Label textmd.comp.navigation-bar.label-text.typeTypographycomposite
font names: md.comp.navigation-bar.label-text.font → md.sys.typescale.label-medium.font → md.ref.typeface.plain
font weight: md.comp.navigation-bar.label-text.weight → md.sys.typescale.label-medium.weight → md.ref.typeface.weight-medium
font size: md.comp.navigation-bar.label-text.size → md.sys.typescale.label-medium.size
line height: md.comp.navigation-bar.label-text.line-height → md.sys.typescale.label-medium.line-height
font tracking: md.comp.navigation-bar.label-text.tracking → md.sys.typescale.label-medium.tracking
Roboto · weight 500 · size 12pt · line height 16pt · tracking 0.5pt—
Enabled › Label textmd.comp.navigation-bar.active.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
Enabled › Label textmd.comp.navigation-bar.inactive.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
Enabled › Label textmd.comp.navigation-bar.active.hover.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
Enabled › Label textmd.comp.navigation-bar.inactive.hover.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
Enabled › Label textmd.comp.navigation-bar.active.focus.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
Enabled › Label textmd.comp.navigation-bar.inactive.focus.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
Enabled › Label textmd.comp.navigation-bar.active.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
Enabled › Label textmd.comp.navigation-bar.inactive.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
Enabled › Iconmd.comp.navigation-bar.icon.sizeLength—24dp—
Enabled › Iconmd.comp.navigation-bar.active.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
Enabled › Iconmd.comp.navigation-bar.inactive.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
Enabled › Iconmd.comp.navigation-bar.active.hover.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
Enabled › Iconmd.comp.navigation-bar.inactive.hover.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
Enabled › Iconmd.comp.navigation-bar.active.focus.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
Enabled › Iconmd.comp.navigation-bar.inactive.focus.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
Enabled › Iconmd.comp.navigation-bar.active.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
Enabled › Iconmd.comp.navigation-bar.inactive.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
Enabled › [Deprecated] Badgemd.comp.navigation-bar.badge.color (deprecated)Colormd.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 › [Deprecated] Badgemd.comp.navigation-bar.badge.size (deprecated)Length—6dp—
Enabled › [Deprecated] Badgemd.comp.navigation-bar.badge.shape (deprecated)Shape—Rounded corners 3dp—
Enabled › Active indicatormd.comp.navigation-bar.active-indicator.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
Enabled › Active indicatormd.comp.navigation-bar.active-indicator.heightLength—32dp—
Enabled › Active indicatormd.comp.navigation-bar.active-indicator.widthLength—64dp—
Enabled › Active indicatormd.comp.navigation-bar.active-indicator.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)—
Enabled › State layermd.comp.navigation-bar.active.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
Enabled › State layermd.comp.navigation-bar.inactive.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
Enabled › State layermd.comp.navigation-bar.hover.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Enabled › State layermd.comp.navigation-bar.active.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
Enabled › State layermd.comp.navigation-bar.inactive.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
Enabled › State layermd.comp.navigation-bar.focus.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Enabled › State layermd.comp.navigation-bar.active.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
Enabled › State layermd.comp.navigation-bar.inactive.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
Enabled › State layermd.comp.navigation-bar.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Enabled › [Deprecated] Large badgemd.comp.navigation-bar.large-badge.size (deprecated)Length—16dp—
Enabled › [Deprecated] Large badgemd.comp.navigation-bar.large-badge.shape (deprecated)Shape—Rounded corners 8dp—
Enabled › [Deprecated] Large badgemd.comp.navigation-bar.large-badge.color (deprecated)Colormd.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

Nav bar - Common · md.comp.nav-bar · 23 tokens

Common tokens for navigation bars.

GroupTokenTypeReference chainResolved valueOther contexts
Color › Hoveredmd.comp.nav-bar.item.active.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Color › Hoveredmd.comp.nav-bar.item.inactive.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
Color › Hoveredmd.comp.nav-bar.item.active.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
Color › Focusedmd.comp.nav-bar.item.active.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Color › Focusedmd.comp.nav-bar.item.inactive.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
Color › Focusedmd.comp.nav-bar.item.active.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
Color › Pressedmd.comp.nav-bar.item.active.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Color › Pressedmd.comp.nav-bar.item.inactive.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
Color › Pressedmd.comp.nav-bar.item.active.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
Color › Enabledmd.comp.nav-bar.container.shadow-colorColormd.sys.color.shadow → md.ref.palette.neutral0#000000—
Color › Enabledmd.comp.nav-bar.container.colorColormd.sys.color.surface-container → md.ref.palette.neutral94#F3EDF7Dark: #211F26 via md.ref.palette.neutral12
Color › Enabledmd.comp.nav-bar.item.active.indicator.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
Color › Enabledmd.comp.nav-bar.item.active.label-text.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
Color › Enabledmd.comp.nav-bar.item.inactive.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
Color › Enabledmd.comp.nav-bar.item.active.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
Color › Enabledmd.comp.nav-bar.item.inactive.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
Color › Enabledmd.comp.nav-bar.container.elevationElevationmd.sys.elevation.level23dp—
Nav itemmd.comp.nav-bar.item.between-spaceLengthmd.sys.measurement.space00dp—
Nav itemmd.comp.nav-bar.item.active-indicator.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)—
Nav itemmd.comp.nav-bar.item.active-indicator.icon-label-spaceLength—4dp—
Nav itemmd.comp.nav-bar.item.icon.sizeLength—24dp—
Containermd.comp.nav-bar.container.heightLength—64dp—
Containermd.comp.nav-bar.container.shapeShapemd.sys.shape.corner.noneRounded corners 0dp—

Nav bar - Item - Vertical · md.comp.nav-bar.item.vertical · 5 tokens

For vertical nav items, where elements are stacked.

GroupTokenTypeReference chainResolved valueOther contexts
All tokensmd.comp.nav-bar.item.vertical.label-text.fontTypographymd.sys.typescale.label-medium → composite
font names: md.sys.typescale.label-medium.font → md.ref.typeface.plain
font weight: md.sys.typescale.label-medium.weight → md.ref.typeface.weight-medium
font size: md.sys.typescale.label-medium.size
line height: md.sys.typescale.label-medium.line-height
font tracking: md.sys.typescale.label-medium.tracking
Roboto · weight 500 · size 12pt · line height 16pt · tracking 0.5pt—
All tokensmd.comp.nav-bar.item.vertical.active-indicator.heightLength—32dp—
All tokensmd.comp.nav-bar.item.vertical.active-indicator.widthLength—56dp—
All tokensmd.comp.nav-bar.item.vertical.container.between-spaceLengthmd.sys.measurement.space756dp—
All tokensmd.comp.nav-bar.item.vertical.active-indicator.icon-label-spaceLengthmd.sys.measurement.space504dp—

Nav bar - Item - Horizontal · md.comp.nav-bar.item.horizontal · 5 tokens

For horizontal nav items, where elements are side-by-side.

GroupTokenTypeReference chainResolved valueOther contexts
All tokensmd.comp.nav-bar.item.horizontal.label-text.fontTypographymd.sys.typescale.label-medium → composite
font names: md.sys.typescale.label-medium.font → md.ref.typeface.plain
font weight: md.sys.typescale.label-medium.weight → md.ref.typeface.weight-medium
font size: md.sys.typescale.label-medium.size
line height: md.sys.typescale.label-medium.line-height
font tracking: md.sys.typescale.label-medium.tracking
Roboto · weight 500 · size 12pt · line height 16pt · tracking 0.5pt—
All tokensmd.comp.nav-bar.item.horizontal.active-indicator.heightLength—40dp—
All tokensmd.comp.nav-bar.item.horizontal.active-indicator.leading-spaceLengthmd.sys.measurement.space20016dp—
All tokensmd.comp.nav-bar.item.horizontal.active-indicator.trailing-spaceLengthmd.sys.measurement.space20016dp—
All tokensmd.comp.nav-bar.item.horizontal.active-indicator.icon-label-spaceLengthmd.sys.measurement.space504dp—

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

6 color roles of baseline navigation bar.

Navigation bar color roles used for light and dark schemes:

  1. Surface
  2. On secondary container
  3. On surface
  4. Secondary container
  5. On surface variant
  6. On surface variant

For badge color roles, go to badge specs.

States ​

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

4 states of baseline navigation bar.

Navigation bar states: 

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

Measurements ​

Baseline navigation bar padding and size measurements.

Navigation bar padding and size measurements

Baseline navigation bar target size and margins.

Navigation bar target size and margins

Configurations ​

3 configurations of the baseline navigation bar.

  1. 3 destinations
  2. 4 destinations
  3. 5 destinations

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