16 / 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 Neumorphic Soft Inset-Shadow Breadcrumb Channel
The inverse of the extruded soft-UI trail: the whole path sits in a channel carved into the surface, each crumb gets its own shallow well on hover, and the current crumb is the single raised node in the groove. One surface colour, three shadow recipes.
Untitled UI Pro: 5,000+ React + Tailwind CSS v4 components · from $349 one-time
Untitled UI React · Affiliate link
The code
<section class="tbc-16 w-full min-h-svh grid place-items-center bg-tbc16-surface font-tbc16-sans px-8 py-10">
<nav aria-label="Breadcrumb">
<ol class="flex flex-wrap items-center gap-1.5 list-none m-0 px-3.5 py-2.5 rounded-2xl bg-tbc16-surface shadow-[inset_5px_5px_10px_var(--color-tbc16-dark),inset_-5px_-5px_10px_var(--color-tbc16-light)]">
<li class="flex items-center"><a href="#" class="inline-flex items-center min-h-10 px-3.5 rounded-xl text-[13px] font-semibold text-tbc16-link no-underline transition-shadow duration-200 hover:shadow-[inset_2px_2px_5px_var(--color-tbc16-dark),inset_-2px_-2px_5px_var(--color-tbc16-light)] focus-visible:outline-2 focus-visible:outline-tbc16-acc focus-visible:outline-offset-2 motion-reduce:transition-none">Home</a></li>
<li class="flex items-center before:content-['\203A'] before:mx-1.5 before:text-tbc16-sep"><a href="#" class="inline-flex items-center min-h-10 px-3.5 rounded-xl text-[13px] font-semibold text-tbc16-link no-underline transition-shadow duration-200 hover:shadow-[inset_2px_2px_5px_var(--color-tbc16-dark),inset_-2px_-2px_5px_var(--color-tbc16-light)] focus-visible:outline-2 focus-visible:outline-tbc16-acc focus-visible:outline-offset-2 motion-reduce:transition-none">Devices</a></li>
<li class="flex items-center before:content-['\203A'] before:mx-1.5 before:text-tbc16-sep"><a href="#" class="inline-flex items-center min-h-10 px-3.5 rounded-xl text-[13px] font-semibold text-tbc16-link no-underline transition-shadow duration-200 hover:shadow-[inset_2px_2px_5px_var(--color-tbc16-dark),inset_-2px_-2px_5px_var(--color-tbc16-light)] focus-visible:outline-2 focus-visible:outline-tbc16-acc focus-visible:outline-offset-2 motion-reduce:transition-none">Thermostat</a></li>
<li class="flex items-center before:content-['\203A'] before:mx-1.5 before:text-tbc16-sep"><a href="#" aria-current="page" class="inline-flex items-center min-h-10 px-3.5 rounded-xl text-[13px] font-bold text-tbc16-pressink no-underline shadow-[5px_5px_10px_var(--color-tbc16-dark),-5px_-5px_10px_var(--color-tbc16-light)] focus-visible:outline-2 focus-visible:outline-tbc16-acc focus-visible:outline-offset-2">Schedule</a></li>
</ol>
</nav>
</section><section class="tbc-16 w-full min-h-svh grid place-items-center bg-tbc16-surface font-tbc16-sans px-8 py-10">
<nav aria-label="Breadcrumb">
<ol class="flex flex-wrap items-center gap-1.5 list-none m-0 px-3.5 py-2.5 rounded-2xl bg-tbc16-surface shadow-[inset_5px_5px_10px_var(--color-tbc16-dark),inset_-5px_-5px_10px_var(--color-tbc16-light)]">
<li class="flex items-center"><a href="#" class="inline-flex items-center min-h-10 px-3.5 rounded-xl text-[13px] font-semibold text-tbc16-link no-underline transition-shadow duration-200 hover:shadow-[inset_2px_2px_5px_var(--color-tbc16-dark),inset_-2px_-2px_5px_var(--color-tbc16-light)] focus-visible:outline-2 focus-visible:outline-tbc16-acc focus-visible:outline-offset-2 motion-reduce:transition-none">Home</a></li>
<li class="flex items-center before:content-['\203A'] before:mx-1.5 before:text-tbc16-sep"><a href="#" class="inline-flex items-center min-h-10 px-3.5 rounded-xl text-[13px] font-semibold text-tbc16-link no-underline transition-shadow duration-200 hover:shadow-[inset_2px_2px_5px_var(--color-tbc16-dark),inset_-2px_-2px_5px_var(--color-tbc16-light)] focus-visible:outline-2 focus-visible:outline-tbc16-acc focus-visible:outline-offset-2 motion-reduce:transition-none">Devices</a></li>
<li class="flex items-center before:content-['\203A'] before:mx-1.5 before:text-tbc16-sep"><a href="#" class="inline-flex items-center min-h-10 px-3.5 rounded-xl text-[13px] font-semibold text-tbc16-link no-underline transition-shadow duration-200 hover:shadow-[inset_2px_2px_5px_var(--color-tbc16-dark),inset_-2px_-2px_5px_var(--color-tbc16-light)] focus-visible:outline-2 focus-visible:outline-tbc16-acc focus-visible:outline-offset-2 motion-reduce:transition-none">Thermostat</a></li>
<li class="flex items-center before:content-['\203A'] before:mx-1.5 before:text-tbc16-sep"><a href="#" aria-current="page" class="inline-flex items-center min-h-10 px-3.5 rounded-xl text-[13px] font-bold text-tbc16-pressink no-underline shadow-[5px_5px_10px_var(--color-tbc16-dark),-5px_-5px_10px_var(--color-tbc16-light)] focus-visible:outline-2 focus-visible:outline-tbc16-acc focus-visible:outline-offset-2">Schedule</a></li>
</ol>
</nav>
</section>@import "tailwindcss";
@theme {
--color-tbc16-surface: #dfe2e8;
--color-tbc16-surface: oklch(0.9 0.008 250);
--color-tbc16-dark: #b8bcc5;
--color-tbc16-dark: oklch(0.78 0.015 250);
--color-tbc16-light: #fbfcfe;
--color-tbc16-light: oklch(0.99 0.004 250);
--color-tbc16-link: #4450b4;
--color-tbc16-link: oklch(0.45 0.15 260);
--color-tbc16-pressink: #474b54;
--color-tbc16-pressink: oklch(0.34 0.02 250);
--color-tbc16-sep: #8b8f98;
--color-tbc16-sep: oklch(0.6 0.01 250);
--color-tbc16-acc: #3f4bb2;
--color-tbc16-acc: oklch(0.44 0.16 260);
--font-tbc16-sans: 'Space Grotesk', system-ui, sans-serif;
}
.tbc-16 {
width: 100%;
min-height: 100svh;
}@import "tailwindcss";
@theme {
--color-tbc16-surface: #dfe2e8;
--color-tbc16-surface: oklch(0.9 0.008 250);
--color-tbc16-dark: #b8bcc5;
--color-tbc16-dark: oklch(0.78 0.015 250);
--color-tbc16-light: #fbfcfe;
--color-tbc16-light: oklch(0.99 0.004 250);
--color-tbc16-link: #4450b4;
--color-tbc16-link: oklch(0.45 0.15 260);
--color-tbc16-pressink: #474b54;
--color-tbc16-pressink: oklch(0.34 0.02 250);
--color-tbc16-sep: #8b8f98;
--color-tbc16-sep: oklch(0.6 0.01 250);
--color-tbc16-acc: #3f4bb2;
--color-tbc16-acc: oklch(0.44 0.16 260);
--font-tbc16-sans: 'Space Grotesk', system-ui, sans-serif;
}
.tbc-16 {
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-tbc16-surface: #dfe2e8;
--color-tbc16-surface: oklch(0.9 0.008 250);
--color-tbc16-dark: #b8bcc5;
--color-tbc16-dark: oklch(0.78 0.015 250);
--color-tbc16-light: #fbfcfe;
--color-tbc16-light: oklch(0.99 0.004 250);
--color-tbc16-link: #4450b4;
--color-tbc16-link: oklch(0.45 0.15 260);
--color-tbc16-pressink: #474b54;
--color-tbc16-pressink: oklch(0.34 0.02 250);
--color-tbc16-sep: #8b8f98;
--color-tbc16-sep: oklch(0.6 0.01 250);
--color-tbc16-acc: #3f4bb2;
--color-tbc16-acc: oklch(0.44 0.16 260);
--font-tbc16-sans: 'Space Grotesk', system-ui, sans-serif;
}
.tbc-16 {
width: 100%;
min-height: 100svh;
}@import "tailwindcss";
@theme {
--color-tbc16-surface: #dfe2e8;
--color-tbc16-surface: oklch(0.9 0.008 250);
--color-tbc16-dark: #b8bcc5;
--color-tbc16-dark: oklch(0.78 0.015 250);
--color-tbc16-light: #fbfcfe;
--color-tbc16-light: oklch(0.99 0.004 250);
--color-tbc16-link: #4450b4;
--color-tbc16-link: oklch(0.45 0.15 260);
--color-tbc16-pressink: #474b54;
--color-tbc16-pressink: oklch(0.34 0.02 250);
--color-tbc16-sep: #8b8f98;
--color-tbc16-sep: oklch(0.6 0.01 250);
--color-tbc16-acc: #3f4bb2;
--color-tbc16-acc: oklch(0.44 0.16 260);
--font-tbc16-sans: 'Space Grotesk', system-ui, sans-serif;
}
.tbc-16 {
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.
- Three shadow recipes, three elements, one visible relationship: carved, shallow-carved, raised. The
insetkeyword is the only difference between the channel and the current crumb, which the class lists now show side by side. - Referencing the surface tokens inside the arbitrary shadows keeps retheming to three
@themeedits — the same discipline as demo 06. - UI change from the CSS original: crumb ink and the raised current ink both darkened for AA, and crumbs grew to
min-h-10inside the channel.
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 Neumorphic Soft Inset-Shadow Breadcrumb Channel
Source: https://codefronts.com/navigation/tailwind-css-breadcrumbs/tailwind-neumorphic-soft-inset-shadow-breadcrumb-channel/
The inverse of the extruded soft-UI trail: the whole path sits in a channel carved into the surface, each crumb gets its own shallow well on hover, and the current crumb is the single raised node in the groove. One surface colour, three shadow recipes.
## HTML
```html
<section class="tbc-16 w-full min-h-svh grid place-items-center bg-tbc16-surface font-tbc16-sans px-8 py-10">
<nav aria-label="Breadcrumb">
<ol class="flex flex-wrap items-center gap-1.5 list-none m-0 px-3.5 py-2.5 rounded-2xl bg-tbc16-surface shadow-[inset_5px_5px_10px_var(--color-tbc16-dark),inset_-5px_-5px_10px_var(--color-tbc16-light)]">
<li class="flex items-center"><a href="#" class="inline-flex items-center min-h-10 px-3.5 rounded-xl text-[13px] font-semibold text-tbc16-link no-underline transition-shadow duration-200 hover:shadow-[inset_2px_2px_5px_var(--color-tbc16-dark),inset_-2px_-2px_5px_var(--color-tbc16-light)] focus-visible:outline-2 focus-visible:outline-tbc16-acc focus-visible:outline-offset-2 motion-reduce:transition-none">Home</a></li>
<li class="flex items-center before:content-['\203A'] before:mx-1.5 before:text-tbc16-sep"><a href="#" class="inline-flex items-center min-h-10 px-3.5 rounded-xl text-[13px] font-semibold text-tbc16-link no-underline transition-shadow duration-200 hover:shadow-[inset_2px_2px_5px_var(--color-tbc16-dark),inset_-2px_-2px_5px_var(--color-tbc16-light)] focus-visible:outline-2 focus-visible:outline-tbc16-acc focus-visible:outline-offset-2 motion-reduce:transition-none">Devices</a></li>
<li class="flex items-center before:content-['\203A'] before:mx-1.5 before:text-tbc16-sep"><a href="#" class="inline-flex items-center min-h-10 px-3.5 rounded-xl text-[13px] font-semibold text-tbc16-link no-underline transition-shadow duration-200 hover:shadow-[inset_2px_2px_5px_var(--color-tbc16-dark),inset_-2px_-2px_5px_var(--color-tbc16-light)] focus-visible:outline-2 focus-visible:outline-tbc16-acc focus-visible:outline-offset-2 motion-reduce:transition-none">Thermostat</a></li>
<li class="flex items-center before:content-['\203A'] before:mx-1.5 before:text-tbc16-sep"><a href="#" aria-current="page" class="inline-flex items-center min-h-10 px-3.5 rounded-xl text-[13px] font-bold text-tbc16-pressink no-underline shadow-[5px_5px_10px_var(--color-tbc16-dark),-5px_-5px_10px_var(--color-tbc16-light)] focus-visible:outline-2 focus-visible:outline-tbc16-acc focus-visible:outline-offset-2">Schedule</a></li>
</ol>
</nav>
</section>
```
## CSS
```css
@import "tailwindcss";
@theme {
--color-tbc16-surface: #dfe2e8;
--color-tbc16-surface: oklch(0.9 0.008 250);
--color-tbc16-dark: #b8bcc5;
--color-tbc16-dark: oklch(0.78 0.015 250);
--color-tbc16-light: #fbfcfe;
--color-tbc16-light: oklch(0.99 0.004 250);
--color-tbc16-link: #4450b4;
--color-tbc16-link: oklch(0.45 0.15 260);
--color-tbc16-pressink: #474b54;
--color-tbc16-pressink: oklch(0.34 0.02 250);
--color-tbc16-sep: #8b8f98;
--color-tbc16-sep: oklch(0.6 0.01 250);
--color-tbc16-acc: #3f4bb2;
--color-tbc16-acc: oklch(0.44 0.16 260);
--font-tbc16-sans: 'Space Grotesk', system-ui, sans-serif;
}
.tbc-16 {
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 Neumorphic Soft Inset-Shadow Breadcrumb Channel
Source: https://codefronts.com/navigation/tailwind-css-breadcrumbs/tailwind-neumorphic-soft-inset-shadow-breadcrumb-channel/
The inverse of the extruded soft-UI trail: the whole path sits in a channel carved into the surface, each crumb gets its own shallow well on hover, and the current crumb is the single raised node in the groove. One surface colour, three shadow recipes.
## HTML
```html
<section class="tbc-16 w-full min-h-svh grid place-items-center bg-tbc16-surface font-tbc16-sans px-8 py-10">
<nav aria-label="Breadcrumb">
<ol class="flex flex-wrap items-center gap-1.5 list-none m-0 px-3.5 py-2.5 rounded-2xl bg-tbc16-surface shadow-[inset_5px_5px_10px_var(--color-tbc16-dark),inset_-5px_-5px_10px_var(--color-tbc16-light)]">
<li class="flex items-center"><a href="#" class="inline-flex items-center min-h-10 px-3.5 rounded-xl text-[13px] font-semibold text-tbc16-link no-underline transition-shadow duration-200 hover:shadow-[inset_2px_2px_5px_var(--color-tbc16-dark),inset_-2px_-2px_5px_var(--color-tbc16-light)] focus-visible:outline-2 focus-visible:outline-tbc16-acc focus-visible:outline-offset-2 motion-reduce:transition-none">Home</a></li>
<li class="flex items-center before:content-['\203A'] before:mx-1.5 before:text-tbc16-sep"><a href="#" class="inline-flex items-center min-h-10 px-3.5 rounded-xl text-[13px] font-semibold text-tbc16-link no-underline transition-shadow duration-200 hover:shadow-[inset_2px_2px_5px_var(--color-tbc16-dark),inset_-2px_-2px_5px_var(--color-tbc16-light)] focus-visible:outline-2 focus-visible:outline-tbc16-acc focus-visible:outline-offset-2 motion-reduce:transition-none">Devices</a></li>
<li class="flex items-center before:content-['\203A'] before:mx-1.5 before:text-tbc16-sep"><a href="#" class="inline-flex items-center min-h-10 px-3.5 rounded-xl text-[13px] font-semibold text-tbc16-link no-underline transition-shadow duration-200 hover:shadow-[inset_2px_2px_5px_var(--color-tbc16-dark),inset_-2px_-2px_5px_var(--color-tbc16-light)] focus-visible:outline-2 focus-visible:outline-tbc16-acc focus-visible:outline-offset-2 motion-reduce:transition-none">Thermostat</a></li>
<li class="flex items-center before:content-['\203A'] before:mx-1.5 before:text-tbc16-sep"><a href="#" aria-current="page" class="inline-flex items-center min-h-10 px-3.5 rounded-xl text-[13px] font-bold text-tbc16-pressink no-underline shadow-[5px_5px_10px_var(--color-tbc16-dark),-5px_-5px_10px_var(--color-tbc16-light)] focus-visible:outline-2 focus-visible:outline-tbc16-acc focus-visible:outline-offset-2">Schedule</a></li>
</ol>
</nav>
</section>
```
## CSS
```css
@import "tailwindcss";
@theme {
--color-tbc16-surface: #dfe2e8;
--color-tbc16-surface: oklch(0.9 0.008 250);
--color-tbc16-dark: #b8bcc5;
--color-tbc16-dark: oklch(0.78 0.015 250);
--color-tbc16-light: #fbfcfe;
--color-tbc16-light: oklch(0.99 0.004 250);
--color-tbc16-link: #4450b4;
--color-tbc16-link: oklch(0.45 0.15 260);
--color-tbc16-pressink: #474b54;
--color-tbc16-pressink: oklch(0.34 0.02 250);
--color-tbc16-sep: #8b8f98;
--color-tbc16-sep: oklch(0.6 0.01 250);
--color-tbc16-acc: #3f4bb2;
--color-tbc16-acc: oklch(0.44 0.16 260);
--font-tbc16-sans: 'Space Grotesk', system-ui, sans-serif;
}
.tbc-16 {
width: 100%;
min-height: 100svh;
}
```How this works
Depth is a sign flip. Carved and raised use identical offsets and blurs; only inset differs. Putting all three recipes on the elements that use them makes that relationship visible — in the CSS version they sat in three separate rules and the symmetry was invisible.
The groove needs the channel and the wells to agree. The list carries a 5px/10px inset pair; the crumbs a 2px/5px one. A crumb well deeper than its channel reads as a hole in a hole, which is why the numbers are halved rather than reused.
Contrast, again. Soft UI hides affordances in low-contrast shadow, so the link ink sits at oklch(0.45 0.15 260) and the raised current crumb at 0.34 — both comfortably above 4.5:1 on the surface.
Make it yours
- Channel depth: the list's inset pair. Beyond about 8px the trail looks submerged.
- Crumb well: the hover pair; delete it for a flat-in-groove variant.
- Surface:
--color-tbc16-surface, with the dark/light tokens kept within ±0.1 lightness.
Gotchas — read before shipping
- The list and the stage must share a background colour, or the channel reads as a grey box.
- Inset shadows do not composite as cheaply as transforms; keep the transition to
box-shadowalone rather thanall. - Do not add a border to the channel. A hairline plus an inset shadow reads as a bug, not as depth.
Browser support
| Chrome | Safari | Firefox | Edge |
|---|---|---|---|
| 111+ | 16.4+ | 128+ | 111+ |
Inset shadows are universally supported; the floor is Tailwind v4's own generated sheet.