مرجع API

كل تصدير في @kkwaenggwari/animated-chorus مع props وأنواعه وقيمه الافتراضية. والأسماء نفسها تعمل على الويب وفي React Native.

17 API

الأرقام والنصوص

MotionNumber

رقم تتدحرج خاناته كالعجلات.

Propالنوعالافتراضيالوصف
valuenumber | bigint | string—إلزاميالرقم، أو نص رقمي نسّقته أنت.
mode'replace' | 'roll''replace'ينقل replace كل خانة متغيّرة خطوة واحدة؛ ويمر roll عبر الأرقام بينها.
direction'auto' | 'digit' | 'up' | 'down''auto'يتبع auto تغيّر المقدار فتتدحرج الخانات المحمولة في اتجاه واحد؛ ويقارن digit كل خانة بمفردها.
staggernumber45مللي ثوانٍ بين الخانات المتغيّرة، من الآحاد إلى الخارج. والموجة كلها محدودة المدة.
format(value) => string | Intl.NumberFormatOptionsدالة تعيد النص المراد عرضه، أو خيارات Intl.NumberFormat (مع intl).
intlbooleanfalseاستخدم Intl.NumberFormat المدمج. معطّل افتراضيًا كي لا تحتاج أي بيئة تشغيل إلى Intl.
localestring | string[]اللغة المحلية لـ intl.
prefixstringنص قبل الرقم.
suffixstringنص بعد الرقم.
transitionTransitionspringمنحنى توقيت { duration, easing } أو نابض { tempo: 'spring', spring }. تحتفظ النوابض بزخمها عند المقاطعة.
onMotionComplete(value) => voidيعمل مع القيمة بعد استقرار الخانات.
صفحة المكوّن ومنصة التجربة

MotionText

نص يتحرك حين يتغيّر: النص الرقمي يتدحرج خانةً خانة، والنص الآخر يتبدّل.

Propالنوعالافتراضيالوصف
childrenReactNodeالنص المراد عرضه.
aselement'span'العنصر المراد عرضه.
transitionTransitionspringمنحنى توقيت { duration, easing } أو نابض { tempo: 'spring', spring }. تحتفظ النوابض بزخمها عند المقاطعة.
onMotionComplete(text) => voidيعمل حين تستقر الحركة.
صفحة المكوّن ومنصة التجربة

MotionStream

نص متدفق يُكشف بإيقاع ثابت يلحق بالدفعات.

Propالنوعالافتراضيالوصف
textstring—إلزاميالنص حتى الآن. يُكشف النص المتنامي بإيقاع ثابت؛ وإعادة الكتابة تكمل من البداية المشتركة.
speednumber90معدّل الكشف الأساسي بالأحرف في الثانية.
catchUpnumber900يُكشف النص المتراكم خلال نحو هذا العدد من المللي ثواني بالتسريع.
initialbooleanfalseاكشف أيضًا النص الموجود عند التركيب (وإلا يظهر دفعة واحدة).
effect'fade' | 'none''fade'يُظهر fade الأحرف الجديدة بالتدريج؛ ويعرضها none مباشرة.
children(visible: string) => ReactNodeدالة تتلقى النص بالإيقاع المضبوط، مثلًا لعرض Markdown.
aselement'span'العنصر المراد عرضه.
onMotionComplete(text) => voidيعمل كلما لحق الكشف بـ text.
صفحة المكوّن ومنصة التجربة

المحتوى والحجم

MotionSwap

محتوى يتبدّل بتلاشٍ متقاطع بينما يتغيّر حجم العنصر.

Propالنوعالافتراضيالوصف
valueunknownهوية المحتوى؛ والقيمة الجديدة تبدّله. الأبناء النصية هي هويتها.
childrenReactNodeالمحتوى.
aselement'span'العنصر المراد عرضه.
inlinebooleanas === 'span'يتحجّم true حسب المحتوى (تسميات، أيقونات)؛ ويملأ false عرض الأب ويحرّك الارتفاع.
align'start' | 'center' | 'end''center'أين يقع المحتوى أثناء تغيّر الحجم.
effect'fade' | 'up' | 'down' | 'scale''fade'كيف يدخل المحتوى ويخرج: up يصعد، وdown يهبط، وscale يكبر.
transitionTransitionspringمنحنى توقيت { duration, easing } أو نابض { tempo: 'spring', spring }. تحتفظ النوابض بزخمها عند المقاطعة.
onMotionComplete(value) => voidيعمل حين تستقر الحركة.
صفحة المكوّن ومنصة التجربة

MotionHeight

يحرّك الارتفاع حسب المحتوى: الطي والفتح وتغيّرات المحتوى.

Propالنوعالافتراضيالوصف
openbooleantrueيطوي false إلى ارتفاع صفري؛ ويبقى المحتوى مركّبًا لكنه مخفي وخامل.
childrenReactNodeالمحتوى.
aselement'div'العنصر المراد عرضه.
transitionTransitionspringمنحنى توقيت { duration, easing } أو نابض { tempo: 'spring', spring }. تحتفظ النوابض بزخمها عند المقاطعة.
onMotionComplete(open) => voidيعمل مع open بعد استقرار الارتفاع.
صفحة المكوّن ومنصة التجربة

MotionPresence

يُبقي المحتوى مركّبًا أثناء دخوله وخروجه بحركة.

Propالنوعالافتراضيالوصف
presentboolean—إلزاميأظهر المحتوى أو أخفه. غيّر هذا بدل الإزالة.
enterPose{ opacity: 1, translateY: 0 }الوضعية في السكون.
exitPose{ opacity: 0, translateY: -12 }الوضعية التي يغادر بها المحتوى ويدخل منها.
aselement'div'العنصر المراد عرضه.
transitionTransitionspringمنحنى توقيت { duration, easing } أو نابض { tempo: 'spring', spring }. تحتفظ النوابض بزخمها عند المقاطعة.
onExitComplete() => voidيعمل بعد أن يغادر المحتوى ويُزال.
صفحة المكوّن ومنصة التجربة

الاختيار والصفحات

MotionHighlight

عناصر من البيانات مع تمييز واحد ينتقل إلى العنصر المختار.

Propالنوعالافتراضيالوصف
itemsreadonly T[]—إلزاميمصفوفة بياناتك.
valuekey | null—إلزاميمفتاح العنصر المميَّز؛ وnull يخفي التمييز.
onValueChange(key, item) => voidيعمل مع المفتاح والعنصر حين يُضغط عنصر.
getKey(item) => string | numberitem.idتعيد مفتاحًا فريدًا ثابتًا لعنصر. افتراضيًا item.id، أو العنصر نفسه للنصوص والأرقام.
renderItem(item, { selected, index }) => ReactNodeitem.labelيرسم عنصرًا؛ ويتلقى ما إذا كان مختارًا.
hoverbooleanfalseاتبع المؤشر فوق العناصر وعُد إلى value عند المغادرة (الويب).
itemAselement'button'العنصر لكل بند.
itemClassNamestringصنف لعنصر كل بند؛ ويضبط itemStyle نمطه المضمّن.
highlightClassNamestringصنف التمييز؛ ويضبط highlightStyle نمطه المضمّن.
transitionTransitionspringمنحنى توقيت { duration, easing } أو نابض { tempo: 'spring', spring }. تحتفظ النوابض بزخمها عند المقاطعة.
صفحة المكوّن ومنصة التجربة

MotionPager

صفحات قابلة للسحب من البيانات.

Propالنوعالافتراضيالوصف
itemsreadonly T[]—إلزاميمصفوفة بياناتك.
indexnumberالصفحة المعروضة. اتركها ليحتفظ مقلّب الصفحات بصفحته.
defaultIndexnumber0الصفحة الأولى حين لا يكون index متحكَّمًا به.
onIndexChange(index, item) => voidيعمل مع الفهرس والعنصر بمجرد أن تستقر سحبة أو مفتاح أو إيماءة عجلة.
getKey(item) => string | numberitem.idتعيد مفتاحًا فريدًا ثابتًا لعنصر. افتراضيًا item.id، أو العنصر نفسه للنصوص والأرقام.
renderItem(item, { index, active }) => ReactNodeitem.labelيرسم صفحة؛ ويتلقى فهرسها وما إذا كانت نشطة.
gapnumber0المسافة بين الصفحات بالبكسل.
itemClassNamestringصنف لعنصر كل بند؛ ويضبط itemStyle نمطه المضمّن.
transitionTransitionspringمنحنى توقيت { duration, easing } أو نابض { tempo: 'spring', spring }. تحتفظ النوابض بزخمها عند المقاطعة.
صفحة المكوّن ومنصة التجربة

القوائم

MotionList

قائمة ذات مفاتيح من البيانات لا تحرّك إلا ما تغيّر.

Propالنوعالافتراضيالوصف
itemsreadonly T[]—إلزاميمصفوفة بياناتك.
getKey(item) => string | numberitem.idتعيد مفتاحًا فريدًا ثابتًا لعنصر. افتراضيًا item.id، أو العنصر نفسه للنصوص والأرقام.
renderItem(item, index) => ReactNodeitem.labelيرسم عنصرًا.
aselement'div'العنصر المراد عرضه.
itemAselement'li' | 'div'العنصر لكل بند.
itemClassNamestringصنف لعنصر كل بند؛ ويضبط itemStyle نمطه المضمّن.
effect'rise' | 'fade' | 'scale' | 'slide''rise'كيف تدخل العناصر وتخرج.
distancenumber16مسافة rise وslide بالبكسل.
staggernumber40مللي ثوانٍ بين العناصر الداخلة.
order'forward' | 'reverse''forward'اتجاه التتابع.
presentbooleantrueيحرّك false كل العناصر خارجة مع الحفاظ على التخطيط؛ ويعيدها true.
initialbooleantrueشغّل الدخول حين تُركَّب القائمة.
playKeystring | numberتغييره يعيد تشغيل الدخول.
transitionTransitionspringالانتقال للعناصر الداخلة والخارجة.
layoutTransitionTransitionspringالانتقال للعناصر المنزلقة إلى مواضع جديدة.
صفحة المكوّن ومنصة التجربة

MotionReorder

اسحب لإعادة ترتيب قائمة أو شبكة، مع تحريك بلوحة المفاتيح.

Propالنوعالافتراضيالوصف
itemsreadonly T[]العناصر، حين تتحكم أنت في الترتيب.
defaultItemsreadonly T[][]العناصر الأولى، حين يحتفظ المكوّن بالترتيب.
onItemsChange(items, { reason, key }) => voidيعمل مع الترتيب الجديد وما إذا جاء من سحب أو إفلات أو لوحة المفاتيح.
getKey(item) => string | numberitemتعيد مفتاحًا فريدًا لعنصر. افتراضيًا العنصر نفسه.
renderItem(item, { index, dragging }) => ReactNodeitem.labelيرسم عنصرًا؛ ويتلقى فهرسه وما إذا كان يُسحب.
reorder'live' | 'drop''live'يحرّك live العناصر الأخرى أثناء السحب؛ وينتظر drop الإفلات.
layout'list' | 'grid''grid'list أو grid.
columnsnumber3الأعمدة في الشبكة.
gapnumber12المسافة بين العناصر بالبكسل.
disabledbooleanfalseيعطّل السحب.
durationnumber260مللي ثوانٍ لتنحّي العناصر.
itemClassNamestringصنف لعنصر كل بند؛ ويضبط itemStyle نمطه المضمّن.
صفحة المكوّن ومنصة التجربة

الإيماءات

MotionSwipe

صف يُظهر الإجراءات بسحب أفقي ويمكن سحبه بعيدًا.

Propالنوعالافتراضيالوصف
childrenReactNodeمحتوى الصف.
startActionsReactNodeتظهر في بداية السطر حين يُسحب الصف نحو النهاية.
endActionsReactNodeتظهر في نهاية السطر حين يُسحب الصف نحو البداية.
dismiss'start' | 'end' | 'both'الجوانب التي يزيل فيها السحب الطويل أو الرمية الصف.
onDismiss(side) => voidيعمل بعد انزلاق الصف خارجًا وطيّه؛ أزل العنصر من بياناتك هنا.
onOpenChange(side | null) => voidيعمل مع الجانب المفتوح، أو null حين يُغلق الصف.
disabledbooleanfalseيعطّل السحب.
contentClassNamestringصنف محتوى الصف؛ ويضبط contentStyle نمطه المضمّن.
transitionTransitionspringمنحنى توقيت { duration, easing } أو نابض { tempo: 'spring', spring }. تحتفظ النوابض بزخمها عند المقاطعة.
صفحة المكوّن ومنصة التجربة

MotionHold

اضغط مطوّلًا للتأكيد؛ والإفلات المبكر يعيده إلى الوراء.

Propالنوعالافتراضيالوصف
childrenReactNodeتسمية الزر.
onConfirm() => voidيعمل بعد اكتمال الضغط المطوّل.
durationnumber1200مللي ثوانٍ يجب أن يستمر فيها الضغط.
disabledbooleanfalseيعطّل الزر.
fillClassNamestringصنف التعبئة المتنامية؛ ويضبط fillStyle نمطها المضمّن.
صفحة المكوّن ومنصة التجربة

الطبقات العلوية

MotionSheet

لوحة سفلية أو علوية أو درج جانبي مع نقاط توقف.

Propالنوعالافتراضيالوصف
openbooleanfalseهل اللوحة ظاهرة.
onOpenChange(open) => voidيعمل مع false حين تُغلق اللوحة بالسحب أو النقر أو Escape.
detents(number | 'content')[]['content']أحجام السكون: كسر من الشاشة، أو بالبكسل، أو 'content'.
detentnumberفهرس نقطة التوقف المتحكَّم به.
defaultDetentnumber0فهرس نقطة التوقف المستخدم عند الفتح من دون detent.
onDetentChange(index) => voidيعمل مع فهرس نقطة التوقف التي تستقر عليها اللوحة.
side'bottom' | 'top' | 'start' | 'end''bottom'الحافة التي تأتي منها اللوحة.
modalbooleantrueيضيف خلفية، ويُبقي التركيز داخلها، ويجعل الصفحة خاملة.
dismissiblebooleantrueالسحب بعد أصغر نقطة توقف والخلفية وEscape تغلقها.
backdropClassNamestringصنف الخلفية؛ ويضبط backdropStyle نمطها المضمّن.
transitionTransitionspringمنحنى توقيت { duration, easing } أو نابض { tempo: 'spring', spring }. تحتفظ النوابض بزخمها عند المقاطعة.
صفحة المكوّن ومنصة التجربة

MotionZoom

صورة تتكبّر من مكانها لتملأ الشاشة.

Propالنوعالافتراضيالوصف
srcstringالصورة المعروضة في مكانها.
zoomSrcstringصورة أكبر تُعرض بمجرد تحميلها؛ احتفظ بنسبة الأبعاد نفسها.
marginnumber24المسافة المتروكة حول الصورة المكبّرة بالبكسل.
disabledbooleanfalseيعطّل التكبير.
onZoomChange(zoomed) => voidيعمل مع true عند التكبير وfalse عند الإغلاق.
backdropStyleCSSPropertiesالنمط المضمّن للخلفية.
transitionTransitionspringمنحنى توقيت { duration, easing } أو نابض { tempo: 'spring', spring }. تحتفظ النوابض بزخمها عند المقاطعة.
صفحة المكوّن ومنصة التجربة

التقدّم

ProgressBar

خط تقدّم متحكَّم به مع حالة غير محدّدة.

Propالنوعالافتراضيالوصف
valuenumber | nullالتقدّم من 0 إلى max؛ وnull غير محدّد.
maxnumber100القيمة التي تعني الاكتمال.
colorstring'currentColor'لون التعبئة.
trackColorstring'#e7ece9'لون المسار.
thicknessnumber8سماكة الخط بالبكسل.
direction'ltr' | 'rtl''ltr'التعبئة من اليسار (ltr) أو من اليمين (rtl).
transitionTransitionspringمنحنى توقيت { duration, easing } أو نابض { tempo: 'spring', spring }. تحتفظ النوابض بزخمها عند المقاطعة.
صفحة المكوّن ومنصة التجربة

ProgressRing

حلقة تقدّم متحكَّم بها مع حالة غير محدّدة.

Propالنوعالافتراضيالوصف
valuenumber | nullالتقدّم من 0 إلى max؛ وnull غير محدّد.
maxnumber100القيمة التي تعني الاكتمال.
sizenumber96القطر بالبكسل.
thicknessnumber8سماكة الحلقة بالبكسل.
colorstring'currentColor'لون القوس.
trackColorstring'#e7ece9'لون المسار.
childrenReactNodeتسمية تظهر في المنتصف.
transitionTransitionspringمنحنى توقيت { duration, easing } أو نابض { tempo: 'spring', spring }. تحتفظ النوابض بزخمها عند المقاطعة.
صفحة المكوّن ومنصة التجربة

الانتقالات

motionTokens

قيم جاهزة لأي خاصية transition.

Propالنوعالافتراضيالوصف
duration{ instant, fast, normal, slow }0 · 140 · 280 · 520مدد بالمللي ثانية.
easing{ ease, easeOut, expoOut, backOut }Transitionانتقالات توقيت بمدة ومنحنى مسمّى.
spring{ quick, basic, gentle, bouncy }Transitionانتقالات نابضة، من السريعة الحازمة إلى اللطيفة المرتدّة.
الانتقالات
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} />
    </>
  );
}

بحث

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