Breadcrumb

A trail of links from the top of a site down to the current page. It tells people where they are and gives them a one-click way back up.

Preview

Separator

When to use

  • In products and docs with three or more levels of hierarchy.
  • Above a page title, where people land from search and need to know the context.

Reach for something else

  • For a flat site of one or two levels: the page title and main navigation already say where you are.
  • For the steps of a flow: that is a Dot Stepper or a stepper, not a breadcrumb.

Anatomy

  1. 1

    Trail

    A list of links, left to right, from the root to the current page.

  2. 2

    Link

    Secondary text colour; darkens and underlines on hover.

  3. 3

    Separator

    A slash, a chevron or a dot between items. Decorative.

  4. 4

    Ellipsis

    Replaces the middle of a long trail; opens the hidden levels when pressed.

  5. 5

    Current page

    The last item, in the primary text colour, not a link.

States

Default

Every level visible.

Collapsed

The root and the last two levels show; the middle folds into an ellipsis.

Expanded

After the ellipsis is pressed, the full trail shows and wraps if it needs to.

Hover

The link darkens and underlines.

Focus

A ring around the link.

Accessibility

  • The trail is a <nav> with aria-label="Breadcrumb", holding an ordered list.
  • The current page carries aria-current="page".
  • Separators are drawn in CSS or marked aria-hidden, so screen readers do not read out slashes.
  • The ellipsis is a <button> with an aria-label such as "Show hidden levels".

Source

The Breadcrumb is in the Figma library today, with every variant and state above. Its React and Vue source ships with the code library, free, and this page gets the install line, the props and the code the day it does.

Tell me when the source landsand you'll get 10% off your first licence if you ever want the full library.

See it in a block

All documentation