Skip to main content Home About the Design SystemRoadmap OverviewDesignersDevelopers OverviewColorGridIconographyInteractionsSpacingTypography Overview Global colorBox shadowTypographyBorderOpacitySpaceLengthIconBreakpointsMedia queries 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 Menu dropdown Navigation link Navigation (primary) Navigation (secondary) Navigation (vertical) Pagination PopoverPlanned Progress stepper Scheme toggle Site status Skeleton Skip link Spinner Statistic Subnavigation Surface Switch Table Tabs Tag Tile Timestamp Tooltip Video embed OverviewColor PalettesCustomizingDevelopers All PatternsAccordionCall to ActionCardFilterFormLink with iconLogo wallSearch barSticky bannerSticky cardTabsTagTile All Personalization PatternsAnnouncement FundamentalsAccessibility toolsAssistive technologiesCI/CDContentContributorsDesignDevelopmentManual testingResourcesScreen readers Design/code status Release notes Get support

Navigation (secondary)

OverviewStyleGuidelinesCodeAccessibilityDemos
ImportingUsagerh-navigation-secondaryrh-navigation-secondary-dropdownrh-navigation-secondary-menu-sectionrh-navigation-secondary-menurh-navigation-secondary-overlayImportingUsagerh-navigation-secondaryrh-navigation-secondary-dropdownrh-navigation-secondary-menu-sectionrh-navigation-secondary-menurh-navigation-secondary-overlay

Importing

Add rh-navigation-secondary to your page with this import statement:

<script type="module">
  import '@rhds/elements/rh-navigation-secondary/rh-navigation-secondary.js';
</script>
Copy to Clipboard Wrap lines

To learn more about installing RHDS elements on your site using an import map read our getting started docs.

Lightdom CSS

This element requires you to load "Lightdom CSS" stylesheets for styling deeply slotted elements.

Note

Replace /path/to/ with path to the CSS file, whether local or CDN.

<link rel="stylesheet" href="/path/to/rh-navigation-secondary/rh-navigation-secondary-lightdom.css">

Usage

<rh-navigation-secondary>
  <a href="#" slot="logo" id="logo-id" aria-current="page">
    Logo/Title
  </a>
  <ul slot="nav" aria-labelledby="logo-id">
    <li>
      <rh-navigation-secondary-dropdown>
        <a href="#dropdown-fallback-url" slot="link">Dropdown</a>
        <rh-navigation-secondary-menu slot="menu">
          <rh-navigation-secondary-menu-section>
            <h3 slot="header">Section</h3>
            <ul slot="links">
              <li><a href="#">Link</a></li>
              <li><a href="#">Link</a></li>
              <li><a href="#">Link</a></li>
            </ul>
            <rh-cta slot="cta" href="#">Section CTA</rh-cta>
          </rh-navigation-secondary-menu-section>
          <rh-navigation-secondary-menu-section>
            <h3 slot="header">Section</h3>
            <ul slot="links">
              <li><a href="#">Link</a></li>
              <li><a href="#">Link</a></li>
              <li><a href="#">Link</a></li>
            </ul>
            <rh-cta slot="cta" href="#">Section CTA</rh-cta>
          </rh-navigation-secondary-menu-section>
        </rh-navigation-secondary-menu>
      </rh-navigation-secondary-dropdown>
    </li>
    <li>
      <rh-navigation-secondary-dropdown>
        <a href="#dropdown-fallback-url" slot="link">Dropdown</a>
        <rh-navigation-secondary-menu slot="menu">
          <ul>
            <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
          </ul>
        </rh-navigation-secondary-menu>
      </rh-navigation-secondary-dropdown>
    </li>
    <li><a href="#">Link</a></li>
    <li><a href="#">Link</a></li>
  </ul>
  <rh-cta slot="cta" href="#">Call to Action</rh-cta>
</rh-navigation-secondary>

<link rel="stylesheet" href="../rh-navigation-secondary-lightdom.css">

<script type="module">
  import '@rhds/elements/rh-navigation-secondary/rh-navigation-secondary.js';
  import '@rhds/elements/rh-cta/rh-cta.js';
</script>
Copy to Clipboard Wrap lines

System Integration

Current page indicator

When a user is viewing a page that is part of the secondary navigation information architecture, a red top border is visible. If the current active page is part of a dropdown menu, that dropdown is highlighted with the same top border to indicate it contains the current page. For more details on how to use this current page indicator, refer to the design guidelines for current page indicator.

To enable this indicator style, implementation should apply the aria-current="page" attribute to the current page link.

<a href="/" aria-current="page">Current page being viewed</a>

The rh-navigation-secondary element does not apply the aria-current="page" attribute itself. The responsibility for keeping track of which link is currently active falls on the content management system or application. The element checks for the presence of this attribute and applies the current page indicator style to nav links and dropdown menus when the active page is within a dropdown menu.

rh-navigation-secondary

The secondary navigation is used to connect a series of pages together. It displays wayfinding content and links relevant to the page it is placed on. It should be used in conjunction with the primary navigation.

Slots 4

Slot Name Summary Description

Logo added to the main nav bar, expects <a>Text</a> | <a><svg/></a> | <a><img/></a> element

mobile-menu

Text label for the mobile menu button, for l10n. Defaults to "Menu"

nav

Navigation list added to the main nav bar, expects <ul> element

cta

Nav bar level CTA, expects <rh-cta> element

Attributes 2

Attribute DOM Property Description Type Default
color-palette colorPalette

Color palette dark | lighter (default: lighter)

'light' | 'lighter' | 'lightest' | 'dark' | 'darker' | 'darkest'
'lighter'
accessible-label accessibleLabel

Customize the default aria-label on the <nav> container. Defaults to "secondary" if no attribute/property is set.

string
'secondary'

Methods 3

Method Name Description
firstUpdated()
open(index: number)

Opens a specific dropdown based on index. Closes all open dropdowns before opening specified. Toggles overlay to open

close()

Closes all open dropdowns

Events 1

Event Name Description
overlay-change

Fires when an dropdown is opened or closed in desktop view or when the mobile menu button is toggled in mobile view.

CSS Shadow Parts 3

Part Name Summary Description
nav

container, <nav> element

container

container, <div> element

cta

container, <div> element

CSS Custom Properties 1

CSS Property Description Default
--rh-navigation-secondary-z-index

z-index of the navigation-secondary

102

Design Tokens 17

Token Description Copy
--rh-color-text-primary
Full CSS Variable Permalink to this token
--rh-color-brand-red
Full CSS Variable Permalink to this token
--rh-color-border-subtle
Full CSS Variable Permalink to this token
--rh-color-surface-lighter

Tertiary surface (light theme)

Full CSS Variable Permalink to this token
--rh-color-surface-dark

Tertiary surface (dark theme)

Full CSS Variable Permalink to this token
--rh-border-width-sm

1px border width; Example: Secondary CTA or Button

Full CSS Variable Permalink to this token
--rh-font-family-body-text

Body text font family

Full CSS Variable Permalink to this token
--rh-font-size-body-text-md

16px font size

Full CSS Variable Permalink to this token
--rh-border-width-lg

3px border width: Example: Expanded Accordion panel

Full CSS Variable Permalink to this token
--rh-space-lg

16px spacer

Full CSS Variable Permalink to this token
--rh-space-md

8px spacer

Full CSS Variable Permalink to this token
--rh-color-surface
Full CSS Variable Permalink to this token
--rh-color-surface-lightest

Primary surface (light theme)

Full CSS Variable Permalink to this token
--rh-color-text-brand-on-light

Brand text color for light theme

Full CSS Variable Permalink to this token
--rh-color-text-primary-on-dark

Primary text color for dark theme

Full CSS Variable Permalink to this token
--rh-color-text-primary-on-light

Primary text color for light theme

Full CSS Variable Permalink to this token
--rh-space-2xl

32px spacer

Full CSS Variable Permalink to this token

rh-navigation-secondary-dropdown

Upgrades a top level nav link to include dropdown functionality

Slots 2

Slot Name Summary Description
link

Link for dropdown, expects <a> element

menu

Menu for dropdown, expects <rh-navigation-secondary-menu> element

Attributes 0

None

Methods 0

None

Events 1

Event Name Description
change

Fires when a dropdown is clicked

CSS Shadow Parts 1

Part Name Summary Description
container

CSS Custom Properties 0

None

Design Tokens 10

Token Description Copy
--rh-border-width-lg

3px border width: Example: Expanded Accordion panel

Full CSS Variable Permalink to this token
--rh-border-width-sm

1px border width; Example: Secondary CTA or Button

Full CSS Variable Permalink to this token
--rh-color-border-subtle-on-light

Subtle border color (light theme)

Full CSS Variable Permalink to this token
--rh-box-shadow-sm

Small box shadow

Full CSS Variable Permalink to this token
--rh-color-text-primary
Full CSS Variable Permalink to this token
--rh-font-size-body-text-md

16px font size

Full CSS Variable Permalink to this token
--rh-color-surface
Full CSS Variable Permalink to this token
--rh-color-text-brand-on-light

Brand text color for light theme

Full CSS Variable Permalink to this token
--rh-color-surface-lightest

Primary surface (light theme)

Full CSS Variable Permalink to this token
--rh-color-text-primary-on-light

Primary text color for light theme

Full CSS Variable Permalink to this token

rh-navigation-secondary-menu-section

A menu section which auto upgrades accessibility for headers and sibling list

Slots 3

Slot Name Summary Description
header

Adds a header tag to section, expects <h1> | <h2> | <h3> | <h4> | <h5> | <h6> element

links

Adds a ul tag to section, expects <ul> | <ol> element

cta

Adds a section level CTA, expects <rh-cta> element

Attributes 0

None

Methods 0

None

Events 0

None

CSS Shadow Parts 1

Part Name Summary Description
container

container,

element

CSS Custom Properties 0

None

Design Tokens 3

Token Description Copy
--rh-font-family-heading

Heading font family

Full CSS Variable Permalink to this token
--rh-font-size-body-text-md

16px font size

Full CSS Variable Permalink to this token
--rh-space-xl

24px spacer

Full CSS Variable Permalink to this token

rh-navigation-secondary-menu

Dropdown menu for secondary nav, available in full-width and fixed-with sizes

Slots 1

Slot Name Summary Description
[default]

Optional <rh-navigation-secondary-menu-section> elements or content following design guidelines
Note: [default] unnamed slots do not have a slot="name" attribute.

Attributes 3

Attribute DOM Property Description Type Default
color-palette colorPalette

Color palette (default: lightest) Secondary nav menus are always represented on the lightest color palette.

'light' | 'lighter' | 'lightest' | 'dark' | 'darker' | 'darkest'
'lightest'
layout layout

Layout (default: full-width) Secondary nav menus by default are always full-width, but can be set to fixed-width for special cases.

'fixed-width' | 'full-width'
'full-width'
visible visible

visible toggles on click (default: false)

boolean
false

Methods 0

None

Events 0

None

CSS Shadow Parts 3

Part Name Summary Description
full-width

container - <div> element, wrapper for full-width menus

fixed-width

container - <div> element, wrapper for fixed-width menus

sections

container - <div> element, wrapper for menu sections

CSS Custom Properties 3

CSS Property Description Default
--rh-navigation-secondary-menu-section-grid

grid-template-columns for menu sections

repeat(auto-fit, minmax(15.5rem, 1fr))
--rh-navigation-secondary-menu-section-grid-gap

grid-gap for menu sections

var(--rh-space-2xl, 32px)
--rh-navigation-secondary-menu-content-max-width

max-width for menu content

1136px

Design Tokens 8

Token Description Copy
--rh-color-text-primary-on-light

Primary text color for light theme

Full CSS Variable Permalink to this token
--rh-color-surface-lightest

Primary surface (light theme)

Full CSS Variable Permalink to this token
--rh-space-xl

24px spacer

Full CSS Variable Permalink to this token
--rh-font-size-body-text-md

16px font size

Full CSS Variable Permalink to this token
--rh-box-shadow-sm

Small box shadow

Full CSS Variable Permalink to this token
--rh-space-2xl

32px spacer

Full CSS Variable Permalink to this token
--rh-space-3xl

48px spacer

Full CSS Variable Permalink to this token
--rh-space-4xl

64px spacer

Full CSS Variable Permalink to this token

rh-navigation-secondary-overlay

Slots 0

None

Attributes 1

Attribute DOM Property Description Type Default
open open
boolean
false

Methods 0

None

Events 0

None

CSS Shadow Parts 0

None

CSS Custom Properties 1 1

CSS Property Description Default
--rh-navigation-secondary-overlay-z-index

z-index of the navigation-secondary-overlay

var(--rh-secondary-nav-overlay-z-index, -1)
CSS Property Description Default Reason
--rh-secondary-nav-overlay-z-index

-1

use --rh-navigation-secondary-overlay-z-index

Design Tokens 2

Token Description Copy
--rh-color-gray-90

Secondary surface (dark theme)

Full CSS Variable Permalink to this token
--rh-opacity-80

80% opacity

Full CSS Variable Permalink to this token
© 2026 Red Hat Deploys by Netlify