Skip to content

Motion

NumberTicker

A value that moves to its new state without moving anything around it. Width is reserved, digits are tabular, and the roll is quick enough to read as precision rather than theatre.

Playground

Update the value and watch the digits roll. The layout never changes width.

Controls

Value

Format

Duration

Rendered as

<NumberTicker value={128431} kind="currency" duration={0.55} />
$128,431reserved width · tabular figures

Formatting is guarded: a null or NaN value renders an em dash, never “NaN”.

<NumberTicker value={128431} kind="currency" duration={0.55} />

Stable width

The most important property: a column of values must not shift when one of them changes.

Watch the right edge of the column: it does not move.

run_001
$10,000
run_002
$147,411
run_003
$284,822
run_004
$422,233
run_005
$559,644
run_006
$697,055
run_007
$834,466
run_008
$971,877
run_009
$12,400
run_010
$1,246,699

In metrics

MetricValue uses the ticker by default, so every metric in a product inherits the behaviour.

Total return+18.2%
$182,410
Win rate+1.4%
58.6%
Trades1h bars
1,284

Formatting reference

number128,431

Grouped integer.

decimal27.40

1–2 fraction digits, chosen by magnitude.

percent12.4%

Already-scaled value with a % suffix; signed for deltas.

currency$109,241

ISO-4217 code; defaults to USD.

compact48.3M

48.3M — for scale, never for precision.

API

Component props
PropTypeDefaultNotes
valuenumber | null | undefined—Null renders an em dash; NaN never reaches the DOM.
kind"number" | "decimal" | "percent" | "currency" | "compact""number"Formatting strategy.
durationnumber0.55Roll length in seconds. 0 disables animation.
startFromnumber—Count up from here on first paint; omit to start at the value.
align"left" | "right" | "center""left"Alignment of the animating digits inside the reserved box.
format(value: number) => string—Escape hatch for a custom formatter.

Rules

Do

  • Keep rolls between 0.4s and 0.7s.
  • Pair a ticker with a delta so the direction is explicit.
  • Use compact formatting for scale, exact values for decisions.

Don't

  • Animate every cell in a table.
  • Roll a value that updates several times a second.
  • Use proportional figures anywhere next to a ticker.
Luc UI v1.0NumberTickerdark theme