30 / 39
All 39 in 39 Tailwind CSS Breadcrumbs
- 01Tailwind Accessible Breadcrumb with Schema.org Microdata & ARIA
- 02Tailwind Responsive Collapsing Breadcrumb Bar with Container Queries
- 03Tailwind Adaptive Light & Dark Mode Breadcrumb Bar with Theme Tokens
- 04Tailwind E-Commerce Filter & Facet Breadcrumb with Removable Chips
- 05Tailwind Glassmorphism Floating Breadcrumb Pill with Shimmer Sweep
- 06Tailwind Neumorphic Soft UI Breadcrumb with Dual Box Shadows
- 07Tailwind Sticky Scroll-Shrink Breadcrumb Header with Scroll-Driven Animation
- 08Tailwind Material Design Flat Breadcrumb Bar with Ink Ripple
- 09Tailwind Isometric 3D Layered Breadcrumb with Extruded Tiles
- 10Tailwind Breadcrumb Bar with Built-In Dropdown Sibling Menus
- 11Tailwind Full-Width Block-Style Segmented Breadcrumb Bar
- 12Tailwind Accent-Colour Toggle Breadcrumb with Persisted Theme
- 13Tailwind Seamless Arrow-Cutout Breadcrumb Trail with clip-path
- 14Tailwind Compact Icon-Only Home Node Breadcrumb Bar
- 15Tailwind Segmented Rounded-Outline Pill Breadcrumb
- 16Tailwind Neumorphic Soft Inset-Shadow Breadcrumb Channel
- 17Tailwind CSS Grid Auto-Fitting Responsive Breadcrumb Trail
- 18Tailwind Holographic Shimmer Web3 Breadcrumb with Animated @property
- 19Tailwind SaaS Gradient-Text Breadcrumb Bar with Animated Clip
- 20Tailwind Marketplace Filter-Chip Breadcrumb with Icon Chips
- 21Tailwind Editorial Breadcrumb with Animated SVG Wave Underline
- 22Tailwind Developer Docs Breadcrumb with One-Click Path Copy
- 23Tailwind Modern Arrow Breadcrumb Bar using clip-path Polygons
- 24Tailwind Multi-Line Aligned Breadcrumb Layout with CSS Subgrid
- 25Tailwind Breadcrumb Links with Animated Underline Glow
- 26Tailwind Minimalist Breadcrumb with Swappable Masked SVG Separators
- 27Tailwind Multi-Step Checkout & Wizard Breadcrumb Indicator
- 28Tailwind Ribbon-Style Chevron Breadcrumb Trail
- 29Tailwind Pill-Shape Badge Breadcrumb Bar
- 30Tailwind Clean Line-Separator Minimalist Breadcrumbs
- 31Tailwind Gradient Background Glow Breadcrumb Bar
- 32Tailwind Floating Card Shadow Breadcrumb Navigation
- 33Tailwind Truncated Ellipsis Compact Mobile Breadcrumb
- 34Tailwind Inline Bullet-Dot Separator Breadcrumb
- 35Tailwind Skewed Parallelogram Breadcrumb Bar
- 36Tailwind Outline Border-Only Geometric Breadcrumbs
- 37Tailwind Circular Icon & Numbered Step Breadcrumbs
- 38Tailwind Frosted Glass Dark UI Breadcrumb Component
- 39Tailwind Micro-Interaction Animated Hover Breadcrumbs
Tailwind Clean Line-Separator Minimalist Breadcrumbs
The quietest trail in the set: crumbs divided by thin vertical hairlines with generous whitespace, muted low-profile type, and an underline that only appears on hover. Nine declarations become nine utilities — the port that proves not every pattern needs an arbitrary value.
Untitled UI Pro: 5,000+ React + Tailwind CSS v4 components · from $349 one-time
Untitled UI React · Affiliate link
The code
<section class="tbc-30 w-full min-h-svh grid place-items-center bg-tbc30-bg font-tbc30-sans px-8 py-8">
<nav aria-label="Breadcrumb">
<ol class="flex flex-wrap items-center list-none m-0 p-0">
<li class="flex items-center after:content-[''] after:h-3.5 after:mx-4 after:border-e after:border-tbc30-rule last:after:hidden"><a href="#" class="px-0.25 py-0.5 text-[13.5px] font-normal tracking-[0.015em] text-tbc30-link no-underline transition-colors duration-150 hover:text-tbc30-strong hover:underline hover:underline-offset-3 hover:decoration-1 focus-visible:outline-2 focus-visible:outline-tbc30-ring focus-visible:outline-offset-3">Home</a></li>
<li class="flex items-center after:content-[''] after:h-3.5 after:mx-4 after:border-e after:border-tbc30-rule last:after:hidden"><a href="#" class="px-0.25 py-0.5 text-[13.5px] font-normal tracking-[0.015em] text-tbc30-link no-underline transition-colors duration-150 hover:text-tbc30-strong hover:underline hover:underline-offset-3 hover:decoration-1 focus-visible:outline-2 focus-visible:outline-tbc30-ring focus-visible:outline-offset-3">Magazine</a></li>
<li class="flex items-center after:content-[''] after:h-3.5 after:mx-4 after:border-e after:border-tbc30-rule last:after:hidden"><a href="#" class="px-0.25 py-0.5 text-[13.5px] font-normal tracking-[0.015em] text-tbc30-link no-underline transition-colors duration-150 hover:text-tbc30-strong hover:underline hover:underline-offset-3 hover:decoration-1 focus-visible:outline-2 focus-visible:outline-tbc30-ring focus-visible:outline-offset-3">Essays</a></li>
<li class="flex items-center after:content-[''] after:h-3.5 after:mx-4 after:border-e after:border-tbc30-rule last:after:hidden"><a href="#" aria-current="page" class="px-0.25 py-0.5 text-[13.5px] font-medium tracking-[0.015em] text-tbc30-strong no-underline focus-visible:outline-2 focus-visible:outline-tbc30-ring focus-visible:outline-offset-3">On Slow Design</a></li>
</ol>
</nav>
</section><section class="tbc-30 w-full min-h-svh grid place-items-center bg-tbc30-bg font-tbc30-sans px-8 py-8">
<nav aria-label="Breadcrumb">
<ol class="flex flex-wrap items-center list-none m-0 p-0">
<li class="flex items-center after:content-[''] after:h-3.5 after:mx-4 after:border-e after:border-tbc30-rule last:after:hidden"><a href="#" class="px-0.25 py-0.5 text-[13.5px] font-normal tracking-[0.015em] text-tbc30-link no-underline transition-colors duration-150 hover:text-tbc30-strong hover:underline hover:underline-offset-3 hover:decoration-1 focus-visible:outline-2 focus-visible:outline-tbc30-ring focus-visible:outline-offset-3">Home</a></li>
<li class="flex items-center after:content-[''] after:h-3.5 after:mx-4 after:border-e after:border-tbc30-rule last:after:hidden"><a href="#" class="px-0.25 py-0.5 text-[13.5px] font-normal tracking-[0.015em] text-tbc30-link no-underline transition-colors duration-150 hover:text-tbc30-strong hover:underline hover:underline-offset-3 hover:decoration-1 focus-visible:outline-2 focus-visible:outline-tbc30-ring focus-visible:outline-offset-3">Magazine</a></li>
<li class="flex items-center after:content-[''] after:h-3.5 after:mx-4 after:border-e after:border-tbc30-rule last:after:hidden"><a href="#" class="px-0.25 py-0.5 text-[13.5px] font-normal tracking-[0.015em] text-tbc30-link no-underline transition-colors duration-150 hover:text-tbc30-strong hover:underline hover:underline-offset-3 hover:decoration-1 focus-visible:outline-2 focus-visible:outline-tbc30-ring focus-visible:outline-offset-3">Essays</a></li>
<li class="flex items-center after:content-[''] after:h-3.5 after:mx-4 after:border-e after:border-tbc30-rule last:after:hidden"><a href="#" aria-current="page" class="px-0.25 py-0.5 text-[13.5px] font-medium tracking-[0.015em] text-tbc30-strong no-underline focus-visible:outline-2 focus-visible:outline-tbc30-ring focus-visible:outline-offset-3">On Slow Design</a></li>
</ol>
</nav>
</section>@import "tailwindcss";
@theme {
--color-tbc30-bg: #fdfdfc;
--color-tbc30-bg: oklch(0.99 0.002 90);
--color-tbc30-rule: #d2d1cd;
--color-tbc30-rule: oklch(0.84 0.005 90);
--color-tbc30-link: #7d7b76;
--color-tbc30-link: oklch(0.52 0.006 90);
--color-tbc30-strong: #302f2c;
--color-tbc30-strong: oklch(0.26 0.008 90);
--color-tbc30-ring: #6b6558;
--color-tbc30-ring: oklch(0.45 0.03 90);
--font-tbc30-sans: 'Space Grotesk', system-ui, sans-serif;
}
.tbc-30 {
width: 100%;
min-height: 100svh;
}@import "tailwindcss";
@theme {
--color-tbc30-bg: #fdfdfc;
--color-tbc30-bg: oklch(0.99 0.002 90);
--color-tbc30-rule: #d2d1cd;
--color-tbc30-rule: oklch(0.84 0.005 90);
--color-tbc30-link: #7d7b76;
--color-tbc30-link: oklch(0.52 0.006 90);
--color-tbc30-strong: #302f2c;
--color-tbc30-strong: oklch(0.26 0.008 90);
--color-tbc30-ring: #6b6558;
--color-tbc30-ring: oklch(0.45 0.03 90);
--font-tbc30-sans: 'Space Grotesk', system-ui, sans-serif;
}
.tbc-30 {
width: 100%;
min-height: 100svh;
}Setup — do this once per project
Skip this if your project already runs Tailwind v4.
<script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>
<script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>Compiles in the browser — perfect for a CodePen or a quick test, not for production.
npm install tailwindcss @tailwindcss/vite
npm install tailwindcss @tailwindcss/vite// vite.config.js ("type": "module" in package.json)
import { defineConfig } from 'vite'
import tailwindcss from '@tailwindcss/vite'
export default defineConfig({
plugins: [tailwindcss()],
})// vite.config.js ("type": "module" in package.json)
import { defineConfig } from 'vite'
import tailwindcss from '@tailwindcss/vite'
export default defineConfig({
plugins: [tailwindcss()],
})Any v4 setup works — Vite, PostCSS or the CLI. Nothing in this demo is bundler-specific.
@import "tailwindcss";
@theme {
--color-tbc30-bg: #fdfdfc;
--color-tbc30-bg: oklch(0.99 0.002 90);
--color-tbc30-rule: #d2d1cd;
--color-tbc30-rule: oklch(0.84 0.005 90);
--color-tbc30-link: #7d7b76;
--color-tbc30-link: oklch(0.52 0.006 90);
--color-tbc30-strong: #302f2c;
--color-tbc30-strong: oklch(0.26 0.008 90);
--color-tbc30-ring: #6b6558;
--color-tbc30-ring: oklch(0.45 0.03 90);
--font-tbc30-sans: 'Space Grotesk', system-ui, sans-serif;
}
.tbc-30 {
width: 100%;
min-height: 100svh;
}@import "tailwindcss";
@theme {
--color-tbc30-bg: #fdfdfc;
--color-tbc30-bg: oklch(0.99 0.002 90);
--color-tbc30-rule: #d2d1cd;
--color-tbc30-rule: oklch(0.84 0.005 90);
--color-tbc30-link: #7d7b76;
--color-tbc30-link: oklch(0.52 0.006 90);
--color-tbc30-strong: #302f2c;
--color-tbc30-strong: oklch(0.26 0.008 90);
--color-tbc30-ring: #6b6558;
--color-tbc30-ring: oklch(0.45 0.03 90);
--font-tbc30-sans: 'Space Grotesk', system-ui, sans-serif;
}
.tbc-30 {
width: 100%;
min-height: 100svh;
}<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap">What changed in the port
Which parts became utilities, which stayed CSS, and why.
last:after:hiddenis one of the few structural variants worth reaching for: the separator belongs to every crumb except the last, and stating the exception as a variant keeps the crumbs otherwise identical.- Logical
border-eandmx-*cost nothing over their physical equivalents and make the trail RTL-correct, which is the cheapest internationalisation in the collection. - UI change from the CSS original: the current crumb darkened by one stop and the rule lightened by one, so the hierarchy reads at a glance without adding weight or colour.
Here's a working CSS demo from CodeFronts. Use it as-is or adapt to your framework. All classes are scoped under a unique prefix so the code won't collide with your existing styles. MIT licensed.
Demo: Tailwind Clean Line-Separator Minimalist Breadcrumbs
Source: https://codefronts.com/navigation/tailwind-css-breadcrumbs/tailwind-clean-line-separator-minimalist-breadcrumbs/
The quietest trail in the set: crumbs divided by thin vertical hairlines with generous whitespace, muted low-profile type, and an underline that only appears on hover. Nine declarations become nine utilities — the port that proves not every pattern needs an arbitrary value.
## HTML
```html
<section class="tbc-30 w-full min-h-svh grid place-items-center bg-tbc30-bg font-tbc30-sans px-8 py-8">
<nav aria-label="Breadcrumb">
<ol class="flex flex-wrap items-center list-none m-0 p-0">
<li class="flex items-center after:content-[''] after:h-3.5 after:mx-4 after:border-e after:border-tbc30-rule last:after:hidden"><a href="#" class="px-0.25 py-0.5 text-[13.5px] font-normal tracking-[0.015em] text-tbc30-link no-underline transition-colors duration-150 hover:text-tbc30-strong hover:underline hover:underline-offset-3 hover:decoration-1 focus-visible:outline-2 focus-visible:outline-tbc30-ring focus-visible:outline-offset-3">Home</a></li>
<li class="flex items-center after:content-[''] after:h-3.5 after:mx-4 after:border-e after:border-tbc30-rule last:after:hidden"><a href="#" class="px-0.25 py-0.5 text-[13.5px] font-normal tracking-[0.015em] text-tbc30-link no-underline transition-colors duration-150 hover:text-tbc30-strong hover:underline hover:underline-offset-3 hover:decoration-1 focus-visible:outline-2 focus-visible:outline-tbc30-ring focus-visible:outline-offset-3">Magazine</a></li>
<li class="flex items-center after:content-[''] after:h-3.5 after:mx-4 after:border-e after:border-tbc30-rule last:after:hidden"><a href="#" class="px-0.25 py-0.5 text-[13.5px] font-normal tracking-[0.015em] text-tbc30-link no-underline transition-colors duration-150 hover:text-tbc30-strong hover:underline hover:underline-offset-3 hover:decoration-1 focus-visible:outline-2 focus-visible:outline-tbc30-ring focus-visible:outline-offset-3">Essays</a></li>
<li class="flex items-center after:content-[''] after:h-3.5 after:mx-4 after:border-e after:border-tbc30-rule last:after:hidden"><a href="#" aria-current="page" class="px-0.25 py-0.5 text-[13.5px] font-medium tracking-[0.015em] text-tbc30-strong no-underline focus-visible:outline-2 focus-visible:outline-tbc30-ring focus-visible:outline-offset-3">On Slow Design</a></li>
</ol>
</nav>
</section>
```
## CSS
```css
@import "tailwindcss";
@theme {
--color-tbc30-bg: #fdfdfc;
--color-tbc30-bg: oklch(0.99 0.002 90);
--color-tbc30-rule: #d2d1cd;
--color-tbc30-rule: oklch(0.84 0.005 90);
--color-tbc30-link: #7d7b76;
--color-tbc30-link: oklch(0.52 0.006 90);
--color-tbc30-strong: #302f2c;
--color-tbc30-strong: oklch(0.26 0.008 90);
--color-tbc30-ring: #6b6558;
--color-tbc30-ring: oklch(0.45 0.03 90);
--font-tbc30-sans: 'Space Grotesk', system-ui, sans-serif;
}
.tbc-30 {
width: 100%;
min-height: 100svh;
}
```Here's a working CSS demo from CodeFronts. Use it as-is or adapt to your framework. All classes are scoped under a unique prefix so the code won't collide with your existing styles. MIT licensed.
Demo: Tailwind Clean Line-Separator Minimalist Breadcrumbs
Source: https://codefronts.com/navigation/tailwind-css-breadcrumbs/tailwind-clean-line-separator-minimalist-breadcrumbs/
The quietest trail in the set: crumbs divided by thin vertical hairlines with generous whitespace, muted low-profile type, and an underline that only appears on hover. Nine declarations become nine utilities — the port that proves not every pattern needs an arbitrary value.
## HTML
```html
<section class="tbc-30 w-full min-h-svh grid place-items-center bg-tbc30-bg font-tbc30-sans px-8 py-8">
<nav aria-label="Breadcrumb">
<ol class="flex flex-wrap items-center list-none m-0 p-0">
<li class="flex items-center after:content-[''] after:h-3.5 after:mx-4 after:border-e after:border-tbc30-rule last:after:hidden"><a href="#" class="px-0.25 py-0.5 text-[13.5px] font-normal tracking-[0.015em] text-tbc30-link no-underline transition-colors duration-150 hover:text-tbc30-strong hover:underline hover:underline-offset-3 hover:decoration-1 focus-visible:outline-2 focus-visible:outline-tbc30-ring focus-visible:outline-offset-3">Home</a></li>
<li class="flex items-center after:content-[''] after:h-3.5 after:mx-4 after:border-e after:border-tbc30-rule last:after:hidden"><a href="#" class="px-0.25 py-0.5 text-[13.5px] font-normal tracking-[0.015em] text-tbc30-link no-underline transition-colors duration-150 hover:text-tbc30-strong hover:underline hover:underline-offset-3 hover:decoration-1 focus-visible:outline-2 focus-visible:outline-tbc30-ring focus-visible:outline-offset-3">Magazine</a></li>
<li class="flex items-center after:content-[''] after:h-3.5 after:mx-4 after:border-e after:border-tbc30-rule last:after:hidden"><a href="#" class="px-0.25 py-0.5 text-[13.5px] font-normal tracking-[0.015em] text-tbc30-link no-underline transition-colors duration-150 hover:text-tbc30-strong hover:underline hover:underline-offset-3 hover:decoration-1 focus-visible:outline-2 focus-visible:outline-tbc30-ring focus-visible:outline-offset-3">Essays</a></li>
<li class="flex items-center after:content-[''] after:h-3.5 after:mx-4 after:border-e after:border-tbc30-rule last:after:hidden"><a href="#" aria-current="page" class="px-0.25 py-0.5 text-[13.5px] font-medium tracking-[0.015em] text-tbc30-strong no-underline focus-visible:outline-2 focus-visible:outline-tbc30-ring focus-visible:outline-offset-3">On Slow Design</a></li>
</ol>
</nav>
</section>
```
## CSS
```css
@import "tailwindcss";
@theme {
--color-tbc30-bg: #fdfdfc;
--color-tbc30-bg: oklch(0.99 0.002 90);
--color-tbc30-rule: #d2d1cd;
--color-tbc30-rule: oklch(0.84 0.005 90);
--color-tbc30-link: #7d7b76;
--color-tbc30-link: oklch(0.52 0.006 90);
--color-tbc30-strong: #302f2c;
--color-tbc30-strong: oklch(0.26 0.008 90);
--color-tbc30-ring: #6b6558;
--color-tbc30-ring: oklch(0.45 0.03 90);
--font-tbc30-sans: 'Space Grotesk', system-ui, sans-serif;
}
.tbc-30 {
width: 100%;
min-height: 100svh;
}
```How this works
The rule is a border, not a glyph. A 14px-tall pseudo-element with an inline-end border gives a crisp 1px hairline at any zoom level, which a | character does not — it would inherit font metrics and drift.
Logical properties, for free. mx-4 and border-e mean the rule sits on the correct side in RTL with no extra work. Tailwind's logical utilities are the same length as the physical ones, so there is no reason to use the physical ones.
Restraint is the design. 13.5px at 400 weight, one muted grey, no background, no shadow. The current crumb steps up half a weight and one lightness stop — that is the whole hierarchy.
Make it yours
- Whitespace:
after:mx-4is the only rhythm control that matters here. - Rule height:
after:h-3.5— taller reads as a table divider, shorter as a hyphen. - Type: the
tracking-[0.015em]is what keeps 400-weight 13.5px legible; drop it and the trail feels cramped.
Gotchas — read before shipping
last:after:hiddenis required; without it the trail ends in a stray hairline.- A zero-width pseudo-element needs an explicit height — it has no content to give it one.
- At this weight and colour the links are near the AA floor;
oklch(0.52)onoklch(0.99)is about 6:1, so do not lighten them further.
Browser support
| Chrome | Safari | Firefox | Edge |
|---|---|---|---|
| 111+ | 16.4+ | 128+ | 111+ |
Everything here is universally supported; the floor is Tailwind v4's own generated sheet.