HTML
Copy
<div><span class="mb-4 block text-[.72rem] tracking-[.12em] text-[#4b5768] uppercase">KPI cards with sparklines</span>
<div class="grid grid-cols-[repeat(auto-fit,minmax(220px,1fr))] gap-4 text-kpi-ink">
<article class="flex min-w-0 flex-col gap-1.5 rounded-2xl border border-kpi-line bg-white px-[18px] pt-[18px] pb-4 shadow-[0_1px_2px_rgba(15,23,42,.04),0_8px_24px_rgba(15,23,42,.05)]">
<div class="flex items-baseline justify-between gap-2"><h3 class="text-[.84rem] font-semibold text-kpi-muted">Net revenue</h3><span class="text-[.74rem] whitespace-nowrap text-kpi-muted">Oct 1–15</span></div>
<p class="text-[1.85rem] leading-[1.15] font-[750] tracking-[-.02em] tabular-nums">$89,412</p>
<p class="flex flex-wrap items-center gap-2 text-[.8rem] text-kpi-muted"><span class="inline-flex items-center gap-[3px] rounded-full bg-kpi-good-bg py-0.5 pr-2 pl-1.5 text-[.78rem] font-bold text-kpi-good tabular-nums"><svg class="size-3.5 flex-none" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 19V5M5 12l7-7 7 7"/></svg>+12.4%</span>up from $79,540 in Sep</p>
<svg class="mt-1.5 block h-10 w-full overflow-visible" viewBox="0 0 120 36" preserveAspectRatio="none" aria-hidden="true"><path class="fill-kpi-accent opacity-10" d="M0 33L8.6 28.9L17.1 31.6L25.7 23.5L34.3 26.2L42.9 20.7L51.4 16.6L60 22.1L68.6 18L77.1 12.5L85.7 15.3L94.3 9.8L102.9 5.7L111.4 11.2L120 3L120 36L0 36Z"/><path class="fill-none stroke-kpi-accent stroke-2 [stroke-linecap:round] [stroke-linejoin:round]" vector-effect="non-scaling-stroke" d="M0 33L8.6 28.9L17.1 31.6L25.7 23.5L34.3 26.2L42.9 20.7L51.4 16.6L60 22.1L68.6 18L77.1 12.5L85.7 15.3L94.3 9.8L102.9 5.7L111.4 11.2L120 3"/></svg>
</article>
<article class="flex min-w-0 flex-col gap-1.5 rounded-2xl border border-kpi-line bg-white px-[18px] pt-[18px] pb-4 shadow-[0_1px_2px_rgba(15,23,42,.04),0_8px_24px_rgba(15,23,42,.05)]">
<div class="flex items-baseline justify-between gap-2"><h3 class="text-[.84rem] font-semibold text-kpi-muted">Active subscribers</h3><span class="text-[.74rem] whitespace-nowrap text-kpi-muted">Oct 1–15</span></div>
<p class="text-[1.85rem] leading-[1.15] font-[750] tracking-[-.02em] tabular-nums">3,482</p>
<p class="flex flex-wrap items-center gap-2 text-[.8rem] text-kpi-muted"><span class="inline-flex items-center gap-[3px] rounded-full bg-kpi-good-bg py-0.5 pr-2 pl-1.5 text-[.78rem] font-bold text-kpi-good tabular-nums"><svg class="size-3.5 flex-none" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 19V5M5 12l7-7 7 7"/></svg>+4.1%</span>up from 3,345 on Oct 1</p>
<svg class="mt-1.5 block h-10 w-full overflow-visible" viewBox="0 0 120 36" preserveAspectRatio="none" aria-hidden="true"><path class="fill-kpi-accent opacity-10" d="M0 33L8.6 30.4L17.1 27.6L25.7 28.1L34.3 24.3L42.9 22.2L51.4 19.9L60 17.1L68.6 17.7L77.1 13.8L85.7 11L94.3 8.8L102.9 6.7L111.4 5.1L120 3L120 36L0 36Z"/><path class="fill-none stroke-kpi-accent stroke-2 [stroke-linecap:round] [stroke-linejoin:round]" vector-effect="non-scaling-stroke" d="M0 33L8.6 30.4L17.1 27.6L25.7 28.1L34.3 24.3L42.9 22.2L51.4 19.9L60 17.1L68.6 17.7L77.1 13.8L85.7 11L94.3 8.8L102.9 6.7L111.4 5.1L120 3"/></svg>
</article>
<article class="flex min-w-0 flex-col gap-1.5 rounded-2xl border border-kpi-line bg-white px-[18px] pt-[18px] pb-4 shadow-[0_1px_2px_rgba(15,23,42,.04),0_8px_24px_rgba(15,23,42,.05)]">
<div class="flex items-baseline justify-between gap-2"><h3 class="text-[.84rem] font-semibold text-kpi-muted">Monthly churn</h3><span class="text-[.74rem] whitespace-nowrap text-kpi-muted">Oct 1–15</span></div>
<p class="text-[1.85rem] leading-[1.15] font-[750] tracking-[-.02em] tabular-nums">2.3%</p>
<p class="flex flex-wrap items-center gap-2 text-[.8rem] text-kpi-muted"><span class="inline-flex items-center gap-[3px] rounded-full bg-kpi-good-bg py-0.5 pr-2 pl-1.5 text-[.78rem] font-bold text-kpi-good tabular-nums"><svg class="size-3.5 flex-none" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 5v14M19 12l-7 7-7-7"/></svg>−0.4 pts</span>down from 2.7%, lower is better</p>
<svg class="mt-1.5 block h-10 w-full overflow-visible" viewBox="0 0 120 36" preserveAspectRatio="none" aria-hidden="true"><path class="fill-kpi-accent opacity-10" d="M0 3L8.6 8L17.1 8L25.7 13L34.3 13L42.9 18L51.4 18L60 23L68.6 18L77.1 23L85.7 28L94.3 28L102.9 33L111.4 28L120 33L120 36L0 36Z"/><path class="fill-none stroke-kpi-accent stroke-2 [stroke-linecap:round] [stroke-linejoin:round]" vector-effect="non-scaling-stroke" d="M0 3L8.6 8L17.1 8L25.7 13L34.3 13L42.9 18L51.4 18L60 23L68.6 18L77.1 23L85.7 28L94.3 28L102.9 33L111.4 28L120 33"/></svg>
</article>
<article class="flex min-w-0 flex-col gap-1.5 rounded-2xl border border-kpi-line bg-white px-[18px] pt-[18px] pb-4 shadow-[0_1px_2px_rgba(15,23,42,.04),0_8px_24px_rgba(15,23,42,.05)]">
<div class="flex items-baseline justify-between gap-2"><h3 class="text-[.84rem] font-semibold text-kpi-muted">Avg. order value</h3><span class="text-[.74rem] whitespace-nowrap text-kpi-muted">Oct 1–15</span></div>
<p class="text-[1.85rem] leading-[1.15] font-[750] tracking-[-.02em] tabular-nums">$62.40</p>
<p class="flex flex-wrap items-center gap-2 text-[.8rem] text-kpi-muted"><span class="inline-flex items-center gap-[3px] rounded-full bg-kpi-bad-bg py-0.5 pr-2 pl-1.5 text-[.78rem] font-bold text-kpi-bad tabular-nums"><svg class="size-3.5 flex-none" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 5v14M19 12l-7 7-7-7"/></svg>−3.2%</span>down from $64.46 in Sep</p>
<svg class="mt-1.5 block h-10 w-full overflow-visible" viewBox="0 0 120 36" preserveAspectRatio="none" aria-hidden="true"><path class="fill-kpi-accent opacity-10" d="M0 3L8.6 8.4L17.1 4.5L25.7 13L34.3 17.6L42.9 12.2L51.4 21.5L60 19.9L68.6 26.1L77.1 28.4L85.7 23.8L94.3 30.7L102.9 27.6L111.4 33L120 31.5L120 36L0 36Z"/><path class="fill-none stroke-kpi-accent stroke-2 [stroke-linecap:round] [stroke-linejoin:round]" vector-effect="non-scaling-stroke" d="M0 3L8.6 8.4L17.1 4.5L25.7 13L34.3 17.6L42.9 12.2L51.4 21.5L60 19.9L68.6 26.1L77.1 28.4L85.7 23.8L94.3 30.7L102.9 27.6L111.4 33L120 31.5"/></svg>
</article>
</div></div>
<div><span class="mb-4 block text-[.72rem] tracking-[.12em] text-[#4b5768] uppercase">Compact tiles with icons</span>
<div class="grid grid-cols-[repeat(auto-fit,minmax(220px,1fr))] gap-4 text-kpi-ink">
<article class="flex min-w-0 items-center gap-3.5 rounded-2xl border border-kpi-line bg-white p-4 shadow-[0_1px_2px_rgba(15,23,42,.04),0_8px_24px_rgba(15,23,42,.05)]">
<span class="grid size-11 flex-none place-items-center rounded-xl bg-[#e8f1fc] text-[#1f5fae]"><svg class="size-[22px]" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M19 8v6M22 11h-6"/></svg></span>
<div class="flex min-w-0 flex-col gap-0.5"><h3 class="text-[.84rem] font-semibold text-kpi-muted">New signups</h3><p class="text-[1.4rem] leading-[1.15] font-[750] tracking-[-.02em] tabular-nums">412</p>
<p class="inline-flex items-center gap-1 text-[.78rem] font-semibold tabular-nums text-kpi-good"><svg class="size-3.5 flex-none" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 19V5M5 12l7-7 7 7"/></svg>Up 18% this week</p></div>
</article>
<article class="flex min-w-0 items-center gap-3.5 rounded-2xl border border-kpi-line bg-white p-4 shadow-[0_1px_2px_rgba(15,23,42,.04),0_8px_24px_rgba(15,23,42,.05)]">
<span class="grid size-11 flex-none place-items-center rounded-xl bg-[#e8f1fc] text-[#1f5fae]"><svg class="size-[22px]" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 7a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v3a2 2 0 0 0 0 4v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-3a2 2 0 0 0 0-4z"/><path d="M13 5v2M13 11v2M13 17v2"/></svg></span>
<div class="flex min-w-0 flex-col gap-0.5"><h3 class="text-[.84rem] font-semibold text-kpi-muted">Open tickets</h3><p class="text-[1.4rem] leading-[1.15] font-[750] tracking-[-.02em] tabular-nums">37</p>
<p class="inline-flex items-center gap-1 text-[.78rem] font-semibold tabular-nums text-kpi-good"><svg class="size-3.5 flex-none" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 5v14M19 12l-7 7-7-7"/></svg>Down 9 since Monday</p></div>
</article>
<article class="flex min-w-0 items-center gap-3.5 rounded-2xl border border-kpi-line bg-white p-4 shadow-[0_1px_2px_rgba(15,23,42,.04),0_8px_24px_rgba(15,23,42,.05)]">
<span class="grid size-11 flex-none place-items-center rounded-xl bg-[#e8f1fc] text-[#1f5fae]"><svg class="size-[22px]" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></svg></span>
<div class="flex min-w-0 flex-col gap-0.5"><h3 class="text-[.84rem] font-semibold text-kpi-muted">First response</h3><p class="text-[1.4rem] leading-[1.15] font-[750] tracking-[-.02em] tabular-nums">1h 42m</p>
<p class="inline-flex items-center gap-1 text-[.78rem] font-semibold tabular-nums text-kpi-bad"><svg class="size-3.5 flex-none" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 19V5M5 12l7-7 7 7"/></svg>Up 12m, slower</p></div>
</article>
<article class="flex min-w-0 items-center gap-3.5 rounded-2xl border border-kpi-line bg-white p-4 shadow-[0_1px_2px_rgba(15,23,42,.04),0_8px_24px_rgba(15,23,42,.05)]">
<span class="grid size-11 flex-none place-items-center rounded-xl bg-[#e8f1fc] text-[#1f5fae]"><svg class="size-[22px]" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 2l3.1 6.3 6.9 1-5 4.9 1.2 6.8-6.2-3.2-6.2 3.2L7 14.2 2 9.3l6.9-1z"/></svg></span>
<div class="flex min-w-0 flex-col gap-0.5"><h3 class="text-[.84rem] font-semibold text-kpi-muted">Net promoter score</h3><p class="text-[1.4rem] leading-[1.15] font-[750] tracking-[-.02em] tabular-nums">61</p>
<p class="inline-flex items-center gap-1 text-[.78rem] font-semibold tabular-nums text-kpi-good"><svg class="size-3.5 flex-none" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 19V5M5 12l7-7 7 7"/></svg>Up 4 pts on Q3</p></div>
</article>
</div></div>
<div><span class="mb-4 block text-[.72rem] tracking-[.12em] text-[#4b5768] uppercase">Hero metric with breakdown</span>
<div class="grid grid-cols-[repeat(auto-fit,minmax(220px,1fr))] gap-4 text-kpi-ink">
<article class="col-span-full grid grid-cols-1 gap-x-7 gap-y-[22px] rounded-[18px] border border-kpi-line bg-white p-[22px] shadow-[0_1px_2px_rgba(15,23,42,.04),0_8px_24px_rgba(15,23,42,.05)] sm:grid-cols-[minmax(0,1.1fr)_minmax(0,1fr)]">
<div class="flex min-w-0 flex-col gap-1.5">
<div class="flex items-baseline justify-between gap-2"><h3 class="text-[.84rem] font-semibold text-kpi-muted">Monthly recurring revenue</h3><span class="text-[.74rem] whitespace-nowrap text-kpi-muted">October 2026</span></div>
<p class="text-[2.1rem] leading-[1.15] font-[750] tracking-[-.02em] tabular-nums sm:text-[2.6rem]">$128,940</p>
<p class="flex flex-wrap items-center gap-2 text-[.8rem] text-kpi-muted"><span class="inline-flex items-center gap-[3px] rounded-full bg-kpi-good-bg py-0.5 pr-2 pl-1.5 text-[.78rem] font-bold text-kpi-good tabular-nums"><svg class="size-3.5 flex-none" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 19V5M5 12l7-7 7 7"/></svg>+4.1%</span>up $5,080 from $123,860 in September</p>
</div>
<div class="flex flex-col justify-end gap-1.5">
<svg class="mt-1.5 block h-[90px] w-full overflow-visible" viewBox="0 0 300 72" preserveAspectRatio="none" aria-hidden="true"><path class="fill-kpi-accent opacity-10" d="M0 69L60 56.5L120 46.6L180 33.8L240 16.6L300 3L300 72L0 72Z"/><path class="fill-none stroke-kpi-accent stroke-2 [stroke-linecap:round] [stroke-linejoin:round]" vector-effect="non-scaling-stroke" d="M0 69L60 56.5L120 46.6L180 33.8L240 16.6L300 3"/></svg>
<p class="flex justify-between text-[.72rem] text-kpi-muted"><span>May $104.2k</span><span>Oct $128.9k</span></p>
</div>
<ul class="col-span-full grid grid-cols-2 gap-3 border-t border-kpi-line pt-4 sm:grid-cols-4" aria-label="MRR movement in October">
<li class="flex flex-col gap-0.5 text-[.8rem] text-kpi-muted">New business<strong class="text-[1.05rem] text-kpi-ink tabular-nums">+$9,820</strong></li>
<li class="flex flex-col gap-0.5 text-[.8rem] text-kpi-muted">Expansion<strong class="text-[1.05rem] text-kpi-ink tabular-nums">+$3,410</strong></li>
<li class="flex flex-col gap-0.5 text-[.8rem] text-kpi-muted">Contraction<strong class="text-[1.05rem] text-kpi-ink tabular-nums">−$1,620</strong></li>
<li class="flex flex-col gap-0.5 text-[.8rem] text-kpi-muted">Churned<strong class="text-[1.05rem] text-kpi-ink tabular-nums">−$6,530</strong></li>
</ul>
</article>
</div></div>