Breadcrumb
A trail of links showing the current page's location in a navigational hierarchy.
Usage
Breadcrumb is a small set of semantic primitives — there's no hidden state, so you lay the trail out yourself. Every part lives under @appica/ui-react/breadcrumb:
Breadcrumb— the<nav aria-label="breadcrumb">landmark that wraps the trail.BreadcrumbList— the ordered list (<ol>) of crumbs; handles wrapping and spacing.BreadcrumbItem— one<li>, holding a link (or a collapsed menu).BreadcrumbLink— a crumb. By default it renders an<a>; mark the current page withactiveand it becomes a non-interactive<span>witharia-current="page".BreadcrumbSeparator— the divider between crumbs (a chevron by default; passchildrento override).BreadcrumbEllipsis— a "…" placeholder for crumbs collapsed out of a long trail.
BreadcrumbLink uses Base UI's useRender, so you can project it onto your router's link with render — e.g. a Next.js Link — without losing the styling or the active state.
Reach for a Breadcrumb to show where the current page sits in a hierarchy. For switching between sibling views, use Navigation or Tabs; for a menu of links opened from a button, use a Dropdown Menu.
Examples
Basic
A trail of links ending in the current page. Give every link before the last an href; mark the final crumb active so it renders as plain, non-focusable text with aria-current="page".
With icons
Drop an icon straight inside a BreadcrumbLink — it's sized and spaced automatically next to the label. A leading icon on the Home crumb is a common space-saver.
Custom separators
BreadcrumbSeparator renders a chevron by default. Pass it children to swap in anything — a slash, a dot, or your own icon. The separator is decorative (aria-hidden), so it's skipped by screen readers.
Soft badges
Project each BreadcrumbLink onto a soft Badge with render for a pill-style trail. The Badge's soft variant has built-in breadcrumb support — idle crumbs render muted like a plain link, brighten on hover, and the active crumb gains a bordered, filled pill. Project the Badge onto an <a> (render={<a />}) so the hover background animates.
Collapsed trail
When a trail is too long, collapse the middle crumbs behind a menu. Wrap a Dropdown Menu in the BreadcrumbItem, project the trigger onto the BreadcrumbEllipsis, and list the hidden pages as DropdownMenuLinkItems. The ellipsis carries an sr-only "More" label, so the trigger stays named for assistive tech.
Router links
For client-side routing, project a BreadcrumbLink onto your framework's link via render — here a Next.js Link. The crumb keeps its styling and aria-current handling while the router owns navigation.
RTL
Every Appica UI component supports right-to-left layouts out of the box. Set the dir attribute on a container (commonly your <html> element) so CSS logical properties resolve correctly, and wrap your tree in DirectionProvider so direction-aware behavior follows the same direction.
The trail flows from the right and the default chevron separator mirrors to point the other way. For setup details and caveats, see the RTL guide.
API reference
Breadcrumb is a set of styled HTML elements. Each part forwards every remaining prop to its underlying element (nav, ol, li, a, span), so any native attribute works here — the tables below list the Appica additions and the most common props.
Breadcrumb
The navigation landmark. Renders a <nav aria-label="breadcrumb">.
BreadcrumbList
The ordered list of crumbs. Renders an <ol> that wraps and spaces its items.
BreadcrumbItem
One crumb's <li> wrapper.
BreadcrumbLink
A crumb link. Built on Base UI's useRender; renders an <a> unless active (then a <span>), or use render to project it onto another element.
BreadcrumbSeparator
The divider between crumbs. Decorative (aria-hidden); renders a chevron unless you pass children.
BreadcrumbEllipsis
A "…" placeholder for collapsed crumbs. Decorative, with an sr-only "More" label.
Accessibility
Breadcrumbrenders a<nav>witharia-label="breadcrumb", so it's exposed as a named navigation landmark.- The current page (
active) is a<span>witharia-current="page"— not a link — so it isn't announced as clickable. - Separators and the ellipsis are
aria-hidden/role="presentation"; the ellipsis keeps ansr-only"More" label for the collapse trigger. disabledlinks setaria-disabledand drop out of the tab order.- Crumbs are keyboard-focusable links by default and inherit the page's focus-ring styling.