---
url: /components/navigation-rail/guidelines.md
description: >-
  Navigation rails let people switch between UI views on mid-sized devices. They
  can contain 3-7 destinations plus an optional FAB.
---

# 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](overview.md) · [Specs](specs.md) · **Guidelines** · [Accessibility](accessibility.md)

![Colorful, purple navigation rail shown collapsed and expanded.](/assets/879dca99-m0fueyh1-01.C86bsg5I.webp)

Use the menu icon to transition between collapsed and expanded navigation rails

## Usage

The navigation rail can display navigation items, a menu, and a [floating action button](../floating-action-button/overview.md "Floating action buttons (FABs) help people take primary actions.") (FAB) in a vertical orientation.

There are two variants of navigation rails, **collapsed** and **expanded**, which can easily transform into each other when the menu button is selected.

### Collapsed

The **collapsed** nav rail runs along the leading edge of the window, and should contain 3–7 navigation items. It should not be hidden.

It can be used in [medium](../../foundations/layout/breakpoints/medium.md "Window widths from 600dp to 839dp, such as a tablet or foldable in portrait orientation.") to [extra large breakpoints](../../foundations/layout/breakpoints/large-extra-large.md "Window widths 1600dp and larger, such as ultra-wide monitors."), such as tablets and desktop. In  medium windows with few destinations, consider using a [navigation bar](../navigation-bar/overview.md "Navigation bars let people switch between UI views on smaller devices.") instead. [Compact windows](../../foundations/layout/breakpoints/compact.md "Window widths smaller than 600dp, such as a phone in portrait orientation.") should always use a navigation bar.

![Collapsed navigation rail with “timer” icon on FAB.](/assets/f41bf0ec-malbc2cg-02.CJU-CjmH.webp)

A navigation rail should be the only visible navigation element

### Expanded

The **expanded** navigation rail can be standard or modal, and should always open from a menu icon. An expanded rail can reveal secondary destinations not visible when collapsed.<br><br>The **standard** configuration is placed beside body content. It’s best for larger windows with lots of available space.<br><br>The **modal** configuration overlaps the body content, and should be opened from a menu icon. Use the modal configuration for:

* Information dense layouts where space is limited
* Products with many navigation items

![Expanded navigation rail shown expanded by default and expanded over screen content.](/assets/541ee297-m0fuf9qz-03.B91Ht-pW.webp)

A navigation rail can be expanded by default on larger screen sizes, or can be expanded over content on smaller screen sizes

In immersive experiences, the expanded navigation rail can be hidden entirely, appearing only when the menu icon is selected.<br><br>The collapsed navigation rail should not be hidden.

![Navigation rail and hidden navigation rail with menu icon button for expansion.](/assets/6a93521d-m0fufhuq-04.E81aCnmz.webp)

The expanded navigation rail can also be hidden, appearing only when the menu icon is selected

## Anatomy

![10 elements of expanded and collapsed navigation rails.](/assets/651c452f-m0fug0sy-05.Q-PeCqIN.webp)

1. Container
2. Menu (optional)
3. Floating action button (FAB) (optional)
4. Icon - active
5. Label text - active
6. Active indicator
7. Icon - inactive
8. Large badge (optional)
9. Large badge label
10. Small badge
11. Label text - inactive

### Container

The navigation rail should be placed on the leading edge of the window. This is the left side for left-to-right languages, and the right side for right-to-left languages.<br><br>The container fill can be turned off so the nav rail appears directly on the surface. When doing this, make sure all items have a minimum of 3:1 color contrast.

![Right-to-left navigation rail in Hebrew, and left-to-right navigation rail in English.](/assets/1f13e7ee-m0fugb5b-06.tcFM5fAf.webp)

The navigation rail should be placed on the leading edge of the window

The navigation rail should always run vertically along the side of a layout. Don’t make it horizontal.<br><br>Use a [navigation bar](../navigation-bar/overview.md "Navigation bars let people switch between UI views on smaller devices.") for horizontal navigation.

::: danger Don't
![Horizontal navigation rail on timer screen.](/assets/a059caa4-macys6lz-07.C0PA-3ik.webp)

Don’t use the navigation rail horizontally. Use a navigation bar instead.
:::

Navigation rail items can be aligned as a group to the top or center of a layout. On tablets, use center alignment to make it easier to reach items.<br><br>The menu icon and FAB should always be top-aligned.

![Navigation rails with different alignments.](/assets/eb1dae13-m0fuh0i5-08.DzuSUjVc.webp)

Top and center aligned rail destination placement

### Menu (optional)

The menu button can transition between the **collapsed&#xA0;**&#x61;nd **expanded** navigation rails.<br><br>Once expanded, the rail can reveal secondary destinations.<br><br>When the navigation rail is expanded, the menu icon should change to represent that it can be collapsed.

![Expanded and collapsed navigation rails controlled by a menu icon button.](/assets/8c09f1ea-m0fuh7km-09.DiXuklhb.webp)

A navigation rail can expand to reveal more destinations

### Floating action button (FAB) (optional)

The container of the navigation rail is ideal for anchoring the FAB to the top of a screen, placing the app’s key action above navigation destinations.<br><br>When nested within another component, such as the navigation rail, the FAB's resting elevation should be [level 0](../../styles/elevation/applying-elevation.md).

::: tip Do
![Navigation rail with a FAB button at the top of the screen.](/assets/82d55527-malbkctg-10.BIfSvwQC.webp)

A top-aligned FAB in the navigation rail
:::

::: danger Don't
![Navigation rail with a FAB button at the bottom of the screen.](/assets/a287a6b9-m0fuhrl8-11.4kuhv-2k.webp)

Avoid placing the FAB below navigation items
:::

The top of the rail can also be used for a logo, however avoid using logos that could be mistaken as buttons.<br><br>Don’t use a logo as a menu button to expand the navigation rail.

::: warning Caution
![Navigation rail with Material design logo at the top of the screen.](/assets/8305b6a1-m0fuhyto-12.CBSAQ3Xo.webp)

Use caution when placing logos in the rail where they might be confused with an action or destination
:::

### Active indicator

The active indicator shows which page is being displayed.

::: tip Do
![Navigation rail with active indicators present for the current screen.](/assets/fc2c0d4a-m0fuicr9-13.Cm6La8fR.webp)

Use the active indicator only for the current open page
:::

::: danger Don't
![Navigation rail with active indicators present for all navigation items.](/assets/a4640736-m0fujiob-14.DClBUJvI.webp)

Don’t use the active indicator for more than one navigation item at a time
:::

The active indicator hugs the label text in the expanded nav rail. To achieve a similar style to the baseline [navigation drawer](../navigation-drawer/overview.md "Navigation drawers let people switch between UI views on larger devices. In the expressive update, use an expanded navigation rail."), consider modifying the active indicator to fill the container.<br><br>The target area should always span the full width.

![Navigation rail with active indicator that hugs the text and icon.](/assets/177419e0-m0fujt7v-15.BR156vE4.webp)

The active indicator hugs contents in the expanded nav rail

![Navigation rail with active indicator that is larger than the content within it.](/assets/ea624b71-m0fujxyu-16.1251ebJE.webp)

Override the indicator to fill the container to more closely resemble the baseline navigation drawer

### Icons

Navigation rail items must use icons that symbolize the content of their page. Browse popular icons on [Google Fonts](http://fonts.google.com/icons).

![Navigation rail with icons that fit the destinations, like a timer icon and label leading to a timer feature.](/assets/f32b78ee-m0fuk4ze-17.DgKGZwbf.webp)

Icons should symbolize the content of the page they open

When a destination is selected, the icon fills and changes color. An active indicator appears behind the icon.

![Icons with and without an active indicator.](/assets/f18b02c9-m0fukavr-18.DiQJ133D.webp)

Selected navigation items have an active indicator, a filled icon, and a more prominent color

### Label text

The label text should be a short, meaningful description of each navigation destination and another way for users to understand an icon’s meaning.<br><br>All navigation items require a one word label text.

::: tip Do
![Navigation rail with clear text labels.](/assets/7a87f7e2-m0fukhnw-19.BE964lDt.webp)

Write clear and concise labels that describe the destination page
:::

Avoid wrapping long labels when possible. If necessary, create a line break between words, or hyphenate longer words.

::: warning Caution
![Navigation rail with lengthy text labels.](/assets/87ae20a7-m0fune8p-20.B2HuRYyo.webp)

Break up longer phrases into two text lines if necessary
:::

Labels should be short enough to not be truncated. Don’t shrink the type scale to fit longer text labels.

::: danger Don't
![Navigation rail with truncated text label with ellipses.](/assets/fa5ade6d-m0funlrw-21.C-XYz_GT.webp)

Don’t truncate or display an ellipsis in place of label text
:::

::: danger Don't
![Navigation rail with small text label.](/assets/bb00c460-m0funqlw-22.B20qIPz5.webp)

Don’t reduce the type size to fit more characters into a destination label
:::

### Badges

Navigation rail icons can include badges to communicate dynamic information about the  destination, such as counts or status.<br><br>In compact nav rails, the badge is placed in the upper right corner of the icon. In expanded nav rails, the badge should be placed next to the label text.<br><br>

![Navigation rail with badges on each icon.](/assets/2edfc6dc-m0fuomdi-23.CeyEAXW1.webp)

1\. Small badge on a rail destination <br>2. Large badge with a number<br>3. Large badge with a maximum character count

### Divider (optional)

A vertical divider can help separate the rail from app content. The divider should be positioned on the edge of the rail container that’s adjacent to the app’s content area.

![Navigation rail with divider separating it from screen content.](/assets/a57d308d-m0fuouq0-24.D03WqbyW.webp)

A divider can make the navigation rail container distinct from other on-screen content

## Placement

In adaptive layouts, the navigation rail should be placed outside any [panes](../../foundations/layout/layout-overview/parts-of-layout.md#73de653a-fc57-4a7c-bc3b-5b9e94207de8 "Panes are layout containers that house other components and elements within a single app. A pane can be: fixed, flexible, floating, or semi permanent."), always along the leading edge of the window. Don’t place it within body content.<br><br>When the navigation rail is hidden, the body content can fill in the remaining space as long as the menu icon is still accessible.<br><br>[Tabs](../tabs/overview.md "Tabs organize content across different screens and views.") can be used alongside a navigation rail to create an extra layer of visible navigation.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fm3%2Fimages%2Fmapifwv9-GM3_Expressive_Nav-Rail_Guidelines_32_IA_V10.mp4?alt=media" aria-label="Navigation rail collapsed next to screen content, and expanded overlaying screen content with secondary destinations."></video>

Expanded navigation rails can open from menu buttons on mobile

## Adaptive design

For more, see [adaptive design](../../foundations/layout/layout-overview/adaptive-design.md).

### Resizing

When moving from a large screen to a small screen, a navigation rail can transform into a navigation bar, providing the same quick access in a configuration that’s easier to use on smaller displays. Never use the navigation rail and navigation bar simultaneously. 

Only use navigation rails for medium breakpoints and larger. Don’t use a navigation bar. If there are more than five destinations, consider using a modal expanded nav rail instead.

**Compact:** Don’t use a standard navigation rail for compact layouts due to space constraints. Use a navigation bar instead.

**Medium:** Use a navigation rail, especially if prioritizing persistent vertical navigation over maximizing vertical content space.

**Expanded to extra-large:** Use a navigation rail, not a navigation bar. Consider available horizontal space and the number of destinations when choosing between standard and modal.

![Navigation bar on a phone screen and navigation rail on a tablet screen.](/assets/c62a50a0-m0fupcvd-26.Br37tGUP.webp)

On smaller devices, use a navigation bar. On larger displays, use a navigation rail.

### Presentation

When the navigation rail transitions from collapsed to expanded, the contents of the page should automatically adjust to fit.<br><br>The contents of the navigation rail also expand to fill the space. For example, the FAB should transition into an extended FAB. <br><br>Extra destinations can be shown in an expanded nav rail.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fmalqalnw-GM3_Expressive_Nav-Rail_Guidelines_27_IA_V07.mp4?alt=media" aria-label="Extra destinations in an expanded navigation rail."></video>

Use a standard expanded rail when there are secondary destinations or actions that have lower priority than the main navigation items

## Behavior

### Scrolling

Destinations in the navigation rail should remain visible and fixed when scrolling vertically.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fm5v1vvd7-J%20-%20Scrolling%20RENDER%20-%202x.mp4?alt=media" aria-label="Screen content scrolls while rails stay fixed."></video>

Rail destinations remain fixed while on-screen content scrolls vertically

If a layout scrolls horizontally, the rail can scroll off-screen or remain fixed. To distinguish that content is scrolling underneath the rail, use a divider or add elevation to the rail.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fm0gtjndl-K%20-%20Side%20Scroll%20RENDER%20-2x_240821.mp4?alt=media" aria-label="A nav rail with a divider between it and the page’s content."></video>

A divider and color fill change create visual distinction between the rail and horizontally scrolling content

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fmbs2jj48-GM3_Expressive_Nav-Rail_Guidelines_30_IA_v01%20(1).mp4?alt=media" aria-label="A nav rail with slight elevation."></video>

Elevating the rail to level 1 creates visual distinction between the rail and horizontally scrolling content

### Selection

When a destination is tapped, the destination screen uses a [top level](../../styles/motion/transitions/transition-patterns.md#f852afd2-396f-49fd-a265-5f6d96680e16) transition pattern. In addition, the icon becomes filled and the active indicator expands from the center of the icon.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fm0fvmjbe-L%20-%20NAV%20Selection%20-%20RENDER%202x_240821.mp4?alt=media" aria-label="Selection transition between one navigation item and another."></video>

Tapping a destination uses a top level transition pattern

### Back

On Android, a gesture called predictive back allows people to swipe left or right on the screen to go back or dismiss modal components.<br>

* Previous screen is revealed in a preview to signal the destination
* Predictive back only applies to the **modal expanded** navigation rail.

A list of compatible components is available on the [gestures page](../../foundations/interaction/gestures.md).

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fm3%2Fimages%2Fmapifi58-GM3_Expressive_Nav-Rail_Guidelines_PredictiveBack_IA_V02.mp4?alt=media" aria-label="Modal expanded navigation rail with Android predictive back feature."></video>

The nav rail pops off the edge of the window during the predictive back gesture
