Malevich

Blocks/

Breadcrumb

Hierarchical nav with chevron separator.

Breadcrumb

Hierarchical navigation showing the user's location in a site or app. Uses <nav> + <ol> for semantic correctness. Separator is a chevron () drawn via CSS, so it does not appear in the accessibility tree.

When to use

If the hierarchy has only one level deep ("Home > Page"), prefer a back link or no breadcrumb at all.

Variants

Variant Class Use for
Default .breadcrumb Standard, subtle ink
Strong .breadcrumb.-strong Higher-contrast, accent current page

Anatomy

<nav class="breadcrumb" aria-label="Breadcrumb">
  <ol class="breadcrumb__list">
    <li class="breadcrumb__item">
      <a class="breadcrumb__link" href="/">Home</a>
    </li>
    <li class="breadcrumb__item">
      <a class="breadcrumb__link" href="/docs">Documentation</a>
    </li>
    <li class="breadcrumb__item" aria-current="page">Components</li>
  </ol>
</nav>

The current page is a plain <li> (not a link) with aria-current="page". Authors should NOT make the current page a link — it would navigate to itself.

Separator

A chevron () renders before every item except the first via CSS ::before. The character is selected for clarity and is the agreed v1.0 default (see the design decision recorded with this component).

The separator is decorative — being a pseudo-element, it does not appear in the accessibility tree. Screen readers read the list as a sequence of links + the current page.

Tokens used

From semantic tier

Accessibility

Edge cases

Do

Don't