Skip to content
Site volume
Colourway

Components

Breadcrumbs

The trail from the top of the site to the current page; on phones, one step back.

  • Experimental
  • Reading layer
  • Server component
  • Since 0.9.0
  • Press check
Import from@maxgrits/overprint-react/breadcrumbs
On this page

Breadcrumbs prints the trail to the current page in the label role: ancestors as underlined links, the current page last as plain text, 10 px play glyphs between them. Below the sm container width only the parent shows, as a back step. Crumbs print in the ink, never the secondary ink (D-N104).

Example#

Look of this example
Live render of examples/breadcrumbs/basic.tsx

Usage#

Use breadcrumbs on pages that sit deep in a hierarchy, such as a case study inside Work: the trail from the top section to here. Top-level pages need none.

  • Items. Ancestors are links; the current page is last, as plain text with aria-current="page".
  • Phones. Below the sm width only the parent shows, as a back step.

Anatomy#

The parts of examples/breadcrumbs/basic.tsx, numbered:
  1. Linkdata-mk-part="link"
  2. SeparatorA 10 px play glyph, hidden from assistive tech..mk-breadcrumbs-separator
  3. Currentdata-mk-part="current"

Volume#

Reading layer: identical at every volume.

  • Quiet

    Docs, forms, legal and long reads. Flat inks, no art in motion.

  • Studio

    The site default. Art on its own plates, one display moment per view.

  • Press

    Hero moments, covers and campaigns. Halftone fields and the second ink.

  • Rave

    Launches, posters and the 404. Every ink, and the words still win.

Content#

  • Use the pages' own titles, shortened only if they are long.
  • Never put the site's name or "Home" first when the logo already links home.

Do and don't#

Do

The real sections, in order.

Don't

Filler levels that are not pages.

Each crumb should be a page someone can visit. Invented levels make the trail longer without making it useful.

Accessibility#

  • A nav named "Breadcrumb" around an ordered list; the current page carries aria-current="page" and is not a link.
  • The separators are hidden from assistive tech and mirror under dir="rtl".
  • Links are underlined, so they read as links without colour.
KeysWhat happens
TabMoves through the ancestor links; the current page is not a stop

The colour pairs it prints, with their contrast on both papers:

TextSurfaceRoleBoneNight
--mk-text--mk-surfaceuinot in this looknot in this look

Process at Studio, normal contrast. Every look: the press check.

Props#

PropTypeDefaultDescription
items requiredreadonly BreadcrumbItem[]noneAncestors first, the current page last.
labelstring"Breadcrumb"The landmark's name (default "Breadcrumb").

Plus 279 React and DOM attributes passed through to the root element (className, ref, aria-*, event handlers and the rest). Generated from BreadcrumbsProps in packages/overprint-react/src/reading/breadcrumbs/breadcrumbs.tsx.

Tokens#

System tokens (5)

Scanned from its CSS at build and checked against its registry entry.

Changelog#

Arrived in 0.9.0.

0.9.024 October 2026

  • MinorreactBreadcrumbs, Pagination (with paginationRange), Count, ProgressBar (bar, segments, indeterminate), Avatar and AvatarGroup, Tick, EmptyState, Kbd, Skeleton and Loader. Read the whole entry