Começar · 4 passos
Começar
Instale o pacote, renderize seu primeiro componente, entregue seus dados a um componente e escolha como ele se move. Em nenhum passo há provider ou configuração.
Instalar
O Chorus precisa do React 19.2 ou superior. Em um app React Native, o React Native é uma dependência peer opcional, e o mesmo pacote escolhe o build nativo automaticamente.
npm install @kkwaenggwari/animated-chorusNada mais para configurar: não há provider, plugin nem folha de estilos para adicionar.
Seu primeiro componente
Renderize
MotionNumbercom um valor do estado. Mude o estado e o número rola. Aperte+1e depois×10para ver uma casa nova entrar rolando.App.jsx import { useState } from 'react'; import { MotionNumber } from '@kkwaenggwari/animated-chorus'; export default function App() { const [count, setCount] = useState(9); return ( <button onClick={() => setCount(count + 1)}> <MotionNumber value={count} /> </button> ); }Preparando o exemplo…
Mude
modepararollnas configurações: as casas que mudam passam pelos dígitos intermediários.Entregue seus dados
Componentes que mostram várias coisas recebem um array.
itemssão seus dados,getKeyretorna uma key estável (por padrãoitem.id, ou o próprio item para strings e números) erenderItemdesenha cada item. O componente renderiza e mede os elementos para você.Tabs.jsx import { MotionHighlight } from '@kkwaenggwari/animated-chorus'; const tabs = [ { id: 'overview', label: 'Overview' }, { id: 'activity', label: 'Activity' }, ]; export function Tabs({ tab, setTab }) { // Keys come from item.id; labels from item.label, or renderItem. return <MotionHighlight items={tabs} value={tab} onValueChange={setTab} />; }As keys precisam ser únicas. Quando o array muda, só animam os itens que entraram, saíram ou se moveram.
Escolha como ele se move
Todo componente aceita uma
transition: uma curva de tempo ou uma mola.motionTokensoferece alguns presets, e uma mola comdurationé calibrada para terminar exatamente nesse momento.Panel.jsx import { MotionHeight, motionTokens } from '@kkwaenggwari/animated-chorus'; <MotionHeight open={open} transition={motionTokens.spring.gentle}>…</MotionHeight> <MotionHeight open={open} transition={{ duration: 300, easing: 'easeOut' }}>…</MotionHeight> <MotionHeight open={open} transition={{ tempo: 'spring', spring: { stiffness: 300, damping: 30 }, duration: 500 }}>…</MotionHeight>O React Native usa o mesmo import e as mesmas props.
Essa é toda a configuração
O resto é escolher componentes. Cada um tem uma bancada onde você pode ajustá-lo antes de copiar o código.