Skip to content
SproutAceve · v3.25.2
Get started
Overview What is your role? Connect to Sprout MCP reference Adopting Sprout
Foundations
Brand & logos Color Typography Spacing & layout Elevation Iconography Accessibility
Components
Overview Buttons Inputs & forms Numeric input Data grid Ribbon toolbar Navigation Cards Alert Avatar Badge Breadcrumb Dialog Tabs Floating tabs Menu
Practice
Interaction & motion Voice & content Product patterns
Artificial Intelligence
AI patterns AI transparency & disclosure AI disclosure label
People & ethics
Design principles Personas Trust and ethics Meet the makers
Playground
Build the systemplay Tower of tokensplay
Behind the system
How it works Changelogv3.25 Roadmap Contribute
Done
Components

Breadcrumb.

A breadcrumb shows where the current page sits in the hierarchy, and lets people move back up it. It earns its space when someone arrives deep in the product — from a link, a search result or a notification — and needs to know where they are. It supplements the sidenav; it never replaces it.

Levels

The trail always starts at the root and ends on the current page, which is not a link. Breadcrumbs show the hierarchy, never the route someone took to get there — that is what the browser's Back button is for.

  1. Home
  2. Projects
Levels = 2
  1. Home
  2. Projects
  3. Kv. Almen 4
Levels = 3
  1. Home
  2. Projects
  3. Kv. Almen 4
  4. Quotes
  5. Quote 1042
Levels = 5
Levels
Trail
When to use
1
Home
Nothing to show. A one-level hierarchy needs no breadcrumb — mark the section in the sidenav instead.
2
Home › Projects
Borderline. NN/g: at one or two levels a breadcrumb adds little. Use it only if people arrive here directly.
3
Home › Projects › Kv. Almen 4
The common case. Enough depth that people lose track of where they are.
4
… › Quotes
Deep records. Every step must be a real page someone can open.
5
… › Quote 1042
The maximum. Beyond five, collapse the middle rather than adding a sixth level.

States

Projects
Link — every ancestor. Opens that page.
Projects
Hover — currently identical to Link. Needs an underline.
Projects
Current — the last item. Never a link.

Anatomy

  1. Home
  2. Projects
  3. Kv. Almen 4
  4. Quote 1042
Part
Spec
Trail
One row, 20 px high, 8 px between every element. It never wraps.
Item
Manrope Regular 14 px. An optional 14 px leading icon, used only on the root item.
Separator
A 14 px chevron-right, decorative — hidden from screen readers.
Root
Always the first item, labelled Home with the home icon.
Current page
The last item. Grey #595959, not a link, and never truncated to nothing.
Link colour
#9676B8 today. It measures 3.78:1 on white — below the 4.5:1 floor. See the notes.
Overflow
No collapsed state exists yet. Beyond five levels the middle should become an ellipsis item.

Do & don't

  1. Home
  2. Projects
  3. Kv. Almen 4
  4. Quote 1042

Do — show the position in the hierarchy, ending on the current page — which is never a link.

  1. Home
  2. Quote 1042
  3. Search results
  4. Projects

Don't — show where the person has been. A breadcrumb is not the Back button, and a history trail repeats itself.

  1. Home
  2. Projects
  3. Kv. Almen 4

Do — start at the root and make every step a page someone can actually open.

‹ Back to projects

Don't — use it as the only way back. “Back” says nothing about where you are, and the trail is not a substitute for the sidenav.

  1. Home
  2. …
  3. Quotes
  4. Quote 1042

Do — collapse the middle when the trail runs long. The root and the last two levels carry the wayfinding.

  1. Home
  2. Projects
  3. Kv. Almen 4, Malmö
  4. Quotes and estimates
  5. Quote 1042 — revision 3

Don't — let the trail wrap onto two lines. It stops reading as a chain and pushes the page title down.

Accessibility

Property
Notes
nav + aria-label
Wrap the trail in a nav element labelled aria-label="Breadcrumb" so it is a navigation landmark.
Ordered list
The items are an ol. The order is the hierarchy, and screen readers announce the position in it.
aria-current="page"
On the last item. It is text, not a link — never a link that does nothing.
Separators
Decorative. aria-hidden="true", so the chevron is not read out between every step.
Link colour
#9676B8 measures 3.78:1 on white and fails AA. Underline the links as well, so colour is not the only signal.
Hover and focus
Hover is currently identical to Link. Both need a visible change, and focus needs a ring.
Target size
Items are 20 px high. Anywhere the trail is used on touch, the row needs padding to reach 44 px.

Props (React)

type BreadcrumbProps = {
  items: BreadcrumbItem[];   // root first, current page last
  maxItems?: number;         // proposed — collapses the middle to an ellipsis
  label?: string;            // aria-label, defaults to "Breadcrumb"
};

type BreadcrumbItem = {
  label: string;             // the page title, not the URL segment
  href?: string;             // omitted on the last item, which renders as text
  icon?: IconName;           // root item only
};
← PreviousBadgeNext →Dialog
Sprout · Aceve Design System · v3.25.2
Figma library GitLabReleases