Skip to main content Home
About About the Design SystemRoadmap
Get started OverviewDesignersDevelopers
Foundations OverviewColorGridIconographyInteractionsSpacingTypography
Tokens Overview Global colorbox shadowTypographyborderopacityspacelengthIconBreakpointsMedia Queries
Elements All elements Accordion Alert Announcement Audio player Avatar Back to top Badge Blockquote Breadcrumb Button Card Chip Code block Call to action Dialog Disclosure Footer Health index Icon Jump links Navigation (primary) Navigation (secondary) Pagination PopoverPlanned Progress stepsPlanned Site status Skip link Spinner Statistic Subnavigation Surface Switch Table Tabs Tag Tile Timestamp Tooltip Video embed
Theming OverviewColor PalettesCustomizingDevelopers
Patterns All PatternsCardTabsFilterFormLink with iconLogo wallSearch barSticky bannerSticky cardTile
Personalization All Personalization PatternsAnnouncement
Accessibility FundamentalsAccessibility toolsAssistive technologiesCI/CDContentContributorsDesignDevelopmentManual testingResourcesScreen readers
Design/code status Release notes Get support

Navigation (primary)

OverviewStyleGuidelinesCodeAccessibilityDemos
GuidelinesWriting contentMenu text labelsExpandable menusBehaviorBest PracticesGuidelinesWriting contentMenu text labelsExpandable menusBehaviorBest Practices

Guidelines

Use the primary navigation to organize high-level content and important user actions.

Primary vs. secondary navigation

Here is guidance on when to use the primary vs. secondary navigation.

Element When to use
Primary navigation
  • Provide persistent access to high-level content across domains
  • Outline the fundamental structure of a website
  • Organize the most important user actions
Secondary navigation
  • If more space is needed for content without cluttering the primary navigation
  • Offer more content pertinent to a section that users are exploring
  • Allow users to dig deeper into a specific topic

Writing content

Menus need to quickly describe to users what content they can expect to see when expanded. Try to write short and concise menu text labels.

Element and character counts

Element Max number Character count
Primary Menu 6 20
Cross-domain link 3 15
Utility menu 3 10

Expandable menus

Users can expand and collapse any menu whenever they want. Every menu is collapsed by default and users are only able to expand one menu at a time.

Primary menus

Content in primary menus is organized using a 4-column grid within a fixed width container.

A primary nav with an expanded menu showing four different columns to place content.

When using a card or tile, it should be arranged last.

A primary nav with an expanded menu showing three different columns and a fourth shorter column for a card or tile.

Grid column width does not change if there are less than 4 columns of content.

A primary nav with an expanded menu showing two columns taking up half the space of the open menu.

Utility menus

Content in utility menus can have a flexible size and layout, but should not occupy more than 3 grid columns.

A primary nav with an expanded utility menu showing three columns taking up equal widths.

Behavior

Sticky scrolling

The primary navigation is always sticky on scroll on every page it is used on.

Expanding menus

Expanded menus are indicated by a Hybrid style gradient border. When users hover over another menu, there are subtle visual changes (see Interaction states). When another menu is selected, the caret icon rotates, and the previously expanded menu collapses. Only 1 menu can be expanded at a time.

Two navs showing hover interactions of various elements

Collapsing menus

Menus can be collapsed by doing the following.

  • Selecting the same primary or utility menu again
  • Selecting anywhere inside of the overlay
  • Pressing the Escape key
A nav with an expanded menu with X's over the menu triggers and backdrop denoting what will close a menu.

Responsive design

Some elements collapse or disappear as the primary navigation gets smaller.

Viewport range Result
<1920px Utility menu text labels disappear
<1680px Cross-domain links disappear
<1440px Red Hat logo becomes the hat
<1200px Primary menus collapse into mega menu with accordion
<992px Mega menu text label disappears
<576px For you utility menu disappears

When users land on or refresh a page and then press the Tab key, the Skip link will appear on top of the primary navigation.

A primary nav with a skip link centered over top of the navigation.

Best Practices

Content overload

A primary nav with a skip link centered over top of the navigation.

Limit the amount of primary menus to 5 or 6 max and the number of utility menus to 3 max.

Do not overload the primary navigation with additional primary and utility menus.

© 2025 Red Hat Deploys by Netlify