Open demo

CSS code

HTML
<svg width="0" height="0" style="position:absolute" aria-hidden="true" focusable="false">
  <symbol id="clay-i-bell" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M6 16v-5a6 6 0 0 1 12 0v5l1.5 2h-15zM10 20.5a2 2 0 0 0 4 0"/></symbol>
  <symbol id="clay-i-gear" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/><path d="M12 2.8v2.6M12 18.6v2.6M4 7.2l2.2 1.3M17.8 15.5 20 16.8M4 16.8l2.2-1.3M17.8 8.5 20 7.2"/><circle cx="12" cy="12" r="6.6"/></symbol>
  <symbol id="clay-i-book" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5.5A2.5 2.5 0 0 1 6.5 3H20v15H6.5A2.5 2.5 0 0 0 4 20.5z"/><path d="M4 20.5A2.5 2.5 0 0 1 6.5 18H20v3H6.5"/></symbol>
  <symbol id="clay-i-calc" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="3" width="14" height="18" rx="3"/><path d="M8.5 7.5h7M8.5 12h.01M12 12h.01M15.5 12h.01M8.5 16h.01M12 16h.01M15.5 16h.01"/></symbol>
  <symbol id="clay-i-palette" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3.5a8.5 8.5 0 0 0 0 17c1.4 0 2-1 1.5-2.2-.6-1.4.3-2.8 1.8-2.8H17a3.5 3.5 0 0 0 3.5-3.5c0-4.7-3.8-8.5-8.5-8.5z"/><circle cx="8" cy="11" r="1.2" fill="currentColor"/><circle cx="11" cy="7.5" r="1.2" fill="currentColor"/><circle cx="15.5" cy="8.5" r="1.2" fill="currentColor"/></symbol>
  <symbol id="clay-i-home" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M4 10.5 12 4l8 6.5V20h-5.5v-6h-5v6H4z"/></symbol>
  <symbol id="clay-i-trophy" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M8 4h8v5a4 4 0 0 1-8 0zM8 6H4.5a3.5 3.5 0 0 0 3.8 3.5M16 6h3.5a3.5 3.5 0 0 1-3.8 3.5M12 13v4M8.5 20.5h7M10 17h4"/></symbol>
  <symbol id="clay-i-user" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="8" r="4"/><path d="M4.5 20.5a7.5 7.5 0 0 1 15 0"/></symbol>
  <symbol id="clay-i-chevLeft" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="m14.5 6-6 6 6 6"/></symbol>
  <symbol id="clay-i-chevRight" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="m9.5 6 6 6-6 6"/></symbol>
  <symbol id="clay-i-puzzle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M10 4.5a2 2 0 0 1 4 0V7h4a1 1 0 0 1 1 1v3.5h-1.5a2 2 0 0 0 0 4H19V19a1 1 0 0 1-1 1h-3.5v-1.5a2 2 0 0 0-4 0V20H6a1 1 0 0 1-1-1v-4h1.5a2 2 0 0 0 0-4H5V8a1 1 0 0 1 1-1h4z"/></symbol>
</svg>
<section><span class="lbl">Navbar</span><nav class="clay-nav" aria-label="Main">
<a class="clay-nav__brand" href="#"><span class="clay-nav__mark"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-palette"/></svg></span>Doodle Den</a>
<ul class="clay-nav__list"><li><a class="clay-nav__link" href="#">Home</a></li><li><a class="clay-nav__link" href="#" aria-current="page">Lessons</a></li><li><a class="clay-nav__link" href="#">Games</a></li><li><a class="clay-nav__link" href="#">Progress</a></li></ul>
<div class="clay-nav__tools"><button class="clay-iconbtn clay-iconbtn--sm clay-lemon" type="button" aria-label="Notifications, 2 new"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-bell"/></svg></button><a class="clay-iconbtn clay-iconbtn--sm clay-mint" href="#" aria-label="Your profile"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-user"/></svg></a></div>
</nav></section>
<div class="clay-navcols">
<section><span class="lbl">Sidebar</span><nav class="clay-card clay-side" aria-label="Classroom">
<h2 class="clay-side__heading" id="sd-learn">Learn</h2>
<ul class="clay-side__list" aria-labelledby="sd-learn">
<li><a class="clay-side__link" href="#"><span class="clay-side__icon clay-peach"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-home"/></svg></span>Today</a></li>
<li><a class="clay-side__link" href="#" aria-current="page"><span class="clay-side__icon clay-sky"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-book"/></svg></span>Reading<span class="clay-side__count">4<span class="clay-sr"> new</span></span></a></li>
<li><a class="clay-side__link" href="#"><span class="clay-side__icon clay-mint"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-calc"/></svg></span>Maths</a></li>
<li><a class="clay-side__link" href="#"><span class="clay-side__icon clay-lemon"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-puzzle"/></svg></span>Puzzles<span class="clay-side__count">2<span class="clay-sr"> new</span></span></a></li>
</ul>
<h2 class="clay-side__heading" id="sd-me">Me</h2>
<ul class="clay-side__list" aria-labelledby="sd-me">
<li><a class="clay-side__link" href="#"><span class="clay-side__icon clay-lilac"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-trophy"/></svg></span>Badges</a></li>
<li><a class="clay-side__link" href="#"><span class="clay-side__icon"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-gear"/></svg></span>Settings</a></li>
</ul></nav></section>
<div class="clay-stack">
<section><span class="lbl">Tabs · arrow keys move between them</span><div class="clay-tabs">
<div class="clay-tabs__list" role="tablist" aria-label="Subjects" data-clay-tabs>
<button class="clay-tab" type="button" role="tab" id="tab-read" aria-selected="true" aria-controls="panel-read"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-book"/></svg>Reading</button>
<button class="clay-tab" type="button" role="tab" id="tab-maths" aria-selected="false" aria-controls="panel-maths" tabindex="-1"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-calc"/></svg>Maths</button>
<button class="clay-tab" type="button" role="tab" id="tab-art" aria-selected="false" aria-controls="panel-art" tabindex="-1"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-palette"/></svg>Art</button>
</div>
<div class="clay-card clay-tabpanel clay-sky" role="tabpanel" id="panel-read" aria-labelledby="tab-read" tabindex="0"><span class="clay-blob"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-book"/></svg></span><div class="clay-tabpanel__text"><h3 class="clay-tabpanel__title">The Owl Who Was Afraid of the Dark</h3><p class="clay-tabpanel__copy">Chapter 3 of 7 · about 12 minutes · read aloud is on</p></div><a class="clay-btn clay-btn--accent" href="#">Open book</a></div>
<div class="clay-card clay-tabpanel clay-mint" role="tabpanel" id="panel-maths" aria-labelledby="tab-maths" tabindex="0" hidden><span class="clay-blob"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-calc"/></svg></span><div class="clay-tabpanel__text"><h3 class="clay-tabpanel__title">Counting in fives</h3><p class="clay-tabpanel__copy">10 questions · 2 stars so far · next: telling the time</p></div><a class="clay-btn clay-btn--accent" href="#">Practise</a></div>
<div class="clay-card clay-tabpanel clay-peach" role="tabpanel" id="panel-art" aria-labelledby="tab-art" tabindex="0" hidden><span class="clay-blob"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-palette"/></svg></span><div class="clay-tabpanel__text"><h3 class="clay-tabpanel__title">Paint a rainy day</h3><p class="clay-tabpanel__copy">Mix three blues and add puddles with a sponge</p></div><a class="clay-btn clay-btn--accent" href="#">Start painting</a></div>
</div></section>
<section><span class="lbl">Pagination</span><nav class="clay-pages" aria-label="Story pages"><ul class="clay-pages__list">
<li><a class="clay-page clay-page--wide" href="#"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-chevLeft"/></svg><span>Previous</span></a></li>
<li><a class="clay-page" href="#" aria-label="Page 1">1</a></li>
<li><a class="clay-page" href="#" aria-label="Page 2">2</a></li>
<li><a class="clay-page" href="#" aria-label="Page 3" aria-current="page">3</a></li>
<li><a class="clay-page" href="#" aria-label="Page 4">4</a></li>
<li><span class="clay-page__gap" aria-hidden="true">…</span></li>
<li><a class="clay-page" href="#" aria-label="Page 9">9</a></li>
<li><a class="clay-page clay-page--wide" href="#"><span>Next</span><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-chevRight"/></svg></a></li>
</ul></nav></section>
</div>
</div>
CSS
/* ── Claymorphism UI kit tokens (uiCookies) — identical in every set ──────────────
   Every component is a puffy pastel object floating above --clay-bg: one big soft drop shadow
   below it, an inset highlight top left and an inset shade bottom right. Change a token and
   the whole kit follows; the shadow recipes below are built from these values. */
:root{
  --clay-bg:#f3effa;          /* page, a pale lilac white */
  --clay-surface:#fffcf8;     /* cards, fields and plain objects */
  --clay-peach:#ffd2bd;       /* object fills: ink text on every fill reaches 11:1 */
  --clay-lilac:#dccdff;
  --clay-mint:#bdeed6;
  --clay-sky:#c2e0ff;
  --clay-lemon:#ffe9a3;
  --clay-ink:#241a3d;         /* text, 14.4:1 on --clay-bg */
  --clay-muted:#51476a;       /* secondary text, 5.7:1 or more on every fill */
  --clay-edge:#7a6e96;        /* control boundary, 4.1:1 on --clay-bg, so shadows are never the only edge */
  --clay-line:rgba(36,26,61,.12); /* decorative edge on cards and panels */
  --clay-accent:#6236e8;      /* focus ring and on / selected / current states, 5.8:1 on --clay-bg */
  --clay-on-accent:#ffffff;   /* text and marks on accent fills, 6.5:1 */
  --clay-tint:#e9e1ff;        /* light accent wash behind current items */
  --clay-drop:rgba(86,56,168,.30); /* colour of the outer drop shadow */
  --clay-hi:rgba(255,255,255,.88);  /* inset highlight, top left */
  --clay-lo:rgba(52,30,112,.20);    /* inset shade, bottom right */
  --clay-lift:14px;           /* how high objects float; every shadow scales from it */
  --clay-radius:30px;         /* cards; buttons are pills, fields use .55 of it */
  --clay-bw:1.5px;            /* control border width */
  --clay-success:#17663d;--clay-warning:#8a4b00;--clay-danger:#b3261e;
  --clay-font:ui-rounded,"SF Pro Rounded","Nunito","Quicksand","Varela Round","Arial Rounded MT Bold",system-ui,sans-serif;
}
/* --clay-fill is set by .clay-peach, .clay-mint… on one object and must not leak into its children */
@property --clay-fill{syntax:"*";inherits:false}
/* Dark clay: data-clay="dark" on any wrapper, or a checked .clay-theme-input inside a [data-clay] element.
   :is() is a forgiving list, so browsers without :has() still apply data-clay="dark" */
[data-clay]:is([data-clay="dark"],:has(.clay-theme-input:checked)){
  --clay-bg:#1a1530;--clay-surface:#2a2347;
  --clay-peach:#6e3f33;--clay-lilac:#4a3a8a;--clay-mint:#215a4a;--clay-sky:#26497c;--clay-lemon:#5f5220;
  --clay-ink:#f7f3ff;--clay-muted:#d2c9ea;--clay-edge:#8f83b8;--clay-line:rgba(255,255,255,.1);
  --clay-accent:#bba6ff;--clay-on-accent:#1a1530;--clay-tint:#3a2f66;
  --clay-drop:rgba(4,2,14,.62);--clay-hi:rgba(255,255,255,.2);--clay-lo:rgba(0,0,0,.34);
  --clay-success:#86e3b0;--clay-warning:#ffc76e;--clay-danger:#ffa196;color-scheme:dark}
/* More contrast requested: soft shading stays, but every edge and secondary text turns full ink */
@media (prefers-contrast:more){:root,[data-clay]:is([data-clay],:has(.clay-theme-input:checked)){
  --clay-edge:var(--clay-ink);--clay-line:var(--clay-ink);--clay-muted:var(--clay-ink);--clay-bw:2px}}
:root,[data-clay]{
  --clay-shadow:0 var(--clay-lift) calc(var(--clay-lift)*2.2) calc(var(--clay-lift)*-.3) var(--clay-drop),
    inset calc(var(--clay-lift)*.45) calc(var(--clay-lift)*.5) calc(var(--clay-lift)*.9) var(--clay-hi),
    inset calc(var(--clay-lift)*-.45) calc(var(--clay-lift)*-.6) calc(var(--clay-lift)*.9) var(--clay-lo);
  --clay-shadow-sm:0 calc(var(--clay-lift)*.55) calc(var(--clay-lift)*1.2) calc(var(--clay-lift)*-.15) var(--clay-drop),
    inset calc(var(--clay-lift)*.25) calc(var(--clay-lift)*.3) calc(var(--clay-lift)*.5) var(--clay-hi),
    inset calc(var(--clay-lift)*-.25) calc(var(--clay-lift)*-.35) calc(var(--clay-lift)*.5) var(--clay-lo);
  --clay-press:0 calc(var(--clay-lift)*.12) calc(var(--clay-lift)*.25) 0 var(--clay-drop),
    inset calc(var(--clay-lift)*.2) calc(var(--clay-lift)*.25) calc(var(--clay-lift)*.45) var(--clay-lo),
    inset calc(var(--clay-lift)*-.12) calc(var(--clay-lift)*-.12) calc(var(--clay-lift)*.3) var(--clay-hi);
  --clay-well:inset calc(var(--clay-lift)*.15) calc(var(--clay-lift)*.22) calc(var(--clay-lift)*.45) var(--clay-lo),
    inset calc(var(--clay-lift)*-.12) calc(var(--clay-lift)*-.12) calc(var(--clay-lift)*.3) var(--clay-hi);
}
[data-clay]{background:var(--clay-bg);color:var(--clay-ink)}
/* Components */
:where([class*="clay-"]),:where([class*="clay-"])::before,:where([class*="clay-"])::after{box-sizing:border-box}
.clay-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.clay-ico{width:22px;height:22px;flex:none}
.clay-ico--lg{width:28px;height:28px}
/* Fills: put one on any object; components read --clay-fill */
.clay-peach{--clay-fill:var(--clay-peach)}.clay-lilac{--clay-fill:var(--clay-lilac)}.clay-mint{--clay-fill:var(--clay-mint)}
.clay-sky{--clay-fill:var(--clay-sky)}.clay-lemon{--clay-fill:var(--clay-lemon)}
/* Card: a puffy panel that floats on the big drop shadow */
.clay-card{margin:0;padding:1.6rem;border:var(--clay-bw) solid var(--clay-line);border-radius:var(--clay-radius);
  background:var(--clay-fill,var(--clay-surface));color:var(--clay-ink);box-shadow:var(--clay-shadow)}
/* Layout helpers */
.clay-cluster{display:flex;flex-wrap:wrap;align-items:center;gap:18px}
.clay-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:22px}
.clay-stack{display:grid;gap:1.4rem}
/* Buttons: pastel pills that float; hover lifts them, pressing squashes the shadow flat */
.clay-btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:50px;margin:0;padding:.7rem 1.5rem;
  border:var(--clay-bw) solid var(--clay-edge);border-radius:999px;background:var(--clay-fill,var(--clay-surface));color:var(--clay-ink);
  font-family:inherit;font-size:1rem;font-weight:800;line-height:1.2;text-decoration:none;cursor:pointer;
  box-shadow:var(--clay-shadow-sm);transition:transform .18s,box-shadow .18s}
.clay-btn:hover{transform:translateY(-2px);box-shadow:var(--clay-shadow)}
.clay-btn:active{transform:translateY(2px);box-shadow:var(--clay-press)}
.clay-btn:focus-visible{outline:3px solid var(--clay-accent);outline-offset:4px}
.clay-btn--accent{--clay-fill:var(--clay-accent);border-color:var(--clay-accent);color:var(--clay-on-accent)}
.clay-btn--sm{min-height:40px;padding:.45rem 1.05rem;font-size:.88rem}
.clay-btn--block{width:100%}
/* Icon buttons: round (or squircle) clay pebbles with a chunky icon and an aria-label */
.clay-iconbtn{display:inline-grid;place-items:center;width:58px;height:58px;margin:0;padding:0;border:var(--clay-bw) solid var(--clay-edge);border-radius:50%;
  background:var(--clay-fill,var(--clay-surface));color:var(--clay-ink);cursor:pointer;box-shadow:var(--clay-shadow-sm);transition:transform .18s,box-shadow .18s}
.clay-iconbtn:hover{transform:translateY(-2px);box-shadow:var(--clay-shadow)}
.clay-iconbtn:active{transform:translateY(2px);box-shadow:var(--clay-press)}
.clay-iconbtn:focus-visible{outline:3px solid var(--clay-accent);outline-offset:4px}
.clay-iconbtn--sq{border-radius:20px}
.clay-iconbtn--sm{width:44px;height:44px}
.clay-iconbtn--lg{width:72px;height:72px}
.clay-iconbtn--accent{--clay-fill:var(--clay-accent);border-color:var(--clay-accent);color:var(--clay-on-accent)}
@media (prefers-reduced-motion:reduce){.clay-btn,.clay-iconbtn{transition:none}.clay-btn:hover,.clay-btn:active,.clay-iconbtn:hover,.clay-iconbtn:active{transform:none}}
/* Blob: a small puffy icon tile that sits on any card */
.clay-blob{display:grid;place-items:center;flex:none;width:52px;height:52px;border:var(--clay-bw) solid var(--clay-line);border-radius:18px;
  background:var(--clay-fill,var(--clay-surface));color:var(--clay-ink);box-shadow:var(--clay-shadow-sm)}
.clay-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .75rem;border:var(--clay-bw) solid var(--clay-line);border-radius:999px;
  background:var(--clay-surface);color:var(--clay-ink);font-size:.8rem;font-weight:800;line-height:1.3}
.clay-chip .clay-ico{width:16px;height:16px}
/* Stat cards: coloured clay slabs with a blob icon, a big number and a sentence that explains the change */
.clay-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px}
.clay-stat{display:grid;gap:.25rem;align-content:start}
.clay-stat__label{margin:.85rem 0 0;font-size:.9rem;font-weight:800;color:var(--clay-muted)}
.clay-stat__value{margin:0;font-size:2.2rem;font-weight:800;line-height:1.1;letter-spacing:-.01em}
.clay-stat__unit{font-size:1rem;font-weight:700}
.clay-stat__note{margin:0;font-size:.86rem;font-weight:600;color:var(--clay-muted)}
/* Content card: an illustration panel made of clay shapes, a chip, a title and a progress line */
.clay-lesson{display:flex;flex-direction:column;gap:1rem;padding:1rem 1rem 1.4rem}
.clay-art{position:relative;height:170px;overflow:hidden;border-radius:calc(var(--clay-radius)*.75);background:var(--clay-sky);box-shadow:var(--clay-well)}
.clay-art__shape{position:absolute;border-radius:50%;box-shadow:var(--clay-shadow-sm)}
.clay-art__shape--sun{top:22px;right:34px;width:58px;height:58px;background:var(--clay-lemon)}
.clay-art__shape--cloud{top:52px;left:40px;width:140px;height:54px;border-radius:999px;background:var(--clay-surface)}
.clay-art__shape--cloud2{top:30px;left:78px;width:70px;height:60px;background:var(--clay-surface)}
.clay-art__shape--hill{bottom:-70px;left:-20px;width:240px;height:140px;background:var(--clay-mint)}
.clay-art__shape--hill2{bottom:-90px;right:-40px;width:260px;height:150px;background:var(--clay-peach)}
.clay-art__shape--drop{top:116px;width:14px;height:20px;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:var(--clay-accent);box-shadow:none}
.clay-lesson__body{display:grid;gap:.55rem;padding:0 .5rem}
.clay-lesson__tag{margin:0}
.clay-lesson__title{margin:0;font-size:1.3rem;font-weight:800;line-height:1.25}
.clay-lesson__text{margin:0;color:var(--clay-muted)}
.clay-lesson__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding:0 .5rem}
.clay-meter{display:grid;gap:.35rem;flex:1;min-width:140px;font-size:.84rem;font-weight:700;color:var(--clay-muted)}
.clay-meter__bar{height:14px;border:var(--clay-bw) solid var(--clay-edge);border-radius:999px;background:var(--clay-bg);box-shadow:var(--clay-well);overflow:hidden}
.clay-meter__fill{display:block;height:100%;width:var(--clay-pct,50%);border-radius:999px;background:var(--clay-accent)}
/* Profile card */
.clay-profile{display:grid;justify-items:center;gap:.4rem;text-align:center}
.clay-avatar{display:grid;place-items:center;width:96px;height:96px;margin-bottom:.6rem;border:var(--clay-bw) solid var(--clay-line);border-radius:50%;
  background:var(--clay-fill,var(--clay-lilac));font-size:2rem;font-weight:800;box-shadow:var(--clay-shadow)}
.clay-profile__name{margin:0;font-size:1.3rem;font-weight:800;line-height:1.25}
.clay-profile__role{margin:0;color:var(--clay-muted)}
.clay-profile__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%;margin:.9rem 0 1.1rem;padding:0;list-style:none}
.clay-profile__stat{display:grid;padding:.6rem .3rem;border-radius:18px;background:var(--clay-fill,var(--clay-bg));box-shadow:var(--clay-well)}
.clay-profile__num{font-size:1.25rem;font-weight:800;line-height:1.2}
.clay-profile__key{font-size:.78rem;font-weight:700;color:var(--clay-muted)}
.clay-profile__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
/* Pricing pair */
.clay-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:28px;align-items:start}
.clay-plan{position:relative;display:grid;gap:.9rem}
.clay-plan__badge{position:absolute;top:-14px;right:24px;padding:.3rem .85rem;border:var(--clay-bw) solid var(--clay-accent);border-radius:999px;
  background:var(--clay-accent);color:var(--clay-on-accent);font-size:.78rem;font-weight:800;box-shadow:var(--clay-shadow-sm)}
.clay-plan__name{margin:0;font-size:1.15rem;font-weight:800}
.clay-plan__price{margin:0;font-size:2.6rem;font-weight:800;line-height:1}
.clay-plan__per{font-size:1rem;font-weight:700;color:var(--clay-muted)}
.clay-plan__desc{margin:0;color:var(--clay-muted)}
.clay-plan__list{display:grid;gap:.6rem;margin:.2rem 0 .4rem;padding:0;list-style:none}
.clay-plan__item{display:flex;align-items:center;gap:.6rem;font-weight:600}
.clay-plan__tick{display:grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;background:var(--clay-fill,var(--clay-surface));box-shadow:var(--clay-shadow-sm)}
.clay-plan__tick .clay-ico{width:16px;height:16px}
.clay-two{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:28px;align-items:start}
@media (max-width:767px){.clay-two{grid-template-columns:1fr}}
.clay-stats--two{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
/* Navbar: a floating clay pill. The current link is a raised tint pebble, accent text, a dot and aria-current */
.clay-nav{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;padding:.7rem .8rem .7rem 1rem;border:var(--clay-bw) solid var(--clay-line);border-radius:999px;
  background:var(--clay-surface);box-shadow:var(--clay-shadow)}
.clay-nav__brand{display:flex;align-items:center;gap:.6rem;margin-right:auto;color:var(--clay-ink);font-size:1.15rem;font-weight:800;text-decoration:none;border-radius:14px}
.clay-nav__brand:focus-visible{outline:3px solid var(--clay-accent);outline-offset:3px}
.clay-nav__mark{display:grid;place-items:center;width:42px;height:42px;border-radius:15px;background:var(--clay-peach);box-shadow:var(--clay-shadow-sm)}
.clay-nav__list{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.clay-nav__link{display:flex;align-items:center;gap:.4rem;min-height:44px;padding:.5rem 1rem;border:var(--clay-bw) solid transparent;border-radius:999px;
  color:var(--clay-muted);font-weight:800;text-decoration:none;transition:background-color .18s,box-shadow .18s}
.clay-nav__link:hover{color:var(--clay-ink);background:var(--clay-bg)}
.clay-nav__link:focus-visible{outline:3px solid var(--clay-accent);outline-offset:2px}
.clay-nav__link[aria-current="page"]{border-color:var(--clay-accent);background:var(--clay-tint);color:var(--clay-accent);box-shadow:var(--clay-shadow-sm)}
.clay-nav__link[aria-current="page"]::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.clay-nav__tools{display:flex;align-items:center;gap:10px}
/* Tabs: role="tablist". The selected tab pops up as a pebble with an accent edge and a dot */
.clay-tabs{display:grid;gap:1.2rem}
.clay-tabs__list{display:flex;flex-wrap:wrap;gap:6px;width:fit-content;max-width:100%;padding:6px;border:var(--clay-bw) solid var(--clay-edge);border-radius:999px;background:var(--clay-bg);box-shadow:var(--clay-well)}
.clay-tab{display:flex;align-items:center;gap:.45rem;min-height:44px;margin:0;padding:.45rem 1.1rem;border:var(--clay-bw) solid transparent;border-radius:999px;background:transparent;
  color:var(--clay-muted);font-family:inherit;font-size:.95rem;font-weight:800;cursor:pointer;transition:background-color .18s,box-shadow .18s}
.clay-tab:hover{color:var(--clay-ink)}
.clay-tab:focus-visible{outline:3px solid var(--clay-accent);outline-offset:2px}
.clay-tab[aria-selected="true"]{border-color:var(--clay-accent);background:var(--clay-surface);color:var(--clay-accent);box-shadow:var(--clay-shadow-sm)}
.clay-tab .clay-ico{width:20px;height:20px}
.clay-tabpanel{display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem}
.clay-tabpanel[hidden]{display:none}
.clay-tabpanel:focus-visible{outline:3px solid var(--clay-accent);outline-offset:4px}
.clay-tabpanel__text{flex:1;min-width:200px}
.clay-tabpanel__title{margin:0 0 .3rem;font-size:1.15rem;font-weight:800}
.clay-tabpanel__copy{margin:0;color:var(--clay-muted)}
/* Sidebar: grouped links; the current one sits on a tint pebble with an accent bar and aria-current */
.clay-side{display:grid;gap:.4rem;padding:1.2rem}
.clay-side__heading{margin:.6rem .7rem .3rem;font-size:.74rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--clay-muted)}
.clay-side__heading:first-child{margin-top:0}
.clay-side__list{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.clay-side__link{position:relative;display:flex;align-items:center;gap:.75rem;min-height:50px;padding:.35rem .6rem;border:var(--clay-bw) solid transparent;border-radius:18px;
  color:var(--clay-ink);font-weight:800;text-decoration:none;transition:background-color .18s,box-shadow .18s}
.clay-side__link:hover{background:var(--clay-bg)}
.clay-side__link:focus-visible{outline:3px solid var(--clay-accent);outline-offset:2px}
.clay-side__link[aria-current="page"]{border-color:var(--clay-accent);background:var(--clay-tint);box-shadow:var(--clay-shadow-sm)}
.clay-side__link[aria-current="page"]::after{content:"";position:absolute;left:-1px;top:12px;bottom:12px;width:5px;border-radius:0 6px 6px 0;background:var(--clay-accent)}
.clay-side__icon{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:13px;background:var(--clay-fill,var(--clay-surface));box-shadow:var(--clay-shadow-sm)}
.clay-side__icon .clay-ico{width:20px;height:20px}
.clay-side__count{margin-left:auto;min-width:28px;padding:.1rem .5rem;border-radius:999px;background:var(--clay-accent);color:var(--clay-on-accent);font-size:.78rem;font-weight:800;text-align:center}
/* Pagination: round pebbles; the current page is accent, pressed flat and marked with aria-current */
.clay-pages__list{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0;padding:0;list-style:none}
.clay-page{display:grid;place-items:center;min-width:48px;height:48px;padding:0 .8rem;border:var(--clay-bw) solid var(--clay-edge);border-radius:999px;
  background:var(--clay-surface);color:var(--clay-ink);font-weight:800;text-decoration:none;box-shadow:var(--clay-shadow-sm);transition:transform .18s,box-shadow .18s}
.clay-page:hover{transform:translateY(-2px);box-shadow:var(--clay-shadow)}
.clay-page:focus-visible{outline:3px solid var(--clay-accent);outline-offset:3px}
.clay-page[aria-current="page"]{transform:translateY(2px);border-color:var(--clay-accent);background:var(--clay-accent);color:var(--clay-on-accent);box-shadow:var(--clay-press)}
.clay-page--wide{display:flex;gap:.3rem;padding:0 1.1rem}
.clay-page[aria-disabled="true"]{color:var(--clay-muted);box-shadow:none;cursor:not-allowed;transform:none}
.clay-page__gap{padding:0 .2rem;font-weight:800;color:var(--clay-muted)}
@media (max-width:600px){.clay-nav,.clay-tabs__list{border-radius:var(--clay-radius)}}
@media (prefers-reduced-motion:reduce){.clay-nav__link,.clay-tab,.clay-side__link,.clay-page{transition:none}.clay-page:hover{transform:none}}
JavaScript
// Tabs: click or Left / Right / Home / End move between tabs (ARIA tabs pattern, automatic activation)
document.querySelectorAll('[data-clay-tabs]').forEach(function (list) {
  var tabs = Array.prototype.slice.call(list.querySelectorAll('[role="tab"]'));
  function select(tab) {
    tabs.forEach(function (t) {
      var on = t === tab;
      t.setAttribute('aria-selected', on); t.tabIndex = on ? 0 : -1;
      document.getElementById(t.getAttribute('aria-controls')).hidden = !on;
    });
  }
  tabs.forEach(function (tab, i) {
    tab.addEventListener('click', function () { select(tab); });
    tab.addEventListener('keydown', function (e) {
      var n = { ArrowRight: i + 1, ArrowLeft: i - 1, Home: 0, End: tabs.length - 1 }[e.key];
      if (n === undefined) return;
      e.preventDefault(); var t = tabs[(n + tabs.length) % tabs.length]; select(t); t.focus();
    });
  });
});

Bootstrap 5 code

Requires: Bootstrap 5.3.8 CSS, Bootstrap 5.3.8 JS bundle

HTML
<svg width="0" height="0" style="position:absolute" aria-hidden="true" focusable="false">
  <symbol id="clay-i-bell" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M6 16v-5a6 6 0 0 1 12 0v5l1.5 2h-15zM10 20.5a2 2 0 0 0 4 0"/></symbol>
  <symbol id="clay-i-gear" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/><path d="M12 2.8v2.6M12 18.6v2.6M4 7.2l2.2 1.3M17.8 15.5 20 16.8M4 16.8l2.2-1.3M17.8 8.5 20 7.2"/><circle cx="12" cy="12" r="6.6"/></symbol>
  <symbol id="clay-i-book" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5.5A2.5 2.5 0 0 1 6.5 3H20v15H6.5A2.5 2.5 0 0 0 4 20.5z"/><path d="M4 20.5A2.5 2.5 0 0 1 6.5 18H20v3H6.5"/></symbol>
  <symbol id="clay-i-calc" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="3" width="14" height="18" rx="3"/><path d="M8.5 7.5h7M8.5 12h.01M12 12h.01M15.5 12h.01M8.5 16h.01M12 16h.01M15.5 16h.01"/></symbol>
  <symbol id="clay-i-palette" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3.5a8.5 8.5 0 0 0 0 17c1.4 0 2-1 1.5-2.2-.6-1.4.3-2.8 1.8-2.8H17a3.5 3.5 0 0 0 3.5-3.5c0-4.7-3.8-8.5-8.5-8.5z"/><circle cx="8" cy="11" r="1.2" fill="currentColor"/><circle cx="11" cy="7.5" r="1.2" fill="currentColor"/><circle cx="15.5" cy="8.5" r="1.2" fill="currentColor"/></symbol>
  <symbol id="clay-i-home" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M4 10.5 12 4l8 6.5V20h-5.5v-6h-5v6H4z"/></symbol>
  <symbol id="clay-i-trophy" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M8 4h8v5a4 4 0 0 1-8 0zM8 6H4.5a3.5 3.5 0 0 0 3.8 3.5M16 6h3.5a3.5 3.5 0 0 1-3.8 3.5M12 13v4M8.5 20.5h7M10 17h4"/></symbol>
  <symbol id="clay-i-user" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="8" r="4"/><path d="M4.5 20.5a7.5 7.5 0 0 1 15 0"/></symbol>
  <symbol id="clay-i-chevLeft" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="m14.5 6-6 6 6 6"/></symbol>
  <symbol id="clay-i-chevRight" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="m9.5 6 6 6-6 6"/></symbol>
  <symbol id="clay-i-puzzle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M10 4.5a2 2 0 0 1 4 0V7h4a1 1 0 0 1 1 1v3.5h-1.5a2 2 0 0 0 0 4H19V19a1 1 0 0 1-1 1h-3.5v-1.5a2 2 0 0 0-4 0V20H6a1 1 0 0 1-1-1v-4h1.5a2 2 0 0 0 0-4H5V8a1 1 0 0 1 1-1h4z"/></symbol>
</svg>
<section><span class="lbl">Navbar</span><nav class="navbar navbar-expand clay-bnav" aria-label="Main">
<a class="navbar-brand" href="#"><span class="clay-nav__mark"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-palette"/></svg></span>Doodle Den</a>
<ul class="navbar-nav"><li class="nav-item"><a class="nav-link" href="#">Home</a></li><li class="nav-item"><a class="nav-link active" href="#" aria-current="page">Lessons</a></li><li class="nav-item"><a class="nav-link" href="#">Games</a></li><li class="nav-item"><a class="nav-link" href="#">Progress</a></li></ul>
<div class="clay-nav__tools"><button class="btn btn-clay btn-clay-icon btn-clay-sm clay-lemon" type="button" aria-label="Notifications, 2 new"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-bell"/></svg></button><a class="btn btn-clay btn-clay-icon btn-clay-sm clay-mint" href="#" aria-label="Your profile"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-user"/></svg></a></div>
</nav></section>
<div class="clay-navcols">
<section><span class="lbl">Sidebar</span><nav class="card clay-card clay-bside" aria-label="Classroom"><div class="card-body">
<h2 class="clay-side__heading" id="sd-learn">Learn</h2>
<ul class="nav flex-column" aria-labelledby="sd-learn">
<li class="nav-item"><a class="nav-link" href="#"><span class="clay-side__icon clay-peach"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-home"/></svg></span>Today</a></li>
<li class="nav-item"><a class="nav-link active" href="#" aria-current="page"><span class="clay-side__icon clay-sky"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-book"/></svg></span>Reading<span class="badge">4<span class="visually-hidden"> new</span></span></a></li>
<li class="nav-item"><a class="nav-link" href="#"><span class="clay-side__icon clay-mint"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-calc"/></svg></span>Maths</a></li>
<li class="nav-item"><a class="nav-link" href="#"><span class="clay-side__icon clay-lemon"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-puzzle"/></svg></span>Puzzles<span class="badge">2<span class="visually-hidden"> new</span></span></a></li>
</ul>
<h2 class="clay-side__heading" id="sd-me">Me</h2>
<ul class="nav flex-column" aria-labelledby="sd-me">
<li class="nav-item"><a class="nav-link" href="#"><span class="clay-side__icon clay-lilac"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-trophy"/></svg></span>Badges</a></li>
<li class="nav-item"><a class="nav-link" href="#"><span class="clay-side__icon"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-gear"/></svg></span>Settings</a></li>
</ul></div></nav></section>
<div class="d-grid gap-4">
<section><span class="lbl">Tabs · arrow keys move between them</span>
<div class="nav nav-pills clay-btabs" role="tablist" aria-label="Subjects">
<button class="nav-link active" type="button" role="tab" id="tab-read" data-bs-toggle="pill" data-bs-target="#panel-read" aria-selected="true" aria-controls="panel-read"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-book"/></svg>Reading</button>
<button class="nav-link" type="button" role="tab" id="tab-maths" data-bs-toggle="pill" data-bs-target="#panel-maths" aria-selected="false" aria-controls="panel-maths" tabindex="-1"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-calc"/></svg>Maths</button>
<button class="nav-link" type="button" role="tab" id="tab-art" data-bs-toggle="pill" data-bs-target="#panel-art" aria-selected="false" aria-controls="panel-art" tabindex="-1"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-palette"/></svg>Art</button>
</div>
<div class="tab-content">
<div class="tab-pane active" role="tabpanel" id="panel-read" aria-labelledby="tab-read" tabindex="0"><div class="card clay-card clay-sky"><div class="card-body clay-tabpanel"><span class="clay-blob"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-book"/></svg></span><div class="clay-tabpanel__text"><h3 class="clay-tabpanel__title">The Owl Who Was Afraid of the Dark</h3><p class="clay-tabpanel__copy">Chapter 3 of 7 · about 12 minutes · read aloud is on</p></div><a class="btn btn-clay btn-clay-accent" href="#">Open book</a></div></div></div>
<div class="tab-pane" role="tabpanel" id="panel-maths" aria-labelledby="tab-maths" tabindex="0"><div class="card clay-card clay-mint"><div class="card-body clay-tabpanel"><span class="clay-blob"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-calc"/></svg></span><div class="clay-tabpanel__text"><h3 class="clay-tabpanel__title">Counting in fives</h3><p class="clay-tabpanel__copy">10 questions · 2 stars so far · next: telling the time</p></div><a class="btn btn-clay btn-clay-accent" href="#">Practise</a></div></div></div>
<div class="tab-pane" role="tabpanel" id="panel-art" aria-labelledby="tab-art" tabindex="0"><div class="card clay-card clay-peach"><div class="card-body clay-tabpanel"><span class="clay-blob"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-palette"/></svg></span><div class="clay-tabpanel__text"><h3 class="clay-tabpanel__title">Paint a rainy day</h3><p class="clay-tabpanel__copy">Mix three blues and add puddles with a sponge</p></div><a class="btn btn-clay btn-clay-accent" href="#">Start painting</a></div></div></div>
</div></section>
<section><span class="lbl">Pagination</span><nav class="clay-bpages" aria-label="Story pages"><ul class="pagination">
<li class="page-item"><a class="page-link clay-page--wide" href="#"><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-chevLeft"/></svg><span>Previous</span></a></li>
<li class="page-item"><a class="page-link" href="#" aria-label="Page 1">1</a></li>
<li class="page-item"><a class="page-link" href="#" aria-label="Page 2">2</a></li>
<li class="page-item active"><a class="page-link" href="#" aria-label="Page 3" aria-current="page">3</a></li>
<li class="page-item"><a class="page-link" href="#" aria-label="Page 4">4</a></li>
<li class="page-item"><span class="clay-page__gap" aria-hidden="true">…</span></li>
<li class="page-item"><a class="page-link" href="#" aria-label="Page 9">9</a></li>
<li class="page-item"><a class="page-link clay-page--wide" href="#"><span>Next</span><svg class="clay-ico" aria-hidden="true" focusable="false"><use href="#clay-i-chevRight"/></svg></a></li>
</ul></nav></section>
</div>
</div>
CSS
/* ── Claymorphism UI kit tokens (uiCookies) — identical in every set ──────────────
   Every component is a puffy pastel object floating above --clay-bg: one big soft drop shadow
   below it, an inset highlight top left and an inset shade bottom right. Change a token and
   the whole kit follows; the shadow recipes below are built from these values. */
:root{
  --clay-bg:#f3effa;          /* page, a pale lilac white */
  --clay-surface:#fffcf8;     /* cards, fields and plain objects */
  --clay-peach:#ffd2bd;       /* object fills: ink text on every fill reaches 11:1 */
  --clay-lilac:#dccdff;
  --clay-mint:#bdeed6;
  --clay-sky:#c2e0ff;
  --clay-lemon:#ffe9a3;
  --clay-ink:#241a3d;         /* text, 14.4:1 on --clay-bg */
  --clay-muted:#51476a;       /* secondary text, 5.7:1 or more on every fill */
  --clay-edge:#7a6e96;        /* control boundary, 4.1:1 on --clay-bg, so shadows are never the only edge */
  --clay-line:rgba(36,26,61,.12); /* decorative edge on cards and panels */
  --clay-accent:#6236e8;      /* focus ring and on / selected / current states, 5.8:1 on --clay-bg */
  --clay-on-accent:#ffffff;   /* text and marks on accent fills, 6.5:1 */
  --clay-tint:#e9e1ff;        /* light accent wash behind current items */
  --clay-drop:rgba(86,56,168,.30); /* colour of the outer drop shadow */
  --clay-hi:rgba(255,255,255,.88);  /* inset highlight, top left */
  --clay-lo:rgba(52,30,112,.20);    /* inset shade, bottom right */
  --clay-lift:14px;           /* how high objects float; every shadow scales from it */
  --clay-radius:30px;         /* cards; buttons are pills, fields use .55 of it */
  --clay-bw:1.5px;            /* control border width */
  --clay-success:#17663d;--clay-warning:#8a4b00;--clay-danger:#b3261e;
  --clay-font:ui-rounded,"SF Pro Rounded","Nunito","Quicksand","Varela Round","Arial Rounded MT Bold",system-ui,sans-serif;
}
/* --clay-fill is set by .clay-peach, .clay-mint… on one object and must not leak into its children */
@property --clay-fill{syntax:"*";inherits:false}
/* Dark clay: data-clay="dark" on any wrapper, or a checked .clay-theme-input inside a [data-clay] element.
   :is() is a forgiving list, so browsers without :has() still apply data-clay="dark" */
[data-clay]:is([data-clay="dark"],:has(.clay-theme-input:checked)){
  --clay-bg:#1a1530;--clay-surface:#2a2347;
  --clay-peach:#6e3f33;--clay-lilac:#4a3a8a;--clay-mint:#215a4a;--clay-sky:#26497c;--clay-lemon:#5f5220;
  --clay-ink:#f7f3ff;--clay-muted:#d2c9ea;--clay-edge:#8f83b8;--clay-line:rgba(255,255,255,.1);
  --clay-accent:#bba6ff;--clay-on-accent:#1a1530;--clay-tint:#3a2f66;
  --clay-drop:rgba(4,2,14,.62);--clay-hi:rgba(255,255,255,.2);--clay-lo:rgba(0,0,0,.34);
  --clay-success:#86e3b0;--clay-warning:#ffc76e;--clay-danger:#ffa196;color-scheme:dark}
/* More contrast requested: soft shading stays, but every edge and secondary text turns full ink */
@media (prefers-contrast:more){:root,[data-clay]:is([data-clay],:has(.clay-theme-input:checked)){
  --clay-edge:var(--clay-ink);--clay-line:var(--clay-ink);--clay-muted:var(--clay-ink);--clay-bw:2px}}
:root,[data-clay]{
  --clay-shadow:0 var(--clay-lift) calc(var(--clay-lift)*2.2) calc(var(--clay-lift)*-.3) var(--clay-drop),
    inset calc(var(--clay-lift)*.45) calc(var(--clay-lift)*.5) calc(var(--clay-lift)*.9) var(--clay-hi),
    inset calc(var(--clay-lift)*-.45) calc(var(--clay-lift)*-.6) calc(var(--clay-lift)*.9) var(--clay-lo);
  --clay-shadow-sm:0 calc(var(--clay-lift)*.55) calc(var(--clay-lift)*1.2) calc(var(--clay-lift)*-.15) var(--clay-drop),
    inset calc(var(--clay-lift)*.25) calc(var(--clay-lift)*.3) calc(var(--clay-lift)*.5) var(--clay-hi),
    inset calc(var(--clay-lift)*-.25) calc(var(--clay-lift)*-.35) calc(var(--clay-lift)*.5) var(--clay-lo);
  --clay-press:0 calc(var(--clay-lift)*.12) calc(var(--clay-lift)*.25) 0 var(--clay-drop),
    inset calc(var(--clay-lift)*.2) calc(var(--clay-lift)*.25) calc(var(--clay-lift)*.45) var(--clay-lo),
    inset calc(var(--clay-lift)*-.12) calc(var(--clay-lift)*-.12) calc(var(--clay-lift)*.3) var(--clay-hi);
  --clay-well:inset calc(var(--clay-lift)*.15) calc(var(--clay-lift)*.22) calc(var(--clay-lift)*.45) var(--clay-lo),
    inset calc(var(--clay-lift)*-.12) calc(var(--clay-lift)*-.12) calc(var(--clay-lift)*.3) var(--clay-hi);
}
[data-clay]{background:var(--clay-bg);color:var(--clay-ink)}
/* Bootstrap's own variables mapped onto the kit tokens */
:root,[data-clay]{--bs-body-bg:var(--clay-bg);--bs-body-color:var(--clay-ink);--bs-body-font-family:var(--clay-font);
  --bs-emphasis-color:var(--clay-ink);--bs-heading-color:var(--clay-ink);--bs-secondary-color:var(--clay-muted);--bs-tertiary-color:var(--clay-muted);
  --bs-border-color:var(--clay-edge);--bs-border-width:var(--clay-bw);--bs-border-radius:calc(var(--clay-radius)*.55);
  --bs-border-radius-lg:var(--clay-radius);--bs-border-radius-pill:999px;--bs-focus-ring-color:var(--clay-accent);
  --bs-link-color:var(--clay-accent);--bs-link-color-rgb:98,54,232;--bs-link-hover-color:var(--clay-ink);--bs-link-hover-color-rgb:36,26,61}
/* Components */
:where([class*="clay-"]),:where([class*="clay-"])::before,:where([class*="clay-"])::after{box-sizing:border-box}
.clay-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.clay-ico{width:22px;height:22px;flex:none}
.clay-ico--lg{width:28px;height:28px}
/* Fills: put one on any object; components read --clay-fill */
.clay-peach{--clay-fill:var(--clay-peach)}.clay-lilac{--clay-fill:var(--clay-lilac)}.clay-mint{--clay-fill:var(--clay-mint)}
.clay-sky{--clay-fill:var(--clay-sky)}.clay-lemon{--clay-fill:var(--clay-lemon)}
/* Card: a puffy panel that floats on the big drop shadow */
.clay-card{margin:0;padding:1.6rem;border:var(--clay-bw) solid var(--clay-line);border-radius:var(--clay-radius);
  background:var(--clay-fill,var(--clay-surface));color:var(--clay-ink);box-shadow:var(--clay-shadow)}
/* Layout helpers */
.clay-cluster{display:flex;flex-wrap:wrap;align-items:center;gap:18px}
.clay-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:22px}
.clay-stack{display:grid;gap:1.4rem}
/* Cards: Bootstrap .card through its --bs-card-* variables */
.card.clay-card{--bs-card-bg:var(--clay-fill,var(--clay-surface));--bs-card-color:var(--clay-ink);--bs-card-border-color:var(--clay-line);
  --bs-card-border-width:var(--clay-bw);--bs-card-border-radius:var(--clay-radius);--bs-card-inner-border-radius:var(--clay-radius);
  --bs-card-spacer-x:1.6rem;--bs-card-spacer-y:1.6rem;padding:0}
/* Buttons: Bootstrap .btn with a .btn-clay variant set through --bs-btn-* variables.
   Hover lifts the pill, pressing squashes the shadow flat */
.btn-clay{--bs-btn-padding-x:1.5rem;--bs-btn-padding-y:.7rem;--bs-btn-font-family:inherit;--bs-btn-font-size:1rem;--bs-btn-font-weight:800;--bs-btn-line-height:1.2;
  --bs-btn-border-width:var(--clay-bw);--bs-btn-border-radius:999px;
  --bs-btn-bg:var(--clay-fill,var(--clay-surface));--bs-btn-color:var(--clay-ink);--bs-btn-border-color:var(--clay-edge);
  --bs-btn-hover-bg:var(--bs-btn-bg);--bs-btn-hover-color:var(--bs-btn-color);--bs-btn-hover-border-color:var(--bs-btn-border-color);
  --bs-btn-active-bg:var(--bs-btn-bg);--bs-btn-active-color:var(--bs-btn-color);--bs-btn-active-border-color:var(--bs-btn-border-color);
  --clay-btn-shadow:var(--clay-shadow-sm);
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:50px;
  box-shadow:var(--clay-btn-shadow);transition:transform .18s,box-shadow .18s}
.btn-clay:hover{--clay-btn-shadow:var(--clay-shadow);transform:translateY(-2px)}
.btn-clay:active,.btn-clay:first-child:active{--clay-btn-shadow:var(--clay-press);transform:translateY(2px)}
.btn-clay:focus-visible,.btn-check:focus-visible+.btn-clay{box-shadow:var(--clay-btn-shadow);outline:3px solid var(--clay-accent);outline-offset:4px}
.btn-clay-accent{--clay-fill:var(--clay-accent);--bs-btn-color:var(--clay-on-accent);--bs-btn-border-color:var(--clay-accent)}
.btn-clay.btn-sm{--bs-btn-padding-x:1.05rem;--bs-btn-padding-y:.45rem;--bs-btn-font-size:.88rem;min-height:40px}
/* Icon buttons: a round or squircle .btn-clay with an aria-label */
.btn-clay-icon{--bs-btn-padding-x:0;--bs-btn-padding-y:0;width:58px;height:58px;min-height:0;border-radius:50%}
.btn-clay-icon.btn-clay-sq{border-radius:20px}
.btn-clay-icon.btn-clay-sm{width:44px;height:44px}
.btn-clay-icon.btn-clay-lg{width:72px;height:72px}
@media (prefers-reduced-motion:reduce){.btn-clay{transition:none}.btn-clay:hover,.btn-clay:active,.btn-clay:first-child:active{transform:none}}
/* Blob: a small puffy icon tile that sits on any card */
.clay-blob{display:grid;place-items:center;flex:none;width:52px;height:52px;border:var(--clay-bw) solid var(--clay-line);border-radius:18px;
  background:var(--clay-fill,var(--clay-surface));color:var(--clay-ink);box-shadow:var(--clay-shadow-sm)}
.clay-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .75rem;border:var(--clay-bw) solid var(--clay-line);border-radius:999px;
  background:var(--clay-surface);color:var(--clay-ink);font-size:.8rem;font-weight:800;line-height:1.3}
.clay-chip .clay-ico{width:16px;height:16px}
/* Stat cards: coloured clay slabs with a blob icon, a big number and a sentence that explains the change */
.clay-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px}
.clay-stat{display:grid;gap:.25rem;align-content:start}
.clay-stat__label{margin:.85rem 0 0;font-size:.9rem;font-weight:800;color:var(--clay-muted)}
.clay-stat__value{margin:0;font-size:2.2rem;font-weight:800;line-height:1.1;letter-spacing:-.01em}
.clay-stat__unit{font-size:1rem;font-weight:700}
.clay-stat__note{margin:0;font-size:.86rem;font-weight:600;color:var(--clay-muted)}
/* Content card: an illustration panel made of clay shapes, a chip, a title and a progress line */
.clay-lesson{display:flex;flex-direction:column;gap:1rem;padding:1rem 1rem 1.4rem}
.clay-art{position:relative;height:170px;overflow:hidden;border-radius:calc(var(--clay-radius)*.75);background:var(--clay-sky);box-shadow:var(--clay-well)}
.clay-art__shape{position:absolute;border-radius:50%;box-shadow:var(--clay-shadow-sm)}
.clay-art__shape--sun{top:22px;right:34px;width:58px;height:58px;background:var(--clay-lemon)}
.clay-art__shape--cloud{top:52px;left:40px;width:140px;height:54px;border-radius:999px;background:var(--clay-surface)}
.clay-art__shape--cloud2{top:30px;left:78px;width:70px;height:60px;background:var(--clay-surface)}
.clay-art__shape--hill{bottom:-70px;left:-20px;width:240px;height:140px;background:var(--clay-mint)}
.clay-art__shape--hill2{bottom:-90px;right:-40px;width:260px;height:150px;background:var(--clay-peach)}
.clay-art__shape--drop{top:116px;width:14px;height:20px;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:var(--clay-accent);box-shadow:none}
.clay-lesson__body{display:grid;gap:.55rem;padding:0 .5rem}
.clay-lesson__tag{margin:0}
.clay-lesson__title{margin:0;font-size:1.3rem;font-weight:800;line-height:1.25}
.clay-lesson__text{margin:0;color:var(--clay-muted)}
.clay-lesson__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding:0 .5rem}
.clay-meter{display:grid;gap:.35rem;flex:1;min-width:140px;font-size:.84rem;font-weight:700;color:var(--clay-muted)}
.clay-meter__bar{height:14px;border:var(--clay-bw) solid var(--clay-edge);border-radius:999px;background:var(--clay-bg);box-shadow:var(--clay-well);overflow:hidden}
.clay-meter__fill{display:block;height:100%;width:var(--clay-pct,50%);border-radius:999px;background:var(--clay-accent)}
/* Profile card */
.clay-profile{display:grid;justify-items:center;gap:.4rem;text-align:center}
.clay-avatar{display:grid;place-items:center;width:96px;height:96px;margin-bottom:.6rem;border:var(--clay-bw) solid var(--clay-line);border-radius:50%;
  background:var(--clay-fill,var(--clay-lilac));font-size:2rem;font-weight:800;box-shadow:var(--clay-shadow)}
.clay-profile__name{margin:0;font-size:1.3rem;font-weight:800;line-height:1.25}
.clay-profile__role{margin:0;color:var(--clay-muted)}
.clay-profile__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%;margin:.9rem 0 1.1rem;padding:0;list-style:none}
.clay-profile__stat{display:grid;padding:.6rem .3rem;border-radius:18px;background:var(--clay-fill,var(--clay-bg));box-shadow:var(--clay-well)}
.clay-profile__num{font-size:1.25rem;font-weight:800;line-height:1.2}
.clay-profile__key{font-size:.78rem;font-weight:700;color:var(--clay-muted)}
.clay-profile__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
/* Pricing pair */
.clay-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:28px;align-items:start}
.clay-plan{position:relative;display:grid;gap:.9rem}
.clay-plan__badge{position:absolute;top:-14px;right:24px;padding:.3rem .85rem;border:var(--clay-bw) solid var(--clay-accent);border-radius:999px;
  background:var(--clay-accent);color:var(--clay-on-accent);font-size:.78rem;font-weight:800;box-shadow:var(--clay-shadow-sm)}
.clay-plan__name{margin:0;font-size:1.15rem;font-weight:800}
.clay-plan__price{margin:0;font-size:2.6rem;font-weight:800;line-height:1}
.clay-plan__per{font-size:1rem;font-weight:700;color:var(--clay-muted)}
.clay-plan__desc{margin:0;color:var(--clay-muted)}
.clay-plan__list{display:grid;gap:.6rem;margin:.2rem 0 .4rem;padding:0;list-style:none}
.clay-plan__item{display:flex;align-items:center;gap:.6rem;font-weight:600}
.clay-plan__tick{display:grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;background:var(--clay-fill,var(--clay-surface));box-shadow:var(--clay-shadow-sm)}
.clay-plan__tick .clay-ico{width:16px;height:16px}
.clay-two{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:28px;align-items:start}
@media (max-width:767px){.clay-two{grid-template-columns:1fr}}
.clay-stats--two{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
/* Navbar: Bootstrap .navbar .navbar-nav on a floating clay pill */
.navbar.clay-bnav{--bs-navbar-padding-x:0;--bs-navbar-padding-y:0;--bs-navbar-color:var(--clay-muted);--bs-navbar-hover-color:var(--clay-ink);--bs-navbar-active-color:var(--clay-accent);
  --bs-navbar-brand-color:var(--clay-ink);--bs-navbar-brand-hover-color:var(--clay-ink);--bs-navbar-nav-link-padding-x:1rem;
  flex-wrap:wrap;gap:12px 18px;padding:.7rem .8rem .7rem 1rem;border:var(--clay-bw) solid var(--clay-line);border-radius:999px;background:var(--clay-surface);box-shadow:var(--clay-shadow)}
.clay-bnav .navbar-brand{display:flex;align-items:center;gap:.6rem;margin-right:auto;padding:0;font-size:1.15rem;font-weight:800;border-radius:14px}
.clay-bnav .navbar-brand:focus-visible{outline:3px solid var(--clay-accent);outline-offset:3px}
.clay-bnav .clay-nav__mark{display:grid;place-items:center;width:42px;height:42px;border-radius:15px;background:var(--clay-peach);box-shadow:var(--clay-shadow-sm)}
.clay-bnav .navbar-nav{flex-direction:row;flex-wrap:wrap;gap:6px}
.clay-bnav .nav-link{display:flex;align-items:center;gap:.4rem;min-height:44px;padding:.5rem 1rem;border:var(--clay-bw) solid transparent;border-radius:999px;font-weight:800;transition:background-color .18s,box-shadow .18s}
.clay-bnav .nav-link:hover{background:var(--clay-bg)}
.clay-bnav .nav-link:focus-visible{outline:3px solid var(--clay-accent);outline-offset:2px;box-shadow:none}
.clay-bnav .nav-link.active{border-color:var(--clay-accent);background:var(--clay-tint);box-shadow:var(--clay-shadow-sm)}
.clay-bnav .nav-link.active::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.clay-bnav .clay-nav__tools{display:flex;align-items:center;gap:10px}
/* Tabs: .nav-pills driven by Bootstrap's tab plugin (arrow keys included) */
.clay-btabs{--bs-nav-link-color:var(--clay-muted);--bs-nav-link-hover-color:var(--clay-ink);--bs-nav-link-font-weight:800;--bs-nav-pills-border-radius:999px;
  --bs-nav-pills-link-active-bg:var(--clay-surface);--bs-nav-pills-link-active-color:var(--clay-accent);
  gap:6px;width:fit-content;max-width:100%;margin-bottom:1.2rem;padding:6px;border:var(--clay-bw) solid var(--clay-edge);border-radius:999px;background:var(--clay-bg);box-shadow:var(--clay-well)}
.clay-btabs .nav-link{display:flex;align-items:center;gap:.45rem;min-height:44px;padding:.45rem 1.1rem;border:var(--clay-bw) solid transparent;font-size:.95rem;transition:background-color .18s,box-shadow .18s}
.clay-btabs .nav-link .clay-ico{width:20px;height:20px}
.clay-btabs .nav-link:focus-visible{outline:3px solid var(--clay-accent);outline-offset:2px;box-shadow:none}
.clay-btabs .nav-link.active{border-color:var(--clay-accent);box-shadow:var(--clay-shadow-sm)}
.clay-tabpanel{display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem}
.clay-tabpanel__text{flex:1;min-width:200px}
.clay-tabpanel__title{margin:0 0 .3rem;font-size:1.15rem;font-weight:800}
.clay-tabpanel__copy{margin:0;color:var(--clay-muted)}
.tab-pane:focus-visible{outline:3px solid var(--clay-accent);outline-offset:4px;border-radius:var(--clay-radius)}
/* Sidebar: .nav.flex-column of .nav-link; the current one is a tint pebble with an accent bar */
.clay-bside .card-body{display:grid;gap:.4rem;padding:1.2rem}
.clay-side__heading{margin:.6rem .7rem .3rem;font-size:.74rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--clay-muted)}
.clay-side__heading:first-child{margin-top:0}
.clay-bside .nav{--bs-nav-link-padding-x:.6rem;--bs-nav-link-padding-y:.35rem;--bs-nav-link-color:var(--clay-ink);--bs-nav-link-hover-color:var(--clay-ink);--bs-nav-link-font-weight:800;gap:6px}
.clay-bside .nav-link{position:relative;display:flex;align-items:center;gap:.75rem;min-height:50px;border:var(--clay-bw) solid transparent;border-radius:18px;transition:background-color .18s,box-shadow .18s}
.clay-bside .nav-link:hover{background:var(--clay-bg)}
.clay-bside .nav-link:focus-visible{outline:3px solid var(--clay-accent);outline-offset:2px;box-shadow:none}
.clay-bside .nav-link.active{border-color:var(--clay-accent);background:var(--clay-tint);box-shadow:var(--clay-shadow-sm)}
.clay-bside .nav-link.active::after{content:"";position:absolute;left:-1px;top:12px;bottom:12px;width:5px;border-radius:0 6px 6px 0;background:var(--clay-accent)}
.clay-side__icon{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:13px;background:var(--clay-fill,var(--clay-surface));box-shadow:var(--clay-shadow-sm)}
.clay-side__icon .clay-ico{width:20px;height:20px}
.clay-bside .badge{--bs-badge-font-size:.78rem;--bs-badge-font-weight:800;--bs-badge-padding-x:.5rem;--bs-badge-padding-y:.2rem;--bs-badge-color:var(--clay-on-accent);
  margin-left:auto;min-width:28px;border-radius:999px;background:var(--clay-accent)}
/* Pagination: .pagination restyled through --bs-pagination-* into round pebbles */
.clay-bpages .pagination{--bs-pagination-padding-x:.8rem;--bs-pagination-padding-y:0;--bs-pagination-font-size:1rem;--bs-pagination-color:var(--clay-ink);--bs-pagination-bg:var(--clay-surface);
  --bs-pagination-border-width:var(--clay-bw);--bs-pagination-border-color:var(--clay-edge);--bs-pagination-border-radius:999px;
  --bs-pagination-hover-color:var(--clay-ink);--bs-pagination-hover-bg:var(--clay-surface);--bs-pagination-hover-border-color:var(--clay-edge);
  --bs-pagination-focus-color:var(--clay-ink);--bs-pagination-focus-bg:var(--clay-surface);--bs-pagination-focus-box-shadow:var(--clay-shadow-sm);
  --bs-pagination-active-color:var(--clay-on-accent);--bs-pagination-active-bg:var(--clay-accent);--bs-pagination-active-border-color:var(--clay-accent);
  flex-wrap:wrap;align-items:center;gap:10px;margin:0}
.clay-bpages .page-link{display:grid;place-items:center;min-width:48px;height:48px;margin:0!important;border-radius:999px!important;font-weight:800;box-shadow:var(--clay-shadow-sm);transition:transform .18s,box-shadow .18s}
.clay-bpages .page-link:hover{transform:translateY(-2px);box-shadow:var(--clay-shadow)}
.clay-bpages .page-link:focus-visible{outline:3px solid var(--clay-accent);outline-offset:3px}
.clay-bpages .page-item.active .page-link{transform:translateY(2px);box-shadow:var(--clay-press)}
.clay-bpages .page-link.clay-page--wide{display:flex;gap:.3rem;padding:0 1.1rem}
.clay-bpages .clay-page__gap{padding:0 .2rem;font-weight:800;color:var(--clay-muted)}
@media (max-width:600px){.navbar.clay-bnav,.clay-btabs{border-radius:var(--clay-radius)}}
@media (prefers-reduced-motion:reduce){.clay-bnav .nav-link,.clay-btabs .nav-link,.clay-bside .nav-link,.clay-bpages .page-link{transition:none}.clay-bpages .page-link:hover{transform:none}}

Tailwind 4 code

Requires: Tailwind CSS 4

HTML
<svg width="0" height="0" style="position:absolute" aria-hidden="true" focusable="false">
  <symbol id="clay-i-bell" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M6 16v-5a6 6 0 0 1 12 0v5l1.5 2h-15zM10 20.5a2 2 0 0 0 4 0"/></symbol>
  <symbol id="clay-i-gear" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/><path d="M12 2.8v2.6M12 18.6v2.6M4 7.2l2.2 1.3M17.8 15.5 20 16.8M4 16.8l2.2-1.3M17.8 8.5 20 7.2"/><circle cx="12" cy="12" r="6.6"/></symbol>
  <symbol id="clay-i-book" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5.5A2.5 2.5 0 0 1 6.5 3H20v15H6.5A2.5 2.5 0 0 0 4 20.5z"/><path d="M4 20.5A2.5 2.5 0 0 1 6.5 18H20v3H6.5"/></symbol>
  <symbol id="clay-i-calc" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="3" width="14" height="18" rx="3"/><path d="M8.5 7.5h7M8.5 12h.01M12 12h.01M15.5 12h.01M8.5 16h.01M12 16h.01M15.5 16h.01"/></symbol>
  <symbol id="clay-i-palette" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3.5a8.5 8.5 0 0 0 0 17c1.4 0 2-1 1.5-2.2-.6-1.4.3-2.8 1.8-2.8H17a3.5 3.5 0 0 0 3.5-3.5c0-4.7-3.8-8.5-8.5-8.5z"/><circle cx="8" cy="11" r="1.2" fill="currentColor"/><circle cx="11" cy="7.5" r="1.2" fill="currentColor"/><circle cx="15.5" cy="8.5" r="1.2" fill="currentColor"/></symbol>
  <symbol id="clay-i-home" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M4 10.5 12 4l8 6.5V20h-5.5v-6h-5v6H4z"/></symbol>
  <symbol id="clay-i-trophy" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M8 4h8v5a4 4 0 0 1-8 0zM8 6H4.5a3.5 3.5 0 0 0 3.8 3.5M16 6h3.5a3.5 3.5 0 0 1-3.8 3.5M12 13v4M8.5 20.5h7M10 17h4"/></symbol>
  <symbol id="clay-i-user" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="8" r="4"/><path d="M4.5 20.5a7.5 7.5 0 0 1 15 0"/></symbol>
  <symbol id="clay-i-chevLeft" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="m14.5 6-6 6 6 6"/></symbol>
  <symbol id="clay-i-chevRight" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="m9.5 6 6 6-6 6"/></symbol>
  <symbol id="clay-i-puzzle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M10 4.5a2 2 0 0 1 4 0V7h4a1 1 0 0 1 1 1v3.5h-1.5a2 2 0 0 0 0 4H19V19a1 1 0 0 1-1 1h-3.5v-1.5a2 2 0 0 0-4 0V20H6a1 1 0 0 1-1-1v-4h1.5a2 2 0 0 0 0-4H5V8a1 1 0 0 1 1-1h4z"/></symbol>
</svg>
<section><span class="mb-5 block text-[.74rem] font-extrabold tracking-[.12em] text-clay-muted uppercase">Navbar</span><nav class="flex flex-wrap items-center gap-x-[18px] gap-y-3 rounded-full max-[600px]:rounded-clay border-(length:--clay-bw) border-clay-line bg-clay-surface py-[.7rem] pr-[.8rem] pl-4 shadow-clay" aria-label="Main">
<a class="mr-auto flex items-center gap-[.6rem] rounded-[14px] text-[1.15rem] font-extrabold text-clay-ink no-underline focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-clay-accent" href="#"><span class="grid size-[42px] place-items-center rounded-[15px] bg-clay-peach shadow-clay-sm"><svg class="size-[22px] shrink-0" aria-hidden="true" focusable="false"><use href="#clay-i-palette"/></svg></span>Doodle Den</a>
<ul class="m-0 flex list-none flex-wrap gap-1.5 p-0"><li><a class="flex min-h-11 items-center gap-[.4rem] rounded-full border-(length:--clay-bw) border-transparent px-4 py-2 font-extrabold text-clay-muted no-underline transition-[background-color,box-shadow] duration-[180ms] motion-reduce:transition-none hover:bg-clay-bg hover:text-clay-ink focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-clay-accent aria-[current=page]:border-clay-accent aria-[current=page]:bg-clay-tint aria-[current=page]:text-clay-accent aria-[current=page]:shadow-clay-sm aria-[current=page]:before:size-2 aria-[current=page]:before:rounded-full aria-[current=page]:before:bg-current aria-[current=page]:before:content-['']" href="#">Home</a></li><li><a class="flex min-h-11 items-center gap-[.4rem] rounded-full border-(length:--clay-bw) border-transparent px-4 py-2 font-extrabold text-clay-muted no-underline transition-[background-color,box-shadow] duration-[180ms] motion-reduce:transition-none hover:bg-clay-bg hover:text-clay-ink focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-clay-accent aria-[current=page]:border-clay-accent aria-[current=page]:bg-clay-tint aria-[current=page]:text-clay-accent aria-[current=page]:shadow-clay-sm aria-[current=page]:before:size-2 aria-[current=page]:before:rounded-full aria-[current=page]:before:bg-current aria-[current=page]:before:content-['']" href="#" aria-current="page">Lessons</a></li><li><a class="flex min-h-11 items-center gap-[.4rem] rounded-full border-(length:--clay-bw) border-transparent px-4 py-2 font-extrabold text-clay-muted no-underline transition-[background-color,box-shadow] duration-[180ms] motion-reduce:transition-none hover:bg-clay-bg hover:text-clay-ink focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-clay-accent aria-[current=page]:border-clay-accent aria-[current=page]:bg-clay-tint aria-[current=page]:text-clay-accent aria-[current=page]:shadow-clay-sm aria-[current=page]:before:size-2 aria-[current=page]:before:rounded-full aria-[current=page]:before:bg-current aria-[current=page]:before:content-['']" href="#">Games</a></li><li><a class="flex min-h-11 items-center gap-[.4rem] rounded-full border-(length:--clay-bw) border-transparent px-4 py-2 font-extrabold text-clay-muted no-underline transition-[background-color,box-shadow] duration-[180ms] motion-reduce:transition-none hover:bg-clay-bg hover:text-clay-ink focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-clay-accent aria-[current=page]:border-clay-accent aria-[current=page]:bg-clay-tint aria-[current=page]:text-clay-accent aria-[current=page]:shadow-clay-sm aria-[current=page]:before:size-2 aria-[current=page]:before:rounded-full aria-[current=page]:before:bg-current aria-[current=page]:before:content-['']" href="#">Progress</a></li></ul>
<div class="flex items-center gap-2.5"><button class="m-0 inline-grid cursor-pointer place-items-center rounded-full border-(length:--clay-bw) border-clay-edge bg-[var(--clay-fill,var(--clay-surface))] p-0 text-clay-ink shadow-clay-sm transition-[translate,box-shadow] duration-[180ms] motion-reduce:transition-none hover:-translate-y-0.5 hover:shadow-clay active:translate-y-0.5 active:shadow-clay-press motion-reduce:hover:translate-y-0 motion-reduce:active:translate-y-0 focus-visible:outline-3 focus-visible:outline-offset-4 focus-visible:outline-clay-accent size-11 [--clay-fill:var(--clay-lemon)]" type="button" aria-label="Notifications, 2 new"><svg class="size-[22px] shrink-0" aria-hidden="true" focusable="false"><use href="#clay-i-bell"/></svg></button><a class="m-0 inline-grid cursor-pointer place-items-center rounded-full border-(length:--clay-bw) border-clay-edge bg-[var(--clay-fill,var(--clay-surface))] p-0 text-clay-ink shadow-clay-sm transition-[translate,box-shadow] duration-[180ms] motion-reduce:transition-none hover:-translate-y-0.5 hover:shadow-clay active:translate-y-0.5 active:shadow-clay-press motion-reduce:hover:translate-y-0 motion-reduce:active:translate-y-0 focus-visible:outline-3 focus-visible:outline-offset-4 focus-visible:outline-clay-accent size-11 [--clay-fill:var(--clay-mint)]" href="#" aria-label="Your profile"><svg class="size-[22px] shrink-0" aria-hidden="true" focusable="false"><use href="#clay-i-user"/></svg></a></div>
</nav></section>
<div class="grid grid-cols-[minmax(0,300px)_minmax(0,1fr)] items-start gap-14 max-[767px]:grid-cols-1">
<section><span class="mb-5 block text-[.74rem] font-extrabold tracking-[.12em] text-clay-muted uppercase">Sidebar</span><nav class="m-0 rounded-clay border-(length:--clay-bw) border-clay-line bg-[var(--clay-fill,var(--clay-surface))] text-clay-ink shadow-clay grid gap-[.4rem] p-[1.2rem]" aria-label="Classroom">
<h2 class="mx-[.7rem] mt-[.6rem] mb-[.3rem] text-[.74rem] font-extrabold tracking-[.1em] text-clay-muted uppercase first:mt-0" id="sd-learn">Learn</h2>
<ul class="m-0 grid list-none gap-1.5 p-0" aria-labelledby="sd-learn">
<li><a class="relative flex min-h-[50px] items-center gap-3 rounded-[18px] border-(length:--clay-bw) border-transparent px-[.6rem] py-[.35rem] font-extrabold text-clay-ink no-underline transition-[background-color,box-shadow] duration-[180ms] motion-reduce:transition-none hover:bg-clay-bg focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-clay-accent aria-[current=page]:border-clay-accent aria-[current=page]:bg-clay-tint aria-[current=page]:shadow-clay-sm aria-[current=page]:after:absolute aria-[current=page]:after:top-3 aria-[current=page]:after:bottom-3 aria-[current=page]:after:-left-px aria-[current=page]:after:w-[5px] aria-[current=page]:after:rounded-r-md aria-[current=page]:after:bg-clay-accent aria-[current=page]:after:content-['']" href="#"><span class="grid size-[38px] flex-none place-items-center rounded-[13px] bg-[var(--clay-fill,var(--clay-surface))] shadow-clay-sm [&_svg]:size-5 [--clay-fill:var(--clay-peach)]"><svg class="size-[22px] shrink-0" aria-hidden="true" focusable="false"><use href="#clay-i-home"/></svg></span>Today</a></li>
<li><a class="relative flex min-h-[50px] items-center gap-3 rounded-[18px] border-(length:--clay-bw) border-transparent px-[.6rem] py-[.35rem] font-extrabold text-clay-ink no-underline transition-[background-color,box-shadow] duration-[180ms] motion-reduce:transition-none hover:bg-clay-bg focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-clay-accent aria-[current=page]:border-clay-accent aria-[current=page]:bg-clay-tint aria-[current=page]:shadow-clay-sm aria-[current=page]:after:absolute aria-[current=page]:after:top-3 aria-[current=page]:after:bottom-3 aria-[current=page]:after:-left-px aria-[current=page]:after:w-[5px] aria-[current=page]:after:rounded-r-md aria-[current=page]:after:bg-clay-accent aria-[current=page]:after:content-['']" href="#" aria-current="page"><span class="grid size-[38px] flex-none place-items-center rounded-[13px] bg-[var(--clay-fill,var(--clay-surface))] shadow-clay-sm [&_svg]:size-5 [--clay-fill:var(--clay-sky)]"><svg class="size-[22px] shrink-0" aria-hidden="true" focusable="false"><use href="#clay-i-book"/></svg></span>Reading<span class="ml-auto min-w-7 rounded-full bg-clay-accent px-2 py-[.1rem] text-center text-[.78rem] font-extrabold text-clay-on-accent">4<span class="sr-only"> new</span></span></a></li>
<li><a class="relative flex min-h-[50px] items-center gap-3 rounded-[18px] border-(length:--clay-bw) border-transparent px-[.6rem] py-[.35rem] font-extrabold text-clay-ink no-underline transition-[background-color,box-shadow] duration-[180ms] motion-reduce:transition-none hover:bg-clay-bg focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-clay-accent aria-[current=page]:border-clay-accent aria-[current=page]:bg-clay-tint aria-[current=page]:shadow-clay-sm aria-[current=page]:after:absolute aria-[current=page]:after:top-3 aria-[current=page]:after:bottom-3 aria-[current=page]:after:-left-px aria-[current=page]:after:w-[5px] aria-[current=page]:after:rounded-r-md aria-[current=page]:after:bg-clay-accent aria-[current=page]:after:content-['']" href="#"><span class="grid size-[38px] flex-none place-items-center rounded-[13px] bg-[var(--clay-fill,var(--clay-surface))] shadow-clay-sm [&_svg]:size-5 [--clay-fill:var(--clay-mint)]"><svg class="size-[22px] shrink-0" aria-hidden="true" focusable="false"><use href="#clay-i-calc"/></svg></span>Maths</a></li>
<li><a class="relative flex min-h-[50px] items-center gap-3 rounded-[18px] border-(length:--clay-bw) border-transparent px-[.6rem] py-[.35rem] font-extrabold text-clay-ink no-underline transition-[background-color,box-shadow] duration-[180ms] motion-reduce:transition-none hover:bg-clay-bg focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-clay-accent aria-[current=page]:border-clay-accent aria-[current=page]:bg-clay-tint aria-[current=page]:shadow-clay-sm aria-[current=page]:after:absolute aria-[current=page]:after:top-3 aria-[current=page]:after:bottom-3 aria-[current=page]:after:-left-px aria-[current=page]:after:w-[5px] aria-[current=page]:after:rounded-r-md aria-[current=page]:after:bg-clay-accent aria-[current=page]:after:content-['']" href="#"><span class="grid size-[38px] flex-none place-items-center rounded-[13px] bg-[var(--clay-fill,var(--clay-surface))] shadow-clay-sm [&_svg]:size-5 [--clay-fill:var(--clay-lemon)]"><svg class="size-[22px] shrink-0" aria-hidden="true" focusable="false"><use href="#clay-i-puzzle"/></svg></span>Puzzles<span class="ml-auto min-w-7 rounded-full bg-clay-accent px-2 py-[.1rem] text-center text-[.78rem] font-extrabold text-clay-on-accent">2<span class="sr-only"> new</span></span></a></li>
</ul>
<h2 class="mx-[.7rem] mt-[.6rem] mb-[.3rem] text-[.74rem] font-extrabold tracking-[.1em] text-clay-muted uppercase first:mt-0" id="sd-me">Me</h2>
<ul class="m-0 grid list-none gap-1.5 p-0" aria-labelledby="sd-me">
<li><a class="relative flex min-h-[50px] items-center gap-3 rounded-[18px] border-(length:--clay-bw) border-transparent px-[.6rem] py-[.35rem] font-extrabold text-clay-ink no-underline transition-[background-color,box-shadow] duration-[180ms] motion-reduce:transition-none hover:bg-clay-bg focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-clay-accent aria-[current=page]:border-clay-accent aria-[current=page]:bg-clay-tint aria-[current=page]:shadow-clay-sm aria-[current=page]:after:absolute aria-[current=page]:after:top-3 aria-[current=page]:after:bottom-3 aria-[current=page]:after:-left-px aria-[current=page]:after:w-[5px] aria-[current=page]:after:rounded-r-md aria-[current=page]:after:bg-clay-accent aria-[current=page]:after:content-['']" href="#"><span class="grid size-[38px] flex-none place-items-center rounded-[13px] bg-[var(--clay-fill,var(--clay-surface))] shadow-clay-sm [&_svg]:size-5 [--clay-fill:var(--clay-lilac)]"><svg class="size-[22px] shrink-0" aria-hidden="true" focusable="false"><use href="#clay-i-trophy"/></svg></span>Badges</a></li>
<li><a class="relative flex min-h-[50px] items-center gap-3 rounded-[18px] border-(length:--clay-bw) border-transparent px-[.6rem] py-[.35rem] font-extrabold text-clay-ink no-underline transition-[background-color,box-shadow] duration-[180ms] motion-reduce:transition-none hover:bg-clay-bg focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-clay-accent aria-[current=page]:border-clay-accent aria-[current=page]:bg-clay-tint aria-[current=page]:shadow-clay-sm aria-[current=page]:after:absolute aria-[current=page]:after:top-3 aria-[current=page]:after:bottom-3 aria-[current=page]:after:-left-px aria-[current=page]:after:w-[5px] aria-[current=page]:after:rounded-r-md aria-[current=page]:after:bg-clay-accent aria-[current=page]:after:content-['']" href="#"><span class="grid size-[38px] flex-none place-items-center rounded-[13px] bg-[var(--clay-fill,var(--clay-surface))] shadow-clay-sm [&_svg]:size-5"><svg class="size-[22px] shrink-0" aria-hidden="true" focusable="false"><use href="#clay-i-gear"/></svg></span>Settings</a></li>
</ul></nav></section>
<div class="grid gap-[1.4rem]">
<section><span class="mb-5 block text-[.74rem] font-extrabold tracking-[.12em] text-clay-muted uppercase">Tabs · arrow keys move between them</span><div class="grid gap-[1.2rem]">
<div class="flex w-fit max-w-full flex-wrap gap-1.5 rounded-full max-[600px]:rounded-clay border-(length:--clay-bw) border-clay-edge bg-clay-bg p-1.5 shadow-clay-well" role="tablist" aria-label="Subjects" data-clay-tabs>
<button class="m-0 flex min-h-11 cursor-pointer items-center gap-[.45rem] rounded-full border-(length:--clay-bw) border-transparent bg-transparent px-[1.1rem] py-[.45rem] font-[inherit] text-[.95rem] font-extrabold text-clay-muted transition-[background-color,box-shadow] duration-[180ms] motion-reduce:transition-none hover:text-clay-ink focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-clay-accent aria-selected:border-clay-accent aria-selected:bg-clay-surface aria-selected:text-clay-accent aria-selected:shadow-clay-sm [&_svg]:size-5" type="button" role="tab" id="tab-read" aria-selected="true" aria-controls="panel-read"><svg class="size-[22px] shrink-0" aria-hidden="true" focusable="false"><use href="#clay-i-book"/></svg>Reading</button>
<button class="m-0 flex min-h-11 cursor-pointer items-center gap-[.45rem] rounded-full border-(length:--clay-bw) border-transparent bg-transparent px-[1.1rem] py-[.45rem] font-[inherit] text-[.95rem] font-extrabold text-clay-muted transition-[background-color,box-shadow] duration-[180ms] motion-reduce:transition-none hover:text-clay-ink focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-clay-accent aria-selected:border-clay-accent aria-selected:bg-clay-surface aria-selected:text-clay-accent aria-selected:shadow-clay-sm [&_svg]:size-5" type="button" role="tab" id="tab-maths" aria-selected="false" aria-controls="panel-maths" tabindex="-1"><svg class="size-[22px] shrink-0" aria-hidden="true" focusable="false"><use href="#clay-i-calc"/></svg>Maths</button>
<button class="m-0 flex min-h-11 cursor-pointer items-center gap-[.45rem] rounded-full border-(length:--clay-bw) border-transparent bg-transparent px-[1.1rem] py-[.45rem] font-[inherit] text-[.95rem] font-extrabold text-clay-muted transition-[background-color,box-shadow] duration-[180ms] motion-reduce:transition-none hover:text-clay-ink focus-visible:outline-3 focus-visible:outline-offset-2 focus-visible:outline-clay-accent aria-selected:border-clay-accent aria-selected:bg-clay-surface aria-selected:text-clay-accent aria-selected:shadow-clay-sm [&_svg]:size-5" type="button" role="tab" id="tab-art" aria-selected="false" aria-controls="panel-art" tabindex="-1"><svg class="size-[22px] shrink-0" aria-hidden="true" focusable="false"><use href="#clay-i-palette"/></svg>Art</button>
</div>
<div class="m-0 rounded-clay border-(length:--clay-bw) border-clay-line bg-[var(--clay-fill,var(--clay-surface))] p-[1.6rem] text-clay-ink shadow-clay flex flex-wrap items-center gap-[1.2rem] [&[hidden]]:hidden focus-visible:outline-3 focus-visible:outline-offset-4 focus-visible:outline-clay-accent [--clay-fill:var(--clay-sky)]" role="tabpanel" id="panel-read" aria-labelledby="tab-read" tabindex="0"><span class="grid size-[52px] flex-none place-items-center rounded-[18px] border-(length:--clay-bw) border-clay-line bg-[var(--clay-fill,var(--clay-surface))] text-clay-ink shadow-clay-sm"><svg class="size-[22px] shrink-0" aria-hidden="true" focusable="false"><use href="#clay-i-book"/></svg></span><div class="min-w-[200px] flex-1"><h3 class="mt-0 mb-[.3rem] text-[1.15rem] font-extrabold">The Owl Who Was Afraid of the Dark</h3><p class="m-0 text-clay-muted">Chapter 3 of 7 · about 12 minutes · read aloud is on</p></div><a class="m-0 inline-flex min-h-[50px] cursor-pointer items-center justify-center gap-[.55rem] rounded-full border-(length:--clay-bw) bg-[var(--clay-fill,var(--clay-surface))] px-6 py-[.7rem] font-[inherit] text-base leading-[1.2] font-extrabold no-underline shadow-clay-sm transition-[translate,box-shadow] duration-[180ms] motion-reduce:transition-none hover:-translate-y-0.5 hover:shadow-clay active:translate-y-0.5 active:shadow-clay-press motion-reduce:hover:translate-y-0 motion-reduce:active:translate-y-0 focus-visible:outline-3 focus-visible:outline-offset-4 focus-visible:outline-clay-accent [--clay-fill:var(--clay-accent)] border-clay-accent text-clay-on-accent" href="#">Open book</a></div>
<div class="m-0 rounded-clay border-(length:--clay-bw) border-clay-line bg-[var(--clay-fill,var(--clay-surface))] p-[1.6rem] text-clay-ink shadow-clay flex flex-wrap items-center gap-[1.2rem] [&[hidden]]:hidden focus-visible:outline-3 focus-visible:outline-offset-4 focus-visible:outline-clay-accent [--clay-fill:var(--clay-mint)]" role="tabpanel" id="panel-maths" aria-labelledby="tab-maths" tabindex="0" hidden><span class="grid size-[52px] flex-none place-items-center rounded-[18px] border-(length:--clay-bw) border-clay-line bg-[var(--clay-fill,var(--clay-surface))] text-clay-ink shadow-clay-sm"><svg class="size-[22px] shrink-0" aria-hidden="true" focusable="false"><use href="#clay-i-calc"/></svg></span><div class="min-w-[200px] flex-1"><h3 class="mt-0 mb-[.3rem] text-[1.15rem] font-extrabold">Counting in fives</h3><p class="m-0 text-clay-muted">10 questions · 2 stars so far · next: telling the time</p></div><a class="m-0 inline-flex min-h-[50px] cursor-pointer items-center justify-center gap-[.55rem] rounded-full border-(length:--clay-bw) bg-[var(--clay-fill,var(--clay-surface))] px-6 py-[.7rem] font-[inherit] text-base leading-[1.2] font-extrabold no-underline shadow-clay-sm transition-[translate,box-shadow] duration-[180ms] motion-reduce:transition-none hover:-translate-y-0.5 hover:shadow-clay active:translate-y-0.5 active:shadow-clay-press motion-reduce:hover:translate-y-0 motion-reduce:active:translate-y-0 focus-visible:outline-3 focus-visible:outline-offset-4 focus-visible:outline-clay-accent [--clay-fill:var(--clay-accent)] border-clay-accent text-clay-on-accent" href="#">Practise</a></div>
<div class="m-0 rounded-clay border-(length:--clay-bw) border-clay-line bg-[var(--clay-fill,var(--clay-surface))] p-[1.6rem] text-clay-ink shadow-clay flex flex-wrap items-center gap-[1.2rem] [&[hidden]]:hidden focus-visible:outline-3 focus-visible:outline-offset-4 focus-visible:outline-clay-accent [--clay-fill:var(--clay-peach)]" role="tabpanel" id="panel-art" aria-labelledby="tab-art" tabindex="0" hidden><span class="grid size-[52px] flex-none place-items-center rounded-[18px] border-(length:--clay-bw) border-clay-line bg-[var(--clay-fill,var(--clay-surface))] text-clay-ink shadow-clay-sm"><svg class="size-[22px] shrink-0" aria-hidden="true" focusable="false"><use href="#clay-i-palette"/></svg></span><div class="min-w-[200px] flex-1"><h3 class="mt-0 mb-[.3rem] text-[1.15rem] font-extrabold">Paint a rainy day</h3><p class="m-0 text-clay-muted">Mix three blues and add puddles with a sponge</p></div><a class="m-0 inline-flex min-h-[50px] cursor-pointer items-center justify-center gap-[.55rem] rounded-full border-(length:--clay-bw) bg-[var(--clay-fill,var(--clay-surface))] px-6 py-[.7rem] font-[inherit] text-base leading-[1.2] font-extrabold no-underline shadow-clay-sm transition-[translate,box-shadow] duration-[180ms] motion-reduce:transition-none hover:-translate-y-0.5 hover:shadow-clay active:translate-y-0.5 active:shadow-clay-press motion-reduce:hover:translate-y-0 motion-reduce:active:translate-y-0 focus-visible:outline-3 focus-visible:outline-offset-4 focus-visible:outline-clay-accent [--clay-fill:var(--clay-accent)] border-clay-accent text-clay-on-accent" href="#">Start painting</a></div>
</div></section>
<section><span class="mb-5 block text-[.74rem] font-extrabold tracking-[.12em] text-clay-muted uppercase">Pagination</span><nav class="" aria-label="Story pages"><ul class="m-0 flex list-none flex-wrap items-center gap-2.5 p-0">
<li><a class="h-12 min-w-12 place-items-center rounded-full border-(length:--clay-bw) border-clay-edge bg-clay-surface font-extrabold text-clay-ink no-underline shadow-clay-sm transition-[translate,box-shadow] duration-[180ms] motion-reduce:transition-none hover:-translate-y-0.5 hover:shadow-clay motion-reduce:hover:translate-y-0 focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-clay-accent aria-[current=page]:translate-y-0.5 aria-[current=page]:border-clay-accent aria-[current=page]:bg-clay-accent aria-[current=page]:text-clay-on-accent aria-[current=page]:shadow-clay-press flex items-center gap-[.3rem] px-[1.1rem]" href="#"><svg class="size-[22px] shrink-0" aria-hidden="true" focusable="false"><use href="#clay-i-chevLeft"/></svg><span>Previous</span></a></li>
<li><a class="grid h-12 min-w-12 place-items-center rounded-full border-(length:--clay-bw) border-clay-edge bg-clay-surface px-[.8rem] font-extrabold text-clay-ink no-underline shadow-clay-sm transition-[translate,box-shadow] duration-[180ms] motion-reduce:transition-none hover:-translate-y-0.5 hover:shadow-clay motion-reduce:hover:translate-y-0 focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-clay-accent aria-[current=page]:translate-y-0.5 aria-[current=page]:border-clay-accent aria-[current=page]:bg-clay-accent aria-[current=page]:text-clay-on-accent aria-[current=page]:shadow-clay-press" href="#" aria-label="Page 1">1</a></li>
<li><a class="grid h-12 min-w-12 place-items-center rounded-full border-(length:--clay-bw) border-clay-edge bg-clay-surface px-[.8rem] font-extrabold text-clay-ink no-underline shadow-clay-sm transition-[translate,box-shadow] duration-[180ms] motion-reduce:transition-none hover:-translate-y-0.5 hover:shadow-clay motion-reduce:hover:translate-y-0 focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-clay-accent aria-[current=page]:translate-y-0.5 aria-[current=page]:border-clay-accent aria-[current=page]:bg-clay-accent aria-[current=page]:text-clay-on-accent aria-[current=page]:shadow-clay-press" href="#" aria-label="Page 2">2</a></li>
<li><a class="grid h-12 min-w-12 place-items-center rounded-full border-(length:--clay-bw) border-clay-edge bg-clay-surface px-[.8rem] font-extrabold text-clay-ink no-underline shadow-clay-sm transition-[translate,box-shadow] duration-[180ms] motion-reduce:transition-none hover:-translate-y-0.5 hover:shadow-clay motion-reduce:hover:translate-y-0 focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-clay-accent aria-[current=page]:translate-y-0.5 aria-[current=page]:border-clay-accent aria-[current=page]:bg-clay-accent aria-[current=page]:text-clay-on-accent aria-[current=page]:shadow-clay-press" href="#" aria-label="Page 3" aria-current="page">3</a></li>
<li><a class="grid h-12 min-w-12 place-items-center rounded-full border-(length:--clay-bw) border-clay-edge bg-clay-surface px-[.8rem] font-extrabold text-clay-ink no-underline shadow-clay-sm transition-[translate,box-shadow] duration-[180ms] motion-reduce:transition-none hover:-translate-y-0.5 hover:shadow-clay motion-reduce:hover:translate-y-0 focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-clay-accent aria-[current=page]:translate-y-0.5 aria-[current=page]:border-clay-accent aria-[current=page]:bg-clay-accent aria-[current=page]:text-clay-on-accent aria-[current=page]:shadow-clay-press" href="#" aria-label="Page 4">4</a></li>
<li><span class="px-[.2rem] font-extrabold text-clay-muted" aria-hidden="true">…</span></li>
<li><a class="grid h-12 min-w-12 place-items-center rounded-full border-(length:--clay-bw) border-clay-edge bg-clay-surface px-[.8rem] font-extrabold text-clay-ink no-underline shadow-clay-sm transition-[translate,box-shadow] duration-[180ms] motion-reduce:transition-none hover:-translate-y-0.5 hover:shadow-clay motion-reduce:hover:translate-y-0 focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-clay-accent aria-[current=page]:translate-y-0.5 aria-[current=page]:border-clay-accent aria-[current=page]:bg-clay-accent aria-[current=page]:text-clay-on-accent aria-[current=page]:shadow-clay-press" href="#" aria-label="Page 9">9</a></li>
<li><a class="h-12 min-w-12 place-items-center rounded-full border-(length:--clay-bw) border-clay-edge bg-clay-surface font-extrabold text-clay-ink no-underline shadow-clay-sm transition-[translate,box-shadow] duration-[180ms] motion-reduce:transition-none hover:-translate-y-0.5 hover:shadow-clay motion-reduce:hover:translate-y-0 focus-visible:outline-3 focus-visible:outline-offset-3 focus-visible:outline-clay-accent aria-[current=page]:translate-y-0.5 aria-[current=page]:border-clay-accent aria-[current=page]:bg-clay-accent aria-[current=page]:text-clay-on-accent aria-[current=page]:shadow-clay-press flex items-center gap-[.3rem] px-[1.1rem]" href="#"><span>Next</span><svg class="size-[22px] shrink-0" aria-hidden="true" focusable="false"><use href="#clay-i-chevRight"/></svg></a></li>
</ul></nav></section>
</div>
</div>
CSS
/* ── Claymorphism UI kit tokens (uiCookies) — identical in every set ──────────────
   Every component is a puffy pastel object floating above --clay-bg: one big soft drop shadow
   below it, an inset highlight top left and an inset shade bottom right. Change a token and
   the whole kit follows; the shadow recipes below are built from these values. */
:root{
  --clay-bg:#f3effa;          /* page, a pale lilac white */
  --clay-surface:#fffcf8;     /* cards, fields and plain objects */
  --clay-peach:#ffd2bd;       /* object fills: ink text on every fill reaches 11:1 */
  --clay-lilac:#dccdff;
  --clay-mint:#bdeed6;
  --clay-sky:#c2e0ff;
  --clay-lemon:#ffe9a3;
  --clay-ink:#241a3d;         /* text, 14.4:1 on --clay-bg */
  --clay-muted:#51476a;       /* secondary text, 5.7:1 or more on every fill */
  --clay-edge:#7a6e96;        /* control boundary, 4.1:1 on --clay-bg, so shadows are never the only edge */
  --clay-line:rgba(36,26,61,.12); /* decorative edge on cards and panels */
  --clay-accent:#6236e8;      /* focus ring and on / selected / current states, 5.8:1 on --clay-bg */
  --clay-on-accent:#ffffff;   /* text and marks on accent fills, 6.5:1 */
  --clay-tint:#e9e1ff;        /* light accent wash behind current items */
  --clay-drop:rgba(86,56,168,.30); /* colour of the outer drop shadow */
  --clay-hi:rgba(255,255,255,.88);  /* inset highlight, top left */
  --clay-lo:rgba(52,30,112,.20);    /* inset shade, bottom right */
  --clay-lift:14px;           /* how high objects float; every shadow scales from it */
  --clay-radius:30px;         /* cards; buttons are pills, fields use .55 of it */
  --clay-bw:1.5px;            /* control border width */
  --clay-success:#17663d;--clay-warning:#8a4b00;--clay-danger:#b3261e;
  --clay-font:ui-rounded,"SF Pro Rounded","Nunito","Quicksand","Varela Round","Arial Rounded MT Bold",system-ui,sans-serif;
}
/* --clay-fill is set by .clay-peach, .clay-mint… on one object and must not leak into its children */
@property --clay-fill{syntax:"*";inherits:false}
/* Dark clay: data-clay="dark" on any wrapper, or a checked .clay-theme-input inside a [data-clay] element.
   :is() is a forgiving list, so browsers without :has() still apply data-clay="dark" */
[data-clay]:is([data-clay="dark"],:has(.clay-theme-input:checked)){
  --clay-bg:#1a1530;--clay-surface:#2a2347;
  --clay-peach:#6e3f33;--clay-lilac:#4a3a8a;--clay-mint:#215a4a;--clay-sky:#26497c;--clay-lemon:#5f5220;
  --clay-ink:#f7f3ff;--clay-muted:#d2c9ea;--clay-edge:#8f83b8;--clay-line:rgba(255,255,255,.1);
  --clay-accent:#bba6ff;--clay-on-accent:#1a1530;--clay-tint:#3a2f66;
  --clay-drop:rgba(4,2,14,.62);--clay-hi:rgba(255,255,255,.2);--clay-lo:rgba(0,0,0,.34);
  --clay-success:#86e3b0;--clay-warning:#ffc76e;--clay-danger:#ffa196;color-scheme:dark}
/* More contrast requested: soft shading stays, but every edge and secondary text turns full ink */
@media (prefers-contrast:more){:root,[data-clay]:is([data-clay],:has(.clay-theme-input:checked)){
  --clay-edge:var(--clay-ink);--clay-line:var(--clay-ink);--clay-muted:var(--clay-ink);--clay-bw:2px}}
:root,[data-clay]{
  --clay-shadow:0 var(--clay-lift) calc(var(--clay-lift)*2.2) calc(var(--clay-lift)*-.3) var(--clay-drop),
    inset calc(var(--clay-lift)*.45) calc(var(--clay-lift)*.5) calc(var(--clay-lift)*.9) var(--clay-hi),
    inset calc(var(--clay-lift)*-.45) calc(var(--clay-lift)*-.6) calc(var(--clay-lift)*.9) var(--clay-lo);
  --clay-shadow-sm:0 calc(var(--clay-lift)*.55) calc(var(--clay-lift)*1.2) calc(var(--clay-lift)*-.15) var(--clay-drop),
    inset calc(var(--clay-lift)*.25) calc(var(--clay-lift)*.3) calc(var(--clay-lift)*.5) var(--clay-hi),
    inset calc(var(--clay-lift)*-.25) calc(var(--clay-lift)*-.35) calc(var(--clay-lift)*.5) var(--clay-lo);
  --clay-press:0 calc(var(--clay-lift)*.12) calc(var(--clay-lift)*.25) 0 var(--clay-drop),
    inset calc(var(--clay-lift)*.2) calc(var(--clay-lift)*.25) calc(var(--clay-lift)*.45) var(--clay-lo),
    inset calc(var(--clay-lift)*-.12) calc(var(--clay-lift)*-.12) calc(var(--clay-lift)*.3) var(--clay-hi);
  --clay-well:inset calc(var(--clay-lift)*.15) calc(var(--clay-lift)*.22) calc(var(--clay-lift)*.45) var(--clay-lo),
    inset calc(var(--clay-lift)*-.12) calc(var(--clay-lift)*-.12) calc(var(--clay-lift)*.3) var(--clay-hi);
}
[data-clay]{background:var(--clay-bg);color:var(--clay-ink)}
/* The tokens above, exposed as Tailwind utilities: bg-clay-peach, text-clay-muted, border-clay-edge,
   shadow-clay, shadow-clay-sm, shadow-clay-press, shadow-clay-well, rounded-clay, rounded-clay-field, font-clay… */
@theme inline {
  --color-clay-bg: var(--clay-bg); --color-clay-surface: var(--clay-surface);
  --color-clay-peach: var(--clay-peach); --color-clay-lilac: var(--clay-lilac); --color-clay-mint: var(--clay-mint);
  --color-clay-sky: var(--clay-sky); --color-clay-lemon: var(--clay-lemon);
  --color-clay-ink: var(--clay-ink); --color-clay-muted: var(--clay-muted); --color-clay-edge: var(--clay-edge); --color-clay-line: var(--clay-line);
  --color-clay-accent: var(--clay-accent); --color-clay-on-accent: var(--clay-on-accent); --color-clay-tint: var(--clay-tint);
  --color-clay-success: var(--clay-success); --color-clay-warning: var(--clay-warning); --color-clay-danger: var(--clay-danger);
  --shadow-clay: var(--clay-shadow); --shadow-clay-sm: var(--clay-shadow-sm); --shadow-clay-press: var(--clay-press); --shadow-clay-well: var(--clay-well);
  --radius-clay: var(--clay-radius); --radius-clay-field: calc(var(--clay-radius) * .55); --radius-clay-sm: calc(var(--clay-radius) * .4);
  --font-clay: var(--clay-font);
}
JavaScript
// Tabs: click or Left / Right / Home / End move between tabs (ARIA tabs pattern, automatic activation)
document.querySelectorAll('[data-clay-tabs]').forEach(function (list) {
  var tabs = Array.prototype.slice.call(list.querySelectorAll('[role="tab"]'));
  function select(tab) {
    tabs.forEach(function (t) {
      var on = t === tab;
      t.setAttribute('aria-selected', on); t.tabIndex = on ? 0 : -1;
      document.getElementById(t.getAttribute('aria-controls')).hidden = !on;
    });
  }
  tabs.forEach(function (tab, i) {
    tab.addEventListener('click', function () { select(tab); });
    tab.addEventListener('keydown', function (e) {
      var n = { ArrowRight: i + 1, ArrowLeft: i - 1, Home: 0, End: tabs.length - 1 }[e.key];
      if (n === undefined) return;
      e.preventDefault(); var t = tabs[(n + tabs.length) % tabs.length]; select(t); t.focus();
    });
  });
});

About this set

Navigation patterns for a soft, rounded app. The navbar is a floating clay pill with a brand mark, four links and two round icon buttons for notifications and the profile. The current link sits on a raised tint pebble with an accent edge, accent text and a dot, and carries aria-current=”page”. The grouped sidebar lists Today, Reading, Maths, Puzzles, Badges and Settings with small coloured icon blobs and unread counts; the current item gets a tint pebble, an accent edge and an accent bar at its left. Tabs switch between Reading, Maths and Art panels, each a coloured card with a call to action, and the selected tab pops up out of an inset tray. Pagination uses round pebbles with Previous and Next labels, and the current page is an accent pebble pressed flat. Use the set as the frame of a learning app, a family dashboard or any friendly product. The tabs follow the ARIA tabs pattern with Left, Right, Home and End keys; the plain and Tailwind versions use a short script and the Bootstrap version uses its own tab plugin.

What’s included

  • Floating pill navbar with icon buttons
  • Grouped sidebar with icon blobs, counts and an accent bar on the current item
  • ARIA tabs with arrow key, Home and End support
  • Round pebble pagination with aria-current on the current page
  • Bootstrap version built on .navbar, .nav-pills, .nav and .pagination

Accessibility

Current items are marked with aria-current and shown by a tint, an accent edge and a dot or bar, not colour alone. Tabs use role="tablist", role="tab" and role="tabpanel" with roving tabindex, page links have aria-labels such as Page 3, and the sidebar groups are labelled by their headings. Every link and button shows a 3px accent focus ring, and transitions stop under prefers-reduced-motion.

Customise it

The current-item colours come from --clay-accent and --clay-tint, and the icon blobs take a fill class. Bootstrap maps the tokens onto --bs-navbar-*, --bs-nav-pills-* and --bs-pagination-* variables; Tailwind styles the states with aria-[current=page]: and aria-selected: variants.