Breadcrumb

Breadcrumb is a secondary navigation component that shows the user’s current location inside a site hierarchy. In FrontAlign, breadcrumbs are CSS-only for static use — no JavaScript is required.

Breadcrumbs are useful in documentation sites, e-commerce category pages, admin dashboards, blog archives, and any interface where users move through multiple levels of content.


Getting Started

Apply .breadcrumb to an ordered or unordered list, then use .breadcrumb-item for each step. The current page should receive is-active.

<nav aria-label="Breadcrumb">
  <ol class="breadcrumb">
    <li class="breadcrumb-item">
      <a class="breadcrumb-link" href="/">Home</a>
    </li>
    <li class="breadcrumb-item">
      <a class="breadcrumb-link" href="/products">Products</a>
    </li>
    <li class="breadcrumb-item is-active">
      <a class="breadcrumb-link" href="/products/headphones" aria-current="page">Wireless Headphones</a>
    </li>
  </ol>
</nav>

Structure

The breadcrumb structure is intentionally small. Separators are injected automatically with CSS pseudo-elements, so you do not need to add separator markup between items.

ElementClass / AttributePurpose
Wrappernav + aria-label="Breadcrumb"Identifies the breadcrumb landmark for assistive technology.
List rootbreadcrumbBase class. Apply to an ol or ul.
Itembreadcrumb-itemRepresents each step in the page hierarchy.
Linkbreadcrumb-linkApplies breadcrumb link spacing, color, hover, and focus styling to each anchor.
Active itemis-activeMarks the current page and applies muted, non-interactive styling.
Current pagearia-current="page"Announces the active breadcrumb item as the current page for screen readers.

Separator Styles

Add a modifier class to the .breadcrumb root to change the separator style for the whole breadcrumb. Use is-arrow for arrow separators and is-dot for dot separators.

ClassSeparatorCharacterUse case
breadcrumbSlash/Default breadcrumb style for classic navigation paths.
is-arrowRight guillemetModern documentation, dashboards, and product flows.
is-dotDotCompact metadata-like trails or softer visual separation.

Slash Separator

The default breadcrumb uses a slash separator. No extra modifier class is required.

<ol class="breadcrumb">
  <li class="breadcrumb-item"><a class="breadcrumb-link" href="/">Home</a></li>
  <li class="breadcrumb-item"><a class="breadcrumb-link" href="/docs">Docs</a></li>
  <li class="breadcrumb-item is-active">
    <a class="breadcrumb-link" href="/docs/components" aria-current="page">Components</a>
  </li>
</ol>
<ol className="breadcrumb">
  <li className="breadcrumb-item"><a className="breadcrumb-link" href="/">Home</a></li>
  <li className="breadcrumb-item"><a className="breadcrumb-link" href="/docs">Docs</a></li>
  <li className="breadcrumb-item is-active">
    <a className="breadcrumb-link" href="/docs/components" aria-current="page">Components</a>
  </li>
</ol>

Arrow Separator

Use is-arrow on the .breadcrumb root to render the arrow separator.

<ol class="breadcrumb is-arrow">
  <li class="breadcrumb-item"><a class="breadcrumb-link" href="/">Home</a></li>
  <li class="breadcrumb-item"><a class="breadcrumb-link" href="/docs">Docs</a></li>
  <li class="breadcrumb-item is-active">
    <a class="breadcrumb-link" href="/docs/components" aria-current="page">Components</a>
  </li>
</ol>
<ol className="breadcrumb is-arrow">
  <li className="breadcrumb-item"><a className="breadcrumb-link" href="/">Home</a></li>
  <li className="breadcrumb-item"><a className="breadcrumb-link" href="/docs">Docs</a></li>
  <li className="breadcrumb-item is-active">
    <a className="breadcrumb-link" href="/docs/components" aria-current="page">Components</a>
  </li>
</ol>

Bullet Separator

Use is-bullet on the .breadcrumb root to render a small dot between items.

<ol class="breadcrumb is-bullet">
  <li class="breadcrumb-item"><a class="breadcrumb-link" href="/">Home</a></li>
  <li class="breadcrumb-item"><a class="breadcrumb-link" href="/docs">Docs</a></li>
  <li class="breadcrumb-item is-active">
    <a class="breadcrumb-link" href="/docs/components" aria-current="page">Components</a>
  </li>
</ol>

With Icons

Icons can be placed inside breadcrumb links. This is useful for a home item or dashboard entry.

<ol class="breadcrumb is-arrow">
  <li class="breadcrumb-item">
    <a class="breadcrumb-link" href="/">
      <svg
        xmlns="http://www.w3.org/2000/svg"
        width="14"
        height="14"
        fill="none"
        viewBox="0 0 24 24"
        stroke="currentColor"
        stroke-width="2"
        style="vertical-align: -2px; margin-right: 4px;"
      >
        <path
          stroke-linecap="round"
          stroke-linejoin="round"
          d="M3 12L12 3l9 9M5 10v9a1 1 0 001 1h4v-4h4v4h4a1 1 0 001-1v-9"
        />
      </svg>
      Home
    </a>
  </li>
  <li class="breadcrumb-item"><a class="breadcrumb-link" href="/products">Products</a></li>
  <li class="breadcrumb-item is-active">
    <a class="breadcrumb-link" href="/products/detail" aria-current="page">Detail</a>
  </li>
</ol>

Accessibility

Wrap breadcrumbs in a <nav> landmark and use aria-label="Breadcrumb". The active page should include aria-current="page".

<nav aria-label="Breadcrumb">
  <ol class="breadcrumb">
    <li class="breadcrumb-item"><a class="breadcrumb-link" href="/">Home</a></li>
    <li class="breadcrumb-item"><a class="breadcrumb-link" href="/blog">Blog</a></li>
    <li class="breadcrumb-item is-active">
      <a class="breadcrumb-link" href="/blog/post-1" aria-current="page">My First Post</a>
    </li>
  </ol>
</nav>
RuleReason
Use navCreates a navigation landmark for assistive technology.
Use aria-label="Breadcrumb"Makes the landmark purpose clear when multiple navigation regions exist.
Use aria-current="page"Announces the current page inside the breadcrumb trail.
Keep hierarchy orderedUse ol when the path order matters semantically.

Class Reference

Class / AttributeTypeDescription
breadcrumbBaseRoot class for the breadcrumb list.
breadcrumb-itemElementDefines each breadcrumb step.
breadcrumb-linkElementDefines the clickable anchor inside each breadcrumb item.
is-activeStateMarks the current page and applies disabled, muted styling.
is-arrowModifierChanges the separator to .
is-dotModifierChanges the separator to .
aria-label="Breadcrumb"AccessibilityLabels the breadcrumb navigation region.
aria-current="page"AccessibilityIdentifies the active/current page link.

FrontAlign