React · React Native · 16 componenten

Lastige interacties, al af.

Animated Chorus is een set bewegingscomponenten voor de interacties die je met de hand moeilijk goed krijgt: rollende getallen, gestreamde tekst, wissels die van grootte veranderen, sheets, pagers, veegacties en lijsten die alleen animeren wat veranderde. Eén tag en je data. Geen provider, geen setup.

Installeren
npm install @kkwaenggwari/animated-chorus

Gemeten op deze build

Chrome, 2026-09-28. Elke voorwaarde en elke meting staat in de gids over prestaties. Hoe het is gemeten

  • 28.0KBKB gzip voor alle 16 exports

    Het hele webingangspunt, geminificeerd. React is de enige peer.

  • 0JS-frame-callbacks tijdens animatie

    Een getal, een hoogte en een markering veranderen samen: de browser speelt alle 12 animaties af.

  • 1React-commit per waardewijziging

    MotionNumber rendert als de waarde verandert, nooit terwijl die rolt.

  • 11React-commits voor 3000 gestreamde tekens

    MotionStream voegt tekens direct toe en verwerkt ze een paar keer per seconde in React.

01Makkelijkst

Eén tag en je data

Elk component werkt op zichzelf: geen provider, wrappercomponent of setup-aanroep. Collecties nemen items en renderItem, en je layout, teksten en stijlen blijven van jou.

  • Importeer één component en geef een waarde mee. Dat is de hele integratie.
  • Lijsten, tabs en pagers lezen je array; keys zijn standaard item.id.
  • Tekst blijft echte tekst: hij loopt door, schaalt mee met het lettertype en is selecteerbaar.
  • <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} />;

Zes live componenten, en de ene regel code achter elk.

Voorbeeld voorbereiden…

02Snelst

De browser speelt het af. React blijft stil.

Op het web hoeft er geen animatielibrary te laden: componenten geven hun beweging aan de Web Animations API, dus een rollend getal of een paneel dat van grootte verandert, kost geen JavaScript per frame en geen React-render tijdens de beweging.

  • 0 JS-frame-callbacks terwijl 12 animaties samen lopen.
  • Eén React-commit per waardewijziging, niet één per frame.
  • Gestreamde tekst: 11 React-commits voor 3000 tekens. Het voorbeeld hieronder telt zijn eigen renders.

Voorbeeld voorbereiden…

03Stabielst

Onderbreek alles. Niets springt.

Elke nieuwe waarde begint bij wat op het scherm staat en veren behouden hun snelheid, dus snelle klikken, datastoten en omkeringen zien er bedoeld uit. Als de beweging eindigt, blijft er niets draaien.

  • Getallen vallen nooit uiteen: de overige cijfers schuiven op terwijl ze rollen.
  • 200 nieuwe waarden met 5 ms ertussen: daarna 0 animaties over en de exacte eindtekst.
  • Veilig onder React StrictMode. In een React Native-app op de achtergrond komt beweging direct in de eindtoestand.

Voorbeeld voorbereiden…

16 componenten, gegroepeerd per taak

Getallen en tekst, inhoud die van grootte verandert, selectie, lijsten, gebaren, overlays en voortgang. Elk heeft een live werkbank met de props ernaast.

Alle componenten

Dezelfde import op web en React Native

Metro kiest de native implementatie en webbundlers kiezen de DOM-versie. Elk platform speelt beweging af zoals het dat het best doet.

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} />
    </>
  );
}
OnderdeelWebReact Native
Transforms en opacityWeb Animations API, veren analytisch bemonsterdAnimated met de native driver
Breedte en hoogteWeb Animations APIAnimated met de JS-driver, omdat het layout is
Gestreamde tekstTekens toegevoegd en ingefade; een paar React-renders per secondeEen echte Text, onthuld zonder fade
Sheets en zoomEen native dialog in de bovenste laagEen transparante Modal; de terugknop sluit hem

Begin in twee minuten

Installeer, importeer één component, geef een waarde mee.

npm install @kkwaenggwari/animated-chorus

Zoeken

Typ om de documentatie te doorzoeken.