Alle Komponenten

MotionNumber · MotionText

Eine Zahl, deren Stellen wie Räder rollen – auch Stellen, die hinzukommen oder wegfallen.

WebReact NativeZahlen und Text

Ausprobieren

Beispiel wird vorbereitet…

Kürzeste Nutzung

Total.jsx
<MotionNumber value={count} />
<MotionNumber value={total} mode="roll" intl locale="en-US"
  format={{ style: 'currency', currency: 'USD' }} />
<MotionText>{status}</MotionText>

Was sie dir abnimmt

  • Überträge: 999 → 1,000 lässt jede geänderte Stelle in dieselbe Richtung rollen, wie bei einem Kilometerzähler.
  • Stellen, die hinzukommen oder wegfallen, rollen in ihrer eigenen Spalte herein und hinaus, statt aufzuploppen.
  • Trennzeichen, Vorzeichen und Währungssymbole blenden mit der Stelle ein und aus, zu der sie gehören.
  • Verbleibende Stellen gleiten an ihre neue Position, während sie rollen – die Zahl bricht nie auseinander.
  • Ein neuer Wert mitten in der Bewegung setzt genau dort an, was auf dem Bildschirm ist.
  • Formatierung braucht nie Intl: Übergib Text oder eine format-Funktion, oder aktiviere es mit intl.

Gut für

  • Eine Warenkorbsumme, die sich beim Hinzufügen von Artikeln ändert.
  • Ein Live-Zähler oder Spielstand.
  • Eine Dashboard-Zahl, die sich alle paar Sekunden aktualisiert.

props

MotionNumber

PropTypStandardBeschreibung
valuenumber | bigint | string—erforderlichDie Zahl oder vom Aufrufer formatierter Zahlentext.
mode'replace' | 'roll''replace'replace bewegt jede geänderte Stelle um einen Schritt; roll läuft durch die Ziffern dazwischen.
direction'auto' | 'digit' | 'up' | 'down''auto'auto folgt der Größenänderung, sodass Überträge in eine Richtung rollen; digit vergleicht jede Stelle für sich.
staggernumber45Millisekunden zwischen geänderten Stellen, von den Einern nach außen. Die gesamte Welle ist begrenzt.
format(value) => string | Intl.NumberFormatOptionsEine Funktion, die den anzuzeigenden Text zurückgibt, oder Intl.NumberFormat-Optionen (mit intl).
intlbooleanfalseNutzt das eingebaute Intl.NumberFormat. Standardmäßig aus, damit keine Laufzeitumgebung Intl braucht.
localestring | string[]Locale für intl.
prefixstringText vor der Zahl.
suffixstringText nach der Zahl.
transitionTransitionspringEine Timing-Kurve { duration, easing } oder eine Feder { tempo: 'spring', spring }. Federn behalten bei Unterbrechung ihren Schwung.
onMotionComplete(value) => voidLäuft mit dem Wert, sobald die Stellen zur Ruhe gekommen sind.

MotionText

PropTypStandardBeschreibung
childrenReactNodeDer anzuzeigende Text.
aselement'span'Das zu rendernde Element.
transitionTransitionspringEine Timing-Kurve { duration, easing } oder eine Feder { tempo: 'spring', spring }. Federn behalten bei Unterbrechung ihren Schwung.
onMotionComplete(text) => voidLäuft, wenn die Bewegung zur Ruhe kommt.

Weitere props gehen an das gerenderte Element, also funktionieren className, style und Event-Handler wie gewohnt.

Web und React Native

Im Web ist jede Stelle ein kleiner Glyphen-Stapel, den die Web Animations API abspielt, und der Text bleibt markierbar. MotionText animiert beliebigen Text: Zahlentext rollt pro Stelle, anderer Text wird ausgetauscht.

Unter React Native bleibt die Zahl ein echtes Text für Layout, Auswahl und Barrierefreiheit, inklusive Umbruch und numberOfLines; die Glyphen bewegen sich mit dem nativen Treiber.

Verwendet in diesen Beispielen

Suchen

Tippe, um die Dokumentation zu durchsuchen.