Prototyper UI

Breadcrumb

A navigation trail showing the current page location

Loading...

Installation

pnpm dlx shadcn@latest add https://prototyper-ui.com/r/breadcrumb.json
npx shadcn@latest add https://prototyper-ui.com/r/breadcrumb.json
yarn dlx shadcn@latest add https://prototyper-ui.com/r/breadcrumb.json
bunx --bun shadcn@latest add https://prototyper-ui.com/r/breadcrumb.json

This will add the following files to your project:

  • components/ui/breadcrumb.tsx

Usage

import {
  Breadcrumb,
  BreadcrumbList,
  BreadcrumbItem,
  BreadcrumbLink,
  BreadcrumbSeparator,
  BreadcrumbPage,
} from "@/components/ui/breadcrumb";

<Breadcrumb>
  <BreadcrumbList>
    <BreadcrumbItem>
      <BreadcrumbLink href="/">Home</BreadcrumbLink>
    </BreadcrumbItem>
    <BreadcrumbSeparator />
    <BreadcrumbItem>
      <BreadcrumbPage>Current Page</BreadcrumbPage>
    </BreadcrumbItem>
  </BreadcrumbList>
</Breadcrumb>;

Anatomy

<Breadcrumb>
  <BreadcrumbList>
    <BreadcrumbItem>
      <BreadcrumbLink />
    </BreadcrumbItem>
    <BreadcrumbSeparator />
    <BreadcrumbItem>
      <BreadcrumbEllipsis />
    </BreadcrumbItem>
    <BreadcrumbSeparator />
    <BreadcrumbItem>
      <BreadcrumbPage />
    </BreadcrumbItem>
  </BreadcrumbList>
</Breadcrumb>
Sub-componentdata-slotPurposeRequired
BreadcrumbbreadcrumbRoot <nav> with aria-labelYes
BreadcrumbListbreadcrumb-listOrdered list of breadcrumb itemsYes
BreadcrumbItembreadcrumb-itemIndividual breadcrumb entryYes
BreadcrumbLinkbreadcrumb-linkClickable navigation linkNo
BreadcrumbPagebreadcrumb-pageCurrent page indicator (non-interactive)No
BreadcrumbSeparatorbreadcrumb-separatorVisual separator between itemsNo
BreadcrumbEllipsisbreadcrumb-ellipsisCollapsed items indicatorNo

Examples

With Ellipsis

Loading...

Styling

Data Slots

Use data-slot attributes to target specific parts of the breadcrumb:

Slot nameElement
breadcrumbRoot <nav> wrapper
breadcrumb-listThe <ol> list
breadcrumb-itemEach <li> item
breadcrumb-linkClickable <a> link
breadcrumb-pageCurrent page <span>
breadcrumb-separatorSeparator <li>
breadcrumb-ellipsisEllipsis indicator <span>

Customization Examples

/* Change separator color */
[data-slot="breadcrumb-separator"] {
  @apply text-foreground;
}
{
  /* Custom separator character */
}
<BreadcrumbSeparator>/</BreadcrumbSeparator>;

API Reference

Root navigation element with aria-label="breadcrumb".

Prop

Type

Extends React.ComponentProps<"nav">. All standard nav props are forwarded via ...props.

Ordered list container for breadcrumb items.

Prop

Type

Extends React.ComponentProps<"ol">. All standard ol props are forwarded via ...props.

Individual breadcrumb entry wrapping a link or page indicator.

Prop

Type

Extends React.ComponentProps<"li">. All standard li props are forwarded via ...props.

Clickable navigation link within a breadcrumb item.

Prop

Type

Extends React.ComponentProps<"a">. All standard anchor props are forwarded via ...props.

Current page indicator rendered as a non-interactive span.

Prop

Type

Extends React.ComponentProps<"span">. All standard span props are forwarded via ...props.

Visual separator between breadcrumb items. Defaults to a chevron icon.

Prop

Type

Extends React.ComponentProps<"li">. All standard li props are forwarded via ...props.

Collapsed items indicator showing a "more" icon.

Prop

Type

Extends React.ComponentProps<"span">. All standard span props are forwarded via ...props.

Accessibility

Keyboard Interactions

KeyAction
TabMoves focus between breadcrumb links

ARIA Attributes

  • Breadcrumb renders as a <nav> with aria-label="breadcrumb".
  • BreadcrumbPage has aria-current="page" to indicate the current location.
  • BreadcrumbSeparator has aria-hidden="true" to hide decorative separators from screen readers.

On this page