Breadcrumb
Displays the path to the current resource using a hierarchy of links.
Installation
npx vayu-ui init # Add Theme CSS if not addednpx vayu-ui add breadcrumbnpx vayu-ui add -t breadcrumb # with test case needsUsage
Breadcrumb Example
Basic
Custom Separator
Collapsed
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="/">Home</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbLink href="/components">Components</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>Breadcrumb</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="/">Home</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator>/</BreadcrumbSeparator>
<BreadcrumbItem>
<BreadcrumbLink href="/docs">Docs</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator>/</BreadcrumbSeparator>
<BreadcrumbItem>
<BreadcrumbPage>Breadcrumb</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="/">Home</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbEllipsis />
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbLink href="/components">Components</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>Breadcrumb</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>Anatomy
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="/" />
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbEllipsis />
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage />
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>Accessibility
Breadcrumbrenders a<nav>witharia-label="breadcrumb"for landmark identificationBreadcrumbListuses a semantic<ol>element to convey item orderingBreadcrumbLinkprovides a visible focus ring (focus-visible:ring-2) and meets WCAG 2.2 AA minimum target size (24x24px) viapy-2paddingBreadcrumbPagesetsaria-current="page"to indicate the current locationBreadcrumbSeparatoris hidden from assistive technology viarole="presentation"andaria-hidden="true"BreadcrumbEllipsisis hidden from assistive technology viarole="presentation"andaria-hidden="true"- All interactive elements (links) are keyboard-navigable using standard Tab key behavior
Screen reader behavior
A screen reader announces the breadcrumb navigation landmark and reads each link in order:
"breadcrumb navigation, list, 3 items, Home link, Components link, Breadcrumb current page"
The separator between items is not announced. The final item is identified as the current page via aria-current="page", so the user knows their location within the hierarchy.
Component Folder Structure
Breadcrumb/
├── Breadcrumb.tsx
├── BreadcrumbEllipsis.tsx
├── BreadCrumbItem.tsx
├── BreadCrumbLink.tsx
├── BreadCrumbList.tsx
├── BreadCrumbPage.tsx
├── BreadCrumbSeparator.tsx
├── index.ts
├── types.ts
└── README.mdProps
Breadcrumb
| Prop | Type | Default | Description |
|---|---|---|---|
className | string | - | Additional CSS classes |
Extends React.ComponentPropsWithoutRef<"nav">.
BreadcrumbList
| Prop | Type | Default | Description |
|---|---|---|---|
className | string | - | Additional CSS classes |
Extends React.OlHTMLAttributes<HTMLOListElement>.
BreadcrumbItem
| Prop | Type | Default | Description |
|---|---|---|---|
className | string | - | Additional CSS classes |
Extends React.LiHTMLAttributes<HTMLLIElement>.
BreadcrumbLink
| Prop | Type | Default | Description |
|---|---|---|---|
href | string | - | Link destination |
className | string | - | Additional CSS classes |
children | ReactNode | - | Link content |
Extends LinkProps from next/link.
BreadcrumbPage
| Prop | Type | Default | Description |
|---|---|---|---|
className | string | - | Additional CSS classes |
children | ReactNode | - | Current page text |
Extends React.HTMLAttributes<HTMLSpanElement>.
BreadcrumbSeparator
| Prop | Type | Default | Description |
|---|---|---|---|
children | ReactNode | <ChevronRight /> | Custom separator icon or text |
className | string | - | Additional CSS classes |
Extends React.LiHTMLAttributes<HTMLLIElement>.
BreadcrumbEllipsis
| Prop | Type | Default | Description |
|---|---|---|---|
className | string | - | Additional CSS classes |
Extends React.HTMLAttributes<HTMLSpanElement>.