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.

Installer
npm install @kkwaenggwari/animated-chorus

Må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

    MotionNumber renderes når verdien endres, aldri mens den ruller.

  • 11React-commits for 3000 strømmede tegn

    MotionStream legger 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 …

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.

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} />
    </>
  );
}
DelWebReact Native
Transforms og opacityWeb Animations API, fjærer samplet analytiskAnimated med native driver
Bredde og høydeWeb Animations APIAnimated med JS-driver, fordi det er layout
Strømmet tekstTegn som legges til og tones inn; noen få React-renderinger i sekundetEn ekte Text, vist uten toning
Sheets og zoomEn native dialog i det øverste lagetEn gjennomsiktig Modal; tilbakeknappen lukker den

Kom i gang på to minutter

Installer, importer én komponent, send en verdi.

npm install @kkwaenggwari/animated-chorus

Søk

Skriv for å søke i dokumentasjonen.