مولد مرشح CSS

التالي

تطبّق خاصية filter في CSS تأثيرات معالجة الصور، مثل التمويه والسطوع والتباين والتشبع، على أي عنصر وليس الصور فقط. تحدث الأخطاء غالبًا عند ربط عدة فلاتر وضبط الوحدات. يبني هذا المولّد إعلان filter للوظائف الخمس الأكثر شيوعًا: التمويه والسطوع والتباين والتدرج الرمادي والتشبع. أدخل قيمك وانسخ كود CSS الناتج.

كيفية بناء سلسلة فلاتر

  1. 1

    أدخل القيم

    التمويه بالبكسل؛ أما السطوع والتباين والتدرج الرمادي والتشبع فبالنسب المئوية.

  2. 2

    افهم المقياس

    السطوع والتباين عند 100% يعني عدم التغيير، وعند 0% يصبح العنصر أسود أو رماديًا. يتراوح التدرج الرمادي من 0% (ألوان كاملة) إلى 100% (بدون ألوان)؛ والتشبع عند 100% يبقي الألوان كما هي.

  3. 3

    أنشئ كود CSS

    اضغط على الزر فيُخرج الأداة قاعدة `filter` المركبة مع الوظائف الخمس جميعها.

  4. 4

    انسخ القاعدة

    انسخ النتيجة والصقها في ملف الأنماط.

  5. 5

    تحقق من الترتيب

    تُطبَّق الوظائف من اليسار إلى اليمين. إذا بدا التأثير مختلفًا عن المتوقع، فعدّل القيم.

وظائف التصفية

وظيفة الوحدة تأثير
blur() بكسل طمس غاوسي. 0 = لا يوجد طمس
brightness() % أو عشري 100% = لا تغيير، 0% = أسود، 200% = مزدوج
contrast() % أو عشري 100% = لا تغيير، 0% = رمادي، 200% = مزدوج
saturate() % أو عشري 100% = لا تغيير، 0% = تدرج رمادي
grayscale() % أو عشري 0% = لا تغيير، 100% = غير مشبع بالكامل
sepia() % أو عشري 0% = لا يوجد تغيير، 100% = بني داكن بالكامل
hue-rotate() درجة 0 درجة = لا تغيير. يدوّر عجلة درجات اللون
invert() % أو عشري 0% = لا يوجد تغيير، 100% = مقلوب بالكامل
opacity() % أو عشري نفس خاصية opacity
drop-shadow() x y طمس اللون مثل box-shadow ولكنه يتبع العتامة/مسار المقطع

ترتيب التسلسل مهم

يطبّق filter: brightness(0.5) saturate(2) السطوع أولاً، ثم التشبع، فيتراكب المرشحان معًا.

يطبّق filter: saturate(2) brightness(0.5) التشبع أولاً. ونظرًا لأن الصورة تكون أكثر سطوعًا قبل تعتيمها، يصبح تشبع اللون أكثر وضوحًا.

الفرق البصري دقيق لكنه حقيقي. جرّب كلا الترتيبين عندما لا تبدو سلسلة المرشحات بالشكل الذي توقعته.

وصفات شائعة

/* مظهر صورة باهتة */
filter: contrast(0.9) saturate(0.85) brightness(1.05);

/* عتيق / باهت */
filter: sepia(0.3) contrast(1.1) brightness(0.95);

/* تقريب ثنائي اللون */
filter: grayscale(1) sepia(1) hue-rotate(180deg) saturate(1.5);

/* تعتيم الصورة الرئيسية */
filter: brightness(0.6);

/* حالة معطّلة */
filter: grayscale(1) opacity(0.6);

/* طبقة زجاج مصنفر */
filter: blur(12px) saturate(1.3);

مرشح الخلفية للزجاج المصنفر

ينطبق filter على العنصر نفسه؛ ينطبق backdrop-filter على ما يوجد خلف عنصر شبه شفاف - وهو تأثير الزجاج المصنفر الذي شاع على نظام iOS.

.modal-backdrop {
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(20px) saturate(1.2);
}

الدعم: جميع المتصفحات الحديثة؛ أخيرًا يدعمه Firefox بدون علامة في 103+.

ملاحظات الأداء

  • يُعد blur() أغلى المرشحات لأنه يتطلب التفاف كل بكسل مع نواة المعالجة. التمويه بمقدار 30 بكسل على صورة رئيسية بدقة 4K يكلّف إطارات فعلية.
  • grayscale، sepia، brightness وما شابه ذلك عبارة عن تحويلات ألوان لكل بكسل - رخيصة.
  • يتم تسريع المرشحات بواسطة وحدة معالجة الرسومات في المتصفحات الحديثة، ولكن الرسوم المتحركة blur() لا تزال تتعثر على الأجهزة المنخفضة الجودة.
  • يفضل will-change: filter قبل الرسوم المتحركة.

filter: drop-shadow() مقابل box-shadow

  • يتبع box-shadow مربع حدود العنصر (يتوافق مع border-radius).
  • يتبع filter: drop-shadow() وحدات البكسل غير الشفافة للعنصر، مما يعني أنه يتتبع أشكال clip-path وشفافية PNG ومسارات SVG.

بالنسبة للظلال الموجودة على الصور المقطوعة أو الشفافة، استخدم drop-shadow. بالنسبة للبطاقات والصناديق القياسية، يعتبر box-shadow أسرع.

الأسئلة الشائعة

نعم، يُطبَّق المرشح على العنصر وجميع عناصره الفرعية كمجموعة واحدة. فإذا طبّقت المرشح على عنصر أب، يندرج تحته أبناؤه كذلك. ولتطبيق المرشح على خلفية العنصر الأب فقط، ضع المحتوى في سياق تكديس منفصل أو استخدم backdrop-filter.

لأن التمويه يُطبَّق على العنصر بأكمله بما في ذلك النص المعروض. لا توجد طريقة لتمويه الخلفية مع الحفاظ على وضوح النص باستخدام filter العادي وحده. استخدم backdrop-filter على طبقة شبه شفافة، مع إبقاء النص خارج العنصر الذي يُطبَّق عليه المرشح.

نعم، جميع وظائف المرشحات قابلة للتحريك. وانتبه إلى أداء التمويه على الهاتف المحمول؛ فتحريك نصف قطر التمويه مكلف بشكل ملحوظ. أما grayscale وsepia وbrightness فتُحرَّك بتكلفة منخفضة.

نعم، ينطبق CSS filter على عناصر SVG بنفس طريقة تطبيق أي عنصر DOM آخر. يحتوي SVG أيضًا على نظام عناصر <filter> الأكثر ثراءً، وهو أكثر قوة ولكنه أكثر تفصيلاً.

أدوات ذات صلة

الأداة متاحة بلغات أخرى