MotionNumber · MotionText
Een getal waarvan de cijfers rollen als wieltjes, ook cijfers die verschijnen of verdwijnen.
WebReact NativeGetallen en tekst
Probeer het
Voorbeeld voorbereiden…
Kortste gebruik
<MotionNumber value={count} />
<MotionNumber value={total} mode="roll" intl locale="en-US"
format={{ style: 'currency', currency: 'USD' }} />
<MotionText>{status}</MotionText>Wat het voor je regelt
- Overdrachten:
999 → 1,000rolt elk gewijzigd cijfer dezelfde kant op, zoals een kilometerteller. - Cijfers die verschijnen of verdwijnen, rollen in of uit hun eigen kolom in plaats van op te poppen.
- Scheidingstekens, tekens en valutasymbolen faden in en uit met het cijfer waar ze bij horen.
- Overige cijfers schuiven naar hun nieuwe plek terwijl ze rollen, dus het getal valt nooit uiteen.
- Een nieuwe waarde midden in een beweging gaat precies verder vanaf wat op het scherm staat.
- Opmaak vereist nooit
Intl: geef tekst of eenformat-functie mee, of zetintlaan.
Gebruik het voor
- Een winkelwagentotaal dat verandert als artikelen worden toegevoegd.
- Een live teller of score.
- Een dashboardcijfer dat elke paar seconden ververst.
Props
MotionNumber
| Prop | Type | Standaard | Beschrijving |
|---|---|---|---|
value | number | bigint | string | —verplicht | Het getal, of door jou opgemaakte numerieke tekst. |
mode | 'replace' | 'roll' | 'replace' | replace verplaatst elk gewijzigd cijfer één stap; roll gaat langs de tussenliggende cijfers. |
direction | 'auto' | 'digit' | 'up' | 'down' | 'auto' | auto volgt de grootteverandering zodat overdrachten één kant op rollen; digit vergelijkt elk cijfer apart. |
stagger | number | 45 | Milliseconden tussen gewijzigde cijfers, vanaf de eenheden naar buiten. De hele golf is begrensd. |
format | (value) => string | Intl.NumberFormatOptions | Een functie die de te tonen tekst teruggeeft, of Intl.NumberFormat-opties (met intl). | |
intl | boolean | false | Gebruik de ingebouwde Intl.NumberFormat. Standaard uit, zodat geen enkele runtime Intl nodig heeft. |
locale | string | string[] | Locale voor intl. | |
prefix | string | Tekst voor het getal. | |
suffix | string | Tekst na het getal. | |
transition | Transition | spring | Een timingcurve { duration, easing } of een veer { tempo: 'spring', spring }. Veren behouden hun momentum als ze worden onderbroken. |
onMotionComplete | (value) => void | Draait met de waarde zodra de cijfers tot rust zijn gekomen. |
MotionText
| Prop | Type | Standaard | Beschrijving |
|---|---|---|---|
children | ReactNode | De te tonen tekst. | |
as | element | 'span' | Het element dat wordt gerenderd. |
transition | Transition | spring | Een timingcurve { duration, easing } of een veer { tempo: 'spring', spring }. Veren behouden hun momentum als ze worden onderbroken. |
onMotionComplete | (text) => void | Draait als de beweging tot rust komt. |
Andere props gaan naar het gerenderde element, dus className, style en event handlers werken zoals gewoonlijk.
Web en React Native
Op het web is elk cijfer een kleine stapel glyphs die door de Web Animations API wordt afgespeeld, en de tekst blijft selecteerbaar. MotionText animeert elke tekst: numerieke tekst rolt per cijfer, andere tekst wisselt.
In React Native blijft het getal een echte Text voor layout, selectie en toegankelijkheid, inclusief doorlopen en numberOfLines; de glyphs bewegen op de native driver.
Gebruikt in deze voorbeelden
- AfrekenoverzichtAantallen, regeltotalen en het totaal rollen als de winkelwagen verandert; de couponmelding komt en gaat; betalen vraagt een bewuste druk.
MotionListMotionNumberMotionPresenceMotionHold - InboxFiltertabs met live tellingen, rijen die je kunt wegvegen en een lijst die het gat dicht.
MotionHighlightMotionListMotionSwipeMotionNumber