دليل شامل لخاصية box-shadow في CSS: إضافة تأثيرات الظل للعناصر

دقائق القراءة: 5

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

إضافة ظل أساسي (Drop Shadow)

لنبدأ بإنشاء بعض العناصر الأساسية في HTML لتطبيق تأثيرات الظل عليها. سنستخدم ثلاثة صناديق بسيطة لنمثل عناصر مختلفة في صفحتك:

<p>Box1</p>
<p>Box2</p>
<p>Box3</p>

ثم نضيف بعض التنسيقات الأساسية باستخدام CSS لجعل هذه الصناديق مرئية وجاهزة لتطبيق الظلال:

p {
    padding: 10px;
}
.box {
    padding: 20px;
    width: 50%;
    margin: 30px auto;
    background: #000;
    color: #fff;
}

النتيجة ستكون ثلاثة صناديق سوداء بسيطة، مما يسهل علينا تطبيق الظلال عليها عن طريق استدعاء معرفاتها الفريدة (id). على الرغم من أن المثال يستخدم وسم <p>، إلا أن خاصية box-shadow يمكن تطبيقها على أي عنصر HTML آخر مثل <div>، <section>، أو حتى <img>.

ثلاثة عناصر HTML بسيطة (صناديق سوداء) جاهزة لتطبيق تأثيرات الظل عليها

لإضافة ظل أساسي، سنستخدم خاصية box-shadow على الصندوق الأول (#box1). تتطلب هذه الخاصية ثلاثة معاملات أساسية للظل الأساسي:

  • offset-x: يحدد الإزاحة الأفقية للظل (المسافة من اليسار أو اليمين).
  • offset-y: يحدد الإزاحة العمودية للظل (المسافة من الأعلى أو الأسفل).
  • color: يحدد لون الظل.
/* offset-x | offset-y | color */
#box1 {
    box-shadow: 6px 12px yellow;
}

صندوق HTML مع ظل أصفر أساسي بإزاحة 6 بكسل أفقياً و 12 بكسل عمودياً

في هذا المثال، 6px هي الإزاحة الأفقية (x-offset) و 12px هي الإزاحة العمودية (y-offset). تحدد هذه القيم موقع الظل بالنسبة للعنصر الأصلي. تذكر أن نقطة الأصل في HTML هي الزاوية العلوية اليسرى للعنصر. قيمة x-offset موجبة تحرك الظل إلى اليمين، وقيمة y-offset موجبة تحركه إلى الأسفل. المعامل الثالث هو yellow، الذي يحدد لون الظل.

إضافة نصف قطر التمويه (Blur Radius)

لجعل الظل يبدو أكثر واقعية ونعومة، يمكننا إضافة معامل blur-radius. يتحكم هذا المعامل في مدى تمويه الظل، مما يجعله يبدو أكبر وأخف. لنطبق هذا على الصندوق الثاني (#box2):

/* offset-x | offset-y | blur-radius | color */
#box2 {
    box-shadow: 6px 12px 4px red;
}

صندوق HTML مع ظل أحمر مموه بنصف قطر تمويه 4 بكسل

القيمة 4px هنا تحدد نصف قطر التمويه الذي سيتم تطبيقه على الظل. كلما زادت هذه القيمة، زاد تمويه الظل وتشتته، مما يمنحه مظهراً طبيعياً أكثر.

إضافة نصف قطر الانتشار (Spread Radius)

إذا أردت التحكم في حجم الظل نفسه، يمكنك استخدام معامل spread-radius. يتحكم هذا المعامل في مدى تمدد الظل أو انكماشه. لنضف نصف قطر انتشار بقيمة 8px إلى الصندوق الثاني (#box2) بالإضافة إلى التمويه:

/* offset-x | offset-y | blur-radius | spread-radius | color */
#box2 {
    box-shadow: 6px 12px 4px 8px red;
}

صندوق HTML مع ظل أحمر مموه ومنتشر، يظهر تأثير نصف قطر الانتشار

القيمة 8px تجعل الظل ينتشر ويتوسع بمقدار 8 بكسل من جميع الجوانب. من المهم جداً تذكر ترتيب هذه المعاملات عند استخدامها معاً: offset-x، offset-y، blur-radius، spread-radius، وأخيراً color.

دمج ظلال متعددة في خاصية واحدة

للحصول على تأثيرات أكثر تعقيداً وجاذبية، يمكننا إضافة ظلال متعددة إلى عنصر واحد باستخدام خاصية box-shadow واحدة. يتم ذلك عن طريق فصل تعريفات الظلال الفردية بفاصلة (,). لنطبق هذا على الصندوق الثالث (#box3) بإضافة ظل أزرق وآخر أخضر في نفس الوقت:

/* أي عدد من الظلال، مفصولة بفاصلات */
#box3 {
    box-shadow: 6px 12px 2px 2px blue, -6px -12px 2px 2px green;
}

صندوق HTML مع ظلين متعددين: أحدهما أزرق والآخر أخضر، مما يوضح إمكانية دمج الظلال

كما ترى، قمنا هنا بتعريف ظلين منفصلين. الظل الأول له إزاحة موجبة (يمين وأسفل) ولون أزرق، بينما الظل الثاني له إزاحة سالبة (يسار وأعلى) ولون أخضر. هذه المرونة تفتح الباب أمام إمكانيات تصميمية لا حصر لها.

ميزة إضافية: إنشاء ظل داخلي (Inset Shadow)

بينما تركز الأمثلة السابقة على الظلال الخارجية (drop shadow)، يمكن لخاصية box-shadow أيضاً إنشاء ظلال داخلية باستخدام الكلمة المفتاحية inset. كما يوحي الاسم، ينشئ هذا المعامل ظلاً داخل الصندوق، مما يعطي إحساساً بالعمق أو النقر. يمكن وضع الكلمة المفتاحية inset إما في بداية أو نهاية تعريف خاصية box-shadow. لنوضح استخدامها مع عنصر <blockquote>:

HTML:

<blockquote>
    The key to success is to start before you're ready. — Marie Forleo
</blockquote>

CSS:

blockquote {
    width: 50%;
    margin: 50px auto;
    padding: 20px;
    font-size: 24px;
    box-shadow: inset 10px 5px black;
}

عنصر اقتباس (blockquote) مع ظل داخلي أسود، مما يعطي إحساساً بالعمق

بالطبع، يمكنك إضافة بعض التمويه (blur) والانتشار (spread) لتعزيز الظل الداخلي، أو حتى دمج ظلال داخلية وخارجية في نفس الخاصية لخلق تأثيرات بصرية فريدة:

box-shadow: inset 10px 5px 25px 5px black, 5px 5px 12px 2px black;

عنصر اقتباس مع ظل داخلي مموه ومنتشر، بالإضافة إلى ظل خارجي، يوضح التأثيرات المدمجة

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

الخلاصة التقنية

تُعد خاصية box-shadow في CSS حجر الزاوية في إضفاء العمق والواقعية على تصميمات الويب. من خلال فهم معاملاتها الأربعة الأساسية (offset-x، offset-y، blur-radius، spread-radius) بالإضافة إلى اللون والكلمة المفتاحية inset، يمكن للمطورين إنشاء مجموعة واسعة من التأثيرات البصرية، من الظلال الناعمة والواقعية إلى الظلال الحادة والمعقدة. القدرة على دمج ظلال متعددة في تعريف واحد تزيد من مرونة هذه الخاصية بشكل كبير، مما يسمح بتصميمات غنية ومبتكرة تعزز من تجربة المستخدم وتجعل الواجهات أكثر جاذبية وتفاعلية. إن إتقان هذه الخاصية يمثل خطوة مهمة نحو بناء واجهات مستخدم احترافية ومتميزة.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *