Breadcrumb
Trail of links from the site root to the current page.
- Browsers
- Chrome 123+Firefox 121+Safari 17.5+
- Tier
- 0
- Bundle compressed
- 1.12 kB
- Forced layout budget
- 0 ms
- Axe budget
- 0
- SSR compatible
- Yes
- Built on
- elements/details
- Published contract
- Test harness
Playground
Breadcrumb
API
Breadcrumb.Root
| Prop | Type | Default | Description |
|---|---|---|---|
aria-label | string | "Breadcrumb" | Accessible name of the navigation landmark. |
render | ReactElement | ((props, state) => ReactElement) | — | Replace the rendered element while keeping behavior and accessibility wiring. |
Breadcrumb.List
| Prop | Type | Default | Description |
|---|---|---|---|
children | ReactNode | — | Breadcrumb items written by hand, as an alternative to items. |
items | BreadcrumbItemData[] | — | Data-driven entries, each with a key, a label and an optional href and current flag; required when maxItems is set. |
itemsAfterCollapse | number | 1 | Number of trailing items kept visible when the trail is collapsed. |
itemsBeforeCollapse | number | 1 | Number of leading items kept visible when the trail is collapsed. |
maxItems | number | — | Item count above which the middle of the trail collapses behind an expandable ellipsis. |
separator | ReactNode | — | Content rendered between items when the list is built from items. |
render | ReactElement | ((props, state) => ReactElement) | — | Replace the rendered element while keeping behavior and accessibility wiring. |
Breadcrumb.Item
| Prop | Type | Default | Description |
|---|---|---|---|
children | ReactNode | — | Content of one breadcrumb list item. |
render | ReactElement | ((props, state) => ReactElement) | — | Replace the rendered element while keeping behavior and accessibility wiring. |
Breadcrumb.Link
| Prop | Type | Default | Description |
|---|---|---|---|
children | ReactNode | — | Label of the link. |
current | boolean | false | Marks this entry as the current page and sets aria-current on it. |
href | string | — | Destination of the link; omit it to render a non-navigating entry. |
render | ReactElement | ((props, state) => ReactElement) | — | Replace the rendered element while keeping behavior and accessibility wiring. |
Breadcrumb.Separator
| Prop | Type | Default | Description |
|---|---|---|---|
children | ReactNode | "/" | Separator content, hidden from assistive technology. |
render | ReactElement | ((props, state) => ReactElement) | — | Replace the rendered element while keeping behavior and accessibility wiring. |
Breadcrumb.Ellipsis
| Prop | Type | Default | Description |
|---|
Keyboard
| Key | Action |
|---|---|
| Tab | Move focus to/from the control |
| Enter / Space | Activate when focused (button-like controls) |
Accessibility
Uses semantic HTML where possible. Inspect rendered markup in the playground — ARIA is added only when native elements are insufficient.
Styling hooks
data-disabled