مولّد ظلّ الصندوق

كدّس عدة ظلال في قاعدة CSS واحدة وراقب العمق يُبنى، بدل تخمين الأرقام.

تتم المعالجة على جهازك — بلا رفع

termiva shadow --layers 2
طبقة 1
0px
1px
2px
0px
6%
طبقة 2
0px
8px
20px
-6px
12%
2 طبقة

الظلّ الواحد يبدو ملصقًا؛ والاثنان أو الثلاثة تبدو جسمًا فوق سطح. والوصفة طبقة ضيّقة شبه معتمة لحافّة التماسّ وأخرى عريضة باهتة بانتشار سالب للضوء المحيط. وذلك هو الافتراضي هنا — وهو سبب أن الواجهات المبنيّة من ضبابية واحدة بمقدار 10 بكسل تبدو مسطّحة دائمًا.

طبقة 2داخلي 0الطول 93 حرفًالا شيء مرفوع

كيف تولّد ظلّ صندوق

  1. اضبط المزالق.
  2. أضف طبقة ثانية للعمق.
  3. انسخ القاعدة.

كيف يعمل

للظلّ أربعة أرقام ولون. فالأولان يحرّكانه أفقيًا وعموديًا. والضبابية تنعّم الحافّة. وهي حجم الانتقال لا حجم الظلّ. والانتشار يكبّر الظلّ أو يصغّره قبل تطبيق الضبابية، والانتشار السالب هو الحيلة وراء ظلّ ناعم لا يتسرّب من الجانبين.

والظلّ الواحد هو سبب بدو الواجهات مسطّحة. فالضوء الحقيقي ينتج أثرين متمايزين: ظلّ تماسّ داكن ضيّق تحت الجسم مباشرةً، وظلّ محيط باهت عريض حوله. و0 4px 10px rgba(0,0,0,0.2) المفرد ليس أيًّا منهما، ويُقرأ ملصقًا لا جسمًا.

والافتراضي هنا هو وصفة الطبقتين: طبقة بـ1 بكسل وعتامة 6% لحافّة التماسّ، وطبقة بـ20 بكسل وعتامة 12% مع انتشار −6 بكسل للمحيط. أطفئ واحدة وأعدها فيكون الفرق فوريًا.

والداخلي يرسم الظلّ داخل الصندوق — الأرقام نفسها، مدفوعةً إلى الداخل. وهكذا يُصنع زرّ مضغوط وحقل إدخال غائر وحفرة. وظلّ داخلي صغير على حقل نصّ هو غالبًا ما يجعل نموذجًا يبدو مدروسًا.

مثال عملي

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

لوّن الظلّ ولا تستعمل الأسود. فالأسود الصافي بعتامة 20% يبدو دائمًا متّسخًا قليلًا فوق خلفية ملوّنة. خذ أدكن لون من لوحتك بدلًا منه — أخضر داكن جدًّا تحت واجهة مصبوغة بالأخضر — فيُقرأ الظلّ ظلًّا لا لطخة. ومنتقي الألوان هنا لهذا بالضبط.

والضوء يأتي من أعلى. أبقِ الإزاحة العمودية موجبة والأفقية عند صفر ما لم يكن لديك سبب. فكل واجهة رآها المستخدم يومًا مضاءة من الأعلى، والظلّ الملقى جانبًا يبدو خاطئًا قبل أن يستطيع أحد قول لماذا.

وراقب الكلفة. فنصف قطر ضبابية كبير على عنصر كبير من أغلى ما يرسمه متصفّح، وتحريك box-shadow يعيد الرسم في كل إطار. فإن احتجت ظلًّا يكبر عند التحويم، فحرّك عتامة عنصر زائف يحمل أصلًا الظلّ الأكبر بدلًا من ذلك.

والانضباط نفسه ينطبق على الزوايا — مولّد نصف القطر هو النصف الآخر من جعل صندوق يبدو بطاقةً مادّية.

أسئلة

ما الفرق بين الضبابية والانتشار؟

الضبابية هي مدى نعومة الحافّة. والانتشار يكبّر الظلّ كله أو يصغّره قبل التضبيب. والانتشار السالب مع ضبابية كبيرة يعطي ظلًّا ناعمًا يبقى تحت العنصر.

لماذا يبدو ظلّي رخيصًا؟

طبقة واحدة وأسود صافٍ، في الغالب الأعمّ. استعمل اثنتين — واحدة ضيّقة داكنة وأخرى عريضة باهتة — ولوّن اللون نحو لوحتك لا نحو ‎#000‎.

كم طبقة أستعمل؟

اثنتان لمعظم الأشياء، وثلاث لشيء يحتاج أن يطفو فوق كل شيء آخر. وبعد ذلك تختفي العوائد ولا تختفي كلفة الرسم.

ماذا يفعل inset؟

يرسم الظلّ داخل العنصر بدل خارجه، وهكذا تُصنع الأزرار المضغوطة والمدخلات الغائرة.

هل أحرّك ظلّ الصندوق؟

تستطيع، لكنه يعيد الرسم في كل إطار. ولأثر تحويم، ضع الظلّ الأكبر على عنصر زائف وحرّك عتامته — فذلك يعمل على المركِّب.

هل يؤثّر الظلّ في التخطيط؟

لا. يُرسم خارج الصندوق ولا يشغل مساحة، فقد يفيض ظلّ كبير من حاوية ويُقتطع بـoverflow: hidden.

هل ينبغي أن تتغيّر الظلال في الوضع الداكن؟

نعم. فالظلال بالكاد تُقرأ على خلفية داكنة — والأسطح الداكنة تحتاج عادةً لون خلفية أفتح للدلالة على الارتفاع بدلًا منها، أو حدًّا فاتحًا خفيًّا.

وماذا عن drop-shadow؟

filter: drop-shadow يتبع شكل المحتوى، بما فيه الشفافية، فهو الخيار الصحيح لشعار PNG أو ملفّ SVG غير منتظم. أما box-shadow فيتبع الصندوق دائمًا.

هل مولّد ظلّ الصندوق مجاني على الإنترنت؟

نعم — مجاني، بلا حساب، وبلا حد يومي، وبلا علامة مائية. يعمل في متصفّحك عبر الإنترنت، ولأن المعالجة تجري على جهازك فإنه يستمر في العمل دون اتصال بعد تحميل الصفحة.

للقراءة