Skip to main content
Cayuse Design System Lato · 4pt grid · WCAG 2.1 AA

Components · Navigation

Breadcrumb

Shows where the current view sits in the product’s hierarchy, and lets the user climb back up it. Part of the Common Header pattern.

Figma source: Breadcrumb ↗

Examples

Breadcrumb trail
html
<nav class="cds-breadcrumb" aria-label="Breadcrumb">
  <ol class="cds-breadcrumb__list">
    <li><a class="cds-breadcrumb__link" href="/sp">Sponsored Projects</a></li>
    <li aria-hidden="true" class="cds-breadcrumb__separator">/</li>
    <li><a class="cds-breadcrumb__link" href="/sp/proposals">Proposals</a></li>
    <li aria-hidden="true" class="cds-breadcrumb__separator">/</li>
    <li><span class="cds-breadcrumb__current" aria-current="page">Budget</span></li>
  </ol>
</nav>

Figma properties

PropertyValuesNotes
PartLink · Text · SeparatorThe three atoms the trail is built from.
StateDefault · FocusApplies to link parts.
Site Level / Breadcrumb EndtextIntermediate level labels and the final segment.
1 – 4booleanWhich levels are shown on the assembled component.
Original Figma description & what changed

From Figma: Breadcrumbs are used to indicate to the user where they are in the Cayuse app.

What changed: Kept the meaning and added the half the original leaves out: a breadcrumb is not only an indicator, it is a control — the levels above the current one are links, and that is the point of it. Also added the relationship with Page Heading, since the Figma annotations note the two must not repeat the same text.

Usage

The Page Heading component carries a note worth repeating here: “Only have breadcrumb end if no Page Title — the Page Title and breadcrumb end would be the same text.”

When to use it

  • Use where the product has real hierarchy more than two levels deep.
  • Make every level except the last a link.
  • Mark the current page with aria-current="page" and do not link it.
  • Drop the final segment when the Page Title directly beneath already says it.

When not to use it

  • Do not use as a substitute for the browser’s Back button — a breadcrumb shows structure, not history.
  • Do not include a breadcrumb on a flat, single-level view.
  • Do not truncate the middle of the trail; if it is too long, the hierarchy is too deep.
  • Do not repeat the page title as the last crumb and as the heading.

Accessibility

  • Wrap in <nav aria-label="Breadcrumb"> so it can be found and skipped as a landmark.
  • Use an ordered list — the order is meaningful, and the list gives screen-reader users a count of the levels.
  • Separators are decorative: aria-hidden="true". Otherwise the trail is read as “Proposals slash 24-0117 slash”.
  • Mark the current item with aria-current="page", not by styling alone.

Tokens consumed

TokenApplied toResolves to
--breadcrumb-linkLink segments--primary-brand-color → #0076b6
--breadcrumb-textCurrent segment--color-black
--breadcrumb-separatorSeparator glyph--color-gray-500