DEV Community

Adrià Entreserra
Adrià Entreserra

Posted on

Mastering box-shadow in CSS: A Quick Guide

Image description

The box-shadow property in CSS serves as an effective mechanism for developers to introduce depth and dimension to HTML elements. By incorporating shadows into elements, one can enhance the realism and visual attractiveness of the user interface. This article will delve into the fundamentals of box-shadow and offer examples to assist you in mastering its application.

Understanding the Basics

The box-shadow property consists of several values that define how the shadow will appear. Here’s the basic syntax:

box-shadow: offset-x offset-y blur-radius spread-radius color;
Enter fullscreen mode Exit fullscreen mode
  • offset-x: This parameter defines the horizontal displacement of the shadow. Positive values shift the shadow to the right, negative values shift it to the left.
  • offset-y: This parameter indicates the vertical displacement of the shadow. Positive values move the shadow downward, negative values elevate it.
  • blur-radius (optional): This setting regulates the softness of the shadow. A higher value results in a more diffused shadow. If this parameter is not specified, the default value is 0, which produces a distinct shadow.
  • spread-radius (optional): This parameter affects the dimensions of the shadow. Positive values increase the shadow's size, negative values reduce it.
  • color: This attribute defines the shadow's color. It can be any valid CSS color representation, such as #000, rgba(0,0,0,0.5) or hsl(0, 0%, 50%).

Example: Basic Box Shadow

Let’s see a simple example of a box-shadow applied to a button:

button {
  box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3);
}
Enter fullscreen mode Exit fullscreen mode

In this case, the shadow is offset by 5px horizontally and vertically, has a blur radius of 10px, and is colored with black with 0.3 of opacity.

Example: Inset Shadows

box-shadow also supports the inset keyword, which places the shadow inside the element, giving it a recessed effect.

div {
  box-shadow: inset 0 0 10px #000;
}
Enter fullscreen mode Exit fullscreen mode

Here, the shadow is placed inside the div, creating an effect as if the content is pushed inward.

Advanced Tips

  • You have the ability to create multiple shadows by delineating each box-shadow specification with a comma. This technique allows for the creation of intricate, layered shadow effects.
box-shadow: 2px 2px 5px #aaa, -2px -2px 5px #ccc;
Enter fullscreen mode Exit fullscreen mode
  • Shadow effects are frequently employed to produce hover interactions, enhancing the interactivity of buttons or cards.
button:hover {
  box-shadow: 5px 10px 20px rgba(0, 0, 0, 0.4);
}
Enter fullscreen mode Exit fullscreen mode

For those who prefer a more visual approach, check out the Box-Shadow CSS Generator. This tool allows you to craft custom box-shadow effects effortlessly, without writing any code and saving presets.

Top comments (0)