Tutti i componenti

MotionNumber · MotionText

Un numero le cui cifre scorrono come rotelle, comprese le cifre che compaiono o spariscono.

WebReact NativeNumeri e testo

Provalo

Preparazione dell’esempio…

L’uso più breve

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

Di che cosa si occupa al posto tuo

  • Riporti: 999 → 1,000 fa scorrere nello stesso modo ogni cifra cambiata, come un contachilometri.
  • Le cifre che compaiono o spariscono entrano o escono scorrendo nella loro colonna invece di apparire di colpo.
  • Separatori, segni e simboli di valuta compaiono e svaniscono insieme alla cifra a cui appartengono.
  • Le cifre rimanenti scivolano nelle nuove posizioni mentre scorrono, così il numero non si spezza mai.
  • Un nuovo valore a metà movimento riparte esattamente da ciò che è sullo schermo.
  • La formattazione non richiede mai Intl: passa un testo o una funzione format, oppure attivalo con intl.

Usalo per

  • Il totale di un carrello che cambia man mano che aggiungi articoli.
  • Un contatore o un punteggio dal vivo.
  • Un dato di una dashboard che si aggiorna ogni pochi secondi.

Props

MotionNumber

PropTipoPredefinitoDescrizione
valuenumber | bigint | string—obbligatoriaIl numero, oppure un testo numerico formattato da te.
mode'replace' | 'roll''replace'replace sposta ogni cifra cambiata di un passo; roll passa per i numeri intermedi.
direction'auto' | 'digit' | 'up' | 'down''auto'auto segue la variazione di grandezza, così i riporti scorrono in un solo verso; digit confronta ogni cifra per conto suo.
staggernumber45Millisecondi tra le cifre cambiate, dalle unità verso l’esterno. L’intera onda ha una durata limitata.
format(value) => string | Intl.NumberFormatOptionsUna funzione che restituisce il testo da mostrare, oppure le opzioni di Intl.NumberFormat (con intl).
intlbooleanfalseUsa l’Intl.NumberFormat integrato. Disattivato di default, così nessun runtime ha bisogno di Intl.
localestring | string[]Locale per intl.
prefixstringTesto prima del numero.
suffixstringTesto dopo il numero.
transitionTransitionspringUna curva di timing { duration, easing } o una molla { tempo: 'spring', spring }. Le molle conservano lo slancio quando vengono interrotte.
onMotionComplete(value) => voidViene eseguito con il valore quando le cifre si sono assestate.

MotionText

PropTipoPredefinitoDescrizione
childrenReactNodeIl testo da mostrare.
aselement'span'L’elemento da renderizzare.
transitionTransitionspringUna curva di timing { duration, easing } o una molla { tempo: 'spring', spring }. Le molle conservano lo slancio quando vengono interrotte.
onMotionComplete(text) => voidViene eseguito quando il movimento si assesta.

Le altre props vanno all’elemento renderizzato, quindi className, style e gli event handler funzionano come sempre.

Web e React Native

Sul web ogni cifra è una piccola pila di glifi riprodotta dalla Web Animations API, e il testo resta selezionabile. MotionText anima qualsiasi testo: il testo numerico scorre cifra per cifra, il resto viene scambiato.

Su React Native il numero resta un vero Text per layout, selezione e accessibilità, compresi l’a capo e numberOfLines; i glifi si muovono sul driver nativo.

Usato in questi esempi

Cerca

Scrivi per cercare nella documentazione.