Stat tile
A KPI tile: an eyebrow label, a big stencil value, an optional leading icon chip, and an optional sub line tinted by trend. Presentational β renders server-side with no client JS.
Orders today
1,284
+12% vs yesterday
Error rate
0.4%
-0.2pt
MRR
$48k
flat
import StatTile from '@repo/ui/StatTile';
<StatTile label="Orders today" value="1,284" sub="+12% vs yesterday" trend="up" />| Prop | Type | Default | Notes |
|---|---|---|---|
label |
string |
β | Eyebrow (uppercase, tracked) |
value |
ReactNode |
β | Big value, set in the stencil display face by default |
sub |
ReactNode |
β | Optional sub line |
trend |
up | down | flat |
β | Tints the sub line (success / error / muted) |
icon |
ReactNode |
β | Optional leading icon rendered in a tinted chip in the top-right corner |
iconTone |
orange | success | info | warning | error | neutral | accent |
neutral |
Color tone for the icon chip |
plain |
boolean |
false |
Render value in sans bold face instead of the stencil display font |
valueId |
string |
β | Optional id on the value element for imperative updates |
className |
string |
β | Merged onto the card wrapper |
Do / donβt
Section titled βDo / donβtβ- Do keep values short and scannable; this is a glance, not a table.
- Donβt rely on trend color alone β keep the direction in the
subtext (+12%,-0.2pt).