Navigation

Breadcrumbs

Navigation breadcrumbs showing the current page's location within a hierarchy

Completeness: styles-sufficient

The stylesheet is the whole component. There is no keyboard map beyond what the native element already does and nothing sets state at runtime that the CSS keys on, so a CSS-only port reproduces it.

Import

import { Breadcrumbs } from '@blakeui/react';

Usage

"use client";

import {Breadcrumbs} from "@blakeui/react";

export default function BreadcrumbsBasic() {

Anatomy

Import the Breadcrumbs component and access all parts using dot notation.

import { Breadcrumbs } from '@blakeui/react';

export default () => (
  <Breadcrumbs>
    <Breadcrumbs.Item href="#">Home</Breadcrumbs.Item>
    <Breadcrumbs.Item href="#">Category</Breadcrumbs.Item>
    <Breadcrumbs.Item>Current Page</Breadcrumbs.Item>
  </Breadcrumbs>
)
"use client";

import {Breadcrumbs} from "@blakeui/react";

export default function BreadcrumbsLevel2() {
"use client";

import {Breadcrumbs} from "@blakeui/react";

export default function BreadcrumbsLevel3() {

Custom Separator

"use client";

import {Breadcrumbs} from "@blakeui/react";

export default function BreadcrumbsCustomSeparator() {

Disabled State

"use client";

import {Breadcrumbs} from "@blakeui/react";

export default function BreadcrumbsDisabled() {

Custom Render Function

"use client";

import {Breadcrumbs} from "@blakeui/react";

export function CustomRenderFunction() {

Styling

Passing Tailwind CSS classes

import { Breadcrumbs } from '@blakeui/react';

function CustomBreadcrumbs() {
  return (
    <Breadcrumbs className="gap-2">
      <Breadcrumbs.Item href="#" className="text-blue-600">
        Home
      </Breadcrumbs.Item>
      <Breadcrumbs.Item>Current</Breadcrumbs.Item>
    </Breadcrumbs>
  );
}

Customizing the component classes

To customize the Breadcrumbs component classes, you can use the @layer components directive.
Learn more.

A worked example is in Styling.

blakeUI follows the BEM methodology to ensure component variants and states are reusable and easy to customize.

CSS Classes

The Breadcrumbs component uses these CSS classes (View source styles):

Base Classes

  • .breadcrumbs - Base breadcrumbs container
  • .breadcrumbs__item - Individual breadcrumb item wrapper
  • .breadcrumbs__link - Breadcrumb link element
  • .breadcrumbs__separator - Separator icon between items

State Classes

  • .breadcrumbs__link[data-current="true"] - Current page indicator (not a link)

Interactive States

The component supports both CSS pseudo-classes and data attributes for flexibility:

  • Current: [data-current="true"] on link (indicates current page)
  • Hover: Link elements support standard hover states
  • Disabled: isDisabled prop disables all links

API Reference

PropTypeDefaultDescription
separatorReactNodechevron-right iconCustom separator between breadcrumb items
isDisabledbooleanfalseWhether all breadcrumb links are disabled
classNamestring-Additional CSS classes
childrenReactNode-The breadcrumb items
renderDOMRenderFunction<keyof React.JSX.IntrinsicElements, undefined>-Overrides the default DOM element with a custom render function
PropTypeDefaultDescription
hrefstring-The URL to link to (omit for current page)
classNamestring-Additional CSS classes
childrenReactNode | RenderFunction-Item content or render function
renderDOMRenderFunction<keyof React.JSX.IntrinsicElements, BreadcrumbRenderProps>-Overrides the default DOM element with a custom render function

Accessibility

Breadcrumbs uses React Aria Components' Breadcrumbs primitive, which provides:

  • Proper ARIA attributes for navigation landmarks
  • Current page indication via aria-current="page"
  • Keyboard navigation support
  • Screen reader announcements for navigation context

The last breadcrumb item (without href) automatically becomes the current page indicator.

On this page