Skip to content

Breadcrumb

Navigation breadcrumb trail showing hierarchical location.

import { Breadcrumb } from 'asterui'

Basic Breadcrumb

Simple breadcrumb navigation.

import { Breadcrumb } from 'asterui'

function App() {
  return (
      <Breadcrumb>
        <Breadcrumb.Item href="/">Home</Breadcrumb.Item>
        <Breadcrumb.Item href="/documents">Documents</Breadcrumb.Item>
        <Breadcrumb.Item>Add Document</Breadcrumb.Item>
      </Breadcrumb>
    )
}

export default App

With Icons

Breadcrumb with icons.

import { Breadcrumb } from 'asterui'
import { FolderIcon, DocumentTextIcon } from '@aster-ui/icons'

function App() {
  return (
      <Breadcrumb>
        <Breadcrumb.Item href="/" icon={<FolderIcon size="sm" />}>
          Home
        </Breadcrumb.Item>
        <Breadcrumb.Item href="/documents" icon={<FolderIcon size="sm" />}>
          Documents
        </Breadcrumb.Item>
        <Breadcrumb.Item icon={<DocumentTextIcon size="sm" />}>
          Add Document
        </Breadcrumb.Item>
      </Breadcrumb>
    )
}

export default App

Custom Separator

Use a string or React node as separator.

import { Breadcrumb } from 'asterui'
import { ChevronRightIcon } from '@aster-ui/icons'

function App() {
  return (
      <div className="space-y-4">
        <Breadcrumb separator="/">
          <Breadcrumb.Item href="/">Home</Breadcrumb.Item>
          <Breadcrumb.Item href="/products">Products</Breadcrumb.Item>
          <Breadcrumb.Item>Details</Breadcrumb.Item>
        </Breadcrumb>
        <Breadcrumb separator={<ChevronRightIcon size="sm" />}>
          <Breadcrumb.Item href="/">Home</Breadcrumb.Item>
          <Breadcrumb.Item href="/products">Products</Breadcrumb.Item>
          <Breadcrumb.Item>Details</Breadcrumb.Item>
        </Breadcrumb>
      </div>
    )
}

export default App

Data-Driven

Use items prop for data-driven breadcrumbs.

import { Breadcrumb } from 'asterui'

function App() {
  return (
      <Breadcrumb
        items={[
          { title: 'Home', href: '/' },
          { title: 'Products', href: '/products' },
          { title: 'Category', href: '/products/category' },
          { title: 'Item Details' },
        ]}
      />
    )
}

export default App

Max Width with Scroll

Breadcrumb with overflow scrolling.

import { Breadcrumb } from 'asterui'

function App() {
  return (
      <Breadcrumb className="max-w-xs">
        <Breadcrumb.Item href="/">Home</Breadcrumb.Item>
        <Breadcrumb.Item href="/documents">Documents</Breadcrumb.Item>
        <Breadcrumb.Item href="/projects">Projects</Breadcrumb.Item>
        <Breadcrumb.Item href="/team">Team</Breadcrumb.Item>
        <Breadcrumb.Item>Add New Member</Breadcrumb.Item>
      </Breadcrumb>
    )
}

export default App
PropertyDescriptionTypeDefault
childrenBreadcrumb.Item components (compound pattern)React.ReactNode-
itemsBreadcrumb items data (data-driven pattern)BreadcrumbItemType[]-
separatorCustom separator between itemsReact.ReactNode"/"
classNameAdditional CSS classesstring-
data-testidTest ID for testingstring-
PropertyDescriptionTypeDefault
titleItem title/labelReact.ReactNode-
hrefLink URLstring-
onClickClick handler() => void-
classNameCustom CSS classstring-
data-testidTest ID for testingstring-
PropertyDescriptionTypeDefault
childrenItem content (text or elements)React.ReactNode-
hrefLink URL (makes item clickable)string-
onClickClick handler (makes item clickable)() => void-
iconIcon to display before the labelReact.ReactNode-
classNameAdditional CSS classesstring-
data-testidTest ID for testingstring-
  • Omit href/onClick on the last item to show current location
  • Use max-width classes to enable horizontal scrolling
  • Add icons using the icon prop on Breadcrumb.Item