Breadcrumb
Shows where the current page sits in the hierarchy and links back to its parents.
@zenoxai/ui/components/breadcrumb Markdown<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="#">Assets</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbLink href="#">Domains</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>acme.com</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>Usage
import {
Breadcrumb,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator,
} from "@zenoxai/ui/components/breadcrumb"
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="/assets">Assets</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>acme.com</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
Use a breadcrumb on detail pages two or more levels deep: an asset, an alert, a report. Every
level except the last is a BreadcrumbLink; the last is a BreadcrumbPage, which is not a
link. Put a BreadcrumbSeparator between items, not inside them.
BreadcrumbLink renders an <a>. To navigate with your router, render its link component
through render; the breadcrumb keeps its styles:
<BreadcrumbLink render={<Link to="/alerts" />}>Alerts</BreadcrumbLink>
Do not use a breadcrumb for the steps of a flow. A page one level below the shell navigation needs no breadcrumb: the Sidebar already shows where the user is.
Examples
Collapsed
On deep paths, replace the middle levels with BreadcrumbEllipsis. Keep the first level and
the last two.
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="#">Acme Corp</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbEllipsis />
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbLink href="#">Vulnerabilities</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>CVE-2024-3400</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>Custom separator
BreadcrumbSeparator renders a chevron by default. Pass an icon as children to replace it.
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="#">Reports</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator>
<SlashIcon />
</BreadcrumbSeparator>
<BreadcrumbItem>
<BreadcrumbPage>Monthly exposure, October 2026</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>Accessibility
Breadcrumbis a<nav aria-label="breadcrumb">around an ordered list. Pass a translatedaria-labelwhen the interface is not in English.BreadcrumbPagecarriesaria-current="page". Separators and the ellipsis are hidden from screen readers.- The ellipsis is decorative. If the hidden levels must stay reachable, put them in a
Dropdown Menu whose trigger is a real button with an
aria-label.
API reference
Generated from the TypeScript source. className, style and children are accepted everywhere and omitted below.
Breadcrumb
Breadcrumb shows where the current page sits in the hierarchy, as a trail of links back to its ancestors. Compose BreadcrumbList with a BreadcrumbItem per level: a BreadcrumbLink for each ancestor, a BreadcrumbSeparator between levels and a BreadcrumbPage for the current page.
No props of its own. Accepts the props of the element it renders.
BreadcrumbList
No props of its own. Accepts the props of the element it renders.
BreadcrumbItem
No props of its own. Accepts the props of the element it renders.
BreadcrumbLink
BreadcrumbLink is the link to an ancestor page; pass `render` to use the router's link component.
| Prop | Type | Default |
|---|---|---|
render | ReactElement<unknown, string | JSXElementConstructor<any>> | ComponentRenderFn<HTMLProps, {}>Allows you to replace the component's HTML element with a different tag, or compose it with another component. | - |
BreadcrumbPage
BreadcrumbPage is the current page, the last level: text marked aria-current="page", not a link.
No props of its own. Accepts the props of the element it renders.
BreadcrumbSeparator
BreadcrumbSeparator is the chevron between two levels, hidden from screen readers; pass children to replace the icon.
No props of its own. Accepts the props of the element it renders.
BreadcrumbEllipsis
BreadcrumbEllipsis stands in for collapsed middle levels. It is hidden from screen readers, so when it opens a menu of those levels, wrap it in a button with an aria-label.
| Prop | Type | Default |
|---|---|---|
label | stringAlready-translated text read by screen readers in place of the dots. | More |