Side menu
The guideline content on this page is synced with Figma and can be used as a source of truth.
Open in Figma
Side menu is a vertical, hierarchical navigation component that appears on the left side of a page or screen.
Anatomy
- Navigation in its expanded state
- Dropdown icon: only shown when there is more content in a sub-menu
- Primary level expanded
- Second level
- Second level selected
- Badge
- Bottom content
- Chevron to collapse and expand navigation
- Navigation in its collapsible view
States
The top-level menu item supports the following states:
- Enabled
- Hover
- Selected
- Focused
- Pressed
Accessibility
Keyboard interaction
All components should be reachable via TAB and SHIFT+TAB keys.
Specs
Developer reference
The following sections describe the supported markup and interactive variants. The vertical navigation requires JavaScript to make it interactive (collapsible levels, hide and show the navigation) — the snippets below include the inline script that powers the demonstrations.
Design
Collapsed view
The collapsed icon-only view is produced by pairing .vertical-nav-icons with .vertical-nav-collapse on the wrapper and adding .hidden-menu to render the menu in its 80 px collapsed state. The example below renders the menu in its collapsed view by default.
Hide / show, no icons
To hide / close the navigation, apply the .hidden-menu class to the main vertical navigation wrapper (.vertical-nav) and, if necessary, the .hidden-vert-menu class (or your own functional class) to the page main content (.page-holder) so the layout responds to the new width.
Pellentesque a nibh nec risus posuere ultrices in sit amet eros. Donec pulvinar ipsum orci, a imperdiet mi facilisis id. Nunc mattis, ligula vitae facilisis facilisis, libero turpis fermentum metus, in maximus sapien velit in enim. Proin dapibus posuere consectetur. Nunc vitae libero vitae purus tempor us a ut orci.
Partial collapse, no icons
To contract / shrink the width instead of hiding the navigation list, add the .vertical-nav-collapse class to the wrapper. When the .hidden-menu class is applied, the menu contracts rather than disappears.
Pellentesque a nibh nec risus posuere ultrices in sit amet eros. Donec pulvinar ipsum orci, a imperdiet mi facilisis id. Nunc mattis, ligula vitae facilisis facilisis, libero turpis fermentum metus, in maximus sapien velit in enim. Proin dapibus posuere consectetur. Nunc vitae libero vitae purus tempor us a ut orci.
Hide / show, with icons
Add the .vertical-nav-icons class to the wrapper to render menu items with a leading icon.
Pellentesque a nibh nec risus posuere ultrices in sit amet eros. Donec pulvinar ipsum orci, a imperdiet mi facilisis id. Nunc mattis, ligula vitae facilisis facilisis, libero turpis fermentum metus, in maximus sapien velit in enim. Proin dapibus posuere consectetur. Nunc vitae libero vitae purus tempor us a ut orci.
Partial collapse, with icons
Combine .vertical-nav-collapse with .vertical-nav-icons to render the icon-only collapsed strip alongside the contractible expanded view.
Pellentesque a nibh nec risus posuere ultrices in sit amet eros. Donec pulvinar ipsum orci, a imperdiet mi facilisis id. Nunc mattis, ligula vitae facilisis facilisis, libero turpis fermentum metus, in maximus sapien velit in enim. Proin dapibus posuere consectetur. Nunc vitae libero vitae purus tempor us a ut orci.
With variant badges
Add .badge or .badge-info / .badge-success / .badge-warning / .badge-danger elements inside the menu item link to render notification counts.
Pellentesque a nibh nec risus posuere ultrices in sit amet eros. Donec pulvinar ipsum orci, a imperdiet mi facilisis id. Nunc mattis, ligula vitae facilisis facilisis, libero turpis fermentum metus, in maximus sapien velit in enim. Proin dapibus posuere consectetur. Nunc vitae libero vitae purus tempor us a ut orci.
Deprecated variants
The Figma source of truth ships a single white scheme. The blue (.vertical-nav-primary) and dark-grey (.vertical-nav-secondary) variants are kept here for backwards compatibility and will be removed in v3.0. New code should use the default .vertical-nav only.
Primary (blue)
Deprecated in v2.6
The .vertical-nav-primary (also .vertical-nav-blue / .vertical-nav-branded) modifier is deprecated and will be removed in v3.0. Drop the modifier — the redesigned default .vertical-nav already carries the purple-accent design.
Pellentesque a nibh nec risus posuere ultrices in sit amet eros. Donec pulvinar ipsum orci, a imperdiet mi facilisis id. Nunc mattis, ligula vitae facilisis facilisis, libero turpis fermentum metus, in maximus sapien velit in enim. Proin dapibus posuere consectetur. Nunc vitae libero vitae purus tempor us a ut orci.
Secondary (dark grey)
Deprecated in v2.6
The .vertical-nav-secondary (also .vertical-nav-inverted) modifier is deprecated and will be removed in v3.0. Drop the modifier and use the default .vertical-nav. Apps that require an inverse (dark) surface should switch to the dark-mode CSS bundle instead.
Pellentesque a nibh nec risus posuere ultrices in sit amet eros. Donec pulvinar ipsum orci, a imperdiet mi facilisis id. Nunc mattis, ligula vitae facilisis facilisis, libero turpis fermentum metus, in maximus sapien velit in enim. Proin dapibus posuere consectetur. Nunc vitae libero vitae purus tempor us a ut orci.