Skip to main content

A Guide to CSS Box Shadow

· 3 min read
Parth Maheta

The CSS box-shadow property is a powerful tool that adds depth and dimension to elements on a web page. Whether you want to create a subtle hover effect or give a lifted appearance to a card, understanding how to use box shadows is essential for web developers. In this comprehensive guide, we'll explore the intricacies of the box-shadow property, its syntax, and practical applications.

Understanding the box-shadow Property

1. Syntax

The box-shadow property has the following syntax:

box-shadow: h-offset v-offset blur spread color inset;
  • h-offset: Horizontal offset of the shadow.
  • v-offset: Vertical offset of the shadow.
  • blur: Optional. The blur radius. If set to 0, the shadow is sharp; otherwise, it becomes blurry.
  • spread: Optional. The spread radius, which expands the shadow.
  • color: The color of the shadow.
  • inset: Optional. If present, the shadow is drawn inside the element.

2. Basic Box Shadow

Create a simple box shadow with a horizontal and vertical offset.

.box {
box-shadow: 5px 5px #888888;
}

This produces a shadow that is 5 pixels to the right and 5 pixels down, with a color of #888888.

3. Blur and Spread

Introduce blur and spread to create a softer and larger shadow.

.box {
box-shadow: 5px 5px 10px 0px #888888;
}

In this example, the blur radius is set to 10 pixels, and the spread radius is 0 pixels.

4. Inset Shadow

Make the shadow appear inside the element using the inset keyword.

.box {
box-shadow: inset 5px 5px 10px 0px #888888;
}

This produces an inset shadow, creating a pressed or engraved effect.

5. Multiple Shadows

Apply multiple shadows for more complex effects.

.box {
box-shadow: 5px 5px 10px 0px #888888, -5px -5px 10px 0px #888888;
}

This example creates both a top-right and bottom-left shadow.

Practical Applications

1. Card-Like Design

Enhance the appearance of card elements with a subtle box shadow.

.card {
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

2. Interactive Hover Effect

Add a hover effect to buttons or links with a dynamic box shadow.

.button {
transition: box-shadow 0.3s ease-in-out;
}

.button:hover {
box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}

3. Neomorphic Design

Achieve a neomorphic (soft and modern) design with an inset box shadow.

.neomorphic-box {
box-shadow: inset 5px 5px 10px 0px #c9c9c9, inset -5px -5px 10px 0px #ffffff;
}

Conclusion

The box-shadow property is a versatile tool that adds visual depth to web designs. By mastering its syntax and applying it creatively, web developers can create engaging user interfaces and enhance the overall user experience. Experiment with different shadow configurations and integrate box shadows into your designs to add a touch of elegance and sophistication to your web projects.