1. Docs
  2. Components
  3. Breadcrumb

Breadcrumb

Breadcrumbs display a hierarchy of links to the current page or resource in an application.

  1. Docs
  2. Components
  3. Breadcrumb

Installation

Copy and paste the following code into your project.

Update the import paths to match your project setup.

Usage

Single import

import { Breadcrumb } from "~/components/ui/breadcrumb";
<Breadcrumb.Root>
  <Breadcrumb.Item>
    <Breadcrumb.Link />
  </Breadcrumb.Item>
  <Breadcrumb.Separator />
  <Breadcrumb.Item>
    <Breadcrumb.Ellipsis />
  </Breadcrumb.Item>
  <Breadcrumb.Separator />
  <Breadcrumb.Item>
    <Breadcrumb.Page />
  </Breadcrumb.Item>
</Breadcrumb.Root>

Multiple imports

import {
  BreadcrumbRoot,
  BreadcrumbItem,
  BreadcrumbLink,
  BreadcrumbSeparator,
  BreadcrumbEllipsis,
  BreadcrumbPage,
} from "~/components/ui/breadcrumb";
<BreadcrumbRoot>
  <BreadcrumbItem>
    <BreadcrumbLink />
  </BreadcrumbItem>
  <BreadcrumbSeparator />
  <BreadcrumbItem>
    <BreadcrumbEllipsis />
  </BreadcrumbItem>
  <BreadcrumbSeparator />
  <BreadcrumbItem>
    <BreadcrumbPage />
  </BreadcrumbItem>
</BreadcrumbRoot>

Examples

Default

  1. Docs
  2. Components
  3. Breadcrumb

Custom Separator

Use a custom component as children for <BreadcrumbSeparator />{:tsx} to create a custom separator.

  1. Home
  2. Components
  3. Breadcrumb
import { Breadcrumb } from "~/components/ui/breadcrumb";
import { Icons } from "~/components/ui/icons";
 
<Breadcrumb.Root>
  {/* ... */}
  <Breadcrumb.Separator>
    <Icons.Slash className="size-4" />
  </Breadcrumb.Separator>
  {/* ... */}
</Breadcrumb.Root>;

You can compose <BreadcrumbItem />{:tsx} with a <DropdownMenu />{:tsx} to create a dropdown in the breadcrumb.

  1. Docs
  2. Breadcrumb
import { Button } from "react-aria-components";
import { Breadcrumb } from "~/components/ui/breadcrumb";
import { DropdownMenu } from "~/components/ui/dropdown-menu";
import { LinkStyles } from "~/components/ui/link";
import { Popover } from "~/components/ui/popover";
 
<Breadcrumb.Root>
  {/* ... */}
  <Breadcrumb.Item>
    <DropdownMenu.Root>
      <Button className={LinkStyles({ variant: "default" })}>Components</Button>
 
      <Popover.Content>
        <Popover.Arrow />
 
        <DropdownMenu.Content>
          <DropdownMenu.Item>Documentation</DropdownMenu.Item>
          <DropdownMenu.Item>Themes</DropdownMenu.Item>
          <DropdownMenu.Item>GitHub</DropdownMenu.Item>
        </DropdownMenu.Content>
      </Popover.Content>
    </DropdownMenu.Root>
  </Breadcrumb.Item>
  {/* ... */}
</Breadcrumb.Root>;

Collapsed

There's a <BreadcrumbEllipsis />{:tsx} component to show a collapsed state when the breadcrumb is too long.

  1. Home
  2. Components
  3. Breadcrumb
import { Breadcrumb } from "~/components/ui/breadcrumb";
 
<Breadcrumb.Root>
  {/* ... */}
  <Breadcrumb.Item>
    <Breadcrumb.Ellipsis className="size-4" />
  </Breadcrumb.Item>
  {/* ... */}
</Breadcrumb.Root>;