33 / 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 Truncated Ellipsis Compact Mobile Breadcrumb
A single-line trail engineered for tight widths: ancestors cap at 12ch and truncate with an ellipsis, the current page never shrinks, and the bar never wraps or overflows. Priority is expressed as shrink / shrink-0 rather than as media queries.
Untitled UI Pro: 5,000+ React + Tailwind CSS v4 components · from $349 one-time
Untitled UI React · Affiliate link
The code
<section class="tbc-33 w-full min-h-svh grid place-items-center bg-tbc33-bg font-tbc33-sans px-6 py-7">
<nav aria-label="Breadcrumb">
<ol class="flex flex-nowrap items-center list-none mx-auto my-0 px-3 py-2.5 max-w-[340px] overflow-hidden rounded-[10px] bg-white border border-tbc33-edge">
<li class="flex items-center min-w-0"><a href="#" title="Home" class="shrink-0 px-0.75 py-0.5 rounded-[5px] text-[13px] font-medium text-tbc33-link no-underline whitespace-nowrap hover:text-tbc33-linkhover hover:underline hover:underline-offset-2 focus-visible:outline-2 focus-visible:outline-tbc33-acc focus-visible:outline-offset-1">Home</a></li>
<li class="flex items-center min-w-0 before:content-['\203A'] before:flex-none before:mx-1.5 before:text-tbc33-sep"><a href="#" title="Electronics & Accessories" class="shrink min-w-0 max-w-[12ch] truncate px-0.75 py-0.5 rounded-[5px] text-[13px] font-medium text-tbc33-link no-underline hover:text-tbc33-linkhover hover:underline hover:underline-offset-2 focus-visible:outline-2 focus-visible:outline-tbc33-acc focus-visible:outline-offset-1">Electronics & Accessories</a></li>
<li class="flex items-center min-w-0 before:content-['\203A'] before:flex-none before:mx-1.5 before:text-tbc33-sep"><a href="#" title="Headphones and Earbuds" class="shrink min-w-0 max-w-[12ch] truncate px-0.75 py-0.5 rounded-[5px] text-[13px] font-medium text-tbc33-link no-underline hover:text-tbc33-linkhover hover:underline hover:underline-offset-2 focus-visible:outline-2 focus-visible:outline-tbc33-acc focus-visible:outline-offset-1">Headphones and Earbuds</a></li>
<li class="flex items-center min-w-0 before:content-['\203A'] before:flex-none before:mx-1.5 before:text-tbc33-sep"><a href="#" aria-current="page" title="Wireless Over-Ear Noise-Cancelling" class="shrink-0 max-w-none px-0.75 py-0.5 rounded-[5px] text-[13px] font-semibold text-tbc33-strong no-underline whitespace-nowrap focus-visible:outline-2 focus-visible:outline-tbc33-acc focus-visible:outline-offset-1">Wireless Over-Ear Noise-Cancelling</a></li>
</ol>
</nav>
</section><section class="tbc-33 w-full min-h-svh grid place-items-center bg-tbc33-bg font-tbc33-sans px-6 py-7">
<nav aria-label="Breadcrumb">
<ol class="flex flex-nowrap items-center list-none mx-auto my-0 px-3 py-2.5 max-w-[340px] overflow-hidden rounded-[10px] bg-white border border-tbc33-edge">
<li class="flex items-center min-w-0"><a href="#" title="Home" class="shrink-0 px-0.75 py-0.5 rounded-[5px] text-[13px] font-medium text-tbc33-link no-underline whitespace-nowrap hover:text-tbc33-linkhover hover:underline hover:underline-offset-2 focus-visible:outline-2 focus-visible:outline-tbc33-acc focus-visible:outline-offset-1">Home</a></li>
<li class="flex items-center min-w-0 before:content-['\203A'] before:flex-none before:mx-1.5 before:text-tbc33-sep"><a href="#" title="Electronics & Accessories" class="shrink min-w-0 max-w-[12ch] truncate px-0.75 py-0.5 rounded-[5px] text-[13px] font-medium text-tbc33-link no-underline hover:text-tbc33-linkhover hover:underline hover:underline-offset-2 focus-visible:outline-2 focus-visible:outline-tbc33-acc focus-visible:outline-offset-1">Electronics & Accessories</a></li>
<li class="flex items-center min-w-0 before:content-['\203A'] before:flex-none before:mx-1.5 before:text-tbc33-sep"><a href="#" title="Headphones and Earbuds" class="shrink min-w-0 max-w-[12ch] truncate px-0.75 py-0.5 rounded-[5px] text-[13px] font-medium text-tbc33-link no-underline hover:text-tbc33-linkhover hover:underline hover:underline-offset-2 focus-visible:outline-2 focus-visible:outline-tbc33-acc focus-visible:outline-offset-1">Headphones and Earbuds</a></li>
<li class="flex items-center min-w-0 before:content-['\203A'] before:flex-none before:mx-1.5 before:text-tbc33-sep"><a href="#" aria-current="page" title="Wireless Over-Ear Noise-Cancelling" class="shrink-0 max-w-none px-0.75 py-0.5 rounded-[5px] text-[13px] font-semibold text-tbc33-strong no-underline whitespace-nowrap focus-visible:outline-2 focus-visible:outline-tbc33-acc focus-visible:outline-offset-1">Wireless Over-Ear Noise-Cancelling</a></li>
</ol>
</nav>
</section>@import "tailwindcss";
@theme {
--color-tbc33-bg: #fafbfd;
--color-tbc33-bg: oklch(0.98 0.004 240);
--color-tbc33-edge: #e1e4ea;
--color-tbc33-edge: oklch(0.9 0.008 240);
--color-tbc33-link: #5b6a8c;
--color-tbc33-link: oklch(0.48 0.07 250);
--color-tbc33-linkhover: #3f5182;
--color-tbc33-linkhover: oklch(0.4 0.13 250);
--color-tbc33-strong: #353a41;
--color-tbc33-strong: oklch(0.3 0.02 240);
--color-tbc33-sep: #a7acb6;
--color-tbc33-sep: oklch(0.7 0.02 240);
--color-tbc33-acc: #3f59b8;
--color-tbc33-acc: oklch(0.48 0.14 250);
--font-tbc33-sans: 'Space Grotesk', system-ui, sans-serif;
}
.tbc-33 {
width: 100%;
min-height: 100svh;
}@import "tailwindcss";
@theme {
--color-tbc33-bg: #fafbfd;
--color-tbc33-bg: oklch(0.98 0.004 240);
--color-tbc33-edge: #e1e4ea;
--color-tbc33-edge: oklch(0.9 0.008 240);
--color-tbc33-link: #5b6a8c;
--color-tbc33-link: oklch(0.48 0.07 250);
--color-tbc33-linkhover: #3f5182;
--color-tbc33-linkhover: oklch(0.4 0.13 250);
--color-tbc33-strong: #353a41;
--color-tbc33-strong: oklch(0.3 0.02 240);
--color-tbc33-sep: #a7acb6;
--color-tbc33-sep: oklch(0.7 0.02 240);
--color-tbc33-acc: #3f59b8;
--color-tbc33-acc: oklch(0.48 0.14 250);
--font-tbc33-sans: 'Space Grotesk', system-ui, sans-serif;
}
.tbc-33 {
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-tbc33-bg: #fafbfd;
--color-tbc33-bg: oklch(0.98 0.004 240);
--color-tbc33-edge: #e1e4ea;
--color-tbc33-edge: oklch(0.9 0.008 240);
--color-tbc33-link: #5b6a8c;
--color-tbc33-link: oklch(0.48 0.07 250);
--color-tbc33-linkhover: #3f5182;
--color-tbc33-linkhover: oklch(0.4 0.13 250);
--color-tbc33-strong: #353a41;
--color-tbc33-strong: oklch(0.3 0.02 240);
--color-tbc33-sep: #a7acb6;
--color-tbc33-sep: oklch(0.7 0.02 240);
--color-tbc33-acc: #3f59b8;
--color-tbc33-acc: oklch(0.48 0.14 250);
--font-tbc33-sans: 'Space Grotesk', system-ui, sans-serif;
}
.tbc-33 {
width: 100%;
min-height: 100svh;
}@import "tailwindcss";
@theme {
--color-tbc33-bg: #fafbfd;
--color-tbc33-bg: oklch(0.98 0.004 240);
--color-tbc33-edge: #e1e4ea;
--color-tbc33-edge: oklch(0.9 0.008 240);
--color-tbc33-link: #5b6a8c;
--color-tbc33-link: oklch(0.48 0.07 250);
--color-tbc33-linkhover: #3f5182;
--color-tbc33-linkhover: oklch(0.4 0.13 250);
--color-tbc33-strong: #353a41;
--color-tbc33-strong: oklch(0.3 0.02 240);
--color-tbc33-sep: #a7acb6;
--color-tbc33-sep: oklch(0.7 0.02 240);
--color-tbc33-acc: #3f59b8;
--color-tbc33-acc: oklch(0.48 0.14 250);
--font-tbc33-sans: 'Space Grotesk', system-ui, sans-serif;
}
.tbc-33 {
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.
truncateis Tailwind's three-declaration shorthand (overflow:hidden,text-overflow:ellipsis,white-space:nowrap), and pairing it withmin-w-0is the whole pattern. Two utilities replace six declarations and one classic bug.- Shrink priority reads directly off the markup now:
shrink-0on the crumbs that matter,shrinkon the ones that can give way. - UI change from the CSS original: the current crumb keeps
max-w-none whitespace-nowrapexplicitly rather than relying on rule order, so a deeper trail can never start truncating the page you are on.
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 Truncated Ellipsis Compact Mobile Breadcrumb
Source: https://codefronts.com/navigation/tailwind-css-breadcrumbs/tailwind-truncated-ellipsis-compact-mobile-breadcrumb/
A single-line trail engineered for tight widths: ancestors cap at 12ch and truncate with an ellipsis, the current page never shrinks, and the bar never wraps or overflows. Priority is expressed as shrink / shrink-0 rather than as media queries.
## HTML
```html
<section class="tbc-33 w-full min-h-svh grid place-items-center bg-tbc33-bg font-tbc33-sans px-6 py-7">
<nav aria-label="Breadcrumb">
<ol class="flex flex-nowrap items-center list-none mx-auto my-0 px-3 py-2.5 max-w-[340px] overflow-hidden rounded-[10px] bg-white border border-tbc33-edge">
<li class="flex items-center min-w-0"><a href="#" title="Home" class="shrink-0 px-0.75 py-0.5 rounded-[5px] text-[13px] font-medium text-tbc33-link no-underline whitespace-nowrap hover:text-tbc33-linkhover hover:underline hover:underline-offset-2 focus-visible:outline-2 focus-visible:outline-tbc33-acc focus-visible:outline-offset-1">Home</a></li>
<li class="flex items-center min-w-0 before:content-['\203A'] before:flex-none before:mx-1.5 before:text-tbc33-sep"><a href="#" title="Electronics & Accessories" class="shrink min-w-0 max-w-[12ch] truncate px-0.75 py-0.5 rounded-[5px] text-[13px] font-medium text-tbc33-link no-underline hover:text-tbc33-linkhover hover:underline hover:underline-offset-2 focus-visible:outline-2 focus-visible:outline-tbc33-acc focus-visible:outline-offset-1">Electronics & Accessories</a></li>
<li class="flex items-center min-w-0 before:content-['\203A'] before:flex-none before:mx-1.5 before:text-tbc33-sep"><a href="#" title="Headphones and Earbuds" class="shrink min-w-0 max-w-[12ch] truncate px-0.75 py-0.5 rounded-[5px] text-[13px] font-medium text-tbc33-link no-underline hover:text-tbc33-linkhover hover:underline hover:underline-offset-2 focus-visible:outline-2 focus-visible:outline-tbc33-acc focus-visible:outline-offset-1">Headphones and Earbuds</a></li>
<li class="flex items-center min-w-0 before:content-['\203A'] before:flex-none before:mx-1.5 before:text-tbc33-sep"><a href="#" aria-current="page" title="Wireless Over-Ear Noise-Cancelling" class="shrink-0 max-w-none px-0.75 py-0.5 rounded-[5px] text-[13px] font-semibold text-tbc33-strong no-underline whitespace-nowrap focus-visible:outline-2 focus-visible:outline-tbc33-acc focus-visible:outline-offset-1">Wireless Over-Ear Noise-Cancelling</a></li>
</ol>
</nav>
</section>
```
## CSS
```css
@import "tailwindcss";
@theme {
--color-tbc33-bg: #fafbfd;
--color-tbc33-bg: oklch(0.98 0.004 240);
--color-tbc33-edge: #e1e4ea;
--color-tbc33-edge: oklch(0.9 0.008 240);
--color-tbc33-link: #5b6a8c;
--color-tbc33-link: oklch(0.48 0.07 250);
--color-tbc33-linkhover: #3f5182;
--color-tbc33-linkhover: oklch(0.4 0.13 250);
--color-tbc33-strong: #353a41;
--color-tbc33-strong: oklch(0.3 0.02 240);
--color-tbc33-sep: #a7acb6;
--color-tbc33-sep: oklch(0.7 0.02 240);
--color-tbc33-acc: #3f59b8;
--color-tbc33-acc: oklch(0.48 0.14 250);
--font-tbc33-sans: 'Space Grotesk', system-ui, sans-serif;
}
.tbc-33 {
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 Truncated Ellipsis Compact Mobile Breadcrumb
Source: https://codefronts.com/navigation/tailwind-css-breadcrumbs/tailwind-truncated-ellipsis-compact-mobile-breadcrumb/
A single-line trail engineered for tight widths: ancestors cap at 12ch and truncate with an ellipsis, the current page never shrinks, and the bar never wraps or overflows. Priority is expressed as shrink / shrink-0 rather than as media queries.
## HTML
```html
<section class="tbc-33 w-full min-h-svh grid place-items-center bg-tbc33-bg font-tbc33-sans px-6 py-7">
<nav aria-label="Breadcrumb">
<ol class="flex flex-nowrap items-center list-none mx-auto my-0 px-3 py-2.5 max-w-[340px] overflow-hidden rounded-[10px] bg-white border border-tbc33-edge">
<li class="flex items-center min-w-0"><a href="#" title="Home" class="shrink-0 px-0.75 py-0.5 rounded-[5px] text-[13px] font-medium text-tbc33-link no-underline whitespace-nowrap hover:text-tbc33-linkhover hover:underline hover:underline-offset-2 focus-visible:outline-2 focus-visible:outline-tbc33-acc focus-visible:outline-offset-1">Home</a></li>
<li class="flex items-center min-w-0 before:content-['\203A'] before:flex-none before:mx-1.5 before:text-tbc33-sep"><a href="#" title="Electronics & Accessories" class="shrink min-w-0 max-w-[12ch] truncate px-0.75 py-0.5 rounded-[5px] text-[13px] font-medium text-tbc33-link no-underline hover:text-tbc33-linkhover hover:underline hover:underline-offset-2 focus-visible:outline-2 focus-visible:outline-tbc33-acc focus-visible:outline-offset-1">Electronics & Accessories</a></li>
<li class="flex items-center min-w-0 before:content-['\203A'] before:flex-none before:mx-1.5 before:text-tbc33-sep"><a href="#" title="Headphones and Earbuds" class="shrink min-w-0 max-w-[12ch] truncate px-0.75 py-0.5 rounded-[5px] text-[13px] font-medium text-tbc33-link no-underline hover:text-tbc33-linkhover hover:underline hover:underline-offset-2 focus-visible:outline-2 focus-visible:outline-tbc33-acc focus-visible:outline-offset-1">Headphones and Earbuds</a></li>
<li class="flex items-center min-w-0 before:content-['\203A'] before:flex-none before:mx-1.5 before:text-tbc33-sep"><a href="#" aria-current="page" title="Wireless Over-Ear Noise-Cancelling" class="shrink-0 max-w-none px-0.75 py-0.5 rounded-[5px] text-[13px] font-semibold text-tbc33-strong no-underline whitespace-nowrap focus-visible:outline-2 focus-visible:outline-tbc33-acc focus-visible:outline-offset-1">Wireless Over-Ear Noise-Cancelling</a></li>
</ol>
</nav>
</section>
```
## CSS
```css
@import "tailwindcss";
@theme {
--color-tbc33-bg: #fafbfd;
--color-tbc33-bg: oklch(0.98 0.004 240);
--color-tbc33-edge: #e1e4ea;
--color-tbc33-edge: oklch(0.9 0.008 240);
--color-tbc33-link: #5b6a8c;
--color-tbc33-link: oklch(0.48 0.07 250);
--color-tbc33-linkhover: #3f5182;
--color-tbc33-linkhover: oklch(0.4 0.13 250);
--color-tbc33-strong: #353a41;
--color-tbc33-strong: oklch(0.3 0.02 240);
--color-tbc33-sep: #a7acb6;
--color-tbc33-sep: oklch(0.7 0.02 240);
--color-tbc33-acc: #3f59b8;
--color-tbc33-acc: oklch(0.48 0.14 250);
--font-tbc33-sans: 'Space Grotesk', system-ui, sans-serif;
}
.tbc-33 {
width: 100%;
min-height: 100svh;
}
```How this works
Truncation is a priority problem. Every crumb could shrink, but the useful ones are Home (orientation) and the current page (identity). Those two get shrink-0; the middle gets shrink and a 12ch cap. The browser then resolves the overflow with no breakpoints at all.
min-w-0 is the unlock. Flex items default to min-width:auto, which is their content width, so text-overflow never fires. This is the single most common reason a truncating flex row does not truncate.
title is the escape hatch — and only that. It is not an accessible substitute, which is why the link text stays complete in the DOM and only the visual box is capped.
Make it yours
- Cap:
max-w-[12ch]— 8ch is aggressive, 18ch barely truncates. - Bar width:
max-w-[340px]on the list; raise it and truncation stops firing. - To truncate the current page too, swap its
max-w-nonefor a cap — usually the wrong call.
Gotchas — read before shipping
- Without
min-w-0nothing truncates, no matter how many overflow utilities you add. titletooltips do not appear on touch devices; never put information there that is not also in the link text.- Truncating the FIRST crumb defeats the trail's purpose — orientation is the one thing a breadcrumb owes the user.
Browser support
| Chrome | Safari | Firefox | Edge |
|---|---|---|---|
| 111+ | 16.4+ | 128+ | 111+ |
text-overflow and flex shrink behaviour are universal; the floor is Tailwind v4's own generated sheet.