Skip to content
Documentation

Navigation

Nav

Navigation links, horizontal in a header or vertical in a sidebar.

CSS only components/nav.css

Horizontal and vertical

Horizontal and vertical
<nav class="dsgn-nav" aria-label="Main example"><a class="dsgn-nav-link" href="#nav" aria-current="page">Features</a><a class="dsgn-nav-link" href="#nav">Pricing</a><a class="dsgn-nav-link" href="#nav">FAQ</a></nav>
<nav class="dsgn-nav" data-orientation="vertical" aria-label="App example" style="max-inline-size: 16rem"><span class="dsgn-nav-label">Workspace</span>
  <a class="dsgn-nav-link" href="#nav"><span class="dsgn-icon" aria-hidden="true">home</span>Overview</a><a class="dsgn-nav-link" href="#nav" aria-current="page"><span class="dsgn-icon" aria-hidden="true">receipt_long</span>Invoices<span class="dsgn-nav-meta">12</span></a></nav>

Usage

Links look like ghost neutral buttons: same height (Density), same radius, muted until hovered; the current page is base/text on neutral-subtle with a filled icon. Vertical: full width, text starts at the left edge, optional group labels (.dsgn-nav-label). text: no fill; muted links, the current one in full text colour and semibold. underline: a 2 px line under the whole link (accent for the current page, neutral on hover, sliding in); inside .dsgn-header it sits on the header's bottom edge.

Details

Classes
.dsgn-nav .dsgn-nav-link .dsgn-nav-meta .dsgn-icon .dsgn-nav-label
Tokens used
--dsgn-accent-solid --dsgn-border-strong --dsgn-control-font-size --dsgn-control-gap --dsgn-control-line-height --dsgn-control-pad-x --dsgn-control-pad-y --dsgn-duration --dsgn-duration-fast --dsgn-ease --dsgn-focus --dsgn-focus-width --dsgn-font-sans --dsgn-font-size-caption --dsgn-font-weight-medium --dsgn-font-weight-regular --dsgn-font-weight-semibold --dsgn-line-height-caption --dsgn-neutral-subtle --dsgn-neutral-subtle-hover --dsgn-radius-m --dsgn-space-12 --dsgn-space-2 --dsgn-space-4 --dsgn-space-8 --dsgn-text --dsgn-text-muted
In Figma
Nav link
Import alone
dsgn.systems/components/nav.css