ابدأ · 4 خطوات

ابدأ

ثبّت الحزمة، واعرض مكوّنك الأول، وأعطِ مكوّنًا بياناتك، واختر كيف يتحرك. لا provider ولا إعداد في أي خطوة.

  1. التثبيت

    يحتاج Chorus إلى React 19.2 أو أحدث. في تطبيق React Native يكون React Native تبعية نظيرة اختيارية، وتختار الحزمة نفسها بناءها الأصلي تلقائيًا.

    npm install @kkwaenggwari/animated-chorus

    لا شيء آخر للإعداد: لا provider ولا plugin ولا ورقة أنماط لإضافتها.

  2. مكوّنك الأول

    اعرض 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 في الإعدادات: تمر الخانات المتغيّرة عبر الأرقام بينها.

  3. أعطه بياناتك

    المكوّنات التي تعرض عدة أشياء تأخذ مصفوفة. 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} />;
    }

    يجب أن تكون المفاتيح فريدة. حين تتغيّر المصفوفة، لا يتحرك إلا ما دخل أو خرج أو انتقل.

  4. اختر كيف يتحرك

    كل مكوّن يقبل 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 نفسها.

بحث

اكتب للبحث في التوثيق.