React · React Native · 16 Komponenten

Schwierige Interaktionen, fertig gebaut.

Animated Chorus ist eine Sammlung von Animationskomponenten für Interaktionen, die von Hand schwer gut hinzubekommen sind: rollende Zahlen, gestreamter Text, Wechsel mit Größenanpassung, Sheets, Pager, Wisch-Aktionen und Listen, die nur das Geänderte animieren. Ein Tag und deine Daten. Kein Provider, kein Setup.

Installieren
npm install @kkwaenggwari/animated-chorus

Gemessen an diesem Build

Chrome, 2026-09-28. Alle Bedingungen und Messungen stehen im Performance-Guide. So wurde gemessen

  • 28.0KBKB gzip für alle 16 Exporte

    Der gesamte Web-Einstiegspunkt, minifiziert. React ist die einzige Peer-Abhängigkeit.

  • 0JS-Frame-Callbacks während der Animation

    Eine Zahl, eine Höhe und eine Hervorhebung ändern sich gleichzeitig: Der Browser spielt alle 12 Animationen ab.

  • 1React-Commit pro Wertänderung

    MotionNumber rendert, wenn sich der Wert ändert, nie während es rollt.

  • 11React-Commits für 3000 gestreamte Zeichen

    MotionStream hängt Zeichen direkt an und überführt sie nur ein paar Mal pro Sekunde in React.

01Am einfachsten

Ein Tag und deine Daten

Jede Komponente funktioniert allein: kein Provider, keine Wrapper-Komponente, kein Setup-Aufruf. Sammlungen nehmen items und renderItem, und dein Layout, dein Text und deine Styles bleiben deine.

  • Eine Komponente importieren und einen Wert übergeben. Das ist die ganze Integration.
  • Listen, Tabs und Pager lesen dein Array; Keys sind standardmäßig item.id.
  • Text bleibt echter Text: Er bricht um, skaliert mit der Schrift und lässt sich markieren.
  • <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} />;

Sechs Live-Komponenten und die eine Codezeile hinter jeder.

Beispiel wird vorbereitet…

02Am schnellsten

Der Browser spielt ab. React bleibt still.

Im Web muss keine Animationsbibliothek geladen werden: Die Komponenten übergeben ihre Bewegung an die Web Animations API, sodass eine rollende Zahl oder ein Panel, das seine Größe ändert, während der Bewegung kein JavaScript pro Frame und keinen React-Render kostet.

  • 0 JS-Frame-Callbacks, während 12 Animationen gleichzeitig laufen.
  • Ein React-Commit pro Wertänderung, nicht einer pro Frame.
  • Gestreamter Text: 11 React-Commits für 3000 Zeichen. Das Beispiel unten zählt seine eigenen Renders.

Beispiel wird vorbereitet…

03Am stabilsten

Unterbrich alles. Nichts springt.

Jeder neue Wert startet bei dem, was auf dem Bildschirm ist, und Federn behalten ihr Tempo – schnelle Klicks, Datenschübe und Richtungswechsel wirken gewollt. Wenn die Bewegung endet, läuft nichts mehr weiter.

  • Zahlen brechen nie auseinander: Verbleibende Stellen gleiten, während sie rollen.
  • 200 neue Werte im Abstand von 5 ms: danach 0 verbleibende Animationen und der exakte Endtext.
  • Sicher unter React StrictMode. In einer React-Native-App im Hintergrund kommt die Bewegung in ihrem Endzustand zur Ruhe.

Beispiel wird vorbereitet…

16 Komponenten, nach Aufgabe gruppiert

Zahlen und Text, Inhalt mit wechselnder Größe, Auswahl, Listen, Gesten, Overlays und Fortschritt. Jede hat eine Live-Werkbank mit ihren props daneben.

Alle Komponenten

Derselbe Import im Web und unter React Native

Metro wählt die native Implementierung, Web-Bundler die DOM-Implementierung. Jede Plattform spielt Bewegung so ab, wie sie es am besten kann.

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} />
    </>
  );
}
BereichWebReact Native
Transforms und DeckkraftWeb Animations API, Federn analytisch abgetastetAnimated mit dem nativen Treiber
Breite und HöheWeb Animations APIAnimated mit dem JS-Treiber, weil es Layout ist
Gestreamter TextZeichen angehängt und eingeblendet; ein paar React-Renders pro SekundeEin echtes Text, ohne Einblendung angezeigt
Sheets und ZoomEin natives dialog im Top LayerEin transparentes Modal; die Zurück-Taste schließt es

In zwei Minuten loslegen

Installieren, eine Komponente importieren, einen Wert übergeben.

npm install @kkwaenggwari/animated-chorus

Suchen

Tippe, um die Dokumentation zu durchsuchen.