Referința API

Fiecare export din @kkwaenggwari/animated-chorus, cu props, tipuri și valori implicite. Aceleași nume funcționează pe web și în React Native.

17 API-uri

Numere și text

MotionNumber

Un număr ale cărui cifre se rotesc ca niște roți.

PropTipImplicitDescriere
valuenumber | bigint | string—obligatoriuNumărul sau un text numeric formatat de apelant.
mode'replace' | 'roll''replace'replace mută fiecare cifră schimbată cu un pas; roll trece prin cifrele intermediare.
direction'auto' | 'digit' | 'up' | 'down''auto'auto urmează schimbarea de mărime, ca transporturile să se rotească într-un singur sens; digit compară fiecare cifră separat.
staggernumber45Milisecunde între cifrele schimbate, de la unități spre exterior. Întreaga undă este limitată.
format(value) => string | Intl.NumberFormatOptionsO funcție care returnează textul de afișat sau opțiuni Intl.NumberFormat (cu intl).
intlbooleanfalseFolosește Intl.NumberFormat integrat. Dezactivat implicit, ca niciun mediu de rulare să nu aibă nevoie de Intl.
localestring | string[]Localizarea pentru intl.
prefixstringText înaintea numărului.
suffixstringText după număr.
transitionTransitionspringO curbă timing { duration, easing } sau un arc { tempo: 'spring', spring }. Arcurile își păstrează impulsul când sunt întrerupte.
onMotionComplete(value) => voidRulează cu valoarea după ce cifrele s-au așezat.
Pagina componentei și bancul de lucru

MotionText

Text care se animă când se schimbă: textul numeric se rotește pe cifre, celălalt text se schimbă.

PropTipImplicitDescriere
childrenReactNodeTextul de afișat.
aselement'span'Elementul de randat.
transitionTransitionspringO curbă timing { duration, easing } sau un arc { tempo: 'spring', spring }. Arcurile își păstrează impulsul când sunt întrerupte.
onMotionComplete(text) => voidRulează când mișcarea se așază.
Pagina componentei și bancul de lucru

MotionStream

Text în flux afișat într-un ritm constant, care recuperează rafalele.

PropTipImplicitDescriere
textstring—obligatoriuTextul de până acum. Textul care crește apare într-un ritm constant; o rescriere continuă de la începutul comun.
speednumber90Rata de bază a afișării, în caractere pe secundă.
catchUpnumber900O restanță este afișată prin accelerare în circa atâtea milisecunde.
initialbooleanfalseAfișează treptat și textul prezent la montare (altfel apare imediat).
effect'fade' | 'none''fade'fade face caracterele noi să apară treptat; none le arată direct.
children(visible: string) => ReactNodeO funcție care primește textul dozat, de exemplu pentru a randa Markdown.
aselement'span'Elementul de randat.
onMotionComplete(text) => voidRulează de fiecare dată când afișarea ajunge din urmă text.
Pagina componentei și bancul de lucru

Conținut și mărime

MotionSwap

Conținut care trece prin fondu încrucișat cât elementul se redimensionează.

PropTipImplicitDescriere
valueunknownIdentitatea conținutului; o valoare nouă declanșează schimbarea. Copiii cu text simplu sunt propria identitate.
childrenReactNodeConținutul.
aselement'span'Elementul de randat.
inlinebooleanas === 'span'true se dimensionează după conținut (etichete, pictograme); false umple lățimea părintelui și animă înălțimea.
align'start' | 'center' | 'end''center'Unde stă conținutul cât se schimbă mărimea.
effect'fade' | 'up' | 'down' | 'scale''fade'Cum intră și iese conținutul: up urcă, down coboară, scale crește.
transitionTransitionspringO curbă timing { duration, easing } sau un arc { tempo: 'spring', spring }. Arcurile își păstrează impulsul când sunt întrerupte.
onMotionComplete(value) => voidRulează când mișcarea se așază.
Pagina componentei și bancul de lucru

MotionHeight

Animă înălțimea după conținut: restrângere, extindere și schimbări de conținut.

PropTipImplicitDescriere
openbooleantruefalse restrânge la înălțime zero; conținutul rămâne montat, dar ascuns și inert.
childrenReactNodeConținutul.
aselement'div'Elementul de randat.
transitionTransitionspringO curbă timing { duration, easing } sau un arc { tempo: 'spring', spring }. Arcurile își păstrează impulsul când sunt întrerupte.
onMotionComplete(open) => voidRulează cu open după ce înălțimea s-a așezat.
Pagina componentei și bancul de lucru

MotionPresence

Păstrează conținutul montat în timp ce intră și iese animat.

PropTipImplicitDescriere
presentboolean—obligatoriuArată sau ascunde conținutul. Schimbați asta în loc să demontați.
enterPose{ opacity: 1, translateY: 0 }Poza în repaus.
exitPose{ opacity: 0, translateY: -12 }Poza cu care pleacă și din care intră conținutul.
aselement'div'Elementul de randat.
transitionTransitionspringO curbă timing { duration, easing } sau un arc { tempo: 'spring', spring }. Arcurile își păstrează impulsul când sunt întrerupte.
onExitComplete() => voidRulează după ce conținutul a plecat și a fost eliminat.
Pagina componentei și bancul de lucru

Selecție și paginare

MotionHighlight

Elemente din date, cu un singur evidențiator care se mută la elementul selectat.

PropTipImplicitDescriere
itemsreadonly T[]—obligatoriuTabloul cu datele dumneavoastră.
valuekey | null—obligatoriuKey-ul elementului evidențiat; null ascunde evidențiatorul.
onValueChange(key, item) => voidRulează cu key-ul și elementul când un element este apăsat.
getKey(item) => string | numberitem.idReturnează un key unic și stabil pentru un element. Implicit item.id sau elementul însuși pentru șiruri și numere.
renderItem(item, { selected, index }) => ReactNodeitem.labelDesenează un element; primește dacă este selectat.
hoverbooleanfalseUrmează cursorul peste elemente și revine la value la ieșire (web).
itemAselement'button'Elementul pentru fiecare element din listă.
itemClassNamestringClasă pentru fiecare element din listă; itemStyle îi setează stilul inline.
highlightClassNamestringClasă pentru evidențiator; highlightStyle îi setează stilul inline.
transitionTransitionspringO curbă timing { duration, easing } sau un arc { tempo: 'spring', spring }. Arcurile își păstrează impulsul când sunt întrerupte.
Pagina componentei și bancul de lucru

MotionPager

Pagini glisabile din date.

PropTipImplicitDescriere
itemsreadonly T[]—obligatoriuTabloul cu datele dumneavoastră.
indexnumberPagina afișată. Omiteți-o ca pagerul să și-o gestioneze singur.
defaultIndexnumber0Pagina de start când index nu este controlat.
onIndexChange(index, item) => voidRulează cu indexul și elementul imediat ce se așază o glisare, o tastă sau un gest de rotiță.
getKey(item) => string | numberitem.idReturnează un key unic și stabil pentru un element. Implicit item.id sau elementul însuși pentru șiruri și numere.
renderItem(item, { index, active }) => ReactNodeitem.labelDesenează o pagină; primește indexul și dacă este activă.
gapnumber0Spațiul dintre pagini, în pixeli.
itemClassNamestringClasă pentru fiecare element din listă; itemStyle îi setează stilul inline.
transitionTransitionspringO curbă timing { duration, easing } sau un arc { tempo: 'spring', spring }. Arcurile își păstrează impulsul când sunt întrerupte.
Pagina componentei și bancul de lucru

Liste

MotionList

O listă cu key-uri din date care animă doar ce s-a schimbat.

PropTipImplicitDescriere
itemsreadonly T[]—obligatoriuTabloul cu datele dumneavoastră.
getKey(item) => string | numberitem.idReturnează un key unic și stabil pentru un element. Implicit item.id sau elementul însuși pentru șiruri și numere.
renderItem(item, index) => ReactNodeitem.labelDesenează un element.
aselement'div'Elementul de randat.
itemAselement'li' | 'div'Elementul pentru fiecare element din listă.
itemClassNamestringClasă pentru fiecare element din listă; itemStyle îi setează stilul inline.
effect'rise' | 'fade' | 'scale' | 'slide''rise'Cum intră și ies elementele.
distancenumber16Distanța parcursă de rise și slide, în pixeli.
staggernumber40Milisecunde între elementele care intră.
order'forward' | 'reverse''forward'Direcția cascadei.
presentbooleantruefalse animă ieșirea fiecărui element păstrând layoutul; true le aduce înapoi.
initialbooleantrueRedă intrarea când lista se montează.
playKeystring | numberSchimbarea lui redă din nou intrarea.
transitionTransitionspringTranziția pentru elementele care intră și ies.
layoutTransitionTransitionspringTranziția pentru elementele care alunecă spre poziții noi.
Pagina componentei și bancul de lucru

MotionReorder

Trageți pentru a reordona o listă sau o grilă, cu mutări de la tastatură.

PropTipImplicitDescriere
itemsreadonly T[]Elementele, când controlați dumneavoastră ordinea.
defaultItemsreadonly T[][]Elementele de pornire, când componenta păstrează ordinea.
onItemsChange(items, { reason, key }) => voidRulează cu noua ordine și cu sursa ei: tragere, eliberare sau tastatură.
getKey(item) => string | numberitemReturnează un key unic pentru un element. Implicit, elementul însuși.
renderItem(item, { index, dragging }) => ReactNodeitem.labelDesenează un element; primește indexul și dacă este tras.
reorder'live' | 'drop''live'live mută celelalte elemente în timpul tragerii; drop așteaptă eliberarea.
layout'list' | 'grid''grid'list sau grid.
columnsnumber3Coloane într-o grilă.
gapnumber12Spațiul dintre elemente, în pixeli.
disabledbooleanfalseDezactivează tragerea.
durationnumber260Milisecunde pentru elementele care se dau la o parte.
itemClassNamestringClasă pentru fiecare element din listă; itemStyle îi setează stilul inline.
Pagina componentei și bancul de lucru

Gesturi

MotionSwipe

Un rând care dezvăluie acțiuni la o glisare orizontală și poate fi glisat deoparte.

PropTipImplicitDescriere
childrenReactNodeConținutul rândului.
startActionsReactNodeDezvăluite la începutul rândului când rândul e tras spre capăt.
endActionsReactNodeDezvăluite la capătul rândului când rândul e tras spre început.
dismiss'start' | 'end' | 'both'Părțile în care o glisare lungă sau o aruncare elimină rândul.
onDismiss(side) => voidRulează după ce rândul a ieșit și s-a restrâns; eliminați aici elementul din date.
onOpenChange(side | null) => voidRulează cu partea deschisă sau cu null când rândul se închide.
disabledbooleanfalseDezactivează glisarea.
contentClassNamestringClasă pentru conținutul rândului; contentStyle îi setează stilul inline.
transitionTransitionspringO curbă timing { duration, easing } sau un arc { tempo: 'spring', spring }. Arcurile își păstrează impulsul când sunt întrerupte.
Pagina componentei și bancul de lucru

MotionHold

Apăsați lung pentru a confirma; o eliberare prea devreme derulează înapoi.

PropTipImplicitDescriere
childrenReactNodeEticheta butonului.
onConfirm() => voidRulează după ce apăsarea lungă se încheie.
durationnumber1200Milisecundele cât trebuie ținută apăsarea.
disabledbooleanfalseDezactivează butonul.
fillClassNamestringClasă pentru umplerea care crește; fillStyle îi setează stilul inline.
Pagina componentei și bancul de lucru

Suprapuneri

MotionSheet

Sheet inferior, sheet superior sau sertar lateral, cu opriri.

PropTipImplicitDescriere
openbooleanfalseDacă sheet-ul este afișat.
onOpenChange(open) => voidRulează cu false când sheet-ul e închis prin tragere, atingere sau Escape.
detents(number | 'content')[]['content']Mărimi de repaus: o fracțiune din ecran, pixeli sau 'content'.
detentnumberIndexul de oprire controlat.
defaultDetentnumber0Indexul de oprire folosit la deschiderea fără detent.
onDetentChange(index) => voidRulează cu indexul opririi pe care se așază sheet-ul.
side'bottom' | 'top' | 'start' | 'end''bottom'Marginea de pe care vine sheet-ul.
modalbooleantrueAdaugă un fundal, păstrează focusul înăuntru și face pagina inertă.
dismissiblebooleantrueTragerea dincolo de cea mai mică oprire, fundalul și Escape îl închid.
backdropClassNamestringClasă pentru fundal; backdropStyle îi setează stilul inline.
transitionTransitionspringO curbă timing { duration, easing } sau un arc { tempo: 'spring', spring }. Arcurile își păstrează impulsul când sunt întrerupte.
Pagina componentei și bancul de lucru

MotionZoom

O imagine care se mărește de unde se află până umple ecranul.

PropTipImplicitDescriere
srcstringImaginea afișată pe loc.
zoomSrcstringO imagine mai mare, afișată după ce s-a încărcat; păstrați același raport de aspect.
marginnumber24Spațiul lăsat în jurul imaginii mărite, în pixeli.
disabledbooleanfalseDezactivează zoomul.
onZoomChange(zoomed) => voidRulează cu true la mărire și cu false la închidere.
backdropStyleCSSPropertiesStil inline pentru fundal.
transitionTransitionspringO curbă timing { duration, easing } sau un arc { tempo: 'spring', spring }. Arcurile își păstrează impulsul când sunt întrerupte.
Pagina componentei și bancul de lucru

Progres

ProgressBar

O linie de progres controlată, cu stare nedeterminată.

PropTipImplicitDescriere
valuenumber | nullProgres de la 0 la max; null înseamnă nedeterminat.
maxnumber100Valoarea care înseamnă încheiat.
colorstring'currentColor'Culoarea umplerii.
trackColorstring'#e7ece9'Culoarea pistei.
thicknessnumber8Grosimea liniei, în pixeli.
direction'ltr' | 'rtl''ltr'Umple de la stânga (ltr) sau de la dreapta (rtl).
transitionTransitionspringO curbă timing { duration, easing } sau un arc { tempo: 'spring', spring }. Arcurile își păstrează impulsul când sunt întrerupte.
Pagina componentei și bancul de lucru

ProgressRing

Un inel de progres controlat, cu stare nedeterminată.

PropTipImplicitDescriere
valuenumber | nullProgres de la 0 la max; null înseamnă nedeterminat.
maxnumber100Valoarea care înseamnă încheiat.
sizenumber96Diametrul, în pixeli.
thicknessnumber8Grosimea inelului, în pixeli.
colorstring'currentColor'Culoarea arcului.
trackColorstring'#e7ece9'Culoarea pistei.
childrenReactNodeO etichetă afișată în centru.
transitionTransitionspringO curbă timing { duration, easing } sau un arc { tempo: 'spring', spring }. Arcurile își păstrează impulsul când sunt întrerupte.
Pagina componentei și bancul de lucru

Tranziții

motionTokens

Valori gata făcute pentru orice prop transition.

PropTipImplicitDescriere
duration{ instant, fast, normal, slow }0 · 140 · 280 · 520Durate în milisecunde.
easing{ ease, easeOut, expoOut, backOut }TransitionTranziții timing cu o durată și o curbă cu nume.
spring{ quick, basic, gentle, bouncy }TransitionTranziții cu arc, de la rapide și ferme la blânde și săltărețe.
Tranziții
App.jsx
// Web and React Native: the same import.
import { MotionNumber, MotionList } from '@kkwaenggwari/animated-chorus';

export function Score({ points, players }) {
  return (
    <>
      <MotionNumber value={points} />
      <MotionList items={players} renderItem={(player) => player.name} />
    </>
  );
}

Căutare

Tastați pentru a căuta în documentație.