GH GambleHub

طراحی حرکت و انیمیشن های رابط

1) چرا انیمیشن در محصول

انیمیشن درباره مرور زمان است. آیا او:
  • روابط علی را توضیح می دهد (جایی که ناپدید شد، جایی که عنصر از آن آمده است)،
  • توجه به عمل اصلی،
  • نتیجه (بازخورد) را تایید می کند و بار شناختی را کاهش می دهد،
  • تغییرات قابل پیش بینی و «ملموس» است.

قانون شماره 1: معنی> سبک. هر انیمیشن به این سوال پاسخ می دهد که «چه اتفاقی افتاده است و چگونه به من مربوط می شود ؟» ».

2) اصول اساسی

1. سلسله مراتب حرکت: ظروف ابتدا حرکت می کنند، سپس محتویات، سپس قطعات.
2. ثبات: الگوهای مشابه برای اقدامات مشابه.

3. صرفه جویی: حداقل خواص، حداقل فریم ؛ کوتاه تر و واضح تر

4. فیزیک واقع گرایانه: شتاب در آغاز، کاهش سرعت در پایان ؛ هيچ «عوضي» اي وجود نداره.
5. برگشت پذیری: «عقب» احساس آینه مانند «جلو».
6. قابلیت دسترسی: به تنظیمات سیستم کاهش انیمیشن احترام بگذارید.

3) مدت زمان و منحنی (توصیه ها)

3. 1 مدت زمان (دسکتاپ/تلفن همراه)

شناور: 120-180 میلی ثانیه

تمرکز/فشرده: 80-120 мс

نکته ابزار/نان تست: ورودی 180-240ms، خروجی 120-160ms

مدول/درور: 200-320 میلی ثانیه

انتقال صفحه نمایش: 240-360 میلی ثانیه

پیمایش/اختلاف منظر: ≤ 200ms در هر بخش، جلوگیری از حلقه های بی نهایت

3. 2 منحنی

اصلی: 'cubic-bezier (0. 2, 0. 0, 0. 2، 1) - سرعت «مواد» طبیعی

ورودی سریعتر، خروجی نرمتر: 'cubic-bezier (0. 05, 0. 7, 0. 1, 1)`

کشش (نادر، لهجه): 'مکعب bezier (0. 2, 0. 8, 0. 2, 1. 2) 'با حد مجاز ≤ 8px/8 °

قانون: از درونیابی خطی برای حرکات و کدورت همزمان استفاده نکنید - احساس «مکانیکی بودن».

4) رقص انتقال

ظاهر: مقیاس نور 0. 98→1. 0 + محو شدن در، 8-16 پیکسل افست در امتداد محور مبدا.
ناپدید شدن: سفارش معکوس، سریعتر از ورود (− 20-30٪).
تبدیل/تغییر زبانه ها: به طور کلی «پایه» (ظرف) 16-24 پیکسل منتقل می شود ؛ برگه فعال قبل از شروع حرکت مشخص شده است.
لیست ها: آبشار را شل کنید (20-40 میلی ثانیه/عنصر، بیش از 6-8 عنصر).

5) میکرو تعاملات (الگوهای)

دکمه (شناور/مطبوعات): سایه + زیر صفحه نمایش نور/مقیاس 0. 98; پرش های فشرده ≤ 80 میلی ثانیه.
تمرکز: حلقه کنتراست بدون تاری ؛ به جای درخشش، ضخامت/شفافیت را تحریک کنید.
ورودی ها: نور حمل/میدان در تمرکز ؛ خطاها - تکان دادن ≤ 6 پیکسل، ≤ 140 میلی ثانیه، 1 چرخه.
زدن ضامن/جعبه چک: ضربه محکم و ناگهانی به موقعیت نهایی، تاخیر بیش از 60-80 MS کلیک کنید.
اسکلت/بار: روشن و خاموش شدن 1200-1600 میلی ثانیه، دامنه روشنایی ≤ 20٪، بدون چشمک می زند تیز.

6) وضعیت محتوا

در حال بارگذاری → موفقیت/خالی/خطا: یک «کانال» حرکت ؛ جهت های مختلف را مخلوط نکنید.
نان تست/هشدارها: از طرف منبع رویداد وارد شوید (به عنوان مثال پایین سمت راست برای اقدامات کاربر).

برای تازه کردن بکشید: تنش بهار الاستیک ؛ زمان بازگشت ≤ 250 میلی ثانیه

7) دسترسی (A11y) و امنیت

Support «prefers-reduced-motion: reduce»: حرکات را با محو شدن/مقیاس ≤ 1٪ یا انتقال استاتیک جایگزین کنید.
اجتناب از فلاش> 3 در ثانیه و فلاش کنتراست بزرگ (صرع حساس به نور).
از پارالاکس/زوم قوی در کاربران با سابقه بیماری حرکت استفاده نکنید. گزینه Disconnect را انتخاب کنید.
سبک های فوکوس همیشه بدون انیمیشن قابل مشاهده هستند (نه فقط رنگ/حرکت).

8) عملکرد (60 FPS به عنوان هدف)

پویانمایی فقط کدورت و تبدیل) ترجمه/مقیاس/چرخش (؛ اجتناب از «بالا/چپ/عرض/ارتفاع».
شامل ترکیب: «transform: translateZ (0)» یا «will-change: transform, opacity».
به حداقل رساندن رسم مجدد با متحرک سایه تاری بزرگ و فیلتر بر روی عناصر متعدد.
انتقال های بزرگ را به دسته ها بشکنید از requestAnimationFrame استفاده کنید.
برای لیست ها، مجازی سازی خارج از صفحه/دوباره طرح.

9) نشانه های حرکت در سیستم طراحی

json
{
"motion": {
"duration": { "xs": 100, "sm": 160, "md": 220, "lg": 280, "xl": 340 },
"easing": {
"standard": "cubic-bezier(0. 2, 0. 0, 0. 2, 1)",
"emphasis": "cubic-bezier(0. 05, 0. 7, 0. 1, 1)",
"decelerate": "cubic-bezier(0. 0, 0. 0, 0. 2, 1)",
"accelerate": "cubic-bezier(0. 4, 0. 0, 1, 1)"
},
"stagger": { "listItem": 30, "maxItems": 8 }
}
}

Именование: 'motion. {duration' easing 'stagger}. {role} -' hover ',' focus ',' overlayIn ',' pageTransition ',' list 'item'.

10) پیاده سازی (CSS/JS/React)

متغیرهای CSS:
css
:root {
--motion-dur-sm: 160ms;
--motion-dur-md: 220ms;
--motion-ease: cubic-bezier(0. 2, 0, 0. 2, 1);
}
@media (prefers-reduced-motion: reduce) {
{ animation: none! important; transition-duration: 0. 01ms! important; }
}
کامپوننت (به عنوان مثال Framer Motion):
tsx import { motion, AnimatePresence } from "framer-motion";

export function Modal({ open, children }) {
return (
<AnimatePresence>
{open && (
<motion. div initial={{ opacity: 0 }}
animate={{ opacity: 1, transition: { duration: 0. 22 } }}
exit={{ opacity: 0, transition: { duration: 0. 16 } }}
className="fixed inset-0 bg-black/50"
>
<motion. div initial={{ y: 16, scale: 0. 98, opacity: 0 }}
animate={{ y: 0, scale: 1, opacity: 1, transition: { duration: 0. 24, ease: [0. 2,0,0. 2,1] } }}
exit={{ y: 8, scale: 0. 99, opacity: 0, transition: { duration: 0. 18 } }}
className="m-auto max-w-lg rounded-2xl bg-white p-6"
>
{children}
</motion. div>
</motion. div>
)}
</AnimatePresence>
);
}

Lottie/SVG: استفاده برای حالت های خالی تصویری و onboarding ؛ نه برای کنترل انتقادی. بهینه سازی و کش

11) الگوهای بارگیری

اسکلت به جای یک اسپینر که در آن ساختار محتوا شناخته شده است.
پیشرفت: نوار قطعی اگر پیشرفت شناخته شده است ؛ نامشخص - با سرعت یکنواخت، بدون «حرکات تند و سریع».
اجتناب از «شناور» اسکلت در هنگام بازسازی - ابعاد قفل.

12) انتقال صفحه/صفحه

نگه داشتن نقطه توجه (انتقال عنصر مشترک) - کارت «گسترش یافته» به بخش.
ناوبری «عمیق» به جلو/راست/بالا، «عقب» - عقب ؛ جهت برای پلت فرم یکسان است.
بستر پس زمینه به 40-60٪ در پوشش تیره می شود.

13) ویژگی های iGaming

چرخش/آشکار: یک شتاب کوتاه (≤ 200 میلی ثانیه) + چرخش یکنواخت + تضعیف نرم ؛ ممنوعیت چرخههای نامحدود بدون عمل.
برنده/برنده تمام پولها: چلپ چلوپ نور ≤ 500 میلی ثانیه، بدون بارق ؛ صدای دوگانه در حجم کم ؛ متن پیروزی قابل خواندن است (AAA در مقابل).
مسابقات/رتبه بندی: افزایش حساب - شمارنده با اعداد جدولی و گام نور 40-60 ms/واحد (دسته)، بدون طرح «جهش».
بازی مسئولانه: اطلاعیه ها و محدودیت ها بدون اثرات منحرف کننده ؛ انیمیشن حداقل است، تاکید بر خوانایی.

14) ضد الگوهای

تاخیر> 120ms به پاسخ کلیک کنید.
«آسانسور» از کدورت + مقیاس 0. 9→1. 05→1. 0 با پرش بیش از حد برای هر چیز کوچک.
اختلاف منظر پس زمینه که با اسکرول در تضاد است.
بی نهایت سوسو زدن/پالس.
ویژگی های طرح/رنگ متحرک («ارتفاع»، «چپ»، «فیلتر: تاری ()») در مجموعه ای از عناصر.
منحنی های غیر ثابت و مدت زمان برای اقدامات مشابه.

15) فرآیند و QA

در طراحی:
  • نمونه های اولیه با زمان بندی/منحنی ؛ رقص در سطح قاب.
  • کاتالوگ نشانه های حرکت و نمونه هایی برای اجزای سازنده.
در حال توسعه:
  • تست های دید/حالت واحد (انتقال به عنوان انتظار می رود).
  • تست های بصری (عکس های فوری از پایان انیمیشن ها).
  • عملکرد/جدول زمانی در صحنه با حداکثر بار.
چک لیست:
  • 'prefers-reduced-motion' پشتیبانی می شود.
  • فقط تبدیل/کدورت.
  • مدت زمان و منحنی مربوط به نشانه.
  • بدون فلاش> 3/ثانیه و بارق قوی.
  • اسکلت به جای اسپینر در صورت امکان.
  • تغییرات برگشت پذیر و قابل پیش بینی است.

16) مستندات در سیستم طراحی

نشانه حرکت: مدت زمان/کاهش/تلو تلو خوردن با نمونه.
«الگوهای انتقال»: مودال ها، لیست ها، زبانه ها، صفحات.
«A11y و عملکرد»: راهنمای کاهش حرکت و ترکیب.
«انجام دهید/انجام ندهید»: کلیپ های کوتاه با نمونه های خوب/بد.

خلاصه ای کوتاه

طراحی حرکت زبان علت و معلول است. نگه داشتن زمان کوتاه، منحنی سازگار و خواص ارزان برای رندر. احترام به در دسترس بودن، نشانه های سند و بررسی عملکرد. سپس انیمیشن UX را تقویت می کند و با سرعت و وضوح رابط کاربری تداخل نخواهد داشت.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.