Caprice LogoCaprice UI

Breadcrumb

Displays the path to the current resource using a hierarchy of links.

Installation

npx shadcn@latest add @caprice/breadcrumb

Usage

import * as Breadcrumb from "@/components/caprice-ui/breadcrumb"

Examples

Differences with shadcn/ui

If you're familiar with shadcn/ui, most patterns will carry over. This guide points out the differences so you can start using Caprice UI without surprises.

Key changes

Featureshadcn/uiCaprice UI
Component APIFlat exports (BreadcrumbLink)Namespace exports (Breadcrumb.Link)
CompositionasChild prop (Link only)render prop (all components)
PrimitiveNative HTML + Radix SlotBase UI useRender
Props typeReact.ComponentProps<'element'>useRender.ComponentProps<'element'>

Comparison Example

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

<Breadcrumb>
  <BreadcrumbList>
    <BreadcrumbItem>
      <BreadcrumbLink asChild>
        <Link href="/">Home</Link>
      </BreadcrumbLink>
    </BreadcrumbItem>
    <BreadcrumbSeparator />
    <BreadcrumbItem>
      <BreadcrumbPage>Current</BreadcrumbPage>
    </BreadcrumbItem>
  </BreadcrumbList>
</Breadcrumb>
Caprice UI
import * as Breadcrumb from '@/components/caprice-ui/breadcrumb'

<Breadcrumb.Root>
  <Breadcrumb.List>
    <Breadcrumb.Item>
      <Breadcrumb.Link render={<Link href="/" />}>Home</Breadcrumb.Link>
    </Breadcrumb.Item>
    <Breadcrumb.Separator />
    <Breadcrumb.Item>
      <Breadcrumb.Page>Current</Breadcrumb.Page>
    </Breadcrumb.Item>
  </Breadcrumb.List>
</Breadcrumb.Root>

Accessibility

This component follows the WAI-ARIA Breadcrumb Pattern:

  • The breadcrumb trail is contained within a navigation landmark region (<nav>).
  • The landmark region is labelled via aria-label="breadcrumb".
  • The current page is marked with aria-current="page" to indicate it's not a navigable link.
  • Separators use role="presentation" and aria-hidden="true" to hide them from assistive technologies.
  • The ellipsis includes a visually hidden "More" label for screen readers.