Breadcrumb Component
A semantic, accessible breadcrumb component built with native HTML and Tailwind CSS. Improve site navigation and SEO with structured path trails. Supports custom separators, icon prefixes, and responsive truncation for clear hierarchical navigation across multi-level content structures.
Breadcrumb components show navigation hierarchy and help users understand their location within a website. Built with semantic HTML nav elements and ARIA landmarks for accessibility, breadcrumbs improve usability by allowing users to quickly navigate to parent sections. The Frutjam breadcrumb system automatically renders separators and supports custom separators for flexible styling.
| Class | Type | Description |
|---|---|---|
| breadcrumb | Base | Navigation container for breadcrumb trail |
| breadcrumb-list | Modifier | Ordered list of breadcrumb items |
| breadcrumb-item | Modifier | Individual list item in the breadcrumb |
| breadcrumb-link | Modifier | Anchor element styled as a breadcrumb link |
| breadcrumb-separator | Modifier | Separator element between items |
| breadcrumb-current | Modifier | Marks the current (active) page item |
Basic Usage
If no separator is provided, an arrow is shown between breadcrumb items automatically.
1 2 3 4 5 6 7 8 9 10 | <nav class="breadcrumb" aria-label="Breadcrumb"> <ol class="breadcrumb-list"> <li class="breadcrumb-item"> <a href="/" class="breadcrumb-link">Home</a> </li> <li class="breadcrumb-item"> <span class="breadcrumb-current" aria-current="page">Current Page</span> </li> </ol> </nav> |
1 2 3 4 5 6 7 8 9 10 | <nav className="breadcrumb" aria-label="Breadcrumb"> <ol className="breadcrumb-list"> <li className="breadcrumb-item"> <a href="/" className="breadcrumb-link">Home</a> </li> <li className="breadcrumb-item"> <span className="breadcrumb-current" aria-current="page">Current Page</span> </li> </ol> </nav> |
Breadcrumb Separators
Breadcrumb with Text Separator
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <nav class="breadcrumb" aria-label="Breadcrumb"> <ol class="breadcrumb-list"> <li class="breadcrumb-item"> <a href="/" class="breadcrumb-link">Home</a> </li> <li class="breadcrumb-item"> <span class="breadcrumb-separator">/</span> <a href="/components" class="breadcrumb-link">Components</a> </li> <li class="breadcrumb-item"> <span class="breadcrumb-separator">/</span> <span class="breadcrumb-current" aria-current="page">Badge</span> </li> </ol> </nav> |
Breadcrumb with Icon Separator
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <nav class="breadcrumb" aria-label="Breadcrumb"> <ol class="breadcrumb-list"> <li class="breadcrumb-item"> <a href="/" class="breadcrumb-link">Home</a> </li> <li class="breadcrumb-item"> <span class="breadcrumb-separator"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M5 12h14"></path> <path d="m12 5 7 7-7 7"></path> </svg> </span> <a href="/components" class="breadcrumb-link">Components</a> </li> <li class="breadcrumb-item"> <span class="breadcrumb-separator"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M5 12h14"></path> <path d="m12 5 7 7-7 7"></path> </svg> </span> <span class="breadcrumb-current" aria-current="page">Button</span> </li> </ol> </nav> |
Breadcrumb Accessibility
To ensure breadcrumbs are accessible to screen readers:
- Wrap the structure in a
<nav>element with anaria-label="Breadcrumb". - The last item (current page) should use
aria-current="page"and preferably be a<span>rather than a link. - Separators should be ignored by screen readers (often handled via CSS or
aria-hidden="true"if using a physical element).