React · React Native · 16 komponentov

Náročné interakcie, hotové.

Animated Chorus je sada pohybových komponentov pre interakcie, ktoré je ťažké urobiť správne ručne: rolujúce čísla, streamovaný text, výmeny so zmenou veľkosti, sheety, pagery, akcie potiahnutím a zoznamy, ktoré animujú len to, čo sa zmenilo. Jeden tag a vaše údaje. Žiadny provider, žiadne nastavenie.

Inštalácia
npm install @kkwaenggwari/animated-chorus

Namerané na tomto zostavení

Chrome, 2026-09-28. Všetky podmienky a vzorky sú v sprievodcovi výkonom. Ako sa meralo

  • 28.0KBKB gzip pre všetkých 16 exportov

    Celý webový vstupný bod, minifikovaný. React je jediná peer závislosť.

  • 0Callbacky snímok JS počas animácie

    Číslo, výška a zvýraznenie sa menia spolu: prehliadač prehráva všetkých 12 animácií.

  • 1Commit Reactu na zmenu hodnoty

    MotionNumber sa renderuje, keď sa hodnota zmení, nikdy počas rolovania.

  • 11Commity Reactu pre 3000 streamovaných znakov

    MotionStream pripája znaky priamo a do Reactu ich odovzdáva len niekoľkokrát za sekundu.

01Najjednoduchšie

Jeden tag a vaše údaje

Každý komponent funguje sám: žiadny provider, obaľovací komponent ani volanie nastavenia. Kolekcie prijímajú items a renderItem a vaše rozloženie, texty aj štýly zostávajú vaše.

  • Naimportujte jeden komponent a odovzdajte hodnotu. To je celá integrácia.
  • Zoznamy, karty a pagery čítajú vaše pole; kľúče sú predvolene item.id.
  • Text zostáva skutočným textom: zalamuje sa, škáluje s písmom a dá sa označiť.
  • <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} />;

Šesť živých komponentov a jediný riadok kódu za každým z nich.

Príprava príkladu…

02Najrýchlejšie

Prehráva prehliadač. React stojí.

Na webe netreba načítavať žiadnu knižnicu animácií: komponenty odovzdávajú pohyb Web Animations API, takže rolujúce číslo alebo panel meniaci veľkosť nestojí počas pohybu žiadny JavaScript na snímku ani render Reactu.

  • 0 callbackov snímok JS, kým 12 animácií beží spolu.
  • Jeden commit Reactu na zmenu hodnoty, nie jeden na snímku.
  • Streamovaný text: 11 commitov Reactu pre 3000 znakov. Príklad nižšie počíta svoje vlastné rendery.

Príprava príkladu…

03Najstabilnejšie

Prerušte čokoľvek. Nič neskáče.

Každá nová hodnota začína od toho, čo je na obrazovke, a pružiny si zachovávajú rýchlosť, takže rýchle kliknutia, nárazy údajov aj obraty pôsobia zámerne. Keď pohyb skončí, nič ďalej nebeží.

  • Čísla sa nikdy nerozpadnú: zvyšné rády kĺžu, kým rolujú.
  • 200 nových hodnôt po 5 ms: potom zostáva 0 animácií a presný konečný text.
  • Bezpečné v React StrictMode. V aplikácii React Native na pozadí dosadne pohyb do koncového stavu.

Príprava príkladu…

16 komponentov zoskupených podľa úlohy

Čísla a text, obsah meniaci veľkosť, výber, zoznamy, gestá, prekrytia a priebeh. Každý má živý pracovný stôl s props na boku.

Všetky komponenty

Rovnaký import na webe aj v React Native

Metro vyberie natívnu implementáciu a webové bundlery verziu pre DOM. Každá platforma prehráva pohyb tak, ako to vie najlepšie.

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} />
    </>
  );
}
ČasťWebReact Native
Transformácie a opacityWeb Animations API, pružiny vzorkované analytickyAnimated s natívnym driverom
Šírka a výškaWeb Animations APIAnimated s driverom JS, pretože ide o rozloženie
Streamovaný textZnaky sa pripájajú a plynulo objavujú; niekoľko renderov Reactu za sekunduSkutočný Text, odhalený bez prelínania
Sheety a zoomNatívny dialog v hornej vrstvePriehľadný Modal; zavrie ho tlačidlo späť

Začnite za dve minúty

Nainštalujte, naimportujte jeden komponent, odovzdajte hodnotu.

npm install @kkwaenggwari/animated-chorus

Hľadať

Píšte a hľadajte v dokumentácii.