Skip to content

Navigation rail ​

Navigation rails let people switch between UI views on mid-sized devices. They can contain 3-7 destinations plus an optional FAB.

Overview · Specs · Guidelines · Accessibility

Variants ​

2 variants of navigation rails.

  1. Collapsed navigation rail
  2. Expanded navigation rail

Baseline variants ​

The baseline navigation rail is no longer recommended, and should be replaced by the collapsed navigation rail. View baseline tokens

Baseline navigation rail.

  1. The baseline navigation rail is no longer recommended
VariantM3M3 Expressive
Collapsed navigation rail--Available
Expanded navigation rail--Available
Navigation rail (baseline)AvailableNot recommended.
Use collapsed navigation rail.

Configurations ​

Standard and modal layouts of navigation rail.

  1. Expanded layout: standard
  2. Expanded layout: modal
CategoryConfigurationM3M3 Expressive
Expanded layoutStandard (default)Available as navigation drawerAvailable
Expanded layoutModalAvailable as navigation drawerAvailable
Expanded behaviorHide when collapsed--Available

Tokens & specs ​

Browse the component elements, attributes, tokens, and their values. Learn about design tokens

Design tokens

Token table

Machine-readable relationship table

Navigation rail tokens · 6 token sets · 53 tokens · live token table · DSDB TOKEN_TABLE.5b55bd7cc1ea6e29

  • 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 rail - Common · md.comp.nav-rail · 14 tokens

Common tokens for nav rail.

GroupTokenTypeReference chainResolved valueOther contexts
Enabledmd.comp.nav-rail.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
Enabledmd.comp.nav-rail.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
Enabledmd.comp.nav-rail.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
Enabledmd.comp.nav-rail.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
Enabledmd.comp.nav-rail.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
Hoveredmd.comp.nav-rail.item.active.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hoveredmd.comp.nav-rail.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
Hoveredmd.comp.nav-rail.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
Focusedmd.comp.nav-rail.item.active.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focusedmd.comp.nav-rail.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
Focusedmd.comp.nav-rail.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
Pressedmd.comp.nav-rail.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
Pressedmd.comp.nav-rail.item.active.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressedmd.comp.nav-rail.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

Nav rail - Collapsed · md.comp.nav-rail.collapsed · 7 tokens

For collapsed nav rail.

GroupTokenTypeReference chainResolved valueOther contexts
All tokensmd.comp.nav-rail.collapsed.container.widthLength—96dp—
All tokensmd.comp.nav-rail.collapsed.narrow.container.widthLength—80dp—
All tokensmd.comp.nav-rail.collapsed.container.elevationElevationmd.sys.elevation.level00dp—
All tokensmd.comp.nav-rail.collapsed.container.shapeShapemd.sys.shape.corner.noneRounded corners 0dp—
All tokensmd.comp.nav-rail.collapsed.container.colorColormd.sys.color.surface → md.ref.palette.neutral98#FEF7FFDark: #141218 via md.ref.palette.neutral6
All tokensmd.comp.nav-rail.collapsed.item.vertical-spaceLengthmd.sys.measurement.space504dp—
All tokensmd.comp.nav-rail.collapsed.top-spaceLength—44dp—

Nav rail - Expanded · md.comp.nav-rail.expanded · 11 tokens

For expanded nav rail.

GroupTokenTypeReference chainResolved valueOther contexts
All tokensmd.comp.nav-rail.expanded.container.width.minimumLength—220dp—
All tokensmd.comp.nav-rail.expanded.container.width.maximumLength—360dp—
All tokensmd.comp.nav-rail.expanded.top-spaceLength—44dp—
All tokensmd.comp.nav-rail.expanded.container.elevationElevationmd.sys.elevation.level00dp—
All tokensmd.comp.nav-rail.expanded.modal.container.elevationElevationmd.sys.elevation.level23dp—
All tokensmd.comp.nav-rail.expanded.container.colorColormd.sys.color.surface → md.ref.palette.neutral98#FEF7FFDark: #141218 via md.ref.palette.neutral6
All tokensmd.comp.nav-rail.expanded.modal.container.colorColormd.sys.color.surface-container → md.ref.palette.neutral94#F3EDF7Dark: #211F26 via md.ref.palette.neutral12
All tokensmd.comp.nav-rail.expanded.container.shapeShapemd.sys.shape.corner.noneRounded corners 0dp—
All tokensmd.comp.nav-rail.expanded.modal.container.shapeShapemd.sys.shape.corner.largeRounded corners 16dp—
All tokensmd.comp.nav-rail.expanded.between-item-space (deprecated)Length—0dp—
All tokensmd.comp.nav-rail.expanded.vertical.trailing-space (deprecated)Length—20dp—

Nav rail item - Common · md.comp.nav-rail.item · 10 tokens

Common tokens for all nav items.

GroupTokenTypeReference chainResolved valueOther contexts
All tokensmd.comp.nav-rail.item.icon.sizeLength—24dp—
All tokensmd.comp.nav-rail.item.active-indicator.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)—
All tokensmd.comp.nav-rail.item.active-indicator.leading-spaceLengthmd.sys.measurement.space20016dp—
All tokensmd.comp.nav-rail.item.active-indicator.icon-label-spaceLengthmd.sys.measurement.space1008dp—
All tokensmd.comp.nav-rail.item.active-indicator.trailing-spaceLengthmd.sys.measurement.space20016dp—
All tokensmd.comp.nav-rail.item.container.heightLength—64dp—
All tokensmd.comp.nav-rail.item.short.container.heightLength—56dp—
All tokensmd.comp.nav-rail.item.container.shapeShapemd.sys.shape.corner.noneRounded corners 0dp—
All tokensmd.comp.nav-rail.item.container.vertical-spaceLengthmd.sys.measurement.space756dp—
All tokensmd.comp.nav-rail.item.header-space-minimumLengthmd.sys.measurement.space50040dp—

Nav rail item - Vertical · md.comp.nav-rail.item.vertical · 6 tokens

For vertical nav rail items, where elements are stacked.

GroupTokenTypeReference chainResolved valueOther contexts
All tokensmd.comp.nav-rail.item.vertical.active-indicator.heightLength—32dp—
All tokensmd.comp.nav-rail.item.vertical.active-indicator.widthLength—56dp—
All tokensmd.comp.nav-rail.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-rail.item.vertical.icon-label-spaceLengthmd.sys.measurement.space504dp—
All tokensmd.comp.nav-rail.item.vertical.leading-spaceLengthmd.sys.measurement.space20016dp—
All tokensmd.comp.nav-rail.item.vertical.trailing-spaceLengthmd.sys.measurement.space20016dp—

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

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

GroupTokenTypeReference chainResolved valueOther contexts
All tokensmd.comp.nav-rail.item.horizontal.label-text.fontTypographymd.sys.typescale.label-large → composite
font names: md.sys.typescale.label-large.font → md.ref.typeface.plain
font weight: md.sys.typescale.label-large.weight → md.ref.typeface.weight-medium
font size: md.sys.typescale.label-large.size
line height: md.sys.typescale.label-large.line-height
font tracking: md.sys.typescale.label-large.tracking
Roboto · weight 500 · size 14pt · line height 20pt · tracking 0.1pt—
All tokensmd.comp.nav-rail.item.horizontal.active-indicator.heightLength—56dp—
All tokensmd.comp.nav-rail.item.horizontal.full-width.leading-spaceLengthmd.sys.measurement.space20016dp—
All tokensmd.comp.nav-rail.item.horizontal.full-width.trailing-spaceLengthmd.sys.measurement.space20016dp—
All tokensmd.comp.nav-rail.item.horizontal.icon-label-spaceLengthmd.sys.measurement.space1008dp—

Anatomy ​

9 elements of collapsed and expanded navigation rails.

Collapsed and expanded navigation rail elements:

  1. Container
  2. Menu (optional)
  3. FAB or Extended FAB (optional)
  4. Icon
  5. Active indicator
  6. Label text
  7. Large badge (optional)
  8. Large badge label (optional)
  9. Small badge (optional)

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

Color roles of 9 elements of collapsed and expanded navigation rails in light and dark color schemes.

Navigation rail color roles used for light and dark schemes:

  1. Surface container (optional)
  2. On secondary container
  3. Secondary container
  4. Secondary (vertical), On secondary container (horizontal)
  5. On surface variant
  6. On surface variant
  7. Error
  8. On error
  9. Error

States ​

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

The navigation item’s target area always spans the full width of the nav rail, even if the item container hugs its contents.

4 states of collapsed navigation rails.

4 states of expanded navigation rails.

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

Measurements ​

Padding and measurements for expanded and collapsed navigation rails.

Navigation rail padding and size measurements

Common layouts ​

4 common layouts of collapsed navigation rail.

4 common layouts of expanded navigation rail.

  1. Three navigation items 
  2. Three navigation items with a menu
  3. Three navigation items with a FAB
  4. Three navigation items with a menu and FAB


Baseline navigation rail ​

8 elements of baseline navigation rail.

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

Tokens & specs ​

Design tokens

Token table

Machine-readable relationship table

Navigation rail tokens · 7 token sets · 124 tokens · live token table · DSDB TOKEN_TABLE.5b55bd7cc1ea6e29

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

Navigation rail (baseline) · md.comp.navigation-rail · 71 tokens

For baseline navigation rails. For expressive, use all nav rail token sets`md.comp.nav-rail` and corresponding `.collapsed` and `.item` token sets.

GroupTokenTypeReference chainResolved value
Enabled › Containermd.comp.navigation-rail.container.colorColormd.sys.color.surface → md.ref.palette.neutral100#FFFFFF
Enabled › Containermd.comp.navigation-rail.container.shapeShapemd.sys.shape.corner.noneRounded corners 0dp
Enabled › Containermd.comp.navigation-rail.container.widthLength—80dp
Enabled › Containermd.comp.navigation-rail.container.elevationElevationmd.sys.elevation.level00dp
Enabled › Label textmd.comp.navigation-rail.label-text.fontFont namesmd.sys.typescale.label-medium.font → md.ref.typeface.plainGoogle Sans Text
Enabled › Label textmd.comp.navigation-rail.label-text.line-heightLine heightmd.sys.typescale.label-medium.line-height16pt
Enabled › Label textmd.comp.navigation-rail.label-text.sizeFont sizemd.sys.typescale.label-medium.size12pt
Enabled › Label textmd.comp.navigation-rail.label-text.weightFont weightmd.sys.typescale.label-medium.weight → md.ref.typeface.weight-medium500
Enabled › Label textmd.comp.navigation-rail.active.label-text.weightFont weightmd.sys.typescale.label-medium.weight.prominent → md.ref.typeface.weight-bold700
Enabled › Label textmd.comp.navigation-rail.label-text.trackingFont trackingmd.sys.typescale.label-medium.tracking0.1pt
Enabled › Label textmd.comp.navigation-rail.label-text.typeTypographycomposite
font names: md.comp.navigation-rail.label-text.font → md.sys.typescale.label-medium.font → md.ref.typeface.plain
font weight: md.comp.navigation-rail.label-text.weight → md.sys.typescale.label-medium.weight → md.ref.typeface.weight-medium
font size: md.comp.navigation-rail.label-text.size → md.sys.typescale.label-medium.size
line height: md.comp.navigation-rail.label-text.line-height → md.sys.typescale.label-medium.line-height
font tracking: md.comp.navigation-rail.label-text.tracking → md.sys.typescale.label-medium.tracking
Google Sans Text · weight 500 · size 12pt · line height 16pt · tracking 0.1pt
Enabled › Label textmd.comp.navigation-rail.active.label-text.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Enabled › Label textmd.comp.navigation-rail.inactive.label-text.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#444746
Enabled › Label textmd.comp.navigation-rail.label-text.font-family (deprecated)Font namesmd.sys.typescale.label-medium.font → md.ref.typeface.plainGoogle Sans Text
Enabled › Label textmd.comp.navigation-rail.label-text.font-size (deprecated)Font sizemd.sys.typescale.label-medium.size12pt
Enabled › Label textmd.comp.navigation-rail.label-text.letter-spacing (deprecated)Font trackingmd.sys.typescale.label-medium.tracking0.1pt
Enabled › Iconmd.comp.navigation-rail.icon.sizeLength—24dp
Enabled › Iconmd.comp.navigation-rail.active.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Enabled › Iconmd.comp.navigation-rail.inactive.icon.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#444746
Enabled › Iconmd.comp.navigation-rail.menu.icon.color (deprecated)Colormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#444746
Enabled › Iconmd.comp.navigation-rail.menu.icon.size (deprecated)Length—24dp
Enabled › [Deprecated] Badgemd.comp.navigation-rail.badge.color (deprecated)Colormd.sys.color.error → md.ref.palette.error40#B3261E
Enabled › [Deprecated] Badgemd.comp.navigation-rail.badge.size (deprecated)Length—6dp
Enabled › [Deprecated] Badgemd.comp.navigation-rail.badge.shape (deprecated)Shape—Rounded corners 3dp
Enabled › Active indicatormd.comp.navigation-rail.active-indicator.colorColormd.sys.color.secondary-container → md.ref.palette.secondary90#C2E7FF
Enabled › Active indicatormd.comp.navigation-rail.active-indicator.heightLength—32dp
Enabled › Active indicatormd.comp.navigation-rail.no-label.active-indicator.heightLength—56dp
Enabled › Active indicatormd.comp.navigation-rail.active-indicator.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)
Enabled › Active indicatormd.comp.navigation-rail.no-label.active-indicator.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)
Enabled › Active indicatormd.comp.navigation-rail.active-indicator.widthLength—56dp
Enabled › [Deprecated] Large badgemd.comp.navigation-rail.large-badge.size (deprecated)Length—16dp
Enabled › [Deprecated] Large badgemd.comp.navigation-rail.large-badge.shape (deprecated)Shape—Rounded corners 8dp
Enabled › [Deprecated] Large badgemd.comp.navigation-rail.large-badge.color (deprecated)Colormd.sys.color.error → md.ref.palette.error40#B3261E
Enabled › [Deprecated] Large badge labelmd.comp.navigation-rail.large-badge-label.font-family (deprecated)Font namesmd.sys.typescale.label-small.font → md.ref.typeface.plainGoogle Sans Text
Enabled › [Deprecated] Large badge labelmd.comp.navigation-rail.large-badge-label.font (deprecated)Font namesmd.sys.typescale.label-small.font → md.ref.typeface.plainGoogle Sans Text
Enabled › [Deprecated] Large badge labelmd.comp.navigation-rail.large-badge-label.line-height (deprecated)Line heightmd.sys.typescale.label-small.line-height16pt
Enabled › [Deprecated] Large badge labelmd.comp.navigation-rail.large-badge-label.size (deprecated)Font sizemd.sys.typescale.label-small.size11pt
Enabled › [Deprecated] Large badge labelmd.comp.navigation-rail.large-badge-label.weight (deprecated)Font weightmd.sys.typescale.label-small.weight → md.ref.typeface.weight-medium500
Enabled › [Deprecated] Large badge labelmd.comp.navigation-rail.large-badge-label.tracking (deprecated)Font trackingmd.sys.typescale.label-small.tracking0.1pt
Enabled › [Deprecated] Large badge labelmd.comp.navigation-rail.large-badge-label.type (deprecated)Typographycomposite
font names: md.comp.navigation-rail.large-badge-label.font → md.sys.typescale.label-small.font → md.ref.typeface.plain
font weight: md.comp.navigation-rail.large-badge-label.weight → md.sys.typescale.label-small.weight → md.ref.typeface.weight-medium
font size: md.comp.navigation-rail.large-badge-label.size → md.sys.typescale.label-small.size
line height: md.comp.navigation-rail.large-badge-label.line-height → md.sys.typescale.label-small.line-height
font tracking: md.comp.navigation-rail.large-badge-label.tracking → md.sys.typescale.label-small.tracking
Google Sans Text · weight 500 · size 11pt · line height 16pt · tracking 0.1pt
Enabled › [Deprecated] Large badge labelmd.comp.navigation-rail.large-badge-label.color (deprecated)Colormd.sys.color.on-error → md.ref.palette.error100#FFFFFF
Hovered › Label textmd.comp.navigation-rail.active.hover.label-text.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Hovered › Label textmd.comp.navigation-rail.inactive.hover.label-text.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Hovered › State layermd.comp.navigation-rail.active.hover.state-layer.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Hovered › State layermd.comp.navigation-rail.inactive.hover.state-layer.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Hovered › State layermd.comp.navigation-rail.hover.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08
Hovered › State layermd.comp.navigation-rail.menu.hover.state-layer.color (deprecated)Colormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Hovered › State layermd.comp.navigation-rail.menu.hover.state-layer.opacity (deprecated)Opacitymd.sys.state.hover.state-layer-opacity0.08
Hovered › Iconmd.comp.navigation-rail.active.hover.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Hovered › Iconmd.comp.navigation-rail.inactive.hover.icon.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Hovered › Iconmd.comp.navigation-rail.menu.hover.icon.color (deprecated)Colormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Focused › Label textmd.comp.navigation-rail.active.focus.label-text.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Focused › Label textmd.comp.navigation-rail.inactive.focus.label-text.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Focused › State layermd.comp.navigation-rail.active.focus.state-layer.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Focused › State layermd.comp.navigation-rail.inactive.focus.state-layer.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Focused › State layermd.comp.navigation-rail.focus.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1
Focused › State layermd.comp.navigation-rail.menu.focus.state-layer.color (deprecated)Colormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Focused › State layermd.comp.navigation-rail.menu.focus.state-layer.opacity (deprecated)Opacitymd.sys.state.focus.state-layer-opacity0.1
Focused › Iconmd.comp.navigation-rail.active.focus.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Focused › Iconmd.comp.navigation-rail.inactive.focus.icon.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Focused › Iconmd.comp.navigation-rail.menu.focus.icon.color (deprecated)Colormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Pressed (ripple) › Label textmd.comp.navigation-rail.active.pressed.label-text.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Pressed (ripple) › Label textmd.comp.navigation-rail.inactive.pressed.label-text.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Pressed (ripple) › State layermd.comp.navigation-rail.active.pressed.state-layer.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Pressed (ripple) › State layermd.comp.navigation-rail.inactive.pressed.state-layer.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Pressed (ripple) › State layermd.comp.navigation-rail.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1
Pressed (ripple) › State layermd.comp.navigation-rail.menu.pressed.state-layer.color (deprecated)Colormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Pressed (ripple) › State layermd.comp.navigation-rail.menu.pressed.state-layer.opacity (deprecated)Opacitymd.sys.state.pressed.state-layer-opacity0.1
Pressed (ripple) › Iconmd.comp.navigation-rail.active.pressed.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Pressed (ripple) › Iconmd.comp.navigation-rail.inactive.pressed.icon.colorColormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F
Pressed (ripple) › Iconmd.comp.navigation-rail.menu.pressed.icon.color (deprecated)Colormd.sys.color.on-surface → md.ref.palette.neutral10#1F1F1F

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

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

GroupTokenTypeReference chainResolved value
All tokensmd.comp.nav-rail.item.horizontal.label-text.fontTypographymd.sys.typescale.label-large → composite
font names: md.sys.typescale.label-large.font → md.ref.typeface.plain
font weight: md.sys.typescale.label-large.weight → md.ref.typeface.weight-medium
font size: md.sys.typescale.label-large.size
line height: md.sys.typescale.label-large.line-height
font tracking: md.sys.typescale.label-large.tracking
Google Sans Text · weight 500 · size 14pt · line height 20pt · tracking 0pt
All tokensmd.comp.nav-rail.item.horizontal.active-indicator.heightLength—56dp
All tokensmd.comp.nav-rail.item.horizontal.full-width.leading-spaceLengthmd.sys.measurement.space20016dp
All tokensmd.comp.nav-rail.item.horizontal.full-width.trailing-spaceLengthmd.sys.measurement.space20016dp
All tokensmd.comp.nav-rail.item.horizontal.icon-label-spaceLengthmd.sys.measurement.space1008dp

Nav rail item - Common · md.comp.nav-rail.item · 10 tokens

Common tokens for all nav items.

GroupTokenTypeReference chainResolved value
All tokensmd.comp.nav-rail.item.icon.sizeLength—24dp
All tokensmd.comp.nav-rail.item.active-indicator.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)
All tokensmd.comp.nav-rail.item.active-indicator.leading-spaceLengthmd.sys.measurement.space20016dp
All tokensmd.comp.nav-rail.item.active-indicator.icon-label-spaceLengthmd.sys.measurement.space1008dp
All tokensmd.comp.nav-rail.item.active-indicator.trailing-spaceLengthmd.sys.measurement.space20016dp
All tokensmd.comp.nav-rail.item.container.heightLength—64dp
All tokensmd.comp.nav-rail.item.short.container.heightLength—56dp
All tokensmd.comp.nav-rail.item.container.shapeShapemd.sys.shape.corner.noneRounded corners 0dp
All tokensmd.comp.nav-rail.item.container.vertical-spaceLengthmd.sys.measurement.space756dp
All tokensmd.comp.nav-rail.item.header-space-minimumLengthmd.sys.measurement.space50040dp

Nav rail - Common · md.comp.nav-rail · 14 tokens

Common tokens for nav rail.

GroupTokenTypeReference chainResolved value
Enabledmd.comp.nav-rail.item.active.label-text.colorColormd.sys.color.secondary → md.ref.palette.secondary40#00639B
Enabledmd.comp.nav-rail.item.inactive.label-text.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#444746
Enabledmd.comp.nav-rail.item.active.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Enabledmd.comp.nav-rail.item.inactive.icon.colorColormd.sys.color.on-surface-variant → md.ref.palette.neutral-variant30#444746
Enabledmd.comp.nav-rail.item.active.indicator.colorColormd.sys.color.secondary-container → md.ref.palette.secondary90#C2E7FF
Hoveredmd.comp.nav-rail.item.active.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08
Hoveredmd.comp.nav-rail.item.inactive.hovered.state-layer.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Hoveredmd.comp.nav-rail.item.active.hovered.state-layer.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Focusedmd.comp.nav-rail.item.active.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1
Focusedmd.comp.nav-rail.item.inactive.focused.state-layer.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Focusedmd.comp.nav-rail.item.active.focused.state-layer.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Pressedmd.comp.nav-rail.item.active.pressed.state-layer.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77
Pressedmd.comp.nav-rail.item.active.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1
Pressedmd.comp.nav-rail.item.inactive.pressed.state-layer.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#004A77

Nav rail - Collapsed · md.comp.nav-rail.collapsed · 7 tokens

For collapsed nav rail.

GroupTokenTypeReference chainResolved value
All tokensmd.comp.nav-rail.collapsed.container.widthLength—96dp
All tokensmd.comp.nav-rail.collapsed.narrow.container.widthLength—80dp
All tokensmd.comp.nav-rail.collapsed.container.elevationElevationmd.sys.elevation.level00dp
All tokensmd.comp.nav-rail.collapsed.container.shapeShapemd.sys.shape.corner.noneRounded corners 0dp
All tokensmd.comp.nav-rail.collapsed.container.colorColormd.sys.color.surface → md.ref.palette.neutral100#FFFFFF
All tokensmd.comp.nav-rail.collapsed.item.vertical-spaceLengthmd.sys.measurement.space504dp
All tokensmd.comp.nav-rail.collapsed.top-spaceLength—44dp

Nav rail - Expanded · md.comp.nav-rail.expanded · 11 tokens

For expanded nav rail.

GroupTokenTypeReference chainResolved value
All tokensmd.comp.nav-rail.expanded.container.width.minimumLength—220dp
All tokensmd.comp.nav-rail.expanded.container.width.maximumLength—360dp
All tokensmd.comp.nav-rail.expanded.top-spaceLength—44dp
All tokensmd.comp.nav-rail.expanded.container.elevationElevationmd.sys.elevation.level00dp
All tokensmd.comp.nav-rail.expanded.modal.container.elevationElevationmd.sys.elevation.level23dp
All tokensmd.comp.nav-rail.expanded.container.colorColormd.sys.color.surface → md.ref.palette.neutral100#FFFFFF
All tokensmd.comp.nav-rail.expanded.modal.container.colorColormd.sys.color.surface-container#F0F4F9
All tokensmd.comp.nav-rail.expanded.container.shapeShapemd.sys.shape.corner.noneRounded corners 0dp
All tokensmd.comp.nav-rail.expanded.modal.container.shapeShapemd.sys.shape.corner.largeRounded corners 16dp
All tokensmd.comp.nav-rail.expanded.between-item-space (deprecated)Length—0dp
All tokensmd.comp.nav-rail.expanded.vertical.trailing-space (deprecated)Length—20dp

Nav rail item - Vertical · md.comp.nav-rail.item.vertical · 6 tokens

For vertical nav rail items, where elements are stacked.

GroupTokenTypeReference chainResolved value
All tokensmd.comp.nav-rail.item.vertical.active-indicator.heightLength—32dp
All tokensmd.comp.nav-rail.item.vertical.active-indicator.widthLength—56dp
All tokensmd.comp.nav-rail.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
Google Sans Text · weight 500 · size 12pt · line height 16pt · tracking 0.1pt
All tokensmd.comp.nav-rail.item.vertical.icon-label-spaceLengthmd.sys.measurement.space504dp
All tokensmd.comp.nav-rail.item.vertical.leading-spaceLengthmd.sys.measurement.space20016dp
All tokensmd.comp.nav-rail.item.vertical.trailing-spaceLengthmd.sys.measurement.space20016dp

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

8 color roles of baseline navigation rail.

Navigation rail color roles used for light and dark themes:

  1. On secondary container
  2. Secondary container
  3. On surface
  4. On surface variant
  5. On surface variant
  6. Error
  7. On error
  8. Error

States ​

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

8 states of baseline navigation rail.

Navigation rail states:

  1. Enabled (on active destination)
  2. Hovered (on active destination)
  3. Focused (on active destination)
  4. Pressed (on active destination)
  5. Enabled (on inactive destination)
  6. Hovered (on inactive destination)
  7. Focused (on inactive destination)
  8. Pressed (on inactive destination)

Measurements ​

Baseline nav rail size measurements.

Navigation rail size measurements

Baseline nav rail padding and margin measurements.

Navigation rail padding and margin measurements

Configurations ​

Common arrangements of elements within a navigation rail.

5 configurations of the baseline navigation rail.

  1. With a menu
  2. With a FAB
  3. With menu and FAB, without labels
  4. All destinations with text labels
  5. With menu, FAB, and label text for all destinations

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