36 / 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 Outline Border-Only Geometric Breadcrumbs
Line-art chevrons with no fills: each crumb is an outline drawn as an inset ring inside a clipped shape, hover washes in a faint tint, and the current crumb inverts to solid. The blueprint aesthetic for developer tools and design-system docs.
Untitled UI Pro: 5,000+ React + Tailwind CSS v4 components · from $349 one-time
Untitled UI React · Affiliate link
The code
<section class="tbc-36 w-full min-h-svh flex items-center justify-center bg-tbc36-bg font-tbc36-mono px-8 py-8 [--tbc36-depth:15px]">
<nav aria-label="Breadcrumb">
<ol class="flex list-none m-0 p-0">
<li class="flex"><a href="#" class="flex items-center h-9.5 pl-4.5 pr-4 text-xs font-semibold tracking-[0.02em] text-tbc36-acc no-underline bg-transparent shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc)] [clip-path:polygon(0_0,calc(100%-var(--tbc36-depth))_0,100%_50%,calc(100%-var(--tbc36-depth))_100%,0_100%)] transition-[background-color,color] duration-200 hover:text-tbc36-accdark hover:bg-[color-mix(in_oklab,var(--color-tbc36-acc)_12%,transparent)] focus-visible:outline-none focus-visible:shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc),inset_0_0_0_4px_color-mix(in_oklab,var(--color-tbc36-acc)_30%,transparent)] motion-reduce:transition-none">Home</a></li>
<li class="flex"><a href="#" class="flex items-center h-9.5 pl-6 pr-4 -ms-[var(--tbc36-depth)] text-xs font-semibold tracking-[0.02em] text-tbc36-acc no-underline bg-transparent shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc)] [clip-path:polygon(0_0,calc(100%-var(--tbc36-depth))_0,100%_50%,calc(100%-var(--tbc36-depth))_100%,0_100%,var(--tbc36-depth)_50%)] transition-[background-color,color] duration-200 hover:text-tbc36-accdark hover:bg-[color-mix(in_oklab,var(--color-tbc36-acc)_12%,transparent)] focus-visible:outline-none focus-visible:shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc),inset_0_0_0_4px_color-mix(in_oklab,var(--color-tbc36-acc)_30%,transparent)] motion-reduce:transition-none">System</a></li>
<li class="flex"><a href="#" class="flex items-center h-9.5 pl-6 pr-4 -ms-[var(--tbc36-depth)] text-xs font-semibold tracking-[0.02em] text-tbc36-acc no-underline bg-transparent shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc)] [clip-path:polygon(0_0,calc(100%-var(--tbc36-depth))_0,100%_50%,calc(100%-var(--tbc36-depth))_100%,0_100%,var(--tbc36-depth)_50%)] transition-[background-color,color] duration-200 hover:text-tbc36-accdark hover:bg-[color-mix(in_oklab,var(--color-tbc36-acc)_12%,transparent)] focus-visible:outline-none focus-visible:shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc),inset_0_0_0_4px_color-mix(in_oklab,var(--color-tbc36-acc)_30%,transparent)] motion-reduce:transition-none">Modules</a></li>
<li class="flex"><a href="#" aria-current="page" class="flex items-center h-9.5 pl-6 pr-5 -ms-[var(--tbc36-depth)] text-xs font-semibold tracking-[0.02em] text-white no-underline cursor-default bg-tbc36-acc shadow-none [clip-path:polygon(0_0,100%_0,100%_100%,0_100%,var(--tbc36-depth)_50%)] focus-visible:outline-none focus-visible:shadow-[inset_0_0_0_2.5px_white]">Renderer</a></li>
</ol>
</nav>
</section><section class="tbc-36 w-full min-h-svh flex items-center justify-center bg-tbc36-bg font-tbc36-mono px-8 py-8 [--tbc36-depth:15px]">
<nav aria-label="Breadcrumb">
<ol class="flex list-none m-0 p-0">
<li class="flex"><a href="#" class="flex items-center h-9.5 pl-4.5 pr-4 text-xs font-semibold tracking-[0.02em] text-tbc36-acc no-underline bg-transparent shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc)] [clip-path:polygon(0_0,calc(100%-var(--tbc36-depth))_0,100%_50%,calc(100%-var(--tbc36-depth))_100%,0_100%)] transition-[background-color,color] duration-200 hover:text-tbc36-accdark hover:bg-[color-mix(in_oklab,var(--color-tbc36-acc)_12%,transparent)] focus-visible:outline-none focus-visible:shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc),inset_0_0_0_4px_color-mix(in_oklab,var(--color-tbc36-acc)_30%,transparent)] motion-reduce:transition-none">Home</a></li>
<li class="flex"><a href="#" class="flex items-center h-9.5 pl-6 pr-4 -ms-[var(--tbc36-depth)] text-xs font-semibold tracking-[0.02em] text-tbc36-acc no-underline bg-transparent shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc)] [clip-path:polygon(0_0,calc(100%-var(--tbc36-depth))_0,100%_50%,calc(100%-var(--tbc36-depth))_100%,0_100%,var(--tbc36-depth)_50%)] transition-[background-color,color] duration-200 hover:text-tbc36-accdark hover:bg-[color-mix(in_oklab,var(--color-tbc36-acc)_12%,transparent)] focus-visible:outline-none focus-visible:shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc),inset_0_0_0_4px_color-mix(in_oklab,var(--color-tbc36-acc)_30%,transparent)] motion-reduce:transition-none">System</a></li>
<li class="flex"><a href="#" class="flex items-center h-9.5 pl-6 pr-4 -ms-[var(--tbc36-depth)] text-xs font-semibold tracking-[0.02em] text-tbc36-acc no-underline bg-transparent shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc)] [clip-path:polygon(0_0,calc(100%-var(--tbc36-depth))_0,100%_50%,calc(100%-var(--tbc36-depth))_100%,0_100%,var(--tbc36-depth)_50%)] transition-[background-color,color] duration-200 hover:text-tbc36-accdark hover:bg-[color-mix(in_oklab,var(--color-tbc36-acc)_12%,transparent)] focus-visible:outline-none focus-visible:shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc),inset_0_0_0_4px_color-mix(in_oklab,var(--color-tbc36-acc)_30%,transparent)] motion-reduce:transition-none">Modules</a></li>
<li class="flex"><a href="#" aria-current="page" class="flex items-center h-9.5 pl-6 pr-5 -ms-[var(--tbc36-depth)] text-xs font-semibold tracking-[0.02em] text-white no-underline cursor-default bg-tbc36-acc shadow-none [clip-path:polygon(0_0,100%_0,100%_100%,0_100%,var(--tbc36-depth)_50%)] focus-visible:outline-none focus-visible:shadow-[inset_0_0_0_2.5px_white]">Renderer</a></li>
</ol>
</nav>
</section>@import "tailwindcss";
@theme {
--color-tbc36-bg: #fafcfc;
--color-tbc36-bg: oklch(0.98 0.005 200);
--color-tbc36-acc: #14748f;
--color-tbc36-acc: oklch(0.52 0.14 205);
--color-tbc36-accdark: #0f5c73;
--color-tbc36-accdark: oklch(0.42 0.15 205);
--font-tbc36-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', monospace;
}
.tbc-36 {
width: 100%;
min-height: 100svh;
}@import "tailwindcss";
@theme {
--color-tbc36-bg: #fafcfc;
--color-tbc36-bg: oklch(0.98 0.005 200);
--color-tbc36-acc: #14748f;
--color-tbc36-acc: oklch(0.52 0.14 205);
--color-tbc36-accdark: #0f5c73;
--color-tbc36-accdark: oklch(0.42 0.15 205);
--font-tbc36-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', monospace;
}
.tbc-36 {
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-tbc36-bg: #fafcfc;
--color-tbc36-bg: oklch(0.98 0.005 200);
--color-tbc36-acc: #14748f;
--color-tbc36-acc: oklch(0.52 0.14 205);
--color-tbc36-accdark: #0f5c73;
--color-tbc36-accdark: oklch(0.42 0.15 205);
--font-tbc36-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', monospace;
}
.tbc-36 {
width: 100%;
min-height: 100svh;
}@import "tailwindcss";
@theme {
--color-tbc36-bg: #fafcfc;
--color-tbc36-bg: oklch(0.98 0.005 200);
--color-tbc36-acc: #14748f;
--color-tbc36-acc: oklch(0.52 0.14 205);
--color-tbc36-accdark: #0f5c73;
--color-tbc36-accdark: oklch(0.42 0.15 205);
--font-tbc36-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', monospace;
}
.tbc-36 {
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=JetBrains+Mono:wght@400;500;600&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=JetBrains+Mono:wght@400;500;600&display=swap">What changed in the port
Which parts became utilities, which stayed CSS, and why.
- An inset ring standing in for a border is the port's most reusable lesson: any clipped or skewed shape has to draw its own edge, and
shadow-[inset_...]is how. - Focus thickens the existing ring rather than replacing it, so the wireframe never appears to lose its outline mid-interaction.
- UI change from the CSS original: the accent darkened to
oklch(0.52 0.14 205)— enough contrast for 12px monospace labels on the pale ground AND for white text on the inverted current crumb, which the original's lighter teal failed on both counts.
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 Outline Border-Only Geometric Breadcrumbs
Source: https://codefronts.com/navigation/tailwind-css-breadcrumbs/tailwind-outline-border-only-geometric-breadcrumbs/
Line-art chevrons with no fills: each crumb is an outline drawn as an inset ring inside a clipped shape, hover washes in a faint tint, and the current crumb inverts to solid. The blueprint aesthetic for developer tools and design-system docs.
## HTML
```html
<section class="tbc-36 w-full min-h-svh flex items-center justify-center bg-tbc36-bg font-tbc36-mono px-8 py-8 [--tbc36-depth:15px]">
<nav aria-label="Breadcrumb">
<ol class="flex list-none m-0 p-0">
<li class="flex"><a href="#" class="flex items-center h-9.5 pl-4.5 pr-4 text-xs font-semibold tracking-[0.02em] text-tbc36-acc no-underline bg-transparent shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc)] [clip-path:polygon(0_0,calc(100%-var(--tbc36-depth))_0,100%_50%,calc(100%-var(--tbc36-depth))_100%,0_100%)] transition-[background-color,color] duration-200 hover:text-tbc36-accdark hover:bg-[color-mix(in_oklab,var(--color-tbc36-acc)_12%,transparent)] focus-visible:outline-none focus-visible:shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc),inset_0_0_0_4px_color-mix(in_oklab,var(--color-tbc36-acc)_30%,transparent)] motion-reduce:transition-none">Home</a></li>
<li class="flex"><a href="#" class="flex items-center h-9.5 pl-6 pr-4 -ms-[var(--tbc36-depth)] text-xs font-semibold tracking-[0.02em] text-tbc36-acc no-underline bg-transparent shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc)] [clip-path:polygon(0_0,calc(100%-var(--tbc36-depth))_0,100%_50%,calc(100%-var(--tbc36-depth))_100%,0_100%,var(--tbc36-depth)_50%)] transition-[background-color,color] duration-200 hover:text-tbc36-accdark hover:bg-[color-mix(in_oklab,var(--color-tbc36-acc)_12%,transparent)] focus-visible:outline-none focus-visible:shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc),inset_0_0_0_4px_color-mix(in_oklab,var(--color-tbc36-acc)_30%,transparent)] motion-reduce:transition-none">System</a></li>
<li class="flex"><a href="#" class="flex items-center h-9.5 pl-6 pr-4 -ms-[var(--tbc36-depth)] text-xs font-semibold tracking-[0.02em] text-tbc36-acc no-underline bg-transparent shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc)] [clip-path:polygon(0_0,calc(100%-var(--tbc36-depth))_0,100%_50%,calc(100%-var(--tbc36-depth))_100%,0_100%,var(--tbc36-depth)_50%)] transition-[background-color,color] duration-200 hover:text-tbc36-accdark hover:bg-[color-mix(in_oklab,var(--color-tbc36-acc)_12%,transparent)] focus-visible:outline-none focus-visible:shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc),inset_0_0_0_4px_color-mix(in_oklab,var(--color-tbc36-acc)_30%,transparent)] motion-reduce:transition-none">Modules</a></li>
<li class="flex"><a href="#" aria-current="page" class="flex items-center h-9.5 pl-6 pr-5 -ms-[var(--tbc36-depth)] text-xs font-semibold tracking-[0.02em] text-white no-underline cursor-default bg-tbc36-acc shadow-none [clip-path:polygon(0_0,100%_0,100%_100%,0_100%,var(--tbc36-depth)_50%)] focus-visible:outline-none focus-visible:shadow-[inset_0_0_0_2.5px_white]">Renderer</a></li>
</ol>
</nav>
</section>
```
## CSS
```css
@import "tailwindcss";
@theme {
--color-tbc36-bg: #fafcfc;
--color-tbc36-bg: oklch(0.98 0.005 200);
--color-tbc36-acc: #14748f;
--color-tbc36-acc: oklch(0.52 0.14 205);
--color-tbc36-accdark: #0f5c73;
--color-tbc36-accdark: oklch(0.42 0.15 205);
--font-tbc36-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', monospace;
}
.tbc-36 {
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 Outline Border-Only Geometric Breadcrumbs
Source: https://codefronts.com/navigation/tailwind-css-breadcrumbs/tailwind-outline-border-only-geometric-breadcrumbs/
Line-art chevrons with no fills: each crumb is an outline drawn as an inset ring inside a clipped shape, hover washes in a faint tint, and the current crumb inverts to solid. The blueprint aesthetic for developer tools and design-system docs.
## HTML
```html
<section class="tbc-36 w-full min-h-svh flex items-center justify-center bg-tbc36-bg font-tbc36-mono px-8 py-8 [--tbc36-depth:15px]">
<nav aria-label="Breadcrumb">
<ol class="flex list-none m-0 p-0">
<li class="flex"><a href="#" class="flex items-center h-9.5 pl-4.5 pr-4 text-xs font-semibold tracking-[0.02em] text-tbc36-acc no-underline bg-transparent shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc)] [clip-path:polygon(0_0,calc(100%-var(--tbc36-depth))_0,100%_50%,calc(100%-var(--tbc36-depth))_100%,0_100%)] transition-[background-color,color] duration-200 hover:text-tbc36-accdark hover:bg-[color-mix(in_oklab,var(--color-tbc36-acc)_12%,transparent)] focus-visible:outline-none focus-visible:shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc),inset_0_0_0_4px_color-mix(in_oklab,var(--color-tbc36-acc)_30%,transparent)] motion-reduce:transition-none">Home</a></li>
<li class="flex"><a href="#" class="flex items-center h-9.5 pl-6 pr-4 -ms-[var(--tbc36-depth)] text-xs font-semibold tracking-[0.02em] text-tbc36-acc no-underline bg-transparent shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc)] [clip-path:polygon(0_0,calc(100%-var(--tbc36-depth))_0,100%_50%,calc(100%-var(--tbc36-depth))_100%,0_100%,var(--tbc36-depth)_50%)] transition-[background-color,color] duration-200 hover:text-tbc36-accdark hover:bg-[color-mix(in_oklab,var(--color-tbc36-acc)_12%,transparent)] focus-visible:outline-none focus-visible:shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc),inset_0_0_0_4px_color-mix(in_oklab,var(--color-tbc36-acc)_30%,transparent)] motion-reduce:transition-none">System</a></li>
<li class="flex"><a href="#" class="flex items-center h-9.5 pl-6 pr-4 -ms-[var(--tbc36-depth)] text-xs font-semibold tracking-[0.02em] text-tbc36-acc no-underline bg-transparent shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc)] [clip-path:polygon(0_0,calc(100%-var(--tbc36-depth))_0,100%_50%,calc(100%-var(--tbc36-depth))_100%,0_100%,var(--tbc36-depth)_50%)] transition-[background-color,color] duration-200 hover:text-tbc36-accdark hover:bg-[color-mix(in_oklab,var(--color-tbc36-acc)_12%,transparent)] focus-visible:outline-none focus-visible:shadow-[inset_0_0_0_1.5px_var(--color-tbc36-acc),inset_0_0_0_4px_color-mix(in_oklab,var(--color-tbc36-acc)_30%,transparent)] motion-reduce:transition-none">Modules</a></li>
<li class="flex"><a href="#" aria-current="page" class="flex items-center h-9.5 pl-6 pr-5 -ms-[var(--tbc36-depth)] text-xs font-semibold tracking-[0.02em] text-white no-underline cursor-default bg-tbc36-acc shadow-none [clip-path:polygon(0_0,100%_0,100%_100%,0_100%,var(--tbc36-depth)_50%)] focus-visible:outline-none focus-visible:shadow-[inset_0_0_0_2.5px_white]">Renderer</a></li>
</ol>
</nav>
</section>
```
## CSS
```css
@import "tailwindcss";
@theme {
--color-tbc36-bg: #fafcfc;
--color-tbc36-bg: oklch(0.98 0.005 200);
--color-tbc36-acc: #14748f;
--color-tbc36-acc: oklch(0.52 0.14 205);
--color-tbc36-accdark: #0f5c73;
--color-tbc36-accdark: oklch(0.42 0.15 205);
--font-tbc36-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', monospace;
}
.tbc-36 {
width: 100%;
min-height: 100svh;
}
```How this works
Borders do not survive clipping. clip-path cuts the border box, so an outlined chevron has to draw its own edge — an inset ring paints inside the padding box and follows the clip exactly. This is the demo's one real technique, and it is the same constraint the isometric and ribbon trails hit from other directions.
Hover is a tint, not a fill. color-mix() at 12% keeps the line-art reading while confirming the hover, and the ink darkens one stop with it.
Inversion marks position. Solid accent with white text for the current crumb, ring removed — the wireframe's one filled shape is where you are.
Make it yours
- Line weight: the
1.5pxin the inset ring; 1px reads finer, 2px reads like a diagram. - Point depth:
--tbc36-depthdriving the polygons and the overlaps. - Accent: one token colours the ring, the label, the hover tint and the current fill.
Gotchas — read before shipping
- Do not use
borderon a clipped element — it will be cut on exactly the edges you want to see. - Overlapping outlined chevrons double their ring where they meet; the negative margin is tuned so the doubled line lands on the point, where it reads as intentional.
- White text on the inverted crumb needs the accent at or below
oklch(0.55)lightness.
Browser support
| Chrome | Safari | Firefox | Edge |
|---|---|---|---|
| 111+ | 16.4+ | 128+ | 111+ |
Polygon clip-path is Baseline; color-mix() is v4's own floor.