Open demo

CSS code

HTML
<div class="g-scene" aria-hidden="true"><i></i><i></i><i></i><i></i></div>
<div class="wrap">
<div><span class="lbl lbl--chip">Navbar</span>
<header class="g-glass g-navbar">
  <a class="g-brand" href="#home"><svg viewBox="0 0 28 28" aria-hidden="true"><rect width="28" height="28" rx="8"/><path d="M8 19.5 14 8.5l6 11z" fill="#fff"/></svg>Lumen</a>
  <nav aria-label="Main"><ul class="g-navlinks">
    <li><a href="#product">Product</a></li>
    <li><a href="#pricing" aria-current="page">Pricing</a></li>
    <li><a href="#customers">Customers</a></li>
    <li><a href="#docs">Docs</a></li>
  </ul></nav>
  <div class="g-nav-actions"><a class="g-btn g-btn--quiet g-btn--sm" href="#signin">Sign in</a><a class="g-btn g-btn--accent g-btn--sm" href="#start">Get started</a></div>
</header></div>
<div class="layout">
<div><span class="lbl lbl--chip">Sidebar</span>
<nav class="g-glass g-side" aria-label="Workspace">
  <h2>Workspace</h2>
  <ul>
    <li><a href="#dashboard" aria-current="page"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round" aria-hidden="true"><rect x="3.5" y="3.5" width="7" height="7" rx="1.5"/><rect x="13.5" y="3.5" width="7" height="7" rx="1.5"/><rect x="3.5" y="13.5" width="7" height="7" rx="1.5"/><rect x="13.5" y="13.5" width="7" height="7" rx="1.5"/></svg>Dashboard</a></li>
    <li><a href="#projects"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round" aria-hidden="true"><path d="M3.5 7.5a2 2 0 0 1 2-2h4l2 2.5h7a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-13a2 2 0 0 1-2-2z"/></svg>Projects</a></li>
    <li><a href="#inbox"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round" aria-hidden="true"><path d="M3.5 13.5 6 5.5h12l2.5 8v5a1 1 0 0 1-1 1h-15a1 1 0 0 1-1-1zM3.5 13.5h5l1 2.5h5l1-2.5h5"/></svg>Inbox<span class="g-count">4<span class="sr-only"> unread</span></span></a></li>
    <li><a href="#calendar"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3.5" y="5" width="17" height="15.5" rx="2"/><path d="M3.5 10h17M8 3v4M16 3v4"/></svg>Calendar</a></li>
  </ul>
  <h2>Account</h2>
  <ul>
    <li><a href="#settings"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><path d="M4 7h10M18 7h2M4 17h4M12 17h8"/><circle cx="16" cy="7" r="2"/><circle cx="10" cy="17" r="2"/></svg>Settings</a></li>
    <li><a href="#help"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><circle cx="12" cy="12" r="8.5"/><path d="M9.6 9.5a2.5 2.5 0 1 1 3.4 2.3c-.6.3-1 .8-1 1.5v.4M12 16.8v.2"/></svg>Help centre</a></li>
  </ul>
  <div class="g-side-user"><span class="g-initials" aria-hidden="true">RS</span><div><b>Rafael Santos</b><span>[email protected]</span></div></div>
</nav></div>
<div class="stack">
<div><span class="lbl lbl--chip">Tabs</span>
<nav class="g-glass g-tabs" aria-label="Project sections">
  <a href="#overview" aria-current="page">Overview</a>
  <a href="#activity">Activity</a>
  <a href="#files">Files<span class="g-count">12</span></a>
  <a href="#members">Members</a>
  <a href="#project-settings">Settings</a>
</nav></div>
<div><span class="lbl lbl--chip">Breadcrumb</span>
<nav aria-label="Breadcrumb"><ol class="g-glass g-crumbs">
  <li><a href="#home">Home</a></li>
  <li><a href="#library">Library</a></li>
  <li><a href="#recordings">Field recordings</a></li>
  <li><span aria-current="page">Lisbon harbour at dawn</span></li>
</ol></nav></div>
<div><span class="lbl lbl--chip">Pagination</span>
<nav aria-label="Pagination"><ul class="g-pages">
  <li><a href="#page-2" aria-label="Previous page"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M15 5l-7 7 7 7"/></svg></a></li>
  <li><a href="#page-1" aria-label="Page 1">1</a></li>
  <li><a href="#page-2" aria-label="Page 2">2</a></li>
  <li><a href="#page-3" aria-label="Page 3" aria-current="page">3</a></li>
  <li><a href="#page-4" aria-label="Page 4">4</a></li>
  <li class="g-gap" aria-hidden="true">…</li>
  <li><a href="#page-18" aria-label="Page 18">18</a></li>
  <li><a href="#page-4" aria-label="Next page"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 5l7 7-7 7"/></svg></a></li>
</ul></nav></div>
</div>
</div>
</div>
CSS
/* ===== uiCookies Glassmorphism kit: design tokens (identical in every set) =====
   Retheme the whole kit here. Light scene on :root, dark scene on [data-scene="dark"]
   (or any [data-scene] holding a checked [data-scene-switch]). Selectors use :where()
   so the fallbacks below always win. */
:where(:root,[data-scene="light"]){
  color-scheme:light;
  /* background scene: the colour the glass frosts */
  --scene-base:linear-gradient(155deg,#eceffe 0%,#fbeef7 52%,#e6f6fb 100%);
  --scene-1:linear-gradient(140deg,#7c3aed,#c026d3);
  --scene-2:linear-gradient(140deg,#fb7185,#f97316);
  --scene-3:linear-gradient(140deg,#22d3ee,#3b82f6);
  --scene-4:linear-gradient(140deg,#fde047,#fb923c);
  /* glass */
  --glass-tint:255 255 255;
  --glass-border:rgb(255 255 255 / .8);
  --glass-edge:rgb(36 32 88 / .9);
  --glass-highlight:inset 0 1px 0 rgb(255 255 255 / .85);
  --glass-shadow:0 18px 40px -18px rgb(37 30 102 / .45);
  --glass-ink:#16133a;
  --glass-ink-soft:#3b3862;
  --glass-accent:#4338ca;
  --glass-accent-bg:rgb(67 56 202 / .92);
  --glass-on-accent:#fff;
  --glass-check-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --glass-focus:#1e1b4b;
  --glass-good:#14532d;--glass-good-bg:rgb(220 252 231 / .9);
  --glass-bad:#991b1b;--glass-bad-bg:rgb(254 226 226 / .9);
  --glass-warn:#7c2d12;--glass-warn-bg:rgb(254 243 199 / .9);
  --glass-scrim:rgb(22 19 58 / .3);
}
:where([data-scene="dark"]),:where([data-scene]:has([data-scene-switch]:checked)){
  color-scheme:dark;
  --scene-base:linear-gradient(155deg,#0a0c22 0%,#170c2c 52%,#06171f 100%);
  --scene-1:linear-gradient(140deg,#6d28d9,#a21caf);
  --scene-2:linear-gradient(140deg,#e11d48,#ea580c);
  --scene-3:linear-gradient(140deg,#0891b2,#2563eb);
  --scene-4:linear-gradient(140deg,#ca8a04,#c2410c);
  --glass-tint:16 18 44;
  --glass-border:rgb(255 255 255 / .2);
  --glass-edge:rgb(214 220 255 / .72);
  --glass-highlight:inset 0 1px 0 rgb(255 255 255 / .16);
  --glass-shadow:0 18px 40px -18px rgb(0 0 0 / .75);
  --glass-ink:#f5f6ff;
  --glass-ink-soft:#d0d3ee;
  --glass-accent:#a5b4fc;
  --glass-accent-bg:rgb(165 180 252 / .96);
  --glass-on-accent:#14123a;
  --glass-check-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%2314123a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --glass-focus:#c7d2fe;
  --glass-good:#bbf7d0;--glass-good-bg:rgb(20 83 45 / .7);
  --glass-bad:#fecaca;--glass-bad-bg:rgb(127 29 29 / .7);
  --glass-warn:#fde68a;--glass-warn-bg:rgb(120 53 15 / .7);
  --glass-scrim:rgb(0 0 0 / .5);
}
:where(:root){
  --glass-alpha:.6;          /* panels and cards */
  --glass-alpha-strong:.82;  /* menus, dialogs, toasts: they cover unknown content */
  --glass-alpha-control:.5;  /* buttons and fields sitting on a panel */
  --glass-blur:18px;
  --glass-saturate:150%;
  --glass-radius:20px;
}
/* derived: recomputed inside every scene so a dark scene gets dark glass */
:where(:root,[data-scene]){
  --glass-bg:rgb(var(--glass-tint) / var(--glass-alpha));
  --glass-bg-strong:rgb(var(--glass-tint) / var(--glass-alpha-strong));
  --glass-bg-control:rgb(var(--glass-tint) / var(--glass-alpha-control));
}
/* no backdrop-filter: frosting can't happen, so the glass turns nearly solid */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  :where(:root){--glass-alpha:.94;--glass-alpha-strong:.97;--glass-alpha-control:.9}
}
@media (prefers-reduced-transparency:reduce){
  :where(:root){--glass-alpha:.93;--glass-alpha-strong:.97;--glass-alpha-control:.9;--glass-blur:8px}
}
@media (prefers-contrast:more){
  :where(:root){--glass-alpha:.96;--glass-alpha-strong:.98;--glass-alpha-control:.96}
  :where(:root,[data-scene]){--glass-border:var(--glass-ink);--glass-edge:var(--glass-ink)}
}
/* ===== end of tokens ===== */
/* scene: fixed page background of four gradient orbs (decorative, aria-hidden) */
:where([data-scene]){color:var(--glass-ink)}
.g-scene{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:var(--scene-base)}
.g-scene i{position:absolute;aspect-ratio:1;border-radius:50%;animation:g-drift 32s ease-in-out infinite alternate}
.g-scene i:nth-child(1){width:clamp(240px,40vw,520px);left:-7%;top:-9%;background:var(--scene-1)}
.g-scene i:nth-child(2){width:clamp(170px,26vw,360px);right:-5%;top:18%;background:var(--scene-2);animation-delay:-9s}
.g-scene i:nth-child(3){width:clamp(220px,34vw,460px);left:28%;bottom:-16%;background:var(--scene-3);animation-delay:-17s}
.g-scene i:nth-child(4){width:clamp(90px,13vw,180px);left:54%;top:7%;background:var(--scene-4);animation-delay:-4s}
@keyframes g-drift{to{transform:translate3d(3vw,4vh,0) scale(1.06)}}
/* glass surface */
.g-glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));
  backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));border:1px solid var(--glass-border);
  border-radius:var(--glass-radius);box-shadow:var(--glass-highlight),var(--glass-shadow);color:var(--glass-ink)}
.g-glass--strong{background:var(--glass-bg-strong)}
.g-panel{padding:24px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.g-muted{color:var(--glass-ink-soft)}
@media (prefers-reduced-motion:reduce){.g-scene i{animation:none}}
/* buttons: glass control, tinted accent glass, quiet text button, round icon button */
.g-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.g-row+.g-row{margin-top:14px}
.g-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 20px;
  border:1px solid var(--glass-edge);border-radius:999px;background:var(--glass-bg-control);
  -webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));box-shadow:var(--glass-highlight);
  color:var(--glass-ink);font:inherit;font-size:.95rem;font-weight:600;line-height:1;text-decoration:none;cursor:pointer;
  transition:background-color .2s,transform .2s}
.g-btn:hover{background:var(--glass-bg-strong)}
.g-btn:active{transform:translateY(1px)}
.g-btn:focus-visible,.g-icon-btn:focus-visible{outline:3px solid var(--glass-focus);outline-offset:3px}
.g-btn svg,.g-icon-btn svg{width:18px;height:18px;flex:none}
.g-btn--accent{border-color:transparent;background:var(--glass-accent-bg);color:var(--glass-on-accent);
  box-shadow:var(--glass-highlight)}
.g-btn--accent:hover{background:var(--glass-accent-bg);filter:brightness(1.08)}
.g-btn--quiet{border-color:transparent;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;
  text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.g-btn--quiet:hover{background:var(--glass-bg-control)}
.g-btn--strong{background:var(--glass-bg-strong)} /* for buttons placed straight on the scene */
.g-btn--sm{min-height:36px;padding:0 14px;font-size:.85rem}
.g-btn--lg{min-height:54px;padding:0 28px;font-size:1.05rem}
.g-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.g-icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--glass-edge);border-radius:50%;
  background:var(--glass-bg-control);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));
  box-shadow:var(--glass-highlight);color:var(--glass-ink);cursor:pointer;transition:background-color .2s,transform .2s}
.g-icon-btn:hover{background:var(--glass-bg-strong)}
.g-icon-btn:active{transform:scale(.96)}
.g-icon-btn--accent{border-color:transparent;background:var(--glass-accent-bg);color:var(--glass-on-accent)}
.g-icon-btn--accent:hover{background:var(--glass-accent-bg);filter:brightness(1.08)}
.g-icon-btn--lg{width:56px;height:56px}
.g-icon-btn--lg svg{width:22px;height:22px}
@media (prefers-reduced-motion:reduce){.g-btn,.g-icon-btn{transition:none}.g-btn:active,.g-icon-btn:active{transform:none}}
/* navigation: every current item is marked with aria-current and a 3:1 indicator, not colour alone */
.g-navbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:10px 12px 10px 18px}
.g-brand{display:inline-flex;align-items:center;gap:10px;border-radius:8px;color:var(--glass-ink);font-size:1.05rem;font-weight:800;text-decoration:none}
.g-brand svg{width:28px;height:28px}
.g-brand rect{fill:var(--glass-accent-bg)}
.g-navbar>nav{margin:0 auto 0 8px}
.g-navlinks{display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none}
.g-navlinks a,.g-tabs a,.g-side ul a{color:var(--glass-ink);font-size:.92rem;font-weight:600;text-decoration:none;transition:background-color .2s}
.g-navlinks a{display:block;padding:8px 14px;border-radius:999px}
.g-navlinks a:hover,.g-tabs a:hover,.g-side ul a:hover{background:var(--glass-bg-control)}
.g-navlinks a[aria-current="page"]{background:var(--glass-bg-strong);box-shadow:inset 0 0 0 1px var(--glass-edge)}
.g-nav-actions{display:flex;align-items:center;gap:8px}
@media (max-width:760px){.g-navbar{justify-content:space-between;column-gap:10px}.g-navbar>nav{order:3;width:100%;margin:0}.g-navlinks{gap:2px}.g-navlinks a{padding:7px 8px;font-size:.88rem}}
.g-tabs{display:flex;flex-wrap:wrap;gap:4px;padding:5px;border-radius:16px}
.g-tabs a{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:12px}
.g-tabs a[aria-current="page"],.g-side ul a[aria-current="page"]{background:var(--glass-accent-bg);color:var(--glass-on-accent)}
.g-count{min-width:22px;padding:1px 7px;border-radius:999px;background:var(--glass-bg-strong);color:var(--glass-ink);font-size:.75rem;font-weight:700;text-align:center}
.g-side{display:flex;flex-direction:column;gap:4px;padding:14px}
.g-side h2{margin:12px 12px 6px;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--glass-ink-soft)}
.g-side h2:first-child{margin-top:4px}
.g-side ul{display:grid;gap:2px;margin:0;padding:0;list-style:none}
.g-side ul a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px}
.g-side ul a svg{flex:none;width:20px;height:20px}
.g-side .g-count{margin-left:auto}
.g-side-user{display:flex;align-items:center;gap:10px;margin-top:10px;padding:12px;border-top:1px solid var(--glass-border);font-size:.85rem}
.g-side-user b{display:block;font-size:.9rem}
.g-side-user span{color:var(--glass-ink-soft)}
.g-initials{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--scene-1);color:#fff;font-size:.8rem;font-weight:700}
.g-crumbs{display:flex;flex-wrap:wrap;width:fit-content;max-width:100%;align-items:center;gap:6px;margin:0;padding:10px 18px;list-style:none;border-radius:999px;font-size:.9rem}
.g-crumbs li{display:flex;align-items:center;gap:6px}
.g-crumbs li+li::before{content:"";width:6px;height:6px;margin-right:4px;border-top:1.5px solid var(--glass-ink-soft);border-right:1.5px solid var(--glass-ink-soft);transform:rotate(45deg)}
.g-crumbs a{border-radius:4px;color:var(--glass-ink-soft);text-decoration:underline;text-underline-offset:3px}
.g-crumbs a:hover{color:var(--glass-ink)}
.g-crumbs [aria-current]{font-weight:700;color:var(--glass-ink)}
.g-pages{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:0;list-style:none}
.g-pages a{display:grid;place-items:center;min-width:42px;height:42px;padding:0 12px;border:1px solid var(--glass-edge);border-radius:12px;
  background:var(--glass-bg-control);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));
  color:var(--glass-ink);font-weight:600;text-decoration:none;transition:background-color .2s}
.g-pages a:hover{background:var(--glass-bg-strong)}
.g-pages a[aria-current="page"]{border-color:transparent;background:var(--glass-accent-bg);color:var(--glass-on-accent)}
.g-pages svg{width:18px;height:18px}
.g-pages .g-gap{min-width:20px;text-align:center;color:var(--glass-ink-soft)}
@media (max-width:420px){.g-pages{gap:4px}.g-pages a{min-width:36px;height:40px;padding:0 8px}}
:is(.g-brand,.g-navlinks a,.g-tabs a,.g-side ul a,.g-crumbs a,.g-pages a):focus-visible{outline:3px solid var(--glass-focus);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.g-navlinks a,.g-tabs a,.g-side ul a,.g-pages a{transition:none}}

Bootstrap 5 code

Requires: Bootstrap 5.3.8 CSS

HTML
<div class="g-scene" aria-hidden="true"><i></i><i></i><i></i><i></i></div>
<div class="wrap">
<div><span class="lbl lbl--chip">Navbar</span>
<header class="navbar navbar-expand g-glass g-navbar">
  <a class="navbar-brand" href="#home"><svg viewBox="0 0 28 28" aria-hidden="true"><rect width="28" height="28" rx="8"/><path d="M8 19.5 14 8.5l6 11z" fill="#fff"/></svg>Lumen</a>
  <nav aria-label="Main"><ul class="navbar-nav">
    <li class="nav-item"><a class="nav-link" href="#product">Product</a></li>
    <li class="nav-item"><a class="nav-link active" href="#pricing" aria-current="page">Pricing</a></li>
    <li class="nav-item"><a class="nav-link" href="#customers">Customers</a></li>
    <li class="nav-item"><a class="nav-link" href="#docs">Docs</a></li>
  </ul></nav>
  <div class="d-flex align-items-center gap-2"><a class="btn btn-glass btn-glass-quiet btn-sm" href="#signin">Sign in</a><a class="btn btn-glass btn-glass-accent btn-sm" href="#start">Get started</a></div>
</header></div>
<div class="row g-4 align-items-start">
<div class="col-12 col-md-auto side-col"><span class="lbl lbl--chip">Sidebar</span>
<nav class="g-glass g-side-wrap" aria-label="Workspace">
  <h2>Workspace</h2>
  <ul class="nav nav-pills flex-column g-pills g-side">
    <li class="nav-item"><a class="nav-link active" href="#dashboard" aria-current="page"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round" aria-hidden="true"><rect x="3.5" y="3.5" width="7" height="7" rx="1.5"/><rect x="13.5" y="3.5" width="7" height="7" rx="1.5"/><rect x="3.5" y="13.5" width="7" height="7" rx="1.5"/><rect x="13.5" y="13.5" width="7" height="7" rx="1.5"/></svg>Dashboard</a></li>
    <li class="nav-item"><a class="nav-link" href="#projects"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round" aria-hidden="true"><path d="M3.5 7.5a2 2 0 0 1 2-2h4l2 2.5h7a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-13a2 2 0 0 1-2-2z"/></svg>Projects</a></li>
    <li class="nav-item"><a class="nav-link" href="#inbox"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round" aria-hidden="true"><path d="M3.5 13.5 6 5.5h12l2.5 8v5a1 1 0 0 1-1 1h-15a1 1 0 0 1-1-1zM3.5 13.5h5l1 2.5h5l1-2.5h5"/></svg>Inbox<span class="badge g-count">4<span class="visually-hidden"> unread</span></span></a></li>
    <li class="nav-item"><a class="nav-link" href="#calendar"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3.5" y="5" width="17" height="15.5" rx="2"/><path d="M3.5 10h17M8 3v4M16 3v4"/></svg>Calendar</a></li>
  </ul>
  <h2>Account</h2>
  <ul class="nav nav-pills flex-column g-pills g-side">
    <li class="nav-item"><a class="nav-link" href="#settings"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><path d="M4 7h10M18 7h2M4 17h4M12 17h8"/><circle cx="16" cy="7" r="2"/><circle cx="10" cy="17" r="2"/></svg>Settings</a></li>
    <li class="nav-item"><a class="nav-link" href="#help"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><circle cx="12" cy="12" r="8.5"/><path d="M9.6 9.5a2.5 2.5 0 1 1 3.4 2.3c-.6.3-1 .8-1 1.5v.4M12 16.8v.2"/></svg>Help centre</a></li>
  </ul>
  <div class="g-side-user"><span class="g-initials" aria-hidden="true">RS</span><div><b>Rafael Santos</b><span>[email protected]</span></div></div>
</nav></div>
<div class="col d-flex flex-column gap-4 main-col">
<div><span class="lbl lbl--chip">Tabs</span>
<nav aria-label="Project sections"><ul class="nav nav-pills g-pills g-tabs g-glass">
  <li class="nav-item"><a class="nav-link active" href="#overview" aria-current="page">Overview</a></li>
  <li class="nav-item"><a class="nav-link" href="#activity">Activity</a></li>
  <li class="nav-item"><a class="nav-link" href="#files">Files<span class="badge g-count">12</span></a></li>
  <li class="nav-item"><a class="nav-link" href="#members">Members</a></li>
  <li class="nav-item"><a class="nav-link" href="#project-settings">Settings</a></li>
</ul></nav></div>
<div><span class="lbl lbl--chip">Breadcrumb</span>
<nav aria-label="Breadcrumb"><ol class="breadcrumb g-glass g-crumbs">
  <li class="breadcrumb-item"><a href="#home">Home</a></li>
  <li class="breadcrumb-item"><a href="#library">Library</a></li>
  <li class="breadcrumb-item"><a href="#recordings">Field recordings</a></li>
  <li class="breadcrumb-item active" aria-current="page">Lisbon harbour at dawn</li>
</ol></nav></div>
<div><span class="lbl lbl--chip">Pagination</span>
<nav aria-label="Pagination"><ul class="pagination g-pages">
  <li class="page-item"><a class="page-link" href="#page-2" aria-label="Previous page"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M15 5l-7 7 7 7"/></svg></a></li>
  <li class="page-item"><a class="page-link" href="#page-1" aria-label="Page 1">1</a></li>
  <li class="page-item"><a class="page-link" href="#page-2" aria-label="Page 2">2</a></li>
  <li class="page-item active"><a class="page-link" href="#page-3" aria-label="Page 3" aria-current="page">3</a></li>
  <li class="page-item"><a class="page-link" href="#page-4" aria-label="Page 4">4</a></li>
  <li class="g-gap" aria-hidden="true">…</li>
  <li class="page-item"><a class="page-link" href="#page-18" aria-label="Page 18">18</a></li>
  <li class="page-item"><a class="page-link" href="#page-4" aria-label="Next page"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 5l7 7-7 7"/></svg></a></li>
</ul></nav></div>
</div>
</div>
</div>
CSS
/* ===== uiCookies Glassmorphism kit: design tokens (identical in every set) =====
   Retheme the whole kit here. Light scene on :root, dark scene on [data-scene="dark"]
   (or any [data-scene] holding a checked [data-scene-switch]). Selectors use :where()
   so the fallbacks below always win. */
:where(:root,[data-scene="light"]){
  color-scheme:light;
  /* background scene: the colour the glass frosts */
  --scene-base:linear-gradient(155deg,#eceffe 0%,#fbeef7 52%,#e6f6fb 100%);
  --scene-1:linear-gradient(140deg,#7c3aed,#c026d3);
  --scene-2:linear-gradient(140deg,#fb7185,#f97316);
  --scene-3:linear-gradient(140deg,#22d3ee,#3b82f6);
  --scene-4:linear-gradient(140deg,#fde047,#fb923c);
  /* glass */
  --glass-tint:255 255 255;
  --glass-border:rgb(255 255 255 / .8);
  --glass-edge:rgb(36 32 88 / .9);
  --glass-highlight:inset 0 1px 0 rgb(255 255 255 / .85);
  --glass-shadow:0 18px 40px -18px rgb(37 30 102 / .45);
  --glass-ink:#16133a;
  --glass-ink-soft:#3b3862;
  --glass-accent:#4338ca;
  --glass-accent-bg:rgb(67 56 202 / .92);
  --glass-on-accent:#fff;
  --glass-check-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --glass-focus:#1e1b4b;
  --glass-good:#14532d;--glass-good-bg:rgb(220 252 231 / .9);
  --glass-bad:#991b1b;--glass-bad-bg:rgb(254 226 226 / .9);
  --glass-warn:#7c2d12;--glass-warn-bg:rgb(254 243 199 / .9);
  --glass-scrim:rgb(22 19 58 / .3);
}
:where([data-scene="dark"]),:where([data-scene]:has([data-scene-switch]:checked)){
  color-scheme:dark;
  --scene-base:linear-gradient(155deg,#0a0c22 0%,#170c2c 52%,#06171f 100%);
  --scene-1:linear-gradient(140deg,#6d28d9,#a21caf);
  --scene-2:linear-gradient(140deg,#e11d48,#ea580c);
  --scene-3:linear-gradient(140deg,#0891b2,#2563eb);
  --scene-4:linear-gradient(140deg,#ca8a04,#c2410c);
  --glass-tint:16 18 44;
  --glass-border:rgb(255 255 255 / .2);
  --glass-edge:rgb(214 220 255 / .72);
  --glass-highlight:inset 0 1px 0 rgb(255 255 255 / .16);
  --glass-shadow:0 18px 40px -18px rgb(0 0 0 / .75);
  --glass-ink:#f5f6ff;
  --glass-ink-soft:#d0d3ee;
  --glass-accent:#a5b4fc;
  --glass-accent-bg:rgb(165 180 252 / .96);
  --glass-on-accent:#14123a;
  --glass-check-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%2314123a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --glass-focus:#c7d2fe;
  --glass-good:#bbf7d0;--glass-good-bg:rgb(20 83 45 / .7);
  --glass-bad:#fecaca;--glass-bad-bg:rgb(127 29 29 / .7);
  --glass-warn:#fde68a;--glass-warn-bg:rgb(120 53 15 / .7);
  --glass-scrim:rgb(0 0 0 / .5);
}
:where(:root){
  --glass-alpha:.6;          /* panels and cards */
  --glass-alpha-strong:.82;  /* menus, dialogs, toasts: they cover unknown content */
  --glass-alpha-control:.5;  /* buttons and fields sitting on a panel */
  --glass-blur:18px;
  --glass-saturate:150%;
  --glass-radius:20px;
}
/* derived: recomputed inside every scene so a dark scene gets dark glass */
:where(:root,[data-scene]){
  --glass-bg:rgb(var(--glass-tint) / var(--glass-alpha));
  --glass-bg-strong:rgb(var(--glass-tint) / var(--glass-alpha-strong));
  --glass-bg-control:rgb(var(--glass-tint) / var(--glass-alpha-control));
}
/* no backdrop-filter: frosting can't happen, so the glass turns nearly solid */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  :where(:root){--glass-alpha:.94;--glass-alpha-strong:.97;--glass-alpha-control:.9}
}
@media (prefers-reduced-transparency:reduce){
  :where(:root){--glass-alpha:.93;--glass-alpha-strong:.97;--glass-alpha-control:.9;--glass-blur:8px}
}
@media (prefers-contrast:more){
  :where(:root){--glass-alpha:.96;--glass-alpha-strong:.98;--glass-alpha-control:.96}
  :where(:root,[data-scene]){--glass-border:var(--glass-ink);--glass-edge:var(--glass-ink)}
}
/* ===== end of tokens ===== */
/* scene: fixed page background of four gradient orbs (decorative, aria-hidden) */
:where([data-scene]){color:var(--glass-ink)}
.g-scene{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:var(--scene-base)}
.g-scene i{position:absolute;aspect-ratio:1;border-radius:50%;animation:g-drift 32s ease-in-out infinite alternate}
.g-scene i:nth-child(1){width:clamp(240px,40vw,520px);left:-7%;top:-9%;background:var(--scene-1)}
.g-scene i:nth-child(2){width:clamp(170px,26vw,360px);right:-5%;top:18%;background:var(--scene-2);animation-delay:-9s}
.g-scene i:nth-child(3){width:clamp(220px,34vw,460px);left:28%;bottom:-16%;background:var(--scene-3);animation-delay:-17s}
.g-scene i:nth-child(4){width:clamp(90px,13vw,180px);left:54%;top:7%;background:var(--scene-4);animation-delay:-4s}
@keyframes g-drift{to{transform:translate3d(3vw,4vh,0) scale(1.06)}}
/* glass surface */
.g-glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));
  backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));border:1px solid var(--glass-border);
  border-radius:var(--glass-radius);box-shadow:var(--glass-highlight),var(--glass-shadow);color:var(--glass-ink)}
.g-glass--strong{background:var(--glass-bg-strong)}
.g-panel{padding:24px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.g-muted{color:var(--glass-ink-soft)}
@media (prefers-reduced-motion:reduce){.g-scene i{animation:none}}
/* Bootstrap: the glass tokens feed Bootstrap's own component variables */
.card.g-glass{--bs-card-bg:var(--glass-bg);--bs-card-border-color:var(--glass-border);--bs-card-border-radius:var(--glass-radius);
  --bs-card-inner-border-radius:calc(var(--glass-radius) - 1px);--bs-card-color:var(--glass-ink);--bs-card-spacer-x:24px;--bs-card-spacer-y:24px;
  --bs-card-title-color:var(--glass-ink);--bs-card-subtitle-color:var(--glass-ink-soft)}
:where([data-scene]){--bs-body-color:var(--glass-ink);--bs-secondary-color:var(--glass-ink-soft);--bs-border-color:var(--glass-edge);;--bs-emphasis-color:var(--glass-ink)}
.g-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.btn-glass{--bs-btn-padding-x:20px;--bs-btn-padding-y:0;--bs-btn-font-size:.95rem;--bs-btn-font-weight:600;--bs-btn-line-height:1;--bs-btn-border-radius:999px;
  --bs-btn-color:var(--glass-ink);--bs-btn-bg:var(--glass-bg-control);--bs-btn-border-color:var(--glass-edge);
  --bs-btn-hover-color:var(--glass-ink);--bs-btn-hover-bg:var(--glass-bg-strong);--bs-btn-hover-border-color:var(--glass-edge);
  --bs-btn-active-color:var(--glass-ink);--bs-btn-active-bg:var(--glass-bg-strong);--bs-btn-active-border-color:var(--glass-edge);
  --bs-btn-disabled-color:var(--glass-ink);--bs-btn-disabled-bg:var(--glass-bg-control);--bs-btn-disabled-border-color:var(--glass-edge);--bs-btn-disabled-opacity:.5;
  --bs-btn-focus-box-shadow:var(--glass-highlight);
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;
  -webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));box-shadow:var(--glass-highlight);
  transition:background-color .2s,transform .2s}
.btn-glass:active{transform:translateY(1px)}
.btn-glass:focus-visible,.btn-check:focus-visible+.btn-glass{outline:3px solid var(--glass-focus);outline-offset:3px}
.btn-glass svg{width:18px;height:18px;flex:none}
.btn-glass-accent{--bs-btn-color:var(--glass-on-accent);--bs-btn-bg:var(--glass-accent-bg);--bs-btn-border-color:transparent;
  --bs-btn-hover-color:var(--glass-on-accent);--bs-btn-hover-bg:var(--glass-accent-bg);--bs-btn-hover-border-color:transparent;
  --bs-btn-active-color:var(--glass-on-accent);--bs-btn-active-bg:var(--glass-accent-bg);--bs-btn-active-border-color:transparent}
.btn-glass-accent:hover{filter:brightness(1.08)}
.btn-glass-quiet{--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-border-color:transparent;--bs-btn-hover-bg:var(--glass-bg-control);
  -webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;text-decoration:underline;text-underline-offset:4px}
.btn-glass-strong{--bs-btn-bg:var(--glass-bg-strong)} /* for buttons placed straight on the scene */
.btn-glass.btn-sm{--bs-btn-padding-x:14px;--bs-btn-font-size:.85rem;min-height:36px}
.btn-glass.btn-lg{--bs-btn-padding-x:28px;--bs-btn-font-size:1.05rem;min-height:54px}
.btn-glass.btn-icon{width:44px;height:44px;min-height:0;padding:0}
.btn-glass.btn-icon.btn-sm{width:36px;height:36px}
.btn-glass.btn-icon.btn-sm svg{width:16px;height:16px}
.btn-glass.btn-icon.btn-lg{width:56px;height:56px}
.btn-glass.btn-icon.btn-lg svg{width:22px;height:22px}
@media (prefers-reduced-motion:reduce){.btn-glass{transition:none}.btn-glass:active{transform:none}}
/* .navbar, .nav-pills, .breadcrumb and .pagination recoloured through their Bootstrap variables */
.g-navbar.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:0;--bs-navbar-color:var(--glass-ink);--bs-navbar-hover-color:var(--glass-ink);
  --bs-navbar-active-color:var(--glass-ink);--bs-navbar-brand-color:var(--glass-ink);--bs-navbar-brand-hover-color:var(--glass-ink);
  --bs-navbar-brand-padding-y:0;--bs-navbar-brand-margin-end:0;--bs-navbar-brand-font-size:1.05rem;--bs-navbar-nav-link-padding-x:14px;
  flex-wrap:wrap;justify-content:flex-start;gap:10px 18px;padding:10px 12px 10px 18px}
.g-navbar .navbar-brand{display:inline-flex;align-items:center;gap:10px;border-radius:8px;font-weight:800}
.g-navbar .navbar-brand svg{width:28px;height:28px}
.g-navbar .navbar-brand rect{fill:var(--glass-accent-bg)}
.g-navbar .navbar-nav{--bs-nav-link-padding-y:8px;--bs-nav-link-font-weight:600;--bs-nav-link-font-size:.92rem;flex-wrap:wrap;gap:4px}
.g-navbar>nav{margin:0 auto 0 8px}
.g-navbar .nav-link{border-radius:999px;transition:background-color .2s}
.g-navbar .nav-link:hover{background:var(--glass-bg-control)}
.g-navbar .nav-link.active{background:var(--glass-bg-strong);box-shadow:inset 0 0 0 1px var(--glass-edge)}
@media (max-width:760px){.g-navbar.navbar{justify-content:space-between;column-gap:10px;--bs-navbar-nav-link-padding-x:8px}
  .g-navbar .navbar-nav{--bs-nav-link-padding-y:7px;--bs-nav-link-font-size:.88rem;gap:2px}.g-navbar>nav{order:3;width:100%;margin:0}}
.g-pills.nav-pills{--bs-nav-link-color:var(--glass-ink);--bs-nav-link-hover-color:var(--glass-ink);--bs-nav-link-font-weight:600;--bs-nav-link-font-size:.92rem;
  --bs-nav-pills-border-radius:12px;--bs-nav-pills-link-active-color:var(--glass-on-accent);--bs-nav-pills-link-active-bg:var(--glass-accent-bg)}
.g-pills .nav-link{display:flex;align-items:center;gap:8px;transition:background-color .2s}
.g-pills .nav-link:not(.active):hover{background:var(--glass-bg-control)}
.g-tabs.nav-pills{--bs-nav-link-padding-x:16px;--bs-nav-link-padding-y:9px;gap:4px;padding:5px;border-radius:16px}
.g-side.nav-pills{--bs-nav-link-padding-x:12px;--bs-nav-link-padding-y:10px;gap:2px}
.g-side .nav-link{gap:12px}
.g-side .nav-link svg{flex:none;width:20px;height:20px}
.g-side .badge{margin-left:auto}
.g-count.badge{--bs-badge-padding-x:7px;--bs-badge-padding-y:2px;--bs-badge-font-size:.75rem;--bs-badge-color:var(--glass-ink);--bs-badge-border-radius:999px;
  min-width:22px;background:var(--glass-bg-strong)}
.g-side-wrap{display:flex;flex-direction:column;gap:4px;padding:14px}
.g-side-wrap h2{margin:12px 12px 6px;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--glass-ink-soft)}
.g-side-wrap h2:first-child{margin-top:4px}
.g-side-user{display:flex;align-items:center;gap:10px;margin-top:10px;padding:12px;border-top:1px solid var(--glass-border);font-size:.85rem}
.g-side-user b{display:block;font-size:.9rem}
.g-side-user span{color:var(--glass-ink-soft)}
.g-initials{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--scene-1);color:#fff;font-size:.8rem;font-weight:700}
.g-crumbs.breadcrumb{--bs-breadcrumb-margin-bottom:0;--bs-breadcrumb-padding-x:18px;--bs-breadcrumb-padding-y:10px;--bs-breadcrumb-font-size:.9rem;
  --bs-breadcrumb-item-padding-x:10px;--bs-breadcrumb-item-active-color:var(--glass-ink);--bs-breadcrumb-border-radius:999px;
  width:fit-content;max-width:100%;align-items:center;row-gap:6px}
.g-crumbs .breadcrumb-item{display:flex;align-items:center}
.g-crumbs .breadcrumb-item+.breadcrumb-item::before{content:"";float:none;width:6px;height:6px;margin-right:10px;padding:0;
  border-top:1.5px solid var(--glass-ink-soft);border-right:1.5px solid var(--glass-ink-soft);transform:rotate(45deg)}
.g-crumbs a{border-radius:4px;color:var(--glass-ink-soft);text-underline-offset:3px}
.g-crumbs a:hover{color:var(--glass-ink)}
.g-crumbs .active{font-weight:700}
.g-pages.pagination{--bs-pagination-padding-x:12px;--bs-pagination-padding-y:0;--bs-pagination-color:var(--glass-ink);--bs-pagination-bg:var(--glass-bg-control);
  --bs-pagination-border-color:var(--glass-edge);--bs-pagination-border-radius:12px;--bs-pagination-hover-color:var(--glass-ink);
  --bs-pagination-hover-bg:var(--glass-bg-strong);--bs-pagination-hover-border-color:var(--glass-edge);--bs-pagination-focus-color:var(--glass-ink);
  --bs-pagination-focus-bg:var(--glass-bg-strong);--bs-pagination-focus-box-shadow:none;--bs-pagination-active-color:var(--glass-on-accent);
  --bs-pagination-active-bg:var(--glass-accent-bg);--bs-pagination-active-border-color:transparent;--bs-pagination-disabled-color:var(--glass-ink-soft);
  --bs-pagination-disabled-bg:transparent;--bs-pagination-disabled-border-color:transparent;
  flex-wrap:wrap;align-items:center;gap:6px;margin:0}
.g-pages .page-item .page-link{display:grid;place-items:center;min-width:42px;height:42px;margin:0;border-radius:12px;font-weight:600;
  -webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur))}
.g-pages .page-link svg{width:18px;height:18px}
.g-pages .g-gap{min-width:20px;text-align:center;color:var(--glass-ink-soft)}
@media (max-width:420px){.g-pages.pagination{gap:4px}.g-pages .page-item .page-link{min-width:36px;height:40px;padding:0 8px}}
:is(.g-navbar .navbar-brand,.g-navbar .nav-link,.g-pills .nav-link,.g-crumbs a,.g-pages .page-link):focus-visible{outline:3px solid var(--glass-focus);outline-offset:2px;box-shadow:none}
@media (prefers-reduced-motion:reduce){.g-navbar .nav-link,.g-pills .nav-link,.g-pages .page-link{transition:none}}

Tailwind 4 code

Requires: Tailwind CSS 4

HTML
<div aria-hidden="true" class="pointer-events-none fixed inset-0 -z-10 overflow-hidden bg-(image:--scene-base)">
  <i class="absolute -top-[9%] -left-[7%] aspect-square w-[clamp(240px,40vw,520px)] rounded-full bg-(image:--scene-1) motion-safe:animate-drift"></i>
  <i class="absolute top-[18%] -right-[5%] aspect-square w-[clamp(170px,26vw,360px)] rounded-full bg-(image:--scene-2) [animation-delay:-9s] motion-safe:animate-drift"></i>
  <i class="absolute -bottom-[16%] left-[28%] aspect-square w-[clamp(220px,34vw,460px)] rounded-full bg-(image:--scene-3) [animation-delay:-17s] motion-safe:animate-drift"></i>
  <i class="absolute top-[7%] left-[54%] aspect-square w-[clamp(90px,13vw,180px)] rounded-full bg-(image:--scene-4) [animation-delay:-4s] motion-safe:animate-drift"></i>
</div>
<div class="mx-auto flex max-w-[980px] flex-col gap-[26px]">
<div class="flex flex-col items-start [&>*:not(span)]:self-stretch"><span class="self-start inline-block rounded-full border border-glass-border bg-glass-strong px-[11px] py-[5px] text-[.72rem] font-bold tracking-[.12em] text-ink-soft uppercase backdrop-blur-glass mb-4">Navbar</span>
<header class="border border-glass-border bg-glass text-ink shadow-glass inset-shadow-glass backdrop-blur-glass backdrop-saturate-150 rounded-glass flex flex-wrap items-center gap-x-[18px] gap-y-2.5 py-2.5 pr-3 pl-[18px] max-[760px]:justify-between max-[760px]:gap-x-2.5">
  <a class="inline-flex items-center gap-2.5 rounded-lg text-[1.05rem] font-extrabold text-ink focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-focus" href="#home"><svg class="size-7" viewBox="0 0 28 28" aria-hidden="true"><rect class="fill-accent-glass" width="28" height="28" rx="8"/><path d="M8 19.5 14 8.5l6 11z" fill="#fff"/></svg>Lumen</a>
  <nav aria-label="Main" class="ml-2 mr-auto max-[760px]:order-3 max-[760px]:m-0 max-[760px]:w-full"><ul class="flex flex-wrap gap-1 max-[760px]:gap-0.5">
    <li><a class="block rounded-full px-[14px] py-2 text-[.92rem] font-semibold text-ink transition-colors duration-200 hover:bg-glass-control aria-[current=page]:bg-glass-strong aria-[current=page]:shadow-[inset_0_0_0_1px_var(--glass-edge)] max-[760px]:px-2 max-[760px]:py-[7px] max-[760px]:text-[.88rem] focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#product">Product</a></li>
    <li><a class="block rounded-full px-[14px] py-2 text-[.92rem] font-semibold text-ink transition-colors duration-200 hover:bg-glass-control aria-[current=page]:bg-glass-strong aria-[current=page]:shadow-[inset_0_0_0_1px_var(--glass-edge)] max-[760px]:px-2 max-[760px]:py-[7px] max-[760px]:text-[.88rem] focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#pricing" aria-current="page">Pricing</a></li>
    <li><a class="block rounded-full px-[14px] py-2 text-[.92rem] font-semibold text-ink transition-colors duration-200 hover:bg-glass-control aria-[current=page]:bg-glass-strong aria-[current=page]:shadow-[inset_0_0_0_1px_var(--glass-edge)] max-[760px]:px-2 max-[760px]:py-[7px] max-[760px]:text-[.88rem] focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#customers">Customers</a></li>
    <li><a class="block rounded-full px-[14px] py-2 text-[.92rem] font-semibold text-ink transition-colors duration-200 hover:bg-glass-control aria-[current=page]:bg-glass-strong aria-[current=page]:shadow-[inset_0_0_0_1px_var(--glass-edge)] max-[760px]:px-2 max-[760px]:py-[7px] max-[760px]:text-[.88rem] focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#docs">Docs</a></li>
  </ul></nav>
  <div class="flex items-center gap-2"><a class="inline-flex cursor-pointer items-center justify-center gap-2 rounded-full border border-transparent bg-transparent leading-none font-semibold text-ink underline decoration-1 underline-offset-4 transition-[background-color] duration-200 hover:bg-glass-control focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-focus motion-reduce:transition-none min-h-9 px-[14px] text-[.85rem]" href="#signin">Sign in</a><a class="inline-flex cursor-pointer items-center justify-center gap-2 rounded-full border border-transparent bg-accent-glass leading-none font-semibold text-on-accent no-underline inset-shadow-glass backdrop-blur-glass transition-[filter,translate] duration-200 hover:brightness-[1.08] active:translate-y-px focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-focus motion-reduce:transition-none motion-reduce:active:translate-y-0 min-h-9 px-[14px] text-[.85rem]" href="#start">Get started</a></div>
</header></div>
<div class="grid items-start gap-[26px] min-[761px]:grid-cols-[260px_minmax(0,1fr)]">
<div class="flex flex-col items-start [&>*:not(span)]:self-stretch"><span class="self-start inline-block rounded-full border border-glass-border bg-glass-strong px-[11px] py-[5px] text-[.72rem] font-bold tracking-[.12em] text-ink-soft uppercase backdrop-blur-glass mb-4">Sidebar</span>
<nav class="border border-glass-border bg-glass text-ink shadow-glass inset-shadow-glass backdrop-blur-glass backdrop-saturate-150 rounded-glass flex flex-col gap-1 p-3.5" aria-label="Workspace">
  <h2 class="mx-3 mt-3 mb-1.5 text-[.72rem] font-bold tracking-[.1em] text-ink-soft uppercase first:mt-1">Workspace</h2>
  <ul class="grid gap-0.5">
    <li><a class="flex items-center gap-3 rounded-xl px-3 py-2.5 text-[.92rem] font-semibold text-ink transition-colors duration-200 hover:bg-glass-control aria-[current=page]:bg-accent-glass aria-[current=page]:text-on-accent focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#dashboard" aria-current="page"><svg class="size-5 flex-none" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round" aria-hidden="true"><rect x="3.5" y="3.5" width="7" height="7" rx="1.5"/><rect x="13.5" y="3.5" width="7" height="7" rx="1.5"/><rect x="3.5" y="13.5" width="7" height="7" rx="1.5"/><rect x="13.5" y="13.5" width="7" height="7" rx="1.5"/></svg>Dashboard</a></li>
    <li><a class="flex items-center gap-3 rounded-xl px-3 py-2.5 text-[.92rem] font-semibold text-ink transition-colors duration-200 hover:bg-glass-control aria-[current=page]:bg-accent-glass aria-[current=page]:text-on-accent focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#projects"><svg class="size-5 flex-none" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round" aria-hidden="true"><path d="M3.5 7.5a2 2 0 0 1 2-2h4l2 2.5h7a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-13a2 2 0 0 1-2-2z"/></svg>Projects</a></li>
    <li><a class="flex items-center gap-3 rounded-xl px-3 py-2.5 text-[.92rem] font-semibold text-ink transition-colors duration-200 hover:bg-glass-control aria-[current=page]:bg-accent-glass aria-[current=page]:text-on-accent focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#inbox"><svg class="size-5 flex-none" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round" aria-hidden="true"><path d="M3.5 13.5 6 5.5h12l2.5 8v5a1 1 0 0 1-1 1h-15a1 1 0 0 1-1-1zM3.5 13.5h5l1 2.5h5l1-2.5h5"/></svg>Inbox<span class="min-w-[22px] rounded-full bg-glass-strong px-[7px] py-px text-center text-[.75rem] font-bold text-ink ml-auto">4<span class="sr-only"> unread</span></span></a></li>
    <li><a class="flex items-center gap-3 rounded-xl px-3 py-2.5 text-[.92rem] font-semibold text-ink transition-colors duration-200 hover:bg-glass-control aria-[current=page]:bg-accent-glass aria-[current=page]:text-on-accent focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#calendar"><svg class="size-5 flex-none" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3.5" y="5" width="17" height="15.5" rx="2"/><path d="M3.5 10h17M8 3v4M16 3v4"/></svg>Calendar</a></li>
  </ul>
  <h2 class="mx-3 mt-3 mb-1.5 text-[.72rem] font-bold tracking-[.1em] text-ink-soft uppercase first:mt-1">Account</h2>
  <ul class="grid gap-0.5">
    <li><a class="flex items-center gap-3 rounded-xl px-3 py-2.5 text-[.92rem] font-semibold text-ink transition-colors duration-200 hover:bg-glass-control aria-[current=page]:bg-accent-glass aria-[current=page]:text-on-accent focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#settings"><svg class="size-5 flex-none" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><path d="M4 7h10M18 7h2M4 17h4M12 17h8"/><circle cx="16" cy="7" r="2"/><circle cx="10" cy="17" r="2"/></svg>Settings</a></li>
    <li><a class="flex items-center gap-3 rounded-xl px-3 py-2.5 text-[.92rem] font-semibold text-ink transition-colors duration-200 hover:bg-glass-control aria-[current=page]:bg-accent-glass aria-[current=page]:text-on-accent focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#help"><svg class="size-5 flex-none" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><circle cx="12" cy="12" r="8.5"/><path d="M9.6 9.5a2.5 2.5 0 1 1 3.4 2.3c-.6.3-1 .8-1 1.5v.4M12 16.8v.2"/></svg>Help centre</a></li>
  </ul>
  <div class="mt-2.5 flex items-center gap-2.5 border-t border-glass-border p-3 text-[.85rem]"><span class="grid size-9 flex-none place-items-center rounded-full bg-(image:--scene-1) text-[.8rem] font-bold text-white" aria-hidden="true">RS</span><div><b class="block text-[.9rem]">Rafael Santos</b><span class="text-ink-soft">[email protected]</span></div></div>
</nav></div>
<div class="flex min-w-0 flex-col gap-[26px]">
<div class="flex flex-col items-start [&>*:not(span)]:self-stretch"><span class="self-start inline-block rounded-full border border-glass-border bg-glass-strong px-[11px] py-[5px] text-[.72rem] font-bold tracking-[.12em] text-ink-soft uppercase backdrop-blur-glass mb-4">Tabs</span>
<nav class="border border-glass-border bg-glass text-ink shadow-glass inset-shadow-glass backdrop-blur-glass backdrop-saturate-150 flex flex-wrap gap-1 rounded-2xl p-[5px]" aria-label="Project sections">
  <a class="inline-flex items-center gap-2 rounded-xl px-4 py-[9px] text-[.92rem] font-semibold text-ink transition-colors duration-200 hover:bg-glass-control aria-[current=page]:bg-accent-glass aria-[current=page]:text-on-accent focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#overview" aria-current="page">Overview</a>
  <a class="inline-flex items-center gap-2 rounded-xl px-4 py-[9px] text-[.92rem] font-semibold text-ink transition-colors duration-200 hover:bg-glass-control aria-[current=page]:bg-accent-glass aria-[current=page]:text-on-accent focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#activity">Activity</a>
  <a class="inline-flex items-center gap-2 rounded-xl px-4 py-[9px] text-[.92rem] font-semibold text-ink transition-colors duration-200 hover:bg-glass-control aria-[current=page]:bg-accent-glass aria-[current=page]:text-on-accent focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#files">Files<span class="min-w-[22px] rounded-full bg-glass-strong px-[7px] py-px text-center text-[.75rem] font-bold text-ink">12</span></a>
  <a class="inline-flex items-center gap-2 rounded-xl px-4 py-[9px] text-[.92rem] font-semibold text-ink transition-colors duration-200 hover:bg-glass-control aria-[current=page]:bg-accent-glass aria-[current=page]:text-on-accent focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#members">Members</a>
  <a class="inline-flex items-center gap-2 rounded-xl px-4 py-[9px] text-[.92rem] font-semibold text-ink transition-colors duration-200 hover:bg-glass-control aria-[current=page]:bg-accent-glass aria-[current=page]:text-on-accent focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#project-settings">Settings</a>
</nav></div>
<div class="flex flex-col items-start [&>*:not(span)]:self-stretch"><span class="self-start inline-block rounded-full border border-glass-border bg-glass-strong px-[11px] py-[5px] text-[.72rem] font-bold tracking-[.12em] text-ink-soft uppercase backdrop-blur-glass mb-4">Breadcrumb</span>
<nav aria-label="Breadcrumb"><ol class="border border-glass-border bg-glass text-ink shadow-glass inset-shadow-glass backdrop-blur-glass backdrop-saturate-150 flex w-fit max-w-full flex-wrap items-center gap-1.5 rounded-full px-[18px] py-2.5 text-[.9rem]">
  <li class="flex items-center"><a class="rounded-[4px] text-ink-soft underline underline-offset-3 hover:text-ink focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus" href="#home">Home</a></li>
  <li class="flex items-center gap-1.5 before:mr-1 before:size-1.5 before:rotate-45 before:border-t-[1.5px] before:border-r-[1.5px] before:border-ink-soft before:content-['']"><a class="rounded-[4px] text-ink-soft underline underline-offset-3 hover:text-ink focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus" href="#library">Library</a></li>
  <li class="flex items-center gap-1.5 before:mr-1 before:size-1.5 before:rotate-45 before:border-t-[1.5px] before:border-r-[1.5px] before:border-ink-soft before:content-['']"><a class="rounded-[4px] text-ink-soft underline underline-offset-3 hover:text-ink focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus" href="#recordings">Field recordings</a></li>
  <li class="flex items-center gap-1.5 before:mr-1 before:size-1.5 before:rotate-45 before:border-t-[1.5px] before:border-r-[1.5px] before:border-ink-soft before:content-['']"><span class="font-bold text-ink" aria-current="page">Lisbon harbour at dawn</span></li>
</ol></nav></div>
<div class="flex flex-col items-start [&>*:not(span)]:self-stretch"><span class="self-start inline-block rounded-full border border-glass-border bg-glass-strong px-[11px] py-[5px] text-[.72rem] font-bold tracking-[.12em] text-ink-soft uppercase backdrop-blur-glass mb-4">Pagination</span>
<nav aria-label="Pagination"><ul class="flex flex-wrap items-center gap-1.5 max-[420px]:gap-1">
  <li><a class="grid h-[42px] min-w-[42px] place-items-center rounded-xl border border-glass-edge bg-glass-control px-3 font-semibold text-ink backdrop-blur-glass transition-colors duration-200 hover:bg-glass-strong aria-[current=page]:border-transparent aria-[current=page]:bg-accent-glass aria-[current=page]:text-on-accent max-[420px]:h-10 max-[420px]:min-w-9 max-[420px]:px-2 focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#page-2" aria-label="Previous page"><svg class="size-[18px]" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M15 5l-7 7 7 7"/></svg></a></li>
  <li><a class="grid h-[42px] min-w-[42px] place-items-center rounded-xl border border-glass-edge bg-glass-control px-3 font-semibold text-ink backdrop-blur-glass transition-colors duration-200 hover:bg-glass-strong aria-[current=page]:border-transparent aria-[current=page]:bg-accent-glass aria-[current=page]:text-on-accent max-[420px]:h-10 max-[420px]:min-w-9 max-[420px]:px-2 focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#page-1" aria-label="Page 1">1</a></li>
  <li><a class="grid h-[42px] min-w-[42px] place-items-center rounded-xl border border-glass-edge bg-glass-control px-3 font-semibold text-ink backdrop-blur-glass transition-colors duration-200 hover:bg-glass-strong aria-[current=page]:border-transparent aria-[current=page]:bg-accent-glass aria-[current=page]:text-on-accent max-[420px]:h-10 max-[420px]:min-w-9 max-[420px]:px-2 focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#page-2" aria-label="Page 2">2</a></li>
  <li><a class="grid h-[42px] min-w-[42px] place-items-center rounded-xl border border-glass-edge bg-glass-control px-3 font-semibold text-ink backdrop-blur-glass transition-colors duration-200 hover:bg-glass-strong aria-[current=page]:border-transparent aria-[current=page]:bg-accent-glass aria-[current=page]:text-on-accent max-[420px]:h-10 max-[420px]:min-w-9 max-[420px]:px-2 focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#page-3" aria-label="Page 3" aria-current="page">3</a></li>
  <li><a class="grid h-[42px] min-w-[42px] place-items-center rounded-xl border border-glass-edge bg-glass-control px-3 font-semibold text-ink backdrop-blur-glass transition-colors duration-200 hover:bg-glass-strong aria-[current=page]:border-transparent aria-[current=page]:bg-accent-glass aria-[current=page]:text-on-accent max-[420px]:h-10 max-[420px]:min-w-9 max-[420px]:px-2 focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#page-4" aria-label="Page 4">4</a></li>
  <li class="min-w-5 text-center text-ink-soft" aria-hidden="true">…</li>
  <li><a class="grid h-[42px] min-w-[42px] place-items-center rounded-xl border border-glass-edge bg-glass-control px-3 font-semibold text-ink backdrop-blur-glass transition-colors duration-200 hover:bg-glass-strong aria-[current=page]:border-transparent aria-[current=page]:bg-accent-glass aria-[current=page]:text-on-accent max-[420px]:h-10 max-[420px]:min-w-9 max-[420px]:px-2 focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#page-18" aria-label="Page 18">18</a></li>
  <li><a class="grid h-[42px] min-w-[42px] place-items-center rounded-xl border border-glass-edge bg-glass-control px-3 font-semibold text-ink backdrop-blur-glass transition-colors duration-200 hover:bg-glass-strong aria-[current=page]:border-transparent aria-[current=page]:bg-accent-glass aria-[current=page]:text-on-accent max-[420px]:h-10 max-[420px]:min-w-9 max-[420px]:px-2 focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-focus motion-reduce:transition-none" href="#page-4" aria-label="Next page"><svg class="size-[18px]" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 5l7 7-7 7"/></svg></a></li>
</ul></nav></div>
</div>
</div>
</div>
CSS
/* ===== uiCookies Glassmorphism kit: design tokens (identical in every set) =====
   Retheme the whole kit here. Light scene on :root, dark scene on [data-scene="dark"]
   (or any [data-scene] holding a checked [data-scene-switch]). Selectors use :where()
   so the fallbacks below always win. */
:where(:root,[data-scene="light"]){
  color-scheme:light;
  /* background scene: the colour the glass frosts */
  --scene-base:linear-gradient(155deg,#eceffe 0%,#fbeef7 52%,#e6f6fb 100%);
  --scene-1:linear-gradient(140deg,#7c3aed,#c026d3);
  --scene-2:linear-gradient(140deg,#fb7185,#f97316);
  --scene-3:linear-gradient(140deg,#22d3ee,#3b82f6);
  --scene-4:linear-gradient(140deg,#fde047,#fb923c);
  /* glass */
  --glass-tint:255 255 255;
  --glass-border:rgb(255 255 255 / .8);
  --glass-edge:rgb(36 32 88 / .9);
  --glass-highlight:inset 0 1px 0 rgb(255 255 255 / .85);
  --glass-shadow:0 18px 40px -18px rgb(37 30 102 / .45);
  --glass-ink:#16133a;
  --glass-ink-soft:#3b3862;
  --glass-accent:#4338ca;
  --glass-accent-bg:rgb(67 56 202 / .92);
  --glass-on-accent:#fff;
  --glass-check-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --glass-focus:#1e1b4b;
  --glass-good:#14532d;--glass-good-bg:rgb(220 252 231 / .9);
  --glass-bad:#991b1b;--glass-bad-bg:rgb(254 226 226 / .9);
  --glass-warn:#7c2d12;--glass-warn-bg:rgb(254 243 199 / .9);
  --glass-scrim:rgb(22 19 58 / .3);
}
:where([data-scene="dark"]),:where([data-scene]:has([data-scene-switch]:checked)){
  color-scheme:dark;
  --scene-base:linear-gradient(155deg,#0a0c22 0%,#170c2c 52%,#06171f 100%);
  --scene-1:linear-gradient(140deg,#6d28d9,#a21caf);
  --scene-2:linear-gradient(140deg,#e11d48,#ea580c);
  --scene-3:linear-gradient(140deg,#0891b2,#2563eb);
  --scene-4:linear-gradient(140deg,#ca8a04,#c2410c);
  --glass-tint:16 18 44;
  --glass-border:rgb(255 255 255 / .2);
  --glass-edge:rgb(214 220 255 / .72);
  --glass-highlight:inset 0 1px 0 rgb(255 255 255 / .16);
  --glass-shadow:0 18px 40px -18px rgb(0 0 0 / .75);
  --glass-ink:#f5f6ff;
  --glass-ink-soft:#d0d3ee;
  --glass-accent:#a5b4fc;
  --glass-accent-bg:rgb(165 180 252 / .96);
  --glass-on-accent:#14123a;
  --glass-check-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%2314123a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --glass-focus:#c7d2fe;
  --glass-good:#bbf7d0;--glass-good-bg:rgb(20 83 45 / .7);
  --glass-bad:#fecaca;--glass-bad-bg:rgb(127 29 29 / .7);
  --glass-warn:#fde68a;--glass-warn-bg:rgb(120 53 15 / .7);
  --glass-scrim:rgb(0 0 0 / .5);
}
:where(:root){
  --glass-alpha:.6;          /* panels and cards */
  --glass-alpha-strong:.82;  /* menus, dialogs, toasts: they cover unknown content */
  --glass-alpha-control:.5;  /* buttons and fields sitting on a panel */
  --glass-blur:18px;
  --glass-saturate:150%;
  --glass-radius:20px;
}
/* derived: recomputed inside every scene so a dark scene gets dark glass */
:where(:root,[data-scene]){
  --glass-bg:rgb(var(--glass-tint) / var(--glass-alpha));
  --glass-bg-strong:rgb(var(--glass-tint) / var(--glass-alpha-strong));
  --glass-bg-control:rgb(var(--glass-tint) / var(--glass-alpha-control));
}
/* no backdrop-filter: frosting can't happen, so the glass turns nearly solid */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  :where(:root){--glass-alpha:.94;--glass-alpha-strong:.97;--glass-alpha-control:.9}
}
@media (prefers-reduced-transparency:reduce){
  :where(:root){--glass-alpha:.93;--glass-alpha-strong:.97;--glass-alpha-control:.9;--glass-blur:8px}
}
@media (prefers-contrast:more){
  :where(:root){--glass-alpha:.96;--glass-alpha-strong:.98;--glass-alpha-control:.96}
  :where(:root,[data-scene]){--glass-border:var(--glass-ink);--glass-edge:var(--glass-ink)}
}
/* ===== end of tokens ===== */
/* Tailwind theme: utilities such as bg-glass, border-glass-edge, backdrop-blur-glass and text-ink read the tokens above */
@theme inline {
  --color-glass: var(--glass-bg);
  --color-glass-strong: var(--glass-bg-strong);
  --color-glass-control: var(--glass-bg-control);
  --color-glass-border: var(--glass-border);
  --color-glass-edge: var(--glass-edge);
  --color-ink: var(--glass-ink);
  --color-ink-soft: var(--glass-ink-soft);
  --color-accent: var(--glass-accent);
  --color-accent-glass: var(--glass-accent-bg);
  --color-on-accent: var(--glass-on-accent);
  --color-focus: var(--glass-focus);
  --color-good: var(--glass-good);
  --color-good-glass: var(--glass-good-bg);
  --color-bad: var(--glass-bad);
  --color-bad-glass: var(--glass-bad-bg);
  --color-warn: var(--glass-warn);
  --color-warn-glass: var(--glass-warn-bg);
  --color-scrim: var(--glass-scrim);
  --blur-glass: var(--glass-blur);
  --radius-glass: var(--glass-radius);
  --shadow-glass: var(--glass-shadow);
  --inset-shadow-glass: var(--glass-highlight);
  --animate-drift: g-drift 32s ease-in-out infinite alternate;
}
@keyframes g-drift { to { transform: translate3d(3vw,4vh,0) scale(1.06); } }

About this set

Navigation components for the uiCookies glassmorphism UI kit: a glass navbar, a tab bar, a workspace sidebar, a breadcrumb and pagination. The navbar has a logo, four links with the current page marked, and Sign in and Get started actions; on a phone the links drop to their own row instead of hiding behind a menu. The tab bar marks the current section with an accent pill and shows a file count. The sidebar groups links under Workspace and Account headings, with icons, an unread count and the signed-in user at the bottom. The breadcrumb is an ordered list on a frosted pill with drawn chevrons, and the pagination has previous and next arrows, numbered pages and a gap marker. Every current item carries aria-current and a visible indicator that does not rely on colour alone: an outlined pill in the navbar, a filled accent pill in tabs and sidebar, and a filled page number. Links are plain anchors, so nothing needs JavaScript. The Bootstrap version feeds the tokens into Bootstrap’s own component variables, and the Tailwind version maps them to theme utilities such as bg-glass, border-glass-edge, backdrop-blur-glass and text-ink.

What’s included

  • Glass navbar that wraps on small screens instead of hiding links
  • Tab bar with an accent current tab and a count badge
  • Sidebar with grouped links, icons, unread count and user block
  • Breadcrumb ordered list with drawn chevrons
  • Pagination with labelled arrows and page numbers

Accessibility

Each nav region has its own aria-label, and the current page link, tab and page number use aria-current. Page numbers and arrow links have names such as Page 3 and Next page, and the unread count includes visually hidden text. Every link shows a 3px focus outline, current indicators were measured at 3:1 against the glass, and hover transitions stop under prefers-reduced-motion.

Customise it

Change --glass-accent-bg for current items, --glass-edge for the outlined navbar pill and pagination borders, and --glass-alpha for the bars. In Bootstrap they feed --bs-navbar-*, --bs-nav-pills-*, --bs-breadcrumb-* and --bs-pagination-* variables; in Tailwind edit the aria-[current=page]: utilities.