A CSS breadcrumb is a navigation trail that shows where the visitor sits in a site's hierarchy. These 22 hand-coded designs are drop-in trail components for documentation sites, e-commerce categories, and dashboards — copy the markup, point each link at your routes, and ship.
Wrap the trail in a nav element with aria-label='Breadcrumb', put the items in an ordered list (ol) since the order is meaningful, and make each step a link except the current page. Mark the current page with aria-current='page'. This semantic structure is what screen readers and search engines expect — every breadcrumb in this gallery uses it.
How do I style breadcrumb separators in pure CSS?
Don't put separator characters in the HTML — add them with CSS so they stay decorative. Use a ::before pseudo-element on each list item (skipping the first) with content: '/' or '›', or a chevron drawn with borders. This keeps the markup clean and means assistive tech reads only the real link text, not the slashes.
Do CSS breadcrumbs help SEO?
Yes. Breadcrumbs show site hierarchy, and when paired with BreadcrumbList structured data (JSON-LD) Google can display the breadcrumb trail directly in search results instead of a plain URL. The semantic nav + ol markup these demos use is the foundation; add the matching BreadcrumbList schema on real pages to get the rich result.
Do these CSS breadcrumbs need JavaScript?
The layouts and hover effects are pure CSS. JavaScript is only used for a couple of interactive variants (such as a collapsing trail that expands on click for very deep paths); where used, the snippet is included with the demo. The standard breadcrumb designs need no JS at all.
Are these breadcrumb designs accessible and free?
Yes. Each demo uses nav with aria-label, an ordered list, real links, aria-current on the active page, and visible focus states; decorative separators are CSS-only so they aren't announced. All 22 designs are MIT licensed and free for personal and commercial use.