ui · 6 variants · 1 categories
Statistic
KPI displays with delta indicators, sparklines, progress bars, and grid layouts.
npx "@rueda.dev/gems-diamond" add statistic Display
6 variantsTotal Revenue
$48.2k
12.4%
kpiUsers
2,480
Sessions
18.4k
pairedActive Now
142
dark99.8%
uptime, this month
largeConversion
ON TRACK4.8%
68% to goal of 7%
progress12
Projects
248
Tasks
14
Team
gridUsage Guide
How to wire up this component in your app — props, callbacks, customization, and the conventions Diamond shares across the library.
Variants by use-case
- kpi — single metric + delta arrow. Pass
delta={ dir, text }. - paired / grid — array of
entrieswithlabel+value. - dark — high-contrast card with an inline
sparkline(number array). - progress —
progress(0-100) drives the bar;status+goalrender the labels. - large — display headline for hero stats.
Universal patterns
Every Diamond component shares the same prop conventions, so once you learn one you can predict the others.
variant— discriminated union of every visual option. Categories shown above are docs-only metadata; the prop is a flat string union.accent— any CSS color string. Overrides--diamond-accentjust for that instance via inlinestyle. Cascades into hover, ring, and selection states.asChild(when present) — renders the underlying primitive via@radix-ui/react-slot, letting you compose with<Link>,motion.button, etc.className— merged with internal Tailwind classes viacn(). Use it to override layout, spacing, or colors.- Native HTML attributes (
onClick,aria-*,data-*,ref, etc.) flow through to the root element without any whitelist. - Diamond is the skin: zero domain state, zero fetch, zero providers. You wire data and reactions in your app code; the components just render and emit events.