Open demo

CSS code

HTML
<svg width="0" height="0" style="position:absolute" aria-hidden="true" focusable="false">
  <symbol id="dk-i-activity" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12h4l2.5-6.5 5 13L17 12h4"/></symbol>
  <symbol id="dk-i-clock" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="8.5"/><path d="M12 7.5V12l3 2"/></symbol>
  <symbol id="dk-i-warn" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 4 2.8 19.5h18.4z"/><path d="M12 10v4.5M12 17.25h.01"/></symbol>
  <symbol id="dk-i-arrowup" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17 17 7M9 7h8v8"/></symbol>
  <symbol id="dk-i-arrowdown" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M7 7l10 10M17 9v8H9"/></symbol>
  <symbol id="dk-i-tick" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="m5 12.5 4.5 4.5L19 7.5" stroke-width="3"/></symbol>
  <symbol id="dk-i-pin" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 21s-6.5-5.6-6.5-11a6.5 6.5 0 0 1 13 0c0 5.4-6.5 11-6.5 11z"/><circle cx="12" cy="10" r="2.5"/></symbol>
  <symbol id="dk-i-mail" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3.5" y="5.5" width="17" height="13" rx="2"/><path d="m4 7 8 6 8-6"/></symbol>
</svg>
<section><span class="lbl">Stat cards · value, delta and a sparkline with a text alternative</span><div class="grid3">
<article class="dk-card"><div class="dk-stat__head"><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-activity"/></svg><h3 style="font:inherit">Requests · 24 h</h3></div><div class="dk-stat__row"><p class="dk-stat__value">1.84M</p><span class="dk-badge dk-badge--success dk-delta"><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-arrowup"/></svg><span class="dk-sr">up </span>12.4%</span></div><div class="dk-stat__spark"><svg viewBox="0 0 240 44" preserveAspectRatio="none" style="display:block;width:100%;height:44px" aria-hidden="true" focusable="false"><path d="M0.0 41.0 L21.8 36.2 L43.6 38.6 L65.5 29.0 L87.3 31.4 L109.1 24.2 L130.9 26.6 L152.7 17.0 L174.5 19.4 L196.4 12.2 L218.2 14.6 L240.0 5.0 L240 44 L0 44 Z" style="fill:color-mix(in srgb,var(--accent) 16%,transparent)"/><path d="M0.0 41.0 L21.8 36.2 L43.6 38.6 L65.5 29.0 L87.3 31.4 L109.1 24.2 L130.9 26.6 L152.7 17.0 L174.5 19.4 L196.4 12.2 L218.2 14.6 L240.0 5.0" style="fill:none;stroke:var(--accent);stroke-width:1.75;vector-effect:non-scaling-stroke;stroke-linejoin:round"/></svg><span class="dk-sr">Trend over the last 12 hours: rising through the day.</span></div><p class="dk-stat__foot">vs 1.64M yesterday</p></article>
<article class="dk-card"><div class="dk-stat__head"><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-clock"/></svg><h3 style="font:inherit">p95 latency</h3></div><div class="dk-stat__row"><p class="dk-stat__value">182<small class="">ms</small></p><span class="dk-badge dk-badge--success dk-delta"><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-arrowdown"/></svg><span class="dk-sr">down </span>8.1%</span></div><div class="dk-stat__spark"><svg viewBox="0 0 240 44" preserveAspectRatio="none" style="display:block;width:100%;height:44px" aria-hidden="true" focusable="false"><path d="M0.0 5.0 L21.8 7.5 L43.6 12.4 L65.5 10.6 L87.3 20.5 L109.1 23.6 L130.9 27.3 L152.7 30.4 L174.5 32.3 L196.4 36.0 L218.2 38.5 L240.0 41.0 L240 44 L0 44 Z" style="fill:color-mix(in srgb,var(--accent) 16%,transparent)"/><path d="M0.0 5.0 L21.8 7.5 L43.6 12.4 L65.5 10.6 L87.3 20.5 L109.1 23.6 L130.9 27.3 L152.7 30.4 L174.5 32.3 L196.4 36.0 L218.2 38.5 L240.0 41.0" style="fill:none;stroke:var(--accent);stroke-width:1.75;vector-effect:non-scaling-stroke;stroke-linejoin:round"/></svg><span class="dk-sr">Trend over the last 12 hours: falling steadily.</span></div><p class="dk-stat__foot">Target under 250 ms</p></article>
<article class="dk-card"><div class="dk-stat__head"><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-warn"/></svg><h3 style="font:inherit">Error rate</h3></div><div class="dk-stat__row"><p class="dk-stat__value">0.42<small class="">%</small></p><span class="dk-badge dk-badge--danger dk-delta"><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-arrowup"/></svg><span class="dk-sr">up </span>0.10 pt</span></div><div class="dk-stat__spark"><svg viewBox="0 0 240 44" preserveAspectRatio="none" style="display:block;width:100%;height:44px" aria-hidden="true" focusable="false"><path d="M0.0 41.0 L21.8 37.7 L43.6 39.4 L65.5 32.8 L87.3 34.5 L109.1 24.6 L130.9 27.9 L152.7 19.7 L174.5 14.8 L196.4 16.5 L218.2 8.3 L240.0 5.0 L240 44 L0 44 Z" style="fill:color-mix(in srgb,var(--accent) 16%,transparent)"/><path d="M0.0 41.0 L21.8 37.7 L43.6 39.4 L65.5 32.8 L87.3 34.5 L109.1 24.6 L130.9 27.9 L152.7 19.7 L174.5 14.8 L196.4 16.5 L218.2 8.3 L240.0 5.0" style="fill:none;stroke:var(--accent);stroke-width:1.75;vector-effect:non-scaling-stroke;stroke-linejoin:round"/></svg><span class="dk-sr">Trend over the last 12 hours: climbing slowly.</span></div><p class="dk-stat__foot">1,204 failed of 286,410</p></article>
</div></section>
<section><span class="lbl">Content, profile and pricing cards</span><div class="grid3">
<article class="dk-card dk-post"><div class="dk-post__cover"><svg viewBox="0 0 400 200" preserveAspectRatio="xMidYMid slice" style="display:block;width:100%;height:auto;aspect-ratio:2/1" aria-hidden="true" focusable="false"><rect width="400" height="200" style="fill:var(--surface-2)"/><path d="M0 50h400M0 100h400M0 150h400M80 0v200M160 0v200M240 0v200M320 0v200" style="stroke:var(--border);stroke-width:1"/><rect x="70" y="38" width="260" height="128" rx="10" style="fill:var(--surface-1);stroke:var(--edge);stroke-width:1"/><circle cx="88" cy="55" r="4" style="fill:var(--danger)"/><circle cx="102" cy="55" r="4" style="fill:var(--warning)"/><circle cx="116" cy="55" r="4" style="fill:var(--success)"/><rect x="88" y="78" width="54" height="7" rx="3.5" style="fill:var(--accent)"/><rect x="150" y="78" width="110" height="7" rx="3.5" style="fill:var(--surface-3)"/><rect x="88" y="96" width="140" height="7" rx="3.5" style="fill:var(--surface-3)"/><rect x="236" y="96" width="40" height="7" rx="3.5" style="fill:var(--success)"/><rect x="88" y="114" width="90" height="7" rx="3.5" style="fill:var(--surface-3)"/><path d="M88 148 L130 140 L170 144 L210 128 L250 132 L300 112" style="fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round"/></svg></div><div class="dk-post__body"><span class="dk-badge dk-badge--accent">Engineering</span><h3 class="dk-post__title"><a href="#post">How we cut cold starts by 63% with snapshot restore</a></h3><p class="dk-post__text">Booting from a memory snapshot instead of a clean container took our median cold start from 1.9 s to 0.7 s.</p><div class="dk-post__meta"><span class="dk-avatar" aria-hidden="true">JO</span><span><b>Jonas Okafor</b>6 min read · 2 Oct 2026</span></div></div></article>
<article class="dk-card dk-profile"><span class="dk-avatar dk-avatar--lg" aria-hidden="true">PR</span><h3 class="dk-profile__name">Priya Raman</h3><p class="dk-profile__role">Staff SRE · Platform team</p><p style="margin-top:10px"><span class="dk-badge dk-badge--success dk-badge--dot">On call until Friday</span></p><dl class="dk-profile__stats"><div><dt>Deploys</dt><dd>1,284</dd></div><div><dt>Reviews</dt><dd>342</dd></div><div><dt>Incidents</dt><dd>7</dd></div></dl><p class="dk-profile__loc"><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-pin"/></svg>Lisbon · UTC+1</p><div class="dk-profile__actions"><button class="dk-btn" type="button"><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-mail"/></svg>Message</button><button class="dk-btn dk-btn--primary" type="button">Page Priya</button></div></article>
<article class="dk-card dk-price"><div class="dk-price__head"><h3 class="dk-card__title">Pro</h3><span class="dk-badge dk-badge--accent">Most popular</span></div><p class="dk-card__sub">For teams shipping every day</p><p class="dk-price__amount">$24<small>per seat / month</small></p><ul class="dk-price__list"><li><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-tick"/></svg>Unlimited preview deployments</li><li><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-tick"/></svg>10 concurrent builds</li><li><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-tick"/></svg>30-day log retention</li><li><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-tick"/></svg>Role-based access and SSO</li><li><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-tick"/></svg>Email support, 1 business day</li></ul><button class="dk-btn dk-btn--primary dk-btn--block dk-btn--lg" type="button">Start 14-day trial</button><p class="dk-price__note">No card required · cancel any time</p></article>
</div></section>
CSS
/* ── Dark UI kit tokens (uiCookies) — identical in every set ──────────────────────────────
   Dark first. Elevation is a lighter surface, not a shadow: surface-0 is the page, 1 cards and
   panels, 2 controls, menus and dialogs, 3 hover, selected rows and tooltips.
   Every colour is a light-dark() pair, so flipping color-scheme turns the whole kit light:
   data-theme="dark" | "light" | "system" on any wrapper (system follows prefers-color-scheme),
   or a checked .theme-pick radio inside a [data-theme] element (:has()).
   Contrast, dark | light, on the worst surface (surface-3): text-1 12.2 | 15.0, text-2 6.6 | 7.3,
   text-3 4.8 | 5.4, accent 5.4 | 5.1, success 7.7 | 5.0, warning 8.4 | 5.2, danger 6.8 | 5.0;
   edge (control boundaries) 3.3 | 3.1 and focus 7.9 | 5.9 against every surface. */
:root{color-scheme:dark}
[data-theme="dark"]{color-scheme:dark}
[data-theme="light"]{color-scheme:light}
[data-theme="system"]{color-scheme:light dark}
[data-theme]:has(.theme-pick[value="dark"]:checked){color-scheme:dark}
[data-theme]:has(.theme-pick[value="light"]:checked){color-scheme:light}
[data-theme]:has(.theme-pick[value="system"]:checked){color-scheme:light dark}
:root{
  --surface-0:light-dark(#eef1f5,#0b0d12);   /* page */
  --surface-1:light-dark(#ffffff,#151821);   /* cards, panels, navbar, sidebar */
  --surface-2:light-dark(#f6f7f9,#1d212c);   /* controls, menus, dialogs, toasts */
  --surface-3:light-dark(#e6e9ef,#262b38);   /* hover, selected rows, tooltips */
  --text-1:light-dark(#12151c,#eceef3);      /* primary text */
  --text-2:light-dark(#434a5a,#aab1bf);      /* secondary text */
  --text-3:light-dark(#555d6e,#8f96a8);      /* captions, placeholders, axis labels */
  --border:light-dark(#dde1e8,#2a2f3c);      /* decorative 1px dividers and card edges */
  --edge:light-dark(#7c8496,#737b90);        /* control boundaries: fields, boxes, tracks */
  --accent:light-dark(#4452d0,#8b97ff);      /* the one vivid colour: links, selected, primary */
  --accent-soft:light-dark(#e6e8ff,#232a4d); /* selected backgrounds; accent text keeps 5.2 | 5.3 on it */
  --on-accent:light-dark(#ffffff,#0b0d12);   /* text on accent fills, 6.2 | 7.4 */
  --success:light-dark(#11713f,#5fd4a0);     /* desaturated for dark, so they do not vibrate */
  --warning:light-dark(#875500,#f0c060);
  --danger:light-dark(#bb2532,#ff9790);
  --focus:light-dark(#3b48c4,#b5bdff);       /* 2px focus ring */
  --highlight:light-dark(rgb(255 255 255 / 0),rgb(255 255 255 / .045)); /* 1px top light on dark surfaces */
  --shadow-color:light-dark(rgb(16 24 40 / .16),rgb(0 0 0 / .55));     /* overlays only */
  --radius:12px;--radius-sm:8px;
  --mono:ui-monospace,"SF Mono","Cascadia Code",Menlo,Consolas,monospace;
}
/* No light-dark() (Chrome < 123, Safari < 17.5, Firefox < 120): the same values, chosen by attribute */
@supports not (color:light-dark(#fff,#000)){
  :root,[data-theme="dark"]{--surface-0:#0b0d12;--surface-1:#151821;--surface-2:#1d212c;--surface-3:#262b38;--text-1:#eceef3;--text-2:#aab1bf;--text-3:#8f96a8;--border:#2a2f3c;--edge:#737b90;--accent:#8b97ff;--accent-soft:#232a4d;--on-accent:#0b0d12;--success:#5fd4a0;--warning:#f0c060;--danger:#ff9790;--focus:#b5bdff;--highlight:rgb(255 255 255 / .045);--shadow-color:rgb(0 0 0 / .55)}
  [data-theme="light"]{--surface-0:#eef1f5;--surface-1:#ffffff;--surface-2:#f6f7f9;--surface-3:#e6e9ef;--text-1:#12151c;--text-2:#434a5a;--text-3:#555d6e;--border:#dde1e8;--edge:#7c8496;--accent:#4452d0;--accent-soft:#e6e8ff;--on-accent:#ffffff;--success:#11713f;--warning:#875500;--danger:#bb2532;--focus:#3b48c4;--highlight:rgb(255 255 255 / 0);--shadow-color:rgb(16 24 40 / .16)}
  @media (prefers-color-scheme:light){[data-theme="system"]{--surface-0:#eef1f5;--surface-1:#ffffff;--surface-2:#f6f7f9;--surface-3:#e6e9ef;--text-1:#12151c;--text-2:#434a5a;--text-3:#555d6e;--border:#dde1e8;--edge:#7c8496;--accent:#4452d0;--accent-soft:#e6e8ff;--on-accent:#ffffff;--success:#11713f;--warning:#875500;--danger:#bb2532;--focus:#3b48c4;--highlight:rgb(255 255 255 / 0);--shadow-color:rgb(16 24 40 / .16)}}
}
@media (prefers-contrast:more){:root{--border:var(--edge);--text-3:var(--text-2)}}
[data-theme]{background:var(--surface-0);color:var(--text-1)}
/* Components */
:where([class^="dk-"],[class*=" dk-"]),:where([class^="dk-"],[class*=" dk-"])::before,:where([class^="dk-"],[class*=" dk-"])::after{box-sizing:border-box}
.dk-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.dk-ico{width:18px;height:18px;flex:none}
.dk-kbd{display:inline-grid;place-items:center;min-width:1.45rem;height:1.35rem;padding:0 .35rem;border:1px solid var(--border);border-bottom-width:2px;
  border-radius:5px;background:var(--surface-2);color:var(--text-2);font:500 .72rem/1 var(--mono)}
.dk-link{color:var(--accent);font-weight:600;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);text-underline-offset:3px}
.dk-link:hover{text-decoration-color:currentColor}
.dk-link:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:3px}
/* Card: surface-1 with a 1px border and a 1px top highlight (dark only); no shadow */
.dk-card{padding:20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-1);color:var(--text-1);box-shadow:inset 0 1px 0 var(--highlight)}
.dk-card h2,.dk-card h3,.dk-card p{margin:0}
.dk-card__title{font-size:1rem;font-weight:650;letter-spacing:-.01em}
.dk-card__sub{margin-top:2px;font-size:.85rem;color:var(--text-2)}
/* Buttons: one recipe, variants only swap four custom properties */
.dk-btn{--b-bg:var(--surface-2);--b-fg:var(--text-1);--b-bd:var(--border);--b-hover:var(--surface-3);
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:38px;padding:.5rem 1rem;
  border:1px solid var(--b-bd);border-radius:var(--radius-sm);background:var(--b-bg);color:var(--b-fg);
  font-family:inherit;font-size:.875rem;font-weight:600;line-height:1.2;text-decoration:none;white-space:nowrap;cursor:pointer;
  box-shadow:inset 0 1px 0 var(--highlight);transition:background-color .15s,border-color .15s,color .15s}
.dk-btn:hover{background:var(--b-hover)}
.dk-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.dk-btn--primary{--b-bg:var(--accent);--b-fg:var(--on-accent);--b-bd:var(--accent);--b-hover:color-mix(in srgb,var(--accent) 86%,var(--text-1))}
.dk-btn--ghost{--b-bg:transparent;--b-bd:transparent;--b-fg:var(--text-2);box-shadow:none}
.dk-btn--ghost:hover{color:var(--text-1)}
.dk-btn--danger{--b-fg:var(--danger);--b-bd:color-mix(in srgb,var(--danger) 40%,var(--border))}
.dk-btn--sm{min-height:32px;padding:.35rem .75rem;font-size:.8rem}
.dk-btn--lg{min-height:46px;padding:.7rem 1.35rem;font-size:.95rem}
.dk-btn--block{width:100%}
.dk-btn:disabled{opacity:.5;cursor:not-allowed}
.dk-btn[aria-busy="true"]{cursor:progress}
.dk-btn:disabled:hover{background:var(--b-bg)}
.dk-btn--icon{width:38px;padding:0}
.dk-btn--icon.dk-btn--sm{width:32px}
.dk-btn--icon.dk-btn--lg{width:46px}
.dk-btn--round{border-radius:999px}
.dk-spin{width:15px;height:15px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:dk-spin .75s linear infinite}
@keyframes dk-spin{to{transform:rotate(1turn)}}
@media (prefers-reduced-motion:reduce){.dk-btn{transition:none}.dk-spin{animation-duration:2.4s}}
/* Badges: tinted with color-mix so the text colour keeps 4.5:1 on its own fill */
.dk-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .5rem;border:1px solid color-mix(in srgb,var(--b,var(--text-2)) 32%,transparent);border-radius:999px;
  background:color-mix(in srgb,var(--b,var(--text-2)) 12%,transparent);color:var(--b,var(--text-2));font-size:.72rem;font-weight:650;line-height:1.4;white-space:nowrap}
.dk-badge--dot::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.dk-badge--accent{--b:var(--accent)}.dk-badge--success{--b:var(--success)}.dk-badge--warning{--b:var(--warning)}.dk-badge--danger{--b:var(--danger)}
/* Stat card */
.dk-stat__head{display:flex;align-items:center;gap:8px;font-size:.82rem;font-weight:500;color:var(--text-2)}
.dk-stat__head .dk-ico{width:16px;height:16px;color:var(--text-3)}
.dk-stat__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}
.dk-stat__value{font-size:1.75rem;font-weight:650;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}
.dk-stat__value small{margin-left:3px;font-size:.85rem;font-weight:500;color:var(--text-2)}
.dk-stat__spark{margin-top:14px}
.dk-stat__foot{margin-top:8px;font-size:.78rem;color:var(--text-3)}
.dk-delta .dk-ico{width:12px;height:12px}
/* Avatar: initials on accent-soft */
.dk-avatar{display:inline-grid;place-items:center;flex:none;width:32px;height:32px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:.72rem;font-weight:700}
.dk-avatar--lg{width:64px;height:64px;font-size:1.2rem;box-shadow:0 0 0 4px var(--surface-1),0 0 0 5px var(--border)}
/* Content card */
.dk-post{padding:0;overflow:hidden}
.dk-post__cover{border-bottom:1px solid var(--border)}
.dk-post__body{padding:18px 20px 20px}
.dk-post__title{margin-top:12px!important;font-size:1.05rem;font-weight:650;line-height:1.35;letter-spacing:-.01em}
.dk-post__title a{color:var(--text-1);text-decoration:none}
.dk-post__title a:hover{text-decoration:underline;text-underline-offset:3px}
.dk-post__title a:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:3px}
.dk-post__text{margin-top:8px!important;font-size:.88rem;color:var(--text-2)}
.dk-post__meta{display:flex;align-items:center;gap:10px;margin-top:16px;font-size:.8rem;color:var(--text-3)}
.dk-post__meta b{display:block;font-weight:600;color:var(--text-1)}
/* Profile card */
.dk-profile{text-align:center}
.dk-profile__name{margin-top:14px!important;font-size:1.05rem;font-weight:650}
.dk-profile__role{margin-top:2px!important;font-size:.85rem;color:var(--text-2)}
.dk-profile__loc{display:inline-flex;align-items:center;gap:4px;margin-top:10px;font-size:.78rem;color:var(--text-3)}
.dk-profile__loc .dk-ico{width:14px;height:14px}
.dk-profile__stats{display:grid;grid-template-columns:repeat(3,1fr);margin:18px -20px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.dk-profile__stats div{padding:12px 4px}
.dk-profile__stats div+div{border-left:1px solid var(--border)}
.dk-profile__stats dt{font-size:.72rem;color:var(--text-3)}
.dk-profile__stats dd{margin:0;font-size:1.05rem;font-weight:650;font-variant-numeric:tabular-nums}
.dk-profile__actions{display:flex;gap:10px;margin-top:18px}
.dk-profile__actions>*{flex:1}
/* Pricing card: the featured plan gets an accent edge, not a glow */
.dk-price{border-color:color-mix(in srgb,var(--accent) 60%,var(--border))}
.dk-price__head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.dk-price__amount{margin-top:14px!important;font-size:2.4rem;font-weight:700;letter-spacing:-.03em;line-height:1}
.dk-price__amount small{margin-left:4px;font-size:.85rem;font-weight:500;letter-spacing:0;color:var(--text-2)}
.dk-price__list{display:grid;gap:10px;margin:20px 0;padding:18px 0 0;border-top:1px solid var(--border);list-style:none;font-size:.88rem}
.dk-price__list li{display:flex;align-items:center;gap:10px}
.dk-price__list .dk-ico{width:16px;height:16px;color:var(--success)}
.dk-price__note{margin-top:10px!important;font-size:.78rem;color:var(--text-3);text-align:center}

Bootstrap 5 code

Requires: Bootstrap 5.3.8 CSS

HTML
<svg width="0" height="0" style="position:absolute" aria-hidden="true" focusable="false">
  <symbol id="dk-i-activity" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12h4l2.5-6.5 5 13L17 12h4"/></symbol>
  <symbol id="dk-i-clock" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="8.5"/><path d="M12 7.5V12l3 2"/></symbol>
  <symbol id="dk-i-warn" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 4 2.8 19.5h18.4z"/><path d="M12 10v4.5M12 17.25h.01"/></symbol>
  <symbol id="dk-i-arrowup" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17 17 7M9 7h8v8"/></symbol>
  <symbol id="dk-i-arrowdown" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M7 7l10 10M17 9v8H9"/></symbol>
  <symbol id="dk-i-tick" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="m5 12.5 4.5 4.5L19 7.5" stroke-width="3"/></symbol>
  <symbol id="dk-i-pin" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 21s-6.5-5.6-6.5-11a6.5 6.5 0 0 1 13 0c0 5.4-6.5 11-6.5 11z"/><circle cx="12" cy="10" r="2.5"/></symbol>
  <symbol id="dk-i-mail" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3.5" y="5.5" width="17" height="13" rx="2"/><path d="m4 7 8 6 8-6"/></symbol>
</svg>
<section><span class="lbl">Stat cards · value, delta and a sparkline with a text alternative</span><div class="grid3">
<article class="card dk-card card-body"><div class="dk-stat__head"><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-activity"/></svg><h3 class="m-0 " style="font:inherit">Requests · 24 h</h3></div><div class="dk-stat__row"><p class="dk-stat__value m-0">1.84M</p><span class="badge dk-badge dk-badge-success dk-delta"><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-arrowup"/></svg><span class="visually-hidden">up </span>12.4%</span></div><div class="dk-stat__spark"><svg viewBox="0 0 240 44" preserveAspectRatio="none" style="display:block;width:100%;height:44px" aria-hidden="true" focusable="false"><path d="M0.0 41.0 L21.8 36.2 L43.6 38.6 L65.5 29.0 L87.3 31.4 L109.1 24.2 L130.9 26.6 L152.7 17.0 L174.5 19.4 L196.4 12.2 L218.2 14.6 L240.0 5.0 L240 44 L0 44 Z" style="fill:color-mix(in srgb,var(--accent) 16%,transparent)"/><path d="M0.0 41.0 L21.8 36.2 L43.6 38.6 L65.5 29.0 L87.3 31.4 L109.1 24.2 L130.9 26.6 L152.7 17.0 L174.5 19.4 L196.4 12.2 L218.2 14.6 L240.0 5.0" style="fill:none;stroke:var(--accent);stroke-width:1.75;vector-effect:non-scaling-stroke;stroke-linejoin:round"/></svg><span class="visually-hidden">Trend over the last 12 hours: rising through the day.</span></div><p class="dk-stat__foot mb-0">vs 1.64M yesterday</p></article>
<article class="card dk-card card-body"><div class="dk-stat__head"><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-clock"/></svg><h3 class="m-0 " style="font:inherit">p95 latency</h3></div><div class="dk-stat__row"><p class="dk-stat__value m-0">182<small class="">ms</small></p><span class="badge dk-badge dk-badge-success dk-delta"><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-arrowdown"/></svg><span class="visually-hidden">down </span>8.1%</span></div><div class="dk-stat__spark"><svg viewBox="0 0 240 44" preserveAspectRatio="none" style="display:block;width:100%;height:44px" aria-hidden="true" focusable="false"><path d="M0.0 5.0 L21.8 7.5 L43.6 12.4 L65.5 10.6 L87.3 20.5 L109.1 23.6 L130.9 27.3 L152.7 30.4 L174.5 32.3 L196.4 36.0 L218.2 38.5 L240.0 41.0 L240 44 L0 44 Z" style="fill:color-mix(in srgb,var(--accent) 16%,transparent)"/><path d="M0.0 5.0 L21.8 7.5 L43.6 12.4 L65.5 10.6 L87.3 20.5 L109.1 23.6 L130.9 27.3 L152.7 30.4 L174.5 32.3 L196.4 36.0 L218.2 38.5 L240.0 41.0" style="fill:none;stroke:var(--accent);stroke-width:1.75;vector-effect:non-scaling-stroke;stroke-linejoin:round"/></svg><span class="visually-hidden">Trend over the last 12 hours: falling steadily.</span></div><p class="dk-stat__foot mb-0">Target under 250 ms</p></article>
<article class="card dk-card card-body"><div class="dk-stat__head"><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-warn"/></svg><h3 class="m-0 " style="font:inherit">Error rate</h3></div><div class="dk-stat__row"><p class="dk-stat__value m-0">0.42<small class="">%</small></p><span class="badge dk-badge dk-badge-danger dk-delta"><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-arrowup"/></svg><span class="visually-hidden">up </span>0.10 pt</span></div><div class="dk-stat__spark"><svg viewBox="0 0 240 44" preserveAspectRatio="none" style="display:block;width:100%;height:44px" aria-hidden="true" focusable="false"><path d="M0.0 41.0 L21.8 37.7 L43.6 39.4 L65.5 32.8 L87.3 34.5 L109.1 24.6 L130.9 27.9 L152.7 19.7 L174.5 14.8 L196.4 16.5 L218.2 8.3 L240.0 5.0 L240 44 L0 44 Z" style="fill:color-mix(in srgb,var(--accent) 16%,transparent)"/><path d="M0.0 41.0 L21.8 37.7 L43.6 39.4 L65.5 32.8 L87.3 34.5 L109.1 24.6 L130.9 27.9 L152.7 19.7 L174.5 14.8 L196.4 16.5 L218.2 8.3 L240.0 5.0" style="fill:none;stroke:var(--accent);stroke-width:1.75;vector-effect:non-scaling-stroke;stroke-linejoin:round"/></svg><span class="visually-hidden">Trend over the last 12 hours: climbing slowly.</span></div><p class="dk-stat__foot mb-0">1,204 failed of 286,410</p></article>
</div></section>
<section><span class="lbl">Content, profile and pricing cards</span><div class="grid3">
<article class="card dk-card dk-post"><div class="dk-post__cover card-img-top"><svg viewBox="0 0 400 200" preserveAspectRatio="xMidYMid slice" style="display:block;width:100%;height:auto;aspect-ratio:2/1" aria-hidden="true" focusable="false"><rect width="400" height="200" style="fill:var(--surface-2)"/><path d="M0 50h400M0 100h400M0 150h400M80 0v200M160 0v200M240 0v200M320 0v200" style="stroke:var(--border);stroke-width:1"/><rect x="70" y="38" width="260" height="128" rx="10" style="fill:var(--surface-1);stroke:var(--edge);stroke-width:1"/><circle cx="88" cy="55" r="4" style="fill:var(--danger)"/><circle cx="102" cy="55" r="4" style="fill:var(--warning)"/><circle cx="116" cy="55" r="4" style="fill:var(--success)"/><rect x="88" y="78" width="54" height="7" rx="3.5" style="fill:var(--accent)"/><rect x="150" y="78" width="110" height="7" rx="3.5" style="fill:var(--surface-3)"/><rect x="88" y="96" width="140" height="7" rx="3.5" style="fill:var(--surface-3)"/><rect x="236" y="96" width="40" height="7" rx="3.5" style="fill:var(--success)"/><rect x="88" y="114" width="90" height="7" rx="3.5" style="fill:var(--surface-3)"/><path d="M88 148 L130 140 L170 144 L210 128 L250 132 L300 112" style="fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round"/></svg></div><div class="dk-post__body"><span class="badge dk-badge dk-badge-accent">Engineering</span><h3 class="dk-post__title"><a href="#post">How we cut cold starts by 63% with snapshot restore</a></h3><p class="dk-post__text">Booting from a memory snapshot instead of a clean container took our median cold start from 1.9 s to 0.7 s.</p><div class="dk-post__meta"><span class="dk-avatar" aria-hidden="true">JO</span><span><b>Jonas Okafor</b>6 min read · 2 Oct 2026</span></div></div></article>
<article class="card dk-card dk-profile"><div class="card-body"><span class="dk-avatar dk-avatar--lg mx-auto" aria-hidden="true">PR</span><h3 class="dk-profile__name">Priya Raman</h3><p class="dk-profile__role">Staff SRE · Platform team</p><p style="margin-top:10px" class="mb-0"><span class="badge dk-badge dk-badge-success dk-badge-dot">On call until Friday</span></p><dl class="dk-profile__stats"><div><dt class="fw-normal">Deploys</dt><dd>1,284</dd></div><div><dt class="fw-normal">Reviews</dt><dd>342</dd></div><div><dt class="fw-normal">Incidents</dt><dd>7</dd></div></dl><p class="dk-profile__loc mb-0"><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-pin"/></svg>Lisbon · UTC+1</p><div class="dk-profile__actions"><button class="btn btn-dk" type="button"><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-mail"/></svg>Message</button><button class="btn btn-dk btn-dk-primary" type="button">Page Priya</button></div></div></article>
<article class="card dk-card dk-price card-body"><div class="dk-price__head"><h3 class="card-title">Pro</h3><span class="badge dk-badge dk-badge-accent">Most popular</span></div><p class="card-subtitle text-body-secondary">For teams shipping every day</p><p class="dk-price__amount">$24<small>per seat / month</small></p><ul class="dk-price__list"><li><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-tick"/></svg>Unlimited preview deployments</li><li><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-tick"/></svg>10 concurrent builds</li><li><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-tick"/></svg>30-day log retention</li><li><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-tick"/></svg>Role-based access and SSO</li><li><svg class="dk-ico" aria-hidden="true" focusable="false"><use href="#dk-i-tick"/></svg>Email support, 1 business day</li></ul><button class="btn btn-dk btn-dk-primary btn-lg w-100" type="button">Start 14-day trial</button><p class="dk-price__note mb-0">No card required · cancel any time</p></article>
</div></section>
CSS
/* ── Dark UI kit tokens (uiCookies) — identical in every set ──────────────────────────────
   Dark first. Elevation is a lighter surface, not a shadow: surface-0 is the page, 1 cards and
   panels, 2 controls, menus and dialogs, 3 hover, selected rows and tooltips.
   Every colour is a light-dark() pair, so flipping color-scheme turns the whole kit light:
   data-theme="dark" | "light" | "system" on any wrapper (system follows prefers-color-scheme),
   or a checked .theme-pick radio inside a [data-theme] element (:has()).
   Contrast, dark | light, on the worst surface (surface-3): text-1 12.2 | 15.0, text-2 6.6 | 7.3,
   text-3 4.8 | 5.4, accent 5.4 | 5.1, success 7.7 | 5.0, warning 8.4 | 5.2, danger 6.8 | 5.0;
   edge (control boundaries) 3.3 | 3.1 and focus 7.9 | 5.9 against every surface. */
:root{color-scheme:dark}
[data-theme="dark"]{color-scheme:dark}
[data-theme="light"]{color-scheme:light}
[data-theme="system"]{color-scheme:light dark}
[data-theme]:has(.theme-pick[value="dark"]:checked){color-scheme:dark}
[data-theme]:has(.theme-pick[value="light"]:checked){color-scheme:light}
[data-theme]:has(.theme-pick[value="system"]:checked){color-scheme:light dark}
:root{
  --surface-0:light-dark(#eef1f5,#0b0d12);   /* page */
  --surface-1:light-dark(#ffffff,#151821);   /* cards, panels, navbar, sidebar */
  --surface-2:light-dark(#f6f7f9,#1d212c);   /* controls, menus, dialogs, toasts */
  --surface-3:light-dark(#e6e9ef,#262b38);   /* hover, selected rows, tooltips */
  --text-1:light-dark(#12151c,#eceef3);      /* primary text */
  --text-2:light-dark(#434a5a,#aab1bf);      /* secondary text */
  --text-3:light-dark(#555d6e,#8f96a8);      /* captions, placeholders, axis labels */
  --border:light-dark(#dde1e8,#2a2f3c);      /* decorative 1px dividers and card edges */
  --edge:light-dark(#7c8496,#737b90);        /* control boundaries: fields, boxes, tracks */
  --accent:light-dark(#4452d0,#8b97ff);      /* the one vivid colour: links, selected, primary */
  --accent-soft:light-dark(#e6e8ff,#232a4d); /* selected backgrounds; accent text keeps 5.2 | 5.3 on it */
  --on-accent:light-dark(#ffffff,#0b0d12);   /* text on accent fills, 6.2 | 7.4 */
  --success:light-dark(#11713f,#5fd4a0);     /* desaturated for dark, so they do not vibrate */
  --warning:light-dark(#875500,#f0c060);
  --danger:light-dark(#bb2532,#ff9790);
  --focus:light-dark(#3b48c4,#b5bdff);       /* 2px focus ring */
  --highlight:light-dark(rgb(255 255 255 / 0),rgb(255 255 255 / .045)); /* 1px top light on dark surfaces */
  --shadow-color:light-dark(rgb(16 24 40 / .16),rgb(0 0 0 / .55));     /* overlays only */
  --radius:12px;--radius-sm:8px;
  --mono:ui-monospace,"SF Mono","Cascadia Code",Menlo,Consolas,monospace;
}
/* No light-dark() (Chrome < 123, Safari < 17.5, Firefox < 120): the same values, chosen by attribute */
@supports not (color:light-dark(#fff,#000)){
  :root,[data-theme="dark"]{--surface-0:#0b0d12;--surface-1:#151821;--surface-2:#1d212c;--surface-3:#262b38;--text-1:#eceef3;--text-2:#aab1bf;--text-3:#8f96a8;--border:#2a2f3c;--edge:#737b90;--accent:#8b97ff;--accent-soft:#232a4d;--on-accent:#0b0d12;--success:#5fd4a0;--warning:#f0c060;--danger:#ff9790;--focus:#b5bdff;--highlight:rgb(255 255 255 / .045);--shadow-color:rgb(0 0 0 / .55)}
  [data-theme="light"]{--surface-0:#eef1f5;--surface-1:#ffffff;--surface-2:#f6f7f9;--surface-3:#e6e9ef;--text-1:#12151c;--text-2:#434a5a;--text-3:#555d6e;--border:#dde1e8;--edge:#7c8496;--accent:#4452d0;--accent-soft:#e6e8ff;--on-accent:#ffffff;--success:#11713f;--warning:#875500;--danger:#bb2532;--focus:#3b48c4;--highlight:rgb(255 255 255 / 0);--shadow-color:rgb(16 24 40 / .16)}
  @media (prefers-color-scheme:light){[data-theme="system"]{--surface-0:#eef1f5;--surface-1:#ffffff;--surface-2:#f6f7f9;--surface-3:#e6e9ef;--text-1:#12151c;--text-2:#434a5a;--text-3:#555d6e;--border:#dde1e8;--edge:#7c8496;--accent:#4452d0;--accent-soft:#e6e8ff;--on-accent:#ffffff;--success:#11713f;--warning:#875500;--danger:#bb2532;--focus:#3b48c4;--highlight:rgb(255 255 255 / 0);--shadow-color:rgb(16 24 40 / .16)}}
}
@media (prefers-contrast:more){:root{--border:var(--edge);--text-3:var(--text-2)}}
[data-theme]{background:var(--surface-0);color:var(--text-1)}
/* Bootstrap's own variables mapped onto the kit tokens (identical in every Bootstrap set).
   data-bs-theme="dark" on <html> gives Bootstrap's dark defaults; the tokens then win. */
:root,[data-bs-theme],[data-theme]{
  --bs-body-bg:var(--surface-0);--bs-body-color:var(--text-1);--bs-emphasis-color:var(--text-1);
  --bs-heading-color:var(--text-1);--bs-secondary-color:var(--text-2);--bs-tertiary-color:var(--text-3);
  --bs-secondary-bg:var(--surface-2);--bs-tertiary-bg:var(--surface-3);
  --bs-border-color:var(--border);--bs-border-color-translucent:var(--border);
  --bs-border-radius:var(--radius-sm);--bs-border-radius-lg:var(--radius);--bs-border-radius-sm:6px;
  --bs-link-color:var(--accent);--bs-link-hover-color:var(--accent);
  --bs-focus-ring-color:var(--focus);--bs-code-color:var(--accent);
  --bs-font-monospace:var(--mono);
  --bs-success-text-emphasis:var(--success);--bs-warning-text-emphasis:var(--warning);--bs-danger-text-emphasis:var(--danger)}
/* Bootstrap draws the checkbox tick and select chevron as SVG images, which cannot read CSS
   variables, so each theme gets its own copy */
:root,[data-theme="dark"]{--dk-check-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%230b0d12' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");--dk-select-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23aab1bf' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}
[data-theme="light"]{--dk-check-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");--dk-select-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23434a5a' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}
@media (prefers-color-scheme:light){[data-theme="system"]{--dk-check-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");--dk-select-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23434a5a' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}}
[data-theme]:has(.theme-pick[value="dark"]:checked){--dk-check-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%230b0d12' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");--dk-select-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23aab1bf' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}
[data-theme]:has(.theme-pick[value="light"]:checked){--dk-check-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");--dk-select-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23434a5a' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}
@media (prefers-color-scheme:light){[data-theme]:has(.theme-pick[value="system"]:checked){--dk-check-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");--dk-select-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23434a5a' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}}
@media (prefers-color-scheme:dark){[data-theme]:has(.theme-pick[value="system"]:checked){--dk-check-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%230b0d12' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");--dk-select-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23aab1bf' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}}
a{color:var(--accent)}
a:hover{color:var(--accent)}
/* Components */
.dk-ico{width:18px;height:18px;flex:none}
.dk-kbd{display:inline-grid;place-items:center;min-width:1.45rem;height:1.35rem;padding:0 .35rem;border:1px solid var(--border);border-bottom-width:2px;
  border-radius:5px;background:var(--surface-2);color:var(--text-2);font:500 .72rem/1 var(--mono)}
.dk-link{color:var(--accent);font-weight:600;text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);text-underline-offset:3px}
.dk-link:hover{color:var(--accent);text-decoration-color:currentColor}
.dk-link:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:3px;box-shadow:none}
/* .card through --bs-card-* */
.card.dk-card{--bs-card-bg:var(--surface-1);--bs-card-color:var(--text-1);--bs-card-border-color:var(--border);--bs-card-border-radius:var(--radius);
  --bs-card-inner-border-radius:calc(var(--radius) - 1px);--bs-card-spacer-x:20px;--bs-card-spacer-y:20px;--bs-card-cap-bg:transparent;--bs-card-title-color:var(--text-1);
  --bs-card-subtitle-color:var(--text-2);box-shadow:inset 0 1px 0 var(--highlight)}
.dk-card h2,.dk-card h3,.dk-card p{margin:0}
.dk-card .card-title{font-size:1rem;font-weight:650;letter-spacing:-.01em;margin:0}
.dk-card .card-subtitle{margin-top:2px;font-size:.85rem}
/* .btn variants through --bs-btn-* */
.btn-dk{--bs-btn-padding-x:1rem;--bs-btn-padding-y:.5rem;--bs-btn-font-size:.875rem;--bs-btn-font-weight:600;--bs-btn-line-height:1.2;--bs-btn-border-radius:var(--radius-sm);
  --bs-btn-bg:var(--surface-2);--bs-btn-color:var(--text-1);--bs-btn-border-color:var(--border);
  --bs-btn-hover-bg:var(--surface-3);--bs-btn-hover-color:var(--text-1);--bs-btn-hover-border-color:var(--border);
  --bs-btn-active-bg:var(--surface-3);--bs-btn-active-color:var(--text-1);--bs-btn-active-border-color:var(--border);
  --bs-btn-disabled-bg:var(--surface-2);--bs-btn-disabled-color:var(--text-1);--bs-btn-disabled-border-color:var(--border);--bs-btn-disabled-opacity:.5;
  --bs-btn-focus-box-shadow:inset 0 1px 0 var(--highlight);
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:38px;white-space:nowrap;box-shadow:inset 0 1px 0 var(--highlight)}
.btn-dk:focus-visible,.btn-check:focus-visible+.btn-dk{outline:2px solid var(--focus);outline-offset:2px}
.btn-dk-primary{--bs-btn-bg:var(--accent);--bs-btn-color:var(--on-accent);--bs-btn-border-color:var(--accent);
  --bs-btn-hover-bg:color-mix(in srgb,var(--accent) 86%,var(--text-1));--bs-btn-hover-color:var(--on-accent);--bs-btn-hover-border-color:var(--accent);
  --bs-btn-active-bg:color-mix(in srgb,var(--accent) 86%,var(--text-1));--bs-btn-active-color:var(--on-accent);--bs-btn-active-border-color:var(--accent);
  --bs-btn-disabled-bg:var(--accent);--bs-btn-disabled-color:var(--on-accent);--bs-btn-disabled-border-color:var(--accent)}
.btn-dk-ghost{--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-color:var(--text-2);--bs-btn-hover-border-color:transparent;--bs-btn-active-border-color:transparent;box-shadow:none}
.btn-dk-danger{--bs-btn-color:var(--danger);--bs-btn-border-color:color-mix(in srgb,var(--danger) 40%,var(--border));--bs-btn-hover-color:var(--danger);
  --bs-btn-hover-border-color:color-mix(in srgb,var(--danger) 40%,var(--border));--bs-btn-active-color:var(--danger)}
.btn-dk.btn-sm{--bs-btn-padding-x:.75rem;--bs-btn-padding-y:.35rem;--bs-btn-font-size:.8rem;min-height:32px}
.btn-dk.btn-lg{--bs-btn-padding-x:1.35rem;--bs-btn-padding-y:.7rem;--bs-btn-font-size:.95rem;--bs-btn-border-radius:var(--radius-sm);min-height:46px}
.btn-dk-icon{--bs-btn-padding-x:0;--bs-btn-padding-y:0;width:38px}
.btn-dk-icon.btn-sm{width:32px}.btn-dk-icon.btn-lg{width:46px}
.btn-dk.btn-dk-round{--bs-btn-border-radius:999px}
@media (prefers-reduced-motion:reduce){.btn-dk{transition:none}}
/* .badge tinted with color-mix */
.badge.dk-badge{--b:var(--text-2);--bs-badge-padding-x:.5rem;--bs-badge-padding-y:.15rem;--bs-badge-font-size:.72rem;--bs-badge-font-weight:650;--bs-badge-color:var(--b);--bs-badge-border-radius:999px;
  display:inline-flex;align-items:center;gap:.35rem;line-height:1.4;border:1px solid color-mix(in srgb,var(--b) 32%,transparent);background:color-mix(in srgb,var(--b) 12%,transparent)}
.dk-badge-dot::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.dk-badge.dk-badge-accent{--b:var(--accent)}.dk-badge.dk-badge-success{--b:var(--success)}.dk-badge.dk-badge-warning{--b:var(--warning)}.dk-badge.dk-badge-danger{--b:var(--danger)}
/* Stat card */
.dk-stat__head{display:flex;align-items:center;gap:8px;font-size:.82rem;font-weight:500;color:var(--text-2)}
.dk-stat__head .dk-ico{width:16px;height:16px;color:var(--text-3)}
.dk-stat__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}
.dk-stat__value{font-size:1.75rem;font-weight:650;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}
.dk-stat__value small{margin-left:3px;font-size:.85rem;font-weight:500;color:var(--text-2)}
.dk-stat__spark{margin-top:14px}
.dk-stat__foot{margin-top:8px;font-size:.78rem;color:var(--text-3)}
.dk-delta .dk-ico{width:12px;height:12px}
/* Avatar: initials on accent-soft */
.dk-avatar{display:inline-grid;place-items:center;flex:none;width:32px;height:32px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:.72rem;font-weight:700}
.dk-avatar--lg{width:64px;height:64px;font-size:1.2rem;box-shadow:0 0 0 4px var(--surface-1),0 0 0 5px var(--border)}
/* Content card */
.dk-post{overflow:hidden}
.dk-post__cover{border-bottom:1px solid var(--border)}
.dk-post__body{padding:18px 20px 20px}
.dk-post__title{margin-top:12px!important;font-size:1.05rem;font-weight:650;line-height:1.35;letter-spacing:-.01em}
.dk-post__title a{color:var(--text-1);text-decoration:none}
.dk-post__title a:hover{text-decoration:underline;text-underline-offset:3px}
.dk-post__title a:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:3px}
.dk-post__text{margin-top:8px!important;font-size:.88rem;color:var(--text-2)}
.dk-post__meta{display:flex;align-items:center;gap:10px;margin-top:16px;font-size:.8rem;color:var(--text-3)}
.dk-post__meta b{display:block;font-weight:600;color:var(--text-1)}
/* Profile card */
.dk-profile{text-align:center}
.dk-profile__name{margin-top:14px!important;font-size:1.05rem;font-weight:650}
.dk-profile__role{margin-top:2px!important;font-size:.85rem;color:var(--text-2)}
.dk-profile__loc{display:inline-flex;align-items:center;gap:4px;margin-top:10px;font-size:.78rem;color:var(--text-3)}
.dk-profile__loc .dk-ico{width:14px;height:14px}
.dk-profile__stats{display:grid;grid-template-columns:repeat(3,1fr);margin:18px calc(var(--bs-card-spacer-x) * -1) 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.dk-profile__stats div{padding:12px 4px}
.dk-profile__stats div+div{border-left:1px solid var(--border)}
.dk-profile__stats dt{font-size:.72rem;color:var(--text-3)}
.dk-profile__stats dd{margin:0;font-size:1.05rem;font-weight:650;font-variant-numeric:tabular-nums}
.dk-profile__actions{display:flex;gap:10px;margin-top:18px}
.dk-profile__actions>*{flex:1}
/* Pricing card: the featured plan gets an accent edge, not a glow */
.dk-price{border-color:color-mix(in srgb,var(--accent) 60%,var(--border))}
.dk-price__head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.dk-price__amount{margin-top:14px!important;font-size:2.4rem;font-weight:700;letter-spacing:-.03em;line-height:1}
.dk-price__amount small{margin-left:4px;font-size:.85rem;font-weight:500;letter-spacing:0;color:var(--text-2)}
.dk-price__list{display:grid;gap:10px;margin:20px 0;padding:18px 0 0;border-top:1px solid var(--border);list-style:none;font-size:.88rem}
.dk-price__list li{display:flex;align-items:center;gap:10px}
.dk-price__list .dk-ico{width:16px;height:16px;color:var(--success)}
.dk-price__note{margin-top:10px!important;font-size:.78rem;color:var(--text-3);text-align:center}

Tailwind 4 code

Requires: Tailwind CSS 4

HTML
<svg width="0" height="0" style="position:absolute" aria-hidden="true" focusable="false">
  <symbol id="dk-i-activity" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12h4l2.5-6.5 5 13L17 12h4"/></symbol>
  <symbol id="dk-i-clock" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="8.5"/><path d="M12 7.5V12l3 2"/></symbol>
  <symbol id="dk-i-warn" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 4 2.8 19.5h18.4z"/><path d="M12 10v4.5M12 17.25h.01"/></symbol>
  <symbol id="dk-i-arrowup" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17 17 7M9 7h8v8"/></symbol>
  <symbol id="dk-i-arrowdown" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M7 7l10 10M17 9v8H9"/></symbol>
  <symbol id="dk-i-tick" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="m5 12.5 4.5 4.5L19 7.5" stroke-width="3"/></symbol>
  <symbol id="dk-i-pin" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 21s-6.5-5.6-6.5-11a6.5 6.5 0 0 1 13 0c0 5.4-6.5 11-6.5 11z"/><circle cx="12" cy="10" r="2.5"/></symbol>
  <symbol id="dk-i-mail" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3.5" y="5.5" width="17" height="13" rx="2"/><path d="m4 7 8 6 8-6"/></symbol>
</svg>
<section><span class="mb-3.5 block text-[.72rem] font-semibold tracking-[.12em] text-ink-3 uppercase">Stat cards · value, delta and a sparkline with a text alternative</span><div class="grid grid-cols-[repeat(auto-fit,minmax(min(100%,270px),1fr))] items-start gap-5">
<article class="rounded-ui border border-line bg-surface-1 text-ink-1 inset-shadow-hl p-5"><div class="flex items-center gap-2 text-[.82rem] font-medium text-ink-2"><svg class="size-4 shrink-0 text-ink-3" aria-hidden="true" focusable="false"><use href="#dk-i-activity"/></svg><h3>Requests · 24 h</h3></div><div class="mt-2.5 flex flex-wrap items-center justify-between gap-2"><p class="text-[1.75rem] leading-[1.1] font-[650] tracking-[-.02em] tabular-nums">1.84M</p><span class="inline-flex items-center gap-[.35rem] rounded-full border border-[color-mix(in_srgb,var(--success)_32%,transparent)] bg-[color-mix(in_srgb,var(--success)_12%,transparent)] px-2 py-[.15rem] text-[.72rem] leading-[1.4] font-[650] whitespace-nowrap text-success [&_svg]:size-3"><svg class="size-3 shrink-0" aria-hidden="true" focusable="false"><use href="#dk-i-arrowup"/></svg><span class="sr-only">up </span>12.4%</span></div><div class="mt-3.5"><svg viewBox="0 0 240 44" preserveAspectRatio="none" style="display:block;width:100%;height:44px" aria-hidden="true" focusable="false"><path d="M0.0 41.0 L21.8 36.2 L43.6 38.6 L65.5 29.0 L87.3 31.4 L109.1 24.2 L130.9 26.6 L152.7 17.0 L174.5 19.4 L196.4 12.2 L218.2 14.6 L240.0 5.0 L240 44 L0 44 Z" style="fill:color-mix(in srgb,var(--accent) 16%,transparent)"/><path d="M0.0 41.0 L21.8 36.2 L43.6 38.6 L65.5 29.0 L87.3 31.4 L109.1 24.2 L130.9 26.6 L152.7 17.0 L174.5 19.4 L196.4 12.2 L218.2 14.6 L240.0 5.0" style="fill:none;stroke:var(--accent);stroke-width:1.75;vector-effect:non-scaling-stroke;stroke-linejoin:round"/></svg><span class="sr-only">Trend over the last 12 hours: rising through the day.</span></div><p class="mt-2 text-[.78rem] text-ink-3">vs 1.64M yesterday</p></article>
<article class="rounded-ui border border-line bg-surface-1 text-ink-1 inset-shadow-hl p-5"><div class="flex items-center gap-2 text-[.82rem] font-medium text-ink-2"><svg class="size-4 shrink-0 text-ink-3" aria-hidden="true" focusable="false"><use href="#dk-i-clock"/></svg><h3>p95 latency</h3></div><div class="mt-2.5 flex flex-wrap items-center justify-between gap-2"><p class="text-[1.75rem] leading-[1.1] font-[650] tracking-[-.02em] tabular-nums">182<small class="ml-[3px] text-[.85rem] font-medium tracking-normal text-ink-2">ms</small></p><span class="inline-flex items-center gap-[.35rem] rounded-full border border-[color-mix(in_srgb,var(--success)_32%,transparent)] bg-[color-mix(in_srgb,var(--success)_12%,transparent)] px-2 py-[.15rem] text-[.72rem] leading-[1.4] font-[650] whitespace-nowrap text-success [&_svg]:size-3"><svg class="size-3 shrink-0" aria-hidden="true" focusable="false"><use href="#dk-i-arrowdown"/></svg><span class="sr-only">down </span>8.1%</span></div><div class="mt-3.5"><svg viewBox="0 0 240 44" preserveAspectRatio="none" style="display:block;width:100%;height:44px" aria-hidden="true" focusable="false"><path d="M0.0 5.0 L21.8 7.5 L43.6 12.4 L65.5 10.6 L87.3 20.5 L109.1 23.6 L130.9 27.3 L152.7 30.4 L174.5 32.3 L196.4 36.0 L218.2 38.5 L240.0 41.0 L240 44 L0 44 Z" style="fill:color-mix(in srgb,var(--accent) 16%,transparent)"/><path d="M0.0 5.0 L21.8 7.5 L43.6 12.4 L65.5 10.6 L87.3 20.5 L109.1 23.6 L130.9 27.3 L152.7 30.4 L174.5 32.3 L196.4 36.0 L218.2 38.5 L240.0 41.0" style="fill:none;stroke:var(--accent);stroke-width:1.75;vector-effect:non-scaling-stroke;stroke-linejoin:round"/></svg><span class="sr-only">Trend over the last 12 hours: falling steadily.</span></div><p class="mt-2 text-[.78rem] text-ink-3">Target under 250 ms</p></article>
<article class="rounded-ui border border-line bg-surface-1 text-ink-1 inset-shadow-hl p-5"><div class="flex items-center gap-2 text-[.82rem] font-medium text-ink-2"><svg class="size-4 shrink-0 text-ink-3" aria-hidden="true" focusable="false"><use href="#dk-i-warn"/></svg><h3>Error rate</h3></div><div class="mt-2.5 flex flex-wrap items-center justify-between gap-2"><p class="text-[1.75rem] leading-[1.1] font-[650] tracking-[-.02em] tabular-nums">0.42<small class="ml-[3px] text-[.85rem] font-medium tracking-normal text-ink-2">%</small></p><span class="inline-flex items-center gap-[.35rem] rounded-full border border-[color-mix(in_srgb,var(--danger)_32%,transparent)] bg-[color-mix(in_srgb,var(--danger)_12%,transparent)] px-2 py-[.15rem] text-[.72rem] leading-[1.4] font-[650] whitespace-nowrap text-danger [&_svg]:size-3"><svg class="size-3 shrink-0" aria-hidden="true" focusable="false"><use href="#dk-i-arrowup"/></svg><span class="sr-only">up </span>0.10 pt</span></div><div class="mt-3.5"><svg viewBox="0 0 240 44" preserveAspectRatio="none" style="display:block;width:100%;height:44px" aria-hidden="true" focusable="false"><path d="M0.0 41.0 L21.8 37.7 L43.6 39.4 L65.5 32.8 L87.3 34.5 L109.1 24.6 L130.9 27.9 L152.7 19.7 L174.5 14.8 L196.4 16.5 L218.2 8.3 L240.0 5.0 L240 44 L0 44 Z" style="fill:color-mix(in srgb,var(--accent) 16%,transparent)"/><path d="M0.0 41.0 L21.8 37.7 L43.6 39.4 L65.5 32.8 L87.3 34.5 L109.1 24.6 L130.9 27.9 L152.7 19.7 L174.5 14.8 L196.4 16.5 L218.2 8.3 L240.0 5.0" style="fill:none;stroke:var(--accent);stroke-width:1.75;vector-effect:non-scaling-stroke;stroke-linejoin:round"/></svg><span class="sr-only">Trend over the last 12 hours: climbing slowly.</span></div><p class="mt-2 text-[.78rem] text-ink-3">1,204 failed of 286,410</p></article>
</div></section>
<section><span class="mb-3.5 block text-[.72rem] font-semibold tracking-[.12em] text-ink-3 uppercase">Content, profile and pricing cards</span><div class="grid grid-cols-[repeat(auto-fit,minmax(min(100%,270px),1fr))] items-start gap-5">
<article class="rounded-ui border border-line bg-surface-1 text-ink-1 inset-shadow-hl overflow-hidden p-0"><div class="border-b border-line"><svg viewBox="0 0 400 200" preserveAspectRatio="xMidYMid slice" style="display:block;width:100%;height:auto;aspect-ratio:2/1" aria-hidden="true" focusable="false"><rect width="400" height="200" style="fill:var(--surface-2)"/><path d="M0 50h400M0 100h400M0 150h400M80 0v200M160 0v200M240 0v200M320 0v200" style="stroke:var(--border);stroke-width:1"/><rect x="70" y="38" width="260" height="128" rx="10" style="fill:var(--surface-1);stroke:var(--edge);stroke-width:1"/><circle cx="88" cy="55" r="4" style="fill:var(--danger)"/><circle cx="102" cy="55" r="4" style="fill:var(--warning)"/><circle cx="116" cy="55" r="4" style="fill:var(--success)"/><rect x="88" y="78" width="54" height="7" rx="3.5" style="fill:var(--accent)"/><rect x="150" y="78" width="110" height="7" rx="3.5" style="fill:var(--surface-3)"/><rect x="88" y="96" width="140" height="7" rx="3.5" style="fill:var(--surface-3)"/><rect x="236" y="96" width="40" height="7" rx="3.5" style="fill:var(--success)"/><rect x="88" y="114" width="90" height="7" rx="3.5" style="fill:var(--surface-3)"/><path d="M88 148 L130 140 L170 144 L210 128 L250 132 L300 112" style="fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round"/></svg></div><div class="px-5 pt-[18px] pb-5"><span class="inline-flex items-center gap-[.35rem] rounded-full border border-[color-mix(in_srgb,var(--accent)_32%,transparent)] bg-[color-mix(in_srgb,var(--accent)_12%,transparent)] px-2 py-[.15rem] text-[.72rem] leading-[1.4] font-[650] whitespace-nowrap text-accent">Engineering</span><h3 class="mt-3 text-[1.05rem] leading-[1.35] font-[650] tracking-[-.01em]"><a class="text-ink-1 no-underline hover:underline hover:underline-offset-[3px] focus-visible:rounded-[3px] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus" href="#post">How we cut cold starts by 63% with snapshot restore</a></h3><p class="mt-2 text-[.88rem] text-ink-2">Booting from a memory snapshot instead of a clean container took our median cold start from 1.9 s to 0.7 s.</p><div class="mt-4 flex items-center gap-2.5 text-[.8rem] text-ink-3"><span class="inline-grid size-8 flex-none place-items-center rounded-full bg-accent-soft text-[.72rem] font-bold text-accent" aria-hidden="true">JO</span><span><b class="block font-semibold text-ink-1">Jonas Okafor</b>6 min read · 2 Oct 2026</span></div></div></article>
<article class="rounded-ui border border-line bg-surface-1 text-ink-1 inset-shadow-hl p-5 text-center"><span class="inline-grid size-16 flex-none place-items-center rounded-full bg-accent-soft text-[1.2rem] font-bold text-accent shadow-[0_0_0_4px_var(--surface-1),0_0_0_5px_var(--border)]" aria-hidden="true">PR</span><h3 class="mt-3.5 text-[1.05rem] font-[650]">Priya Raman</h3><p class="mt-0.5 text-[.85rem] text-ink-2">Staff SRE · Platform team</p><p class="mt-2.5"><span class="inline-flex items-center gap-[.35rem] rounded-full border border-[color-mix(in_srgb,var(--success)_32%,transparent)] bg-[color-mix(in_srgb,var(--success)_12%,transparent)] px-2 py-[.15rem] text-[.72rem] leading-[1.4] font-[650] whitespace-nowrap text-success before:size-1.5 before:rounded-full before:bg-current before:content-['']">On call until Friday</span></p><dl class="-mx-5 mt-[18px] grid grid-cols-3 divide-x divide-line border-y border-line"><div class="px-1 py-3"><dt class="text-[.72rem] text-ink-3">Deploys</dt><dd class="text-[1.05rem] font-[650] tabular-nums">1,284</dd></div><div class="px-1 py-3"><dt class="text-[.72rem] text-ink-3">Reviews</dt><dd class="text-[1.05rem] font-[650] tabular-nums">342</dd></div><div class="px-1 py-3"><dt class="text-[.72rem] text-ink-3">Incidents</dt><dd class="text-[1.05rem] font-[650] tabular-nums">7</dd></div></dl><p class="mt-2.5 inline-flex items-center gap-1 text-[.78rem] text-ink-3"><svg class="size-3.5 shrink-0" aria-hidden="true" focusable="false"><use href="#dk-i-pin"/></svg>Lisbon · UTC+1</p><div class="mt-[18px] flex gap-2.5"><button class="inline-flex cursor-pointer items-center justify-center gap-2 rounded-ui-sm border font-semibold leading-[1.2] whitespace-nowrap no-underline transition-colors duration-150 motion-reduce:transition-none disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus border-line bg-surface-2 text-ink-1 inset-shadow-hl hover:bg-surface-3 min-h-[38px] px-4 py-2 text-[.875rem] flex-1" type="button"><svg class="size-[18px] shrink-0" aria-hidden="true" focusable="false"><use href="#dk-i-mail"/></svg>Message</button><button class="inline-flex cursor-pointer items-center justify-center gap-2 rounded-ui-sm border font-semibold leading-[1.2] whitespace-nowrap no-underline transition-colors duration-150 motion-reduce:transition-none disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus border-accent bg-accent text-on-accent inset-shadow-hl hover:bg-[color-mix(in_srgb,var(--accent)_86%,var(--text-1))] min-h-[38px] px-4 py-2 text-[.875rem] flex-1" type="button">Page Priya</button></div></article>
<article class="rounded-ui border border-[color-mix(in_srgb,var(--accent)_60%,var(--border))] bg-surface-1 text-ink-1 inset-shadow-hl p-5"><div class="flex items-center justify-between gap-2"><h3 class="text-base font-[650] tracking-[-.01em]">Pro</h3><span class="inline-flex items-center gap-[.35rem] rounded-full border border-[color-mix(in_srgb,var(--accent)_32%,transparent)] bg-[color-mix(in_srgb,var(--accent)_12%,transparent)] px-2 py-[.15rem] text-[.72rem] leading-[1.4] font-[650] whitespace-nowrap text-accent">Most popular</span></div><p class="mt-0.5 text-[.85rem] text-ink-2">For teams shipping every day</p><p class="mt-3.5 text-[2.4rem] leading-none font-bold tracking-[-.03em]">$24<small class="ml-1 text-[.85rem] font-medium tracking-normal text-ink-2">per seat / month</small></p><ul class="my-5 grid list-none gap-2.5 border-t border-line pt-[18px] text-[.88rem]"><li class="flex items-center gap-2.5"><svg class="size-4 shrink-0 text-success" aria-hidden="true" focusable="false"><use href="#dk-i-tick"/></svg>Unlimited preview deployments</li><li class="flex items-center gap-2.5"><svg class="size-4 shrink-0 text-success" aria-hidden="true" focusable="false"><use href="#dk-i-tick"/></svg>10 concurrent builds</li><li class="flex items-center gap-2.5"><svg class="size-4 shrink-0 text-success" aria-hidden="true" focusable="false"><use href="#dk-i-tick"/></svg>30-day log retention</li><li class="flex items-center gap-2.5"><svg class="size-4 shrink-0 text-success" aria-hidden="true" focusable="false"><use href="#dk-i-tick"/></svg>Role-based access and SSO</li><li class="flex items-center gap-2.5"><svg class="size-4 shrink-0 text-success" aria-hidden="true" focusable="false"><use href="#dk-i-tick"/></svg>Email support, 1 business day</li></ul><button class="inline-flex cursor-pointer items-center justify-center gap-2 rounded-ui-sm border font-semibold leading-[1.2] whitespace-nowrap no-underline transition-colors duration-150 motion-reduce:transition-none disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus border-accent bg-accent text-on-accent inset-shadow-hl hover:bg-[color-mix(in_srgb,var(--accent)_86%,var(--text-1))] min-h-[46px] px-[1.35rem] py-[.7rem] text-[.95rem] w-full" type="button">Start 14-day trial</button><p class="mt-2.5 text-center text-[.78rem] text-ink-3">No card required · cancel any time</p></article>
</div></section>
CSS
/* ── Dark UI kit tokens (uiCookies) — identical in every set ──────────────────────────────
   Dark first. Elevation is a lighter surface, not a shadow: surface-0 is the page, 1 cards and
   panels, 2 controls, menus and dialogs, 3 hover, selected rows and tooltips.
   Every colour is a light-dark() pair, so flipping color-scheme turns the whole kit light:
   data-theme="dark" | "light" | "system" on any wrapper (system follows prefers-color-scheme),
   or a checked .theme-pick radio inside a [data-theme] element (:has()).
   Contrast, dark | light, on the worst surface (surface-3): text-1 12.2 | 15.0, text-2 6.6 | 7.3,
   text-3 4.8 | 5.4, accent 5.4 | 5.1, success 7.7 | 5.0, warning 8.4 | 5.2, danger 6.8 | 5.0;
   edge (control boundaries) 3.3 | 3.1 and focus 7.9 | 5.9 against every surface. */
:root{color-scheme:dark}
[data-theme="dark"]{color-scheme:dark}
[data-theme="light"]{color-scheme:light}
[data-theme="system"]{color-scheme:light dark}
[data-theme]:has(.theme-pick[value="dark"]:checked){color-scheme:dark}
[data-theme]:has(.theme-pick[value="light"]:checked){color-scheme:light}
[data-theme]:has(.theme-pick[value="system"]:checked){color-scheme:light dark}
:root{
  --surface-0:light-dark(#eef1f5,#0b0d12);   /* page */
  --surface-1:light-dark(#ffffff,#151821);   /* cards, panels, navbar, sidebar */
  --surface-2:light-dark(#f6f7f9,#1d212c);   /* controls, menus, dialogs, toasts */
  --surface-3:light-dark(#e6e9ef,#262b38);   /* hover, selected rows, tooltips */
  --text-1:light-dark(#12151c,#eceef3);      /* primary text */
  --text-2:light-dark(#434a5a,#aab1bf);      /* secondary text */
  --text-3:light-dark(#555d6e,#8f96a8);      /* captions, placeholders, axis labels */
  --border:light-dark(#dde1e8,#2a2f3c);      /* decorative 1px dividers and card edges */
  --edge:light-dark(#7c8496,#737b90);        /* control boundaries: fields, boxes, tracks */
  --accent:light-dark(#4452d0,#8b97ff);      /* the one vivid colour: links, selected, primary */
  --accent-soft:light-dark(#e6e8ff,#232a4d); /* selected backgrounds; accent text keeps 5.2 | 5.3 on it */
  --on-accent:light-dark(#ffffff,#0b0d12);   /* text on accent fills, 6.2 | 7.4 */
  --success:light-dark(#11713f,#5fd4a0);     /* desaturated for dark, so they do not vibrate */
  --warning:light-dark(#875500,#f0c060);
  --danger:light-dark(#bb2532,#ff9790);
  --focus:light-dark(#3b48c4,#b5bdff);       /* 2px focus ring */
  --highlight:light-dark(rgb(255 255 255 / 0),rgb(255 255 255 / .045)); /* 1px top light on dark surfaces */
  --shadow-color:light-dark(rgb(16 24 40 / .16),rgb(0 0 0 / .55));     /* overlays only */
  --radius:12px;--radius-sm:8px;
  --mono:ui-monospace,"SF Mono","Cascadia Code",Menlo,Consolas,monospace;
}
/* No light-dark() (Chrome < 123, Safari < 17.5, Firefox < 120): the same values, chosen by attribute */
@supports not (color:light-dark(#fff,#000)){
  :root,[data-theme="dark"]{--surface-0:#0b0d12;--surface-1:#151821;--surface-2:#1d212c;--surface-3:#262b38;--text-1:#eceef3;--text-2:#aab1bf;--text-3:#8f96a8;--border:#2a2f3c;--edge:#737b90;--accent:#8b97ff;--accent-soft:#232a4d;--on-accent:#0b0d12;--success:#5fd4a0;--warning:#f0c060;--danger:#ff9790;--focus:#b5bdff;--highlight:rgb(255 255 255 / .045);--shadow-color:rgb(0 0 0 / .55)}
  [data-theme="light"]{--surface-0:#eef1f5;--surface-1:#ffffff;--surface-2:#f6f7f9;--surface-3:#e6e9ef;--text-1:#12151c;--text-2:#434a5a;--text-3:#555d6e;--border:#dde1e8;--edge:#7c8496;--accent:#4452d0;--accent-soft:#e6e8ff;--on-accent:#ffffff;--success:#11713f;--warning:#875500;--danger:#bb2532;--focus:#3b48c4;--highlight:rgb(255 255 255 / 0);--shadow-color:rgb(16 24 40 / .16)}
  @media (prefers-color-scheme:light){[data-theme="system"]{--surface-0:#eef1f5;--surface-1:#ffffff;--surface-2:#f6f7f9;--surface-3:#e6e9ef;--text-1:#12151c;--text-2:#434a5a;--text-3:#555d6e;--border:#dde1e8;--edge:#7c8496;--accent:#4452d0;--accent-soft:#e6e8ff;--on-accent:#ffffff;--success:#11713f;--warning:#875500;--danger:#bb2532;--focus:#3b48c4;--highlight:rgb(255 255 255 / 0);--shadow-color:rgb(16 24 40 / .16)}}
}
@media (prefers-contrast:more){:root{--border:var(--edge);--text-3:var(--text-2)}}
[data-theme]{background:var(--surface-0);color:var(--text-1)}
/* The tokens above as Tailwind utilities: bg-surface-0…3, text-ink-1…3, border-line, border-edge,
   bg-accent, bg-accent-soft, text-on-accent, text-success|warning|danger, outline-focus, rounded-ui… */
@theme inline {
  --color-surface-0: var(--surface-0); --color-surface-1: var(--surface-1);
  --color-surface-2: var(--surface-2); --color-surface-3: var(--surface-3);
  --color-ink-1: var(--text-1); --color-ink-2: var(--text-2); --color-ink-3: var(--text-3);
  --color-line: var(--border); --color-edge: var(--edge);
  --color-accent: var(--accent); --color-accent-soft: var(--accent-soft); --color-on-accent: var(--on-accent);
  --color-success: var(--success); --color-warning: var(--warning); --color-danger: var(--danger);
  --color-focus: var(--focus); --color-highlight: var(--highlight);
  --radius-ui: var(--radius); --radius-ui-sm: var(--radius-sm);
  --font-mono: var(--mono);
  --shadow-overlay: 0 18px 48px -12px var(--shadow-color);
  --inset-shadow-hl: inset 0 1px 0 var(--highlight);
}

About this set

Cards from the uiCookies dark UI kit, built to show how elevation works without shadows. Three stat cards show requests, p95 latency and error rate, each with a large tabular figure, a delta badge whose direction is also given as visually hidden text, an SVG sparkline and a comparison line. Below them sit a content card with an illustrated cover drawn in the theme tokens, a category badge, a linked headline, an excerpt and an author line; a profile card with an initials avatar, an on-call badge, three counts in a description list, a location and two actions; and a featured pricing card with a most popular label, a large price, a ticked feature list and a trial button. Every card is surface-1 with a one-pixel border and a faint top highlight, and anything inside that needs to stand out moves up to surface-2 or surface-3. Badges are tinted with color-mix from their own semantic colour, which keeps the text above 4.5:1 on its fill in both themes, and the cover art and sparklines read their colours from the tokens, so they follow the light theme too.

What’s included

  • Stat cards with delta badges and SVG sparklines
  • Content card with token-coloured cover art
  • Profile card with counts in a description list
  • Featured pricing card with a text label
  • Badges tinted with color-mix so text keeps its contrast

Accessibility

Each card is an article with a heading, the headline is a real link with a visible focus ring, and decorative art, icons and sparklines are hidden from assistive technology, with the trend repeated as visually hidden text. Delta direction is spoken as up or down rather than shown by colour alone, counts use a description list, and all text was measured at 4.5:1 or more on its surface.

Customise it

Change --surface-1, --border and --radius for every card, and --accent, --success or --danger for badges and sparklines. In Bootstrap the tokens feed --bs-card-* and the .dk-badge variants; in Tailwind use bg-surface-1, border-line and rounded-ui.