component :: Breadcrumbs
The .breadcrumbs component is a nav > ol trail with CSS-only separators, and optional BreadcrumbList JSON-LD for search engines.
HTML
<nav class="breadcrumbs" aria-label="Breadcrumbs"> <ol> <li><a href="/">Home</a></li> <li><a href="/components/start">Components</a></li> <li><span aria-current="page">Breadcrumbs</span></li> </ol></nav>The last crumb is text, not a link, marked with aria-current="page"; the separators are generated content with empty alt text, so screen readers read the trail as a clean list. The separator lives in CSS, not the markup β change it by overriding one token:
:root { --breadcrumbs-separator: "β";}Custom properties
| Property | Description |
|---|---|
--breadcrumbs-separator | Separator string (default /). |
--breadcrumbs-separator-color | Separator color. |
--breadcrumbs-color | Link color. |
--breadcrumbs-color-current | Current page (last crumb) color. |
Astro component
| Prop | Type | Default | Description |
|---|---|---|---|
items | { label, href? }[] | β | The trail. The last item (or any item without href) is text. |
ariaLabel | string | "Breadcrumbs" | The navβs accessible name. |
jsonLd | boolean | false | Emit BreadcrumbList structured data (hrefs resolved to absolute). |
class | string | undefined | Additional CSS classes. |
Examples
- ---import Breadcrumbs from "../components/Breadcrumbs.astro";---<BreadcrumbsjsonLditems={[{ label: "Docs", href: "/docs/start" },{ label: "Global Styles", href: "/docs/global" },{ label: "Grid" },]}/>