MotionNumber · MotionText
Et tall der plassene ruller som hjul, også plasser som dukker opp eller forsvinner.
WebReact NativeTall og tekst
Prøv det
Forbereder eksempelet …
Korteste bruk
<MotionNumber value={count} />
<MotionNumber value={total} mode="roll" intl locale="en-US"
format={{ style: 'currency', currency: 'USD' }} />
<MotionText>{status}</MotionText>Dette tar den seg av
- Mente:
999 → 1,000ruller hver endrede plass i samme retning, som en kilometerteller. - Plasser som dukker opp eller forsvinner, ruller inn i eller ut av sin egen kolonne i stedet for å sprette frem.
- Skilletegn, fortegn og valutasymboler toner inn og ut sammen med plassen de hører til.
- Gjenværende plasser glir til nye posisjoner mens de ruller, så tallet deler seg aldri.
- En ny verdi midt i en bevegelse fortsetter nøyaktig fra det som er på skjermen.
- Formatering krever aldri
Intl: send tekst eller enformat-funksjon, eller slå påintl.
Bruk den til
- En handlekurvsum som endres når varer legges til.
- En live teller eller poengsum.
- Et tall på et dashbord som oppdateres med noen sekunders mellomrom.
Props
MotionNumber
| Prop | Type | Standard | Beskrivelse |
|---|---|---|---|
value | number | bigint | string | —påkrevd | Tallet, eller numerisk tekst du har formatert. |
mode | 'replace' | 'roll' | 'replace' | replace flytter hver endrede plass ett steg; roll går gjennom sifrene imellom. |
direction | 'auto' | 'digit' | 'up' | 'down' | 'auto' | auto følger størrelsesendringen så mente ruller én vei; digit sammenligner hver plass for seg. |
stagger | number | 45 | Millisekunder mellom endrede plasser, fra enerne og utover. Hele bølgen er begrenset. |
format | (value) => string | Intl.NumberFormatOptions | En funksjon som returnerer teksten som skal vises, eller Intl.NumberFormat-alternativer (med intl). | |
intl | boolean | false | Bruk den innebygde Intl.NumberFormat. Av som standard, så ingen kjøremiljøer trenger Intl. |
locale | string | string[] | Locale for intl. | |
prefix | string | Tekst før tallet. | |
suffix | string | Tekst etter tallet. | |
transition | Transition | spring | En timingkurve { duration, easing } eller en fjær { tempo: 'spring', spring }. Fjærer beholder momentet når de avbrytes. |
onMotionComplete | (value) => void | Kjører med verdien når plassene har landet. |
MotionText
| Prop | Type | Standard | Beskrivelse |
|---|---|---|---|
children | ReactNode | Teksten som skal vises. | |
as | element | 'span' | Elementet som renderes. |
transition | Transition | spring | En timingkurve { duration, easing } eller en fjær { tempo: 'spring', spring }. Fjærer beholder momentet når de avbrytes. |
onMotionComplete | (text) => void | Kjører når bevegelsen lander. |
Andre props går til det renderte elementet, så className, style og hendelseshåndterere fungerer som vanlig.
Web og React Native
På nettet er hver plass en liten stabel med glyfer som spilles av Web Animations API, og teksten kan fortsatt merkes. MotionText animerer hvilken som helst tekst: numerisk tekst ruller per plass, annen tekst byttes.
I React Native forblir tallet en ekte Text for layout, merking og tilgjengelighet, inkludert linjebryting og numberOfLines; glyfene beveger seg på native driver.
Brukt i disse eksemplene
- KassesammendragAntall, linjesummer og totalen ruller når handlekurven endres; rabattmeldingen kommer og går; betaling krever et bevisst trykk og hold.
MotionListMotionNumberMotionPresenceMotionHold - InnboksFilterfaner med live-tall, rader som kan sveipes bort, og en liste som lukker hullet.
MotionHighlightMotionListMotionSwipeMotionNumber