39 Tailwind CSS Breadcrumbs

36 Pure Tailwind3 Tailwind + JSPublished

39 Tailwind CSS breadcrumbs for e-commerce filter and facet trails, SaaS docs headers, checkout wizards, marketplace category paths, and dashboard navigation — with accessible schema.org markup, glassmorphism and neumorphic skins, arrow and chevron clip-path trails, dropdown sibling menus, gradient-text and holographic effects, truncating mobile bars, and animated hover micro-interactions. Scoped under .tbc-NN for no-collision pasting, prefers-reduced-motion guarded, framework-agnostic.

Related39 CSS Breadcrumbs32 CSS Accordions — Vertical & Horizontal28 Tailwind Hamburger Menus20 Tailwind CSS Responsive Navbars

Premium upgradePartner: Untitled UI

Affiliate link

Building a whole Tailwind app, not just this component?

You just browsed 39 Tailwind breadcrumbs. Untitled UI Pro unlocks 5,000+ components and sections and 250+ page examples for React, styled with Tailwind CSS v4. One licence is a one-time $349 with lifetime updates; teams start at $999.

Get Untitled UI Pro

Untitled UI React. We may earn a commission, at no extra cost to you.

01. Tailwind Accessible Breadcrumb with Schema.org Microdata & ARIA (opens in a new tab)

Published

Pure Tailwind
The reference-grade trail: full schema.org BreadcrumbList Microdata inline in the markup so Google can render breadcrumb rich results, ARIA done correctly, and separators that stay out of the accessibility tree. The port's win is aria-[current=page]: — the current-page style keys off the attribute a screen reader already reads, so style and semantics cannot drift.

02. Tailwind Responsive Collapsing Breadcrumb Bar with Container Queries (opens in a new tab)

Published

Pure Tailwind
A trail that truncates itself in a narrow column with zero JavaScript: intermediate crumbs collapse behind an ellipsis, and the ellipsis expands them back. The port upgrades the interaction — the CSS original expanded on hover, which touch users cannot do; here a real checkbox holds the expanded state and has-checked: reads it, so tap, click and keyboard all work.
Newsletter

Enjoying these demos? Get new ones by email.

A short email when a new collection ships. Unsubscribe any time.

at

Almost there: check your inbox to confirm.Manage

07. Tailwind Sticky Scroll-Shrink Breadcrumb Header with Scroll-Driven Animation (opens in a new tab)

Published

Tailwind + JS
A sticky docs header whose breadcrumb trail contracts as you scroll: padding, logo and type scale all shrink into a slim pinned bar. The shrink state is a data-shrunk attribute on the scroll container, so every contracting element reads it through group-data-shrunk: — and the whole animation-timeline alternative is documented as a two-utility swap.
Newsletter

Enjoying these demos? Get new ones by email.

A short email when a new collection ships. Unsubscribe any time.

at

Almost there: check your inbox to confirm.Manage

15. Tailwind Segmented Rounded-Outline Pill Breadcrumb (opens in a new tab)

Published

Pure Tailwind
Outline-only capsules: each crumb is a hairline rounded border with no fill, hover washes in a faint tint and shifts the border toward the accent, and the current crumb becomes a solid accent pill. The understated treatment, and the port's cleanest one-to-one mapping — almost every declaration has a utility.
Newsletter

Enjoying these demos? Get new ones by email.

A short email when a new collection ships. Unsubscribe any time.

at

Almost there: check your inbox to confirm.Manage

FAQ

Frequently asked questions

How do I make these Tailwind breadcrumbs accessible to screen readers?
Wrap the trail in a <nav> with aria-label="Breadcrumb" and put the crumbs in an ordered <ol> so assistive tech announces position and length. Mark the final crumb — the page you're on — with aria-current="page" and render it as plain text, not a link, since linking a page to itself is noise for keyboard and screen-reader users. Every demo here follows that structure. For the icon-only home node in Demo 14, keep the word Home in the DOM inside an sr-only span so the icon still has an accessible name; a bare house glyph reads as nothing. Decorative chevrons and slashes should never be announced — the masked-SVG and clip-path separators are pure CSS, so they're already invisible to the accessibility tree, but if you use a text separator put it in an element with aria-hidden="true".
How do I add schema.org BreadcrumbList structured data like Demo 01?
Demo 01 nests the vocabulary directly in the markup: the <ol> carries itemscope and itemtype="https://schema.org/BreadcrumbList", each <li> is an itemprop="itemListElement" with its own itemscope and ListItem type, the link is itemprop="item", its label is itemprop="name", and a <meta> tag supplies itemprop="position" as an integer starting at 1. The most common mistake is skipping the position meta or numbering from 0 — crawlers then drop the trail from the rich result. The last crumb still needs a position value even though it isn't a link. Keep the visible order and the integers in sync; if you reorder crumbs, renumber. You don't need JSON-LD as well — inline Microdata plus a script block describing the same trail would just be redundant.
How does the interlocking arrow breadcrumb built with clip-path actually work?
Demos 13, 23 and 36 shape each crumb with clip-path: a polygon that cuts a notch into the left edge and pushes a point out the right, so consecutive crumbs interlock like a ribbon. To make them overlap seamlessly, give every crumb a negative left margin roughly equal to the arrow depth and add left padding so the label clears the notch. Demo 23 exposes the point size as one custom property, --tbc23-depth, so you tune every polygon from a single value instead of editing each clip. The usual bug is the last crumb keeping its outgoing point when it should end flush — target it and swap the polygon to a plain rectangle. The second is text sitting under the notch on the first crumb, which has no incoming cut, so reset its left padding. Clipped shapes can't cast a real box-shadow, which is why Demo 36 fakes its outline with an inset ring instead.
How do I stop a long breadcrumb from overflowing on mobile without JavaScript?
Two demos solve narrow widths without a line of script. Demo 02 uses container queries: the breadcrumb reads its own container width, and below a threshold the intermediate crumbs collapse behind an ellipsis while the first and last stay visible — the trail never overflows its column even when the viewport is wide. Demo 33 takes the truncation route instead: ancestor labels cap at 12ch with overflow: hidden, white-space: nowrap and text-overflow: ellipsis, while the current page keeps its full text. Reach for container queries when the breadcrumb lives in a resizable panel or sidebar whose width doesn't track the viewport; reach for per-crumb truncation when you just need one line to survive on a phone. Don't clamp the current crumb — the page you're on is the one label users most need to read in full.
How do the light and dark mode breadcrumbs flip themes without JavaScript?
Demo 03 drives the entire skin from a block of custom properties — surface, text, link, hover and current-crumb colours are all variables, and a single prefers-color-scheme block, or a dark class, rewrites them, so light-to-dark is one cascade with no per-element overrides and no flash. Demo 38 is the dark-native version and Demo 12 lets the user pick the accent live from a swatch row and persists the choice. The key is that every colour, including separators, is a token: a masked-SVG chevron that inherits currentColor flips for free, but a chevron hard-coded to a hex value stays light on a dark bar — that's the most common theming bug here. If you persist a user choice, apply it before first paint with an inline snippet in the <head>, or the bar renders in the default theme for one frame and then jumps.
How do the breadcrumb dropdown sibling menus in Demo 10 work, and what breaks them?
Demo 10 turns intermediate crumbs into sibling-page menus using native <details> and <summary> — no JavaScript, no focus-trap code, and the disclosure state is handled by the browser. The <summary> is the crumb label; the panel is an absolutely positioned list beneath it. Because it's a real disclosure widget it's keyboard-operable out of the box: Enter or Space toggles it. The gotcha is that Escape does not close <details> — if you need Escape-to-close you must add a small handler, otherwise rely on click-outside. Set the parent to relative so the panel doesn't shift the row, and give it a high enough stacking context that it isn't clipped by an ancestor with overflow: hidden — a breadcrumb bar that hides overflow for truncation will swallow the menu. Each summary is independent, so several can be open at once by design.
How do the masked SVG separators re-colour themselves on hover and in dark mode?
Demo 26 and Demo 08 draw the chevron with mask-image instead of an inline SVG or a text glyph: a small SVG data URL masks a box whose background is currentColor, so the separator is the same colour as the crumb text and re-tints automatically on hover or in dark mode. That's why it costs nothing to theme — there's no fill attribute to chase. It's also invisible to screen readers because it carries no text. The common mistake is setting background to a fixed colour instead of currentColor, which breaks the inherit; the second is forgetting mask-size and mask-repeat: no-repeat, so the shape tiles or stretches. To swap the chevron for a slash or a dot you change only the data URL — the sizing and colour logic stays. Keep the mask box a fixed width with flex-shrink: 0 so it never collapses when the row is tight.
When should I not use a breadcrumb, and which of these demos are the wrong tool?
Don't reach for a breadcrumb when what you actually have is linear progress. Demos 27 and 37 look like breadcrumbs — numbered circular badges, connector lines — but they represent a checkout wizard and a stepper, which are a different pattern: the steps are a sequence you move through, not a hierarchy of ancestor pages. Mark those with an ordered list and aria-current="step", not aria-current="page", and don't wrap them in a <nav> labelled Breadcrumb. Likewise, skip a breadcrumb on a flat site only one or two levels deep — a trail of Home to Page adds chrome and no orientation. The decorative variants — skewed parallelograms in Demo 35, isometric tiles in Demo 09, holographic shimmer in Demo 18 — suit marketing or themed UIs; in a dense admin table a quiet line-separator trail like Demo 30 reads faster and competes less with the content.

Related collections

32 CSS Accordions — Vertical & Horizontal preview

32 CSS Accordions — Vertical & Horizontal

32 free CSS accordions covering pure-CSS FAQ blocks with details/summary, mobile navigation menus, e-commerce filter sidebars, nested tree views, exclusive single-open groups and smoothly animated height:auto — plus 26 visual variations in vertical, horizontal and hybrid layouts. Copy-paste HTML and CSS, no JavaScript.

39 CSS Breadcrumbs preview

39 CSS Breadcrumbs

39 hand-coded CSS breadcrumbs — Schema.org BreadcrumbList Microdata + WCAG 2.2 accessible (Google Rich Results eligible), :has() responsive collapse, dark/light theme toggle with color-mix, Shopify/Amazon e-commerce filter chip removal, Vercel/Linear/Notion SaaS dashboard app-shell pattern, Docusaurus/Mintlify sticky scroll-shrink header, Amazon-style dropdown sibling menus, NFT/Web3 holographic shimmer (@property + conic-gradient), SaaS marketing gradient text, Airbnb filter chip with container queries, editorial blog wave underline, developer docs one-click path copy (Clipboard API), and 26 more. Semantic HTML: <nav aria-label='Breadcrumb'> + <ol> + aria-current='page'. Framework-agnostic, MIT-licensed.

26 CSS Circular Menus preview

26 CSS Circular Menus

26 hand-coded CSS circular and radial menu designs, from the floating-action FAB speed dial and dashboard radial hubs to game-style pie-slice wheels, SVG gooey metaball fans, hexagonal honeycombs, iris-aperture reveals, orbiting satellites on offset-path, compass-rose directional nav, sci-fi HUD rings, glassmorphism popovers built on the native Popover API, vinyl-record players, and full-takeover nebula overlays on native dialog. Every design uses CSS trigonometry (sin(), cos()) or the counter-rotation trick for positioning, ships real keyboard navigation, aria-labels on icon-only buttons, and a prefers-reduced-motion guard. Copy-paste HTML, CSS and vanilla JS with zero framework dependencies — MIT licensed.

Search CodeFronts

Loading…