Top navigation
<gcds-top-nav>
Also called: site menu, navigation, navbar.
A top navigation is a horizontal list of page links.
-
GitHub -
Figma
Top navigation component preview
On this page
Coding and accessibility for top navigation
Add the top navigation to each page
- Implement the top navigation in the website layout so that it's present on every page.
- Opt to add a nav group with a second level of navigation by placing the
<gcds-nav-link>in a<gcds-nav-group>.
Use the top navigation with other components
- If using
breadcrumbs , align the content hierarchy in both set of links, so both components reflect a similar path through the site. - If you're using the
header component, add the top navigation directly to the header by passing a child element with theslot="menu"attribute into the header. This will place the top nav in the header after the language toggle, signature, and search slots.
In this section
label
The label attribute defines the label for the navigation landmark.
<gcds-top-nav label="Top navigation component preview">
<gcds-nav-link href="#" slot="home">GC Notify</gcds-nav-link>
<gcds-nav-link href="#">Why GC Notify</gcds-nav-link>
<gcds-nav-link href="#">Contact us</gcds-nav-link>
</gcds-top-nav>
menu-label (gcds-nav-group)
The menu-label attribute of the gcds-nav-group subcomponent defines the label for the nav group menu.
<gcds-top-nav label="Top navigation component preview">
<gcds-nav-link href="#" slot="home">GC Notify</gcds-nav-link>
<gcds-nav-link href="#">Why GC Notify</gcds-nav-link>
<gcds-nav-link href="#">Contact us</gcds-nav-link>
<gcds-nav-group menu-label="Features submenu" open-trigger="Features">
<gcds-nav-link href="#">Personalize messages</gcds-nav-link>
<gcds-nav-link href="#">Schedule messages</gcds-nav-link>
</gcds-nav-group>
</gcds-top-nav>
open-trigger (gcds-nav-group)
The open-trigger attribute of the gcds-nav-group subcomponent defines the label for the collapsed button trigger.
<gcds-top-nav label="Top navigation component preview">
<gcds-nav-link href="#" slot="home">GC Notify</gcds-nav-link>
<gcds-nav-link href="#">Why GC Notify</gcds-nav-link>
<gcds-nav-link href="#">Contact us</gcds-nav-link>
<gcds-nav-group menu-label="Features submenu" open-trigger="Features">
<gcds-nav-link href="#">Personalize messages</gcds-nav-link>
<gcds-nav-link href="#">Schedule messages</gcds-nav-link>
</gcds-nav-group>
</gcds-top-nav>
href (gcds-nav-link)
The href attribute of the gcds-nav-link subcomponent specifies the URL of the page the link goes to.
<gcds-top-nav label="Top navigation component preview">
<gcds-nav-link href="#" slot="home">GC Notify</gcds-nav-link>
<gcds-nav-link href="#">Why GC Notify</gcds-nav-link>
<gcds-nav-link href="#">Contact us</gcds-nav-link>
</gcds-top-nav>
alignment
The alignment attribute defines the alignment of the top navigation. The available options are:
start(default)end
<gcds-top-nav alignment="end" label="Top navigation component preview">
<gcds-nav-link href="#" slot="home">GC Notify</gcds-nav-link>
<gcds-nav-link href="#">Why GC Notify</gcds-nav-link>
<gcds-nav-link href="#">Contact us</gcds-nav-link>
</gcds-top-nav>
close-trigger (gcds-nav-group)
The close-trigger attribute of the gcds-nav-group subcomponent defines the label for the expanded button trigger.
<gcds-top-nav label="Top navigation component preview">
<gcds-nav-link href="#" slot="home">GC Notify</gcds-nav-link>
<gcds-nav-link href="#">Why GC Notify</gcds-nav-link>
<gcds-nav-link href="#">Contact us</gcds-nav-link>
<gcds-nav-group menu-label="Features submenu" open-trigger="Features" close-trigger="Close Features">
<gcds-nav-link href="#">Personalize messages</gcds-nav-link>
<gcds-nav-link href="#">Schedule messages</gcds-nav-link>
</gcds-nav-group>
</gcds-top-nav>
open (gcds-nav-group)
The open attribute of the gcds-nav-group subcomponent controls whether the nav group is expanded or not. By default, it is set to false.
<gcds-top-nav label="Top navigation component preview">
<gcds-nav-link href="#" slot="home">GC Notify</gcds-nav-link>
<gcds-nav-link href="#">Why GC Notify</gcds-nav-link>
<gcds-nav-link href="#">Contact us</gcds-nav-link>
<gcds-nav-group menu-label="Features submenu" open-trigger="Features" open>
<gcds-nav-link href="#">Personalize messages</gcds-nav-link>
<gcds-nav-link href="#">Schedule messages</gcds-nav-link>
</gcds-nav-group>
</gcds-top-nav>
current (gcds-nav-link)
The current attribute of the gcds-nav-link subcomponent indicates whether the page is current or not.
<gcds-top-nav label="Top navigation component preview">
<gcds-nav-link href="#" slot="home">GC Notify</gcds-nav-link>
<gcds-nav-link href="#">Why GC Notify</gcds-nav-link>
<gcds-nav-link current href="#">Contact us</gcds-nav-link>
</gcds-top-nav>
default
The default slot is for adding navigation groups and navigation links.
<gcds-top-nav label="Top navigation component preview">
<gcds-nav-link href="#" slot="home">GC Notify</gcds-nav-link>
<gcds-nav-link href="#">Why GC Notify</gcds-nav-link>
<gcds-nav-link href="#">Contact us</gcds-nav-link>
<gcds-nav-group menu-label="Features submenu" open-trigger="Features">
<gcds-nav-link href="#">Personalize messages</gcds-nav-link>
<gcds-nav-link href="#">Schedule messages</gcds-nav-link>
</gcds-nav-group>
</gcds-top-nav>
home
The home slot is for adding the home link or site title.
<gcds-top-nav label="Top navigation component preview">
<gcds-nav-link href="#" slot="home">GC Notify</gcds-nav-link>
</gcds-top-nav>
default (gcds-nav-group)
The default slot of the gcds-nav-group subcomponent is for adding the list of navigation links.
<gcds-top-nav label="Top navigation component preview">
<gcds-nav-group menu-label="Features submenu" open-trigger="Features">
<gcds-nav-link href="#">Personalize messages</gcds-nav-link>
<gcds-nav-link href="#">Schedule messages</gcds-nav-link>
</gcds-nav-group>
</gcds-top-nav>
default (gcds-nav-link)
The default slot of the gcds-nav-link subcomponent is for adding the navigation link content.
<gcds-nav-link href="#">GC Notify</gcds-nav-link>
Code builder
Generate an instance of the component you need by selecting its code properties.
-
Explore by choosing different code values to generate the instance you want.
-
Get the code and pull it into your environment.
-
Add any copy you need to the component (like text for a label).
Note: The code builder uses English for all code elements, which follows standard practice.
Help us improve
Have questions or a request? Give feedback on our contact form.
Something's wrong? Raise it through GitHub with an