ابدأ · 4 خطوات
ابدأ
ثبّت الحزمة، واعرض مكوّنك الأول، وأعطِ مكوّنًا بياناتك، واختر كيف يتحرك. لا provider ولا إعداد في أي خطوة.
التثبيت
يحتاج Chorus إلى React 19.2 أو أحدث. في تطبيق React Native يكون React Native تبعية نظيرة اختيارية، وتختار الحزمة نفسها بناءها الأصلي تلقائيًا.
npm install @kkwaenggwari/animated-chorusلا شيء آخر للإعداد: لا provider ولا plugin ولا ورقة أنماط لإضافتها.
مكوّنك الأول
اعرض
MotionNumberبقيمة من الحالة. غيّر الحالة فيتدحرج الرقم. اضغط+1ثم×10لترى خانة جديدة تتدحرج إلى الداخل.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> ); }جارٍ تجهيز المثال…
بدّل
modeإلىrollفي الإعدادات: تمر الخانات المتغيّرة عبر الأرقام بينها.أعطه بياناتك
المكوّنات التي تعرض عدة أشياء تأخذ مصفوفة.
itemsهي بياناتك، وgetKeyتعيد مفتاحًا ثابتًا (افتراضيًاitem.id، أو العنصر نفسه للنصوص والأرقام)، وrenderItemترسم كل عنصر. يعرض المكوّن العناصر ويقيسها نيابة عنك.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} />; }يجب أن تكون المفاتيح فريدة. حين تتغيّر المصفوفة، لا يتحرك إلا ما دخل أو خرج أو انتقل.
اختر كيف يتحرك
كل مكوّن يقبل
transition: منحنى توقيت أو نابضًا. يقدّمmotionTokensبعض الإعدادات الجاهزة، والنابض معdurationمعايَر لينتهي في تلك اللحظة تمامًا.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>يستخدم React Native الاستيراد نفسه وprops نفسها.
هذا هو الإعداد كله
كل ما تبقى هو اختيار المكوّنات. لكلٍّ منها منصة تجربة تضبطه فيها قبل نسخ الشيفرة.