Component gallery
The ten core components, each in every state its contract requires. Dark is the default; light is a deliberate second theme, not an inversion.
LiveDot
The only looping animation in the product. Status is written out as text, never colour alone.
StatTile
The value counts up only when the underlying number changes — never on mount. Press the button to see it move.
Chip
Every status variant pairs a colour with an icon and a label.
MiniBar
A negative bar is drawn, not clamped to zero — an unrecouped advance is genuinely negative.
Sparkline
2px stroke, no axes, no fill, last point ringed.
DataTable
34px rows, sticky header, right-aligned tabular numerics. Row 1 is optimistic; row 3 just arrived live.
| Points | PPI | Tier | ||
|---|---|---|---|---|
| Freddy | 3,475 | 2.673 | Gold | |
Points3,475 | ||||
| Krishnan | 2,180 | 1.420 | Silver | |
Points2,180 | ||||
| Yesu | 1,890 | 1.180 | Below Silver | |
Points1,890 | ||||
DataTable — loading and empty
| Person | Points | PPI | Tier |
|---|---|---|---|
EmptyState
Explain
The §5.6 worked example. Visible to every staff member, not just the manager — this is what converts “the system decided” into “I can see why”.
- WER(9,400 + 915 + 6,200 + 17,400) / 268,0000.12655
- RM268,000 / 84,0003.190clamped 0–5
- WERm0.12655 / 0.06202.041clamped 0–3
- PPI0.55 × 3.190 + 0.45 × 2.0412.673
- Points100 × 2.673 × 1.30 × 1.00347.5
Show the arithmetic
- WER(9,400 + 915 + 6,200 + 17,400) / 268,0000.12655
- RM268,000 / 84,0003.190clamped 0–5
- WERm0.12655 / 0.06202.041clamped 0–3
- PPI0.55 × 3.190 + 0.45 × 2.0412.673
- Points100 × 2.673 × 1.30 × 1.00347.5
Drawer
Focus-trapped, Escape closes, focus returns to the trigger.
Toast
Errors never auto-dismiss.
Chart series palette
Validated for colour-blind separation and contrast. Assigned in slot order, never cycled. In light mode, slots 3, 4 and 5 sit below 3:1 — any chart using them needs direct labels or the table view.
Malayalam
--font-ml, line-height 1.75, and lang="ml".
എടപ്പാളിൽ ഇന്ന് രാവിലെ നടന്ന സംഭവത്തിന്റെ ദൃശ്യങ്ങൾ പുറത്ത്