Skip to main content Compiler
Compiler
Demonstration of multiple different shadows and colors

CSS Box Shadows explained!

Published: 2024-01-16
CSS box shadows add depth and dimension to web elements, enhancing the visual appeal of your website. In this guide, we'll delve into the intricacies of CSS box shadows, exploring their properties, applications, and providing code examples for a better understanding.

Understanding Box Shadows

Let’s get into it! Time to understand how the Box Shadow works

1. The Basics

CSS box shadows are a versatile styling feature that allows you to create a shadow effect around an element. The basic syntax looks like this:

box-shadow: h-offset v-offset blur spread color;
  • h-offset: Horizontal distance of the shadow.
  • v-offset: Vertical distance of the shadow.
  • blur: The blur radius (optional).
  • spread: The spread radius (optional).
  • color: Shadow color.
2. Applying Box Shadows

You can apply box shadows to various HTML elements, such as divs, buttons, or images. Here’s a quick example:

.compiler-box {
	box-shadow: 10px 10px 20px rgba(0, 0, 0, 0.5);
}

This code creates a box with a shadow that is 10 pixels to the right, 10 pixels down, has a blur of 20 pixels, and a semi-transparent black color.

Green box with a black shadow

Advanced Box Shadow Properties

Let’s get into the deeper waters now, we’ll take a look at having multiple shadows and at inset shadows (shadow inside of an element)

1. Multiple Shadows

You can apply multiple box shadows to a single element, each separated by a comma. This opens up creative possibilities, allowing you to layer shadows.

.compiler-box {
	box-shadow:
		5px 5px 10px #ff0000,
		-5px -5px 10px #a020f0;
}
Green box with blue and red shadows
2. Inset Shadows

Adding the inset keyword creates an inner shadow rather than an outer one. This is useful for simulating a pressed or inset effect.

.compiler-box {
	box-shadow: inset 3px 3px 5px #888888;
}
Green box with inset shadow
Conclusion

Mastering CSS box shadows empowers you to elevate the aesthetics of your web projects. By understanding the properties, experimenting with variations, and applying best practices, you can create visually stunning and engaging user interfaces. Incorporate these insights into your design arsenal and watch your websites come to life with depth and sophistication.