Shadcn Breadcrumb
React breadcrumb for docs and store category trails. Built with TypeScript and Tailwind CSS for Next.js using Base UI — Slot links, custom separators, collapsed paths.
A breadcrumb is the path from home to the page you are on. Ancestors are links; the last item is BreadcrumbPage. Use it on docs, store categories, and nested resources where the URL alone is not enough to scan.
Looking for a neobrutalism version for shadcn?
Same breadcrumb, thicker borders. The NeoBrutalism breadcrumb is the kit if you want that look.
Usage
import {
Breadcrumb,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator,
} from "@/components/ui/breadcrumb"<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="/">Home</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbLink href="/components">Components</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>Breadcrumb</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>The last item is BreadcrumbPage. render={<Link href="…" />} on BreadcrumbLink for your router Link.
Composition
Basic
Home, a parent, the current page.
Custom separator
Pass children to BreadcrumbSeparator — a slash, a DotIcon, anything.
Dropdown
Compose BreadcrumbItem with a DropdownMenu for siblings or hidden ancestors.
Collapsed
BreadcrumbEllipsis stands in for the middle when the trail is too long.
Link component
render={<Link href="…" />} on BreadcrumbLink so Next.js Link is the actual <a>.
RTL
Wrap with DirectionProvider and dir="rtl". Copy in Arabic; DotIcon does not flip.
API
Breadcrumb is a nav with aria-label="breadcrumb". BreadcrumbList is an ol. Items and separators are lis. BreadcrumbPage is a span with aria-current="page".
BreadcrumbLink
Prop
Type
BreadcrumbSeparator
Prop
Type
Notes
Don't nest two links
render={<Link href="…" />} on BreadcrumbLink. A href on the crumb plus a Next.js Link child is two <a>s.
Current page is BreadcrumbPage, not a link.
With other components
Hidden ancestors in a menu
ButtonGhost trigger for ellipsis
PaginationSiblings, not ancestors
Navigation MenuThe site header
SidebarVertical docs tree
SheetFull trail on phones
Questions
Related
Was this page helpful?
Sign in to leave feedback.
Badge
React badge for status, counts, and labels. Built with TypeScript and Tailwind CSS for Next.js using Base UI — six variants, icons, and render links on a span.
Bubble
React chat bubble for sent and received messages. Built with TypeScript and Tailwind CSS for Next.js using Base UI — seven variants, alignment, grouping, and reactions.