React · React Native · 16 komponenter

Svåra interaktioner, färdiga.

Animated Chorus är en uppsättning rörelsekomponenter för interaktionerna som är svåra att få rätt för hand: rullande siffror, strömmad text, byten som ändrar storlek, sheets, pagers, svepåtgärder och listor som bara animerar det som ändrats. En tagg och din data. Ingen provider, ingen setup.

Installera
npm install @kkwaenggwari/animated-chorus

Uppmätt på det här bygget

Chrome, 2026-09-28. Alla villkor och mätningar finns i prestandaguiden. Så mättes det

  • 28.0KBKB gzip för alla 16 exporter

    Hela webbens startpunkt, minifierad. React är enda peer.

  • 0JS-bildrute-callbacks under animering

    En siffra, en höjd och en markering ändras tillsammans: webbläsaren spelar upp alla 12 animationer.

  • 1React-commit per värdeändring

    MotionNumber renderas när värdet ändras, aldrig medan det rullar.

  • 11React-commits för 3000 strömmade tecken

    MotionStream lägger till tecken direkt och för in dem i React några gånger per sekund.

01Enklast

En tagg och din data

Varje komponent fungerar på egen hand: ingen provider, omslagskomponent eller setup-anrop. Samlingar tar items och renderItem, och din layout, dina texter och stilar förblir dina.

  • Importera en komponent och skicka ett värde. Det är hela integrationen.
  • Listor, flikar och pagers läser din array; nycklar är som standard item.id.
  • Text förblir riktig text: den radbryts, skalas med typsnittet och kan markeras.
  • <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} />;

Sex livekomponenter, och den enda kodraden bakom var och en.

Förbereder exemplet…

02Snabbast

Webbläsaren spelar upp. React står still.

På webben finns inget animationsbibliotek att läsa in: komponenterna lämnar över rörelsen till Web Animations API, så en rullande siffra eller en panel som ändrar storlek kostar inget JavaScript per bildruta och ingen React-rendering medan den rör sig.

  • 0 JS-bildrute-callbacks medan 12 animationer körs samtidigt.
  • En React-commit per värdeändring, inte en per bildruta.
  • Strömmad text: 11 React-commits för 3000 tecken. Exemplet nedan räknar sina egna renderingar.

Förbereder exemplet…

03Stabilast

Avbryt vad som helst. Inget hoppar.

Varje nytt värde börjar från det som syns på skärmen och fjädrar behåller sin hastighet, så snabba klick, dataskurar och vändningar ser avsiktliga ut. När rörelsen slutar är inget kvar som körs.

  • Siffror delar sig aldrig: kvarvarande positioner glider medan de rullar.
  • 200 nya värden med 5 ms mellanrum: 0 animationer kvar efteråt och exakt sluttext.
  • Säker under React StrictMode. I en React Native-app i bakgrunden landar rörelsen direkt i sitt sluttillstånd.

Förbereder exemplet…

16 komponenter, grupperade efter uppgift

Siffror och text, innehåll som ändrar storlek, urval, listor, gester, överlägg och förlopp. Var och en har en livearbetsbänk med sina props vid sidan.

Alla komponenter

Samma import på webben och i React Native

Metro väljer native-implementationen och webbbundlers väljer DOM-varianten. Varje plattform spelar upp rörelse på det sätt den gör bäst.

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} />
    </>
  );
}
DelWebbReact Native
Transforms och opacityWeb Animations API, fjädrar samplade analytisktAnimated med native driver
Bredd och höjdWeb Animations APIAnimated med JS-driver, eftersom det är layout
Strömmad textTecken som läggs till och tonas in; några React-renderingar per sekundEn riktig Text, visad utan toning
Sheets och zoomEn native dialog i det översta lagretEn genomskinlig Modal; bakåtknappen stänger den

Kom igång på två minuter

Installera, importera en komponent, skicka ett värde.

npm install @kkwaenggwari/animated-chorus

Sök

Skriv för att söka i dokumentationen.