Skip to content

Data display

IStat ​

A single headline number with its movement, built for a row of tiles across the top of a dashboard.

Revenue€48,290 +18.4%vs. last quarter
Invoices sent312 +4.1%vs. last quarter
Days to payment21 -6.2%vs. last quarter

Trend ​

The sign of delta decides the direction, and zero is neutral.

Up1,204 +12.5%
Flat1,204 0%
Down1,204 -8.1%

Override it with trend when a rising number is bad news — days to payment, error rate, churn.

trend colours the delta and nothing else. The arrow keeps following the sign of the number, because an arrow that disagrees with the figure printed beside it — "↑ -14%" — reads as a bug rather than as nuance. Down and green means the number fell and that was the good outcome.

Days to payment34 +9.4%rising is worse
Overdue balance€3,940 -22%falling is better

Formatting the delta ​

formatDelta receives the raw number, for when a percentage is the wrong unit.

New clients18 +5 this month
Revenue€48,290 +€7,400

Sizes ​

Small€48,290 +18.4%
Medium€48,290 +18.4%
Large€48,290 +18.4%

Props ​

PropTypeDefaultDescription
labelstring—What the number measures
valuestring | number—The headline figure
deltanumber—Change since the comparison period
trend'up' | 'down' | 'neutral'from deltaColours the delta; the arrow still follows the sign
hintstring—Names the comparison, e.g. "vs. last quarter"
size'sm' | 'md' | 'lg''md'Overall scale
formatDelta(delta: number) => stringpercentageFormats the delta text
asstring'div'Element to render
unstyledboolean—Drop built-in classes
classstring—Merged with the built-in classes
ui{ root?, label?, value?, delta?, hint?, row? }—Per-element class overrides

Colour is carried by the delta text rather than a filled surface, and the arrow beside it is decorative — the sign already says which way it went.

Slots ​

SlotWhen to use it
label / hintEither needs markup
deltaFull control of the change line, receiving { trend }

Pair one with ISparkline when the shape of the change matters as much as its size.