انتقال وفلتر CSS

انتقال CSS

الانتقال هو أبسط طريقة لتحريك CSS — حدد أي خصائص تتغير بسلاسة، وكم من الوقت، وأي توقيت.

خصائص الانتقال

الخاصية القيم الغرض
transition-property all، color، transform أي خصائص تتحرك
transition-duration 0.3s، 500ms مدة الانتقال
transition-timing-function ease، linear، ease-in، ease-out منحنى السرعة
transition-delay 0s، 0.2s تأخير قبل البدء
transition all 0.3s ease اختصار

مثال

HTML
<style>
.button {
  background: #3498db;
  color: white;
  padding: 10px 20px;
  border: none;
  border-radius: 4px;
  transition: all 0.3s ease;
}
.button:hover {
  background: #2980b9;
  transform: scale(1.05);
}
</style>
<button class="button">حوّني</button>
▶ جرّب الكود

فلتر CSS

الفلاتر تطبق تأثيرات بصرية على العناصر:

دوال الفلتر

الدالة القيم التأثير
blur() 5px، 10px ضباب غاوسي
brightness() 0.5، 1.5 أكثر قتامة/إضاءة
contrast() 0.5، 2 أقل/أكثر تبايناً
grayscale() 0%، 100% كمية التدرج الرمادي
hue-rotate() 90deg، 180deg تدوير اللون
invert() 0%، 100% عكس الألوان
opacity() 0.5، 1 شفافية
saturate() 0.5، 2 أقل/أكثر تشبعاً
sepia() 0%، 100% لون سيبيا

مثال

HTML
<style>
.image {
  filter: grayscale(100%);
  transition: filter 0.3s ease;
}
.image:hover {
  filter: grayscale(0%);
}
</style>
<img class="image" src="/assets/images/tutorials/html-example-photo.webp" alt="صورة">
▶ جرّب الكود

دمج الانتقال + الفلتر

مثال

HTML
<style>
.card {
  filter: blur(2px) brightness(0.8);
  transition: filter 0.5s ease;
}
.card:hover {
  filter: blur(0) brightness(1);
}
</style>
<div class="card">hover للوضوح والسطوع</div>
▶ جرّب الكود

❓ أسئلة شائعة

س ما الفرق بين الانتقال والرسوم المتحركة؟
ج الانتقال يحتاج مُشغّل (مثل hover) ويذهب فقط من الحالة A إلى الحالة B — بدون حلقات. الرسوم المتحركة لا تحتاج مُشغّل، يمكنها التشغيل التلقائي، تدعم إطارات رئيسية متعددة وحلقات وعكس. التفاعلات البسيطة تستخدم الانتقال؛ تأثيرات التشغيل التلقائي المعقدة تستخدم الرسوم المتحركة.
س هل جميع خصائص CSS يمكن انتقالها؟
ج لا. بعض الخصائص فقط تدعم الانتقالات. أفضل أداء مع `transform` و`opacity` — المتصفحات يمكنها تسريع GPU. لا تُحرّك `width` و`height` و`top` و`left` — يسبب إعادة تدفق وتقطيعاً.
س هل filter: blur() يسبب مشاكل أداء؟
ج نعم. blur يستهلك GPU بكثافة — ضباب مساحة كبيرة يسبب انخفاض الأداء. الأفضل استخدام blur على عناصر صغيرة فقط، أو فقط في تفاعلات قصيرة مثل hover. لا تطبق blur على فيديوهات أو صور كبيرة.

📖 ملخص

📝 تمارين

  1. أنشئ زراً يغيّر لون الخلفية في 0.3s عند hover، مع زيادة طفيفة في المقياس.
  2. أنشئ معرض صور: الصور تُظهر تدرجاً رمادياً افتراضياً، تصبح ملونة بسلاسة عند hover.
  3. أنشئ "رسم متحرك لخط سفلي للتنقل" — الخط السفلي يتمدد من الوسط عند hover.
  4. استخدم filter + transition لجعل الصور أكثر إضاءة وضبابية طفيفة عند hover.
100%