---
url: /components/navigation-bar/guidelines.md
description: >-
  Navigation bars let people switch between UI views on smaller devices. They’re
  a common navigation component on handheld screens.
---

# Navigation bar

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

[Overview](overview.md) · [Specs](specs.md) · **Guidelines** · [Accessibility](accessibility.md)

![A nav bar with vertical items in a compact window, and horizontal items in a medium window.](/assets/52ab6dee-malqgvk7-01.CQRNZVX9.webp)

Navigation bars adapt to different breakpoints

## Usage

Navigation bars provide access to three to five destinations. The nav bar is positioned at the bottom of windows for convenient access.

Each destination is represented by an icon and label text. One navigation destination is always active.

When a navigation bar icon is tapped or focused, people are taken to the navigation destination associated with that icon.

![A nav bar for a music app with 4 destinations: Home, Browse, Radio, Library, It’s in a compact window.](/assets/437752bf-malnqdza-02.ORX1FziN.webp)

Navigation bars can have three to five destinations

Navigation bars should be used for:

* Three to five main pages in the product
* Mobile or tablet only

Navigation bars shouldn’t be used for accessing single tasks, such as viewing one email.

![A nav bar for a music app with 4 destinations: Home, Browse, Radio, Library. It’s in a medium window.](/assets/25f6cf54-malqhln7-03.BNJ-Rbiz.webp)

On mobile or tablet, navigation bars should be used for top-level destinations

The navigation items can be **vertical** or **horizontal**.

* Use vertical items in [compact windows](../../foundations/layout/breakpoints/compact.md "Window widths smaller than 600dp, such as a phone in portrait orientation."), like mobile
* Use horizontal items in [medium windows](../../foundations/layout/breakpoints/medium.md "Window widths from 600dp to 839dp, such as a tablet or foldable in portrait orientation."), like tablets

![A nav bar with vertical items in a compact window, and horizontal items in a medium window.](/assets/88baf050-malqhs7x-04.Wy42cSGh.webp)

Vertical navigation items work best in compact windows. Horizontal items work best in medium windows.

For products with more than five navigation items, don’t use a navigation bar; the elements may collide and there likely won’t be enough space for translated text.<br><br>Instead, consider using [tabs](../tabs/overview.md "Tabs organize content across different screens and views.") to organize similar content within a page, or hide the navigation behind a menu icon using a [modal expanded navigation rail](../navigation-rail/overview.md "Navigation rails let people switch between UI views on mid-sized devices.").

::: danger Don't
![A nav bar with 7 items in a compact window.](/assets/6ae1f3b8-malqi614-05-don-t.CemqP6DQ.webp)

Avoid putting more than five navigation items in a navigation bar
:::

::: danger Don't
![A nav bar with no labels for each page item.](/assets/71ed2ed9-malqimzs-06-dont.CiYYabWi.webp)

Don’t remove the labels from navigation items
:::

::: danger Don't
![A nav bar with 2 page items.](/assets/643ac8aa-malqir51-07-dont.DaZpyeeF.webp)

Don’t use a navigation bar for fewer than three destinations. Instead, use tabs.
:::

![A nav bar is on the Library page of a music app. Tabs at the top of the page have secondary navigation for playlists, artists, albums, and songs.](/assets/da3e15f8-m0fp4omq-08.BNuwb2IP.webp)

Use navigation for distinct pages and tabs for related content within a page

::: danger Don't
![Nav bar using horizontal items in a compact window. The items are too wide and flow off screen.](/assets/88b2f905-m0fp4ti0-09.PYEV2Z0u.webp)

Navigation bar destinations have fixed positions. Don’t scroll them or modify their positions.
:::

## Anatomy

![6 elements of the nav bar.](/assets/1f7188e8-m3t918of-10.D0qKSyIp.webp)

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

### Container

The container should always be placed at the bottom of the product and span the full length of the window. Navigation items are centered within the container.<br><br>The container has a color fill to provide separation from other content.

![The nav bar at the bottom of a medium window has a color fill to differentiate from the background.](/assets/9099d112-m3t91cku-11.BnmsohwJ.webp)

The navigation bar container holds all elements

### Navigation items

Navigation items hold all elements for each destination: the icon, label text, and active indicator. They can be **vertical**, with the text below the icon and indicator, or **horizontal**, with the icon and text beside each other inside the indicator. <br><br>Vertical items are best in [compact windows](../../foundations/layout/breakpoints/compact.md "Window widths smaller than 600dp, such as a phone in portrait orientation."), and horizontal items are best in [medium windows](../../foundations/layout/breakpoints/medium.md "Window widths from 600dp to 839dp, such as a tablet or foldable in portrait orientation").<br><br>Horizontal items are centered in the nav bar with outer margins.

![The nav bar in a medium window with padding on each side.](/assets/db58f9c4-m3t91mur-12.CzqycUhE.webp)

The navigation bar is divided into equal-width segments with padding from the window edge

### Icons

Navigation rail items must use icons that symbolize the content of their page. Browse [popular icon](https://fonts.google.com/icons).<br><br>Use a filled icon for the active destination and outlined icons for inactive destinations. If an icon doesn’t have a filled version, apply **semibold** weight to the icon instead.

::: tip Do
![An active nav item with a filled icon compared to inactive items with outlined icons.](/assets/91ac6204-m0fp9y48-13.DIddb90A.webp)

Use filled icons when the navigation item is active
:::

::: warning Caution
![An active nav item with a semibold icon compared to inactive items with outlined icons.](/assets/30a481d0-m0fpa2te-14.DKL554WS.webp)

If a filled version of an icon is unavailable, the icon’s weight must increase
:::

Active and inactive icons must have a minimum 3:1 contrast ratio with the container.

::: danger Don't
![4 nav items that are each different colors with low contrast with the background.](/assets/d0c06ffa-malqnpkt-15-dont.oy9R0daB.webp)

Don’t use multiple or low-contrast colors in a navigation bar, as they make it harder for people to distinguish the active item and navigate to other destinations
:::

### Active indicator

The active indicator shows which page from the nav bar is currently being displayed.

::: tip Do
![The current page in a nav bar has an active indicator.](/assets/49974fe0-malqo0n5-16-do.hcPl1Ykl.webp)

Use the active indicator only for the active destination
:::

::: danger Don't
![All items in a nav bar have active indicators.](/assets/6cb1968c-malqo7ag-17-dont.lMdWKXpH.webp)

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

### Label text

The label text should be a short, meaningful description of each navigation destination and another way for people to understand an icon’s meaning.<br><br>All navigation items require a label text. It should be 1-2 words.

![A nav bar on a music app with clearly labelled destinations: home, browse, radio, library.](/assets/d429ee3c-m0fpamvs-18.BEWWZbzm.webp)

Label text must be brief and clear

::: tip Do
![A nav bar with 1-word labels for each page.](/assets/6a287ed7-malqoweq-19-do.CxcQYSH4.webp)

Use brief text labels to identify the purpose of a destination
:::

::: danger Don't
![A nav bar with “Music catalog” for a label. The label is truncated.](/assets/105d777f-malqp27c-20-dont.DFUS7z5v.webp)

Don’t wrap or truncate text as it can make the label hard to understand
:::

::: danger Don't
![A nav bar with “Music catalog” for a label. The label is a smaller size to make the text fit.](/assets/6fafefcb-malqpu1t-21-dont.CVn5KSak.webp)

Don’t shrink longer text to fit on a single line
:::

### Badges (optional)

Navigation bars can display badges in the upper right corners of the destination icon.<br><br>Badges can contain dynamic information, such as the number of new messages.

![A nav bar with a destination called “Go” with a small badge and one called “Saved” with a large badge saying “3.”](/assets/036fe5a7-malqqg5m-22.D7T99Gqi.webp)

Use a small badge to indicate an update, and a large badge to show the amount of updates

![Horizontal nav items with the badges in the same place of the icon as vertical nav items.](/assets/bf30ebeb-malqqlk1-23.CV--eGoN.webp)

Badges overlap the icon in both vertical and horizontal navigation items

## Placement

The floating action button (FAB) is placed above the navigation bar. Nav bars are always placed at the bottom of the window.

::: tip Do
![The FAB should be right-aligned above the navigation bar](/assets/e1edd804-malqqsyh-24-do.D9uS42Ls.webp)

The FAB should be right-aligned above the navigation bar
:::

::: danger Don't
![A mobile page with a FAB overlapping a nav bar.](/assets/67c7902a-malqqy0m-25-dont.C6wfy0kl.webp)

Don’t cover the navigation bar with a FAB
:::

Navigation bars can be temporarily covered by dialogs, bottom sheets, navigation drawers, the on-screen keyboard, or other elements needed to complete a flow. They should not be permanently obstructed on any screen.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fmalo9ujs-GM3_Expressive_NavBar_Guidelines_26_IA_v01.mp4?alt=media" aria-label="The navigation bar being covered by a bottom sheet when users take an action on screen."></video>

The search feature of the screen triggers the on-screen keyboard, temporarily covering the bottom navigation bar until the search flow is completed

## Adaptive design

Adaptive design allows an interface to respond or change based on context, such as the user, device, and usage. More on [adaptive design](../../foundations/layout/layout-overview/adaptive-design.md)

### Resizing

Only use navigation bars for [compact](../../foundations/layout/breakpoints/compact.md "Window widths smaller than 600dp, such as a phone in portrait orientation.") and [medium](../../foundations/layout/breakpoints/medium.md "Window widths from 600dp to 839dp, such as a tablet or foldable in portrait orientation.") breakpoints. 

**Compact**: For narrow windows, use a navigation bar or modal navigation rail.

**Medium**: Use a navigation bar or navigation rail. Decide based on whether horizontal or vertical space is more important.

**Expanded and extra-large**: Use a navigation rail instead. Decide based on available window space and the number of navigation destinations.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fmalo6njn-GM3-Expressive_NavBar_Guidelines_Responsive%20Layout_27_IA_v04.mp4?alt=media" aria-label="A music app with a nav bar adapting to larger screens, where it changes to horizontal items, and then into a nav rail."></video>

Navigation bars are best suited for compact and medium breakpoints

The navigation bar container spans 100% of the window width.

![Navigation bar spanning the full width of a compact window.](/assets/7870365c-malo8a44-28.D9wTMg7R.webp)

Navigation bars use 100% of the screen width

The navigation bar is used on smaller devices. It’s not intended for desktop.

::: danger Don't
![Navigation bar spanning the full width of an expanded window size.](/assets/d396f9c6-malqsfoq-29.DofI1i03.webp)

Don’t use navigation bars for desktop layouts. Instead, use a navigation rail or tabs.
:::

### Presentation

In medium breakpoints, use horizontal nav items to better use available space.

Horizontal nav items should remain centered with the same padding at each breakpoint.

![Horizontal nav items have the same width in medium and expanded windows. Only the padding changes.](/assets/f247f89a-m0fpt5k2-30.mYK0rsXw.webp)

A navigation bar in horizontal orientation keeps the same spacing between destinations

## Behavior

### Navigation

When selecting a navigation bar item not currently selected, the product navigates to that destination’s screen using a [top level](../../styles/motion/transitions/transition-patterns.md#f852afd2-396f-49fd-a265-5f6d96680e16) transition pattern. It can either remember where you left off, or reset to the default view.

1. **Preserve state**: If someone has interacted with this destination, it returns to their scroll position, current tab, and in-line search status.
2. **Reset state**: Any prior user interactions are reset, including scroll position, tab selection, and in-line search.

Choose the behavior that best suits the product and user needs. For example, an app that requires frequent switching between sections should preserve each section’s state.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fm0fpu2iy-C%20-%20Switch%20Destination%20-%20RENDER%202x_240821.mp4?alt=media" aria-label="After selecting an item on the bottom navigation bar, the app navigates to that destination’s screen"></video>

After selecting an item on the bottom navigation bar, the app navigates to that destination’s screen

Re-selecting the currently active destination should reset the scroll position to the top of the page.

**Don't swipe between destinations**<br>Swiping across the screen does not navigate between destinations, and is not supported by the navigation bar. Swipe behavior should be reserved for related items, such as cards in a carousel, or actions such as archiving a list item.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fmalod84x-GM3_Expressive_Nav-Bar_Guidelines_Behavior_Scrolling_32_IA_V04.mp4?alt=media" aria-label="Selecting the currently active nav item scrolls the page content back to the top."></video>

Selecting the already selected navigation item scrolls to the top of the screen

### Scrolling

Upon scroll, the navigation bar can appear or disappear. 

Don’t hide the navigation bar on scroll when a [screen reader](../../foundations/overview/assistive-technology.md#ec6f3e84-a51c-4dc0-a353-6844f5bde698) is active.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fmaloebec-GM3_Expressive_Nav-Bar_Guidelines_Behavior_Scrolling_33_IA_V04.mp4?alt=media" aria-label="When scrolling on the page, the nav bar scrolls the opposite direction off screen."></video>

Scrolling downward can hide the navigation bar; scrolling upward reveals it

### Selection

The icon becomes filled and the active indicator expands from the center of the icon when switching between destinations.<br><br>The active indicator animation should only apply on one axis to better represent a flat, shared plane.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fmalof0yh-GM3-Expressive_NavBar_Guidelines_34_IA_v01.mp4?alt=media" aria-label="The active indicator expands from the target when a destination is selected"></video>

An active indicator appears when the item is selected.

When a destination is tapped, the destination screens use 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%2Fm0fq2m3b-G%20-%20CU%20Destination%20Change%20-%20RENDER%202x_240821.mp4?alt=media" aria-label="Selecting the home item changes the entire page contents."></video>

Tapping a destination uses a top level transition pattern
