أداة الحركات Animations

جرّب بنفسك

الإعدادات

CSS الناتج

@keyframes ...

ملاحظة: استخدم الحركة بذكاء — مثال: زر عرض خاص/تنبيه/عنصر مهم.

المعاينة

BOX

جرّب تغيير النوع والمدة والتكرار

ما هي الحركات (Animations)؟

الحركة في CSS تصنع تسلسلًا من التغيّرات يعمل تلقائيًا — دون حاجة إلى تفاعل المستخدم. بينما ينتقل transition بين حالتين عند حدث، تمرّ الحركة عبر عدّة مراحل (keyframes) وقد تتكرّر إلى ما لا نهاية.

تُبنى الحركة على جزأين: @keyframes يحدّد المراحل (0% كذا، 50% كذا، 100% كذا)، ثم animation يطبّقها على العنصر ويحدّد مدّتها وتكرارها.

🔑 اربطها بشيء تعرفه

الانتقال كقفزة من نقطة إلى نقطة. أمّا الحركة فكفيلم قصير: تحدّد لقطات المفتاح (بداية، وسط، نهاية) ويملأ المتصفّح ما بينها. مثل الرسوم المتحرّكة القديمة: ترسم الإطارات المفتاحية ويُكمَل الباقي.

متى تستخدمها؟

مؤشّرات التحميل (Spinners)

دوران مستمرّ يخبر المستخدم أن شيئًا يحدث.

لفت الانتباه

نبض خفيف على زرّ مهم أو إشعار جديد.

الظهور عند التمرير

انزلاق العناصر إلى مكانها حين تظهر على الشاشة.

التأثيرات الترحيبية

حركة دخول لطيفة لعناصر الصفحة الرئيسية.

خصائص الحركة

الخاصية ماذا تفعل؟ قيم شائعة
@keyframes يعرّف مراحل الحركة. from/to أو 0%..100%
animation-name اسم الـ keyframes المطبّق. spin / pulse
animation-duration مدّة الدورة الواحدة. 1s / 2s
animation-iteration عدد التكرار. infinite / 3
animation-timing إيقاع الحركة. ease / linear

مثال عملي

مؤشّر تحميل دوّار:

@keyframes spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
.spinner {
  animation: spin 1s linear infinite;
}

المراحل بسيطة (من 0 إلى 360 درجة)، وinfinite تجعلها تدور بلا توقّف، وlinear تبقي السرعة ثابتة كمحرّك حقيقي. غيّر 1s إلى 0.5s فيسرع الدوران.

أخطاء شائعة

كيف تستفيد من الأداة أعلاه؟

بدّل مدّة الحركة وعدد التكرار ونوع الإيقاع في الأداة أعلاه، وشاهد أثر كلٍّ منها. جرّب الحركات المختلفة (دوران، نبض، اهتزاز) لتفهم كيف تُبنى المراحل.

أسئلة شائعة

استعمل animation حين تحتاج حركة تلقائية (بلا تفاعل)، أو متعدّدة المراحل، أو متكرّرة (مؤشّر تحميل، نبض). واستعمل transition للتغيّر البسيط بين حالتين عند حدث (hover).
اضبط animation-iteration-count: 1 (وهو الافتراضي). استعمل infinite فقط للحركات المستمرّة كمؤشّرات التحميل.
الحركات على transform وopacity سريعة جدًا (يعالجها كرت الشاشة). أمّا تحريك خصائص كالعرض والارتفاع والمواضع فأثقل وقد يسبّب تقطّعًا. الْزَم transform وopacity ما أمكن.