React · React Native · 16 komponenter
Vanskelige interaksjoner, ferdige.
Animated Chorus er et sett bevegelseskomponenter for interaksjonene som er vanskelige å få riktig for hånd: rullende tall, strømmet tekst, bytter som endrer størrelse, sheets, pagere, sveipehandlinger og lister som bare animerer det som endret seg. Én tagg og dataene dine. Ingen provider, ikke noe oppsett.
npm install @kkwaenggwari/animated-chorusMålt på dette bygget
Chrome, 2026-09-28. Alle betingelser og målinger står i ytelsesguiden. Slik ble det målt
- 28.0KBKB gzip for alle 16 eksporter
Hele inngangspunktet for web, minifisert. React er den eneste peer-en.
- 0JS-bilde-callbacks under animasjon
Et tall, en høyde og en markering endres sammen: nettleseren spiller av alle 12 animasjonene.
- 1React-commit per verdiendring
MotionNumberrenderes når verdien endres, aldri mens den ruller. - 11React-commits for 3000 strømmede tegn
MotionStreamlegger til tegn direkte og fører dem inn i React noen få ganger i sekundet.
01Enklest
Én tagg og dataene dine
Hver komponent fungerer på egen hånd: ingen provider, omslagskomponent eller oppsettkall. Samlinger tar items og renderItem, og layouten, tekstene og stilene dine forblir dine.
- Importer én komponent og send en verdi. Det er hele integrasjonen.
- Lister, faner og pagere leser arrayen din; nøkler er som standard
item.id. - Tekst forblir ekte tekst: den brytes, skaleres med skrifttypen og kan merkes.
<MotionNumber value={total} />;<MotionSwap value={status}>{label}</MotionSwap>;<MotionHeight open={open}>{details}</MotionHeight>;<MotionHighlight items={tabs} value={tab} onValueChange={setTab} />;<MotionList items={tasks} renderItem={(task) => task.title} />;<ProgressRing value={progress} />;
Seks live-komponenter, og den ene kodelinjen bak hver.
Forbereder eksempelet …
02Raskest
Nettleseren spiller av. React står stille.
På nettet finnes det ikke noe animasjonsbibliotek å laste inn: komponentene gir bevegelsen videre til Web Animations API, så et rullende tall eller et panel som endrer størrelse, koster ingen JavaScript per bilde og ingen React-rendering mens det beveger seg.
- 0 JS-bilde-callbacks mens 12 animasjoner kjører sammen.
- Én React-commit per verdiendring, ikke én per bilde.
- Strømmet tekst: 11 React-commits for 3000 tegn. Eksempelet nedenfor teller sine egne renderinger.
Forbereder eksempelet …
03Mest stabil
Avbryt hva som helst. Ingenting hopper.
Hver ny verdi starter fra det som er på skjermen, og fjærer beholder hastigheten, så raske klikk, datastøt og vendinger ser tilsiktet ut. Når bevegelsen slutter, kjører ingenting videre.
- Tall deler seg aldri: gjenværende plasser glir mens de ruller.
- 200 nye verdier med 5 ms mellomrom: 0 animasjoner igjen etterpå og nøyaktig slutttekst.
- Trygg under React StrictMode. I en React Native-app i bakgrunnen lander bevegelsen i sluttilstanden.
Forbereder eksempelet …
16 komponenter, gruppert etter oppgave
Tall og tekst, innhold som endrer størrelse, utvalg, lister, bevegelser, overlegg og fremdrift. Hver har en live arbeidsbenk med props ved siden av.
Alle komponenterTall og tekst
Innhold og størrelse
Utvalg og sider
Lister
Bevegelser
Overlegg
Fremdrift
Satt sammen
Komplette skjermer som kombinerer flere komponenter, hver med innstillingene utenfor eksempelet.
Alle eksempler- ChattesvarForslag som lukkes, et svar som strømmer i jevnt tempo, og en statuslinje som byttes.
MotionStreamMotionListMotionSwapMotionHeight - 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 - BildefeedSveip gjennom bilder, hopp med miniatyrer, åpne et hvilket som helst bilde i fullskjerm og dra opp detaljene.
MotionPagerMotionHighlightMotionZoomMotionSheet
Samme import på nettet og i React Native
Metro velger native-implementasjonen, og nettbundlere velger DOM-versjonen. Hver plattform spiller av bevegelse slik den gjør det best.
// 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} />
</>
);
}| Del | Web | React Native |
|---|---|---|
| Transforms og opacity | Web Animations API, fjærer samplet analytisk | Animated med native driver |
| Bredde og høyde | Web Animations API | Animated med JS-driver, fordi det er layout |
| Strømmet tekst | Tegn som legges til og tones inn; noen få React-renderinger i sekundet | En ekte Text, vist uten toning |
| Sheets og zoom | En native dialog i det øverste laget | En gjennomsiktig Modal; tilbakeknappen lukker den |
Kom i gang på to minutter
Installer, importer én komponent, send en verdi.
npm install @kkwaenggwari/animated-chorus