Breadcrumb
Show the current location within a navigation hierarchy.
Installation
pnpm dlx shadcn@4.18.0 add @siteplane/breadcrumbComplete the one-time setup first. Registry JSON lists source files and dependencies.
For this page’s examples, also install:
pnpm dlx shadcn@4.18.0 add @siteplane/button @siteplane/menuUsage
import {
Breadcrumb,
BreadcrumbList,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbPage,
BreadcrumbSeparator,
} from "@/siteplane/components/breadcrumb";
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="#home">Workspace</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbLink href="#projects">Projects</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>Website</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>;Composition
Breadcrumb
└── BreadcrumbList
├── BreadcrumbItem → BreadcrumbLink or BreadcrumbPage
├── BreadcrumbSeparator
└── BreadcrumbItem → BreadcrumbEllipsisCustom separator
Pass children to replace the default chevron.
Collapsed path
BreadcrumbEllipsis is a decorative placeholder for omitted levels. If people need to reach them, use a labeled menu trigger as in the first example. Its trigger is a text Button with profile="inline" and profileTone="muted", which keeps the bare look and hover of the links.
API reference
| Prop | Type | Default | Description |
|---|---|---|---|
Breadcrumb | nav props | aria-label: "breadcrumb" | Navigation landmark; override the label for multiple trails. |
Breadcrumb | ol / li props | — | Ordered list and link or page item. |
Breadcrumb | useRender.ComponentProps<"a"> | a | href and native anchor props; render supports router links. |
Breadcrumb | span props | aria-current: "page" | Current location, not a link. Stays on one line and ends with an ellipsis when the trail has no room; plain text keeps its full value in title unless you pass one. |
Breadcrumb | ReactNode | ChevronRightIcon | Decorative list item with role presentation and aria-hidden. The default chevron mirrors in a right-to-left page. |
Breadcrumb | span props | MoreHorizontalIcon | Decorative omitted path indicator in the muted link color, not a button. Inside a menu trigger it turns to the link hover color on hover and while the menu is open. |
Usage notes
Keep separators as list children, outside BreadcrumbItem. Use real destination URLs in your application. These examples use fragment destinations to keep the preview local.
A trail wraps onto more lines where it has no room, and a long link wraps inside its level. The current page stays on one line and ends with an ellipsis instead. In a Dashboard Shell header, which is one line, the trail keeps one row: its links end with an ellipsis as well.
In a right-to-left page the levels run from right to left and the default chevron points to the left. A separator you pass as children keeps its own glyph.