Shadow Effects

Domains: CSS

CSS Shadow Effects

With CSS you can add shadow to text and to elements.

In this chapter you will learn about the following properties:

  • text-shadow
  • box-shadow

CSS Text Shadow

The CSS text-shadow property applies shadow to text.

In its simplest use, you only specify the horizontal shadow (2px) and the vertical shadow (2px):

h1 {
  text-shadow: 2px 2px;
}

Next, add a color to the shadow:

h1 {
  text-shadow: 2px 2px red;
}

Then, add a blur effect to the shadow:

h1 {
  text-shadow: 2px 2px 5px red;
}

The following example shows a white text with black shadow:

h1 {
  color: white;
  text-shadow: 2px 2px 4px #000000;
}

The following example shows a red neon glow shadow:

h1 {
  text-shadow: 0 0 3px #FF0000;
}

Multiple Shadows

To add more than one shadow to the text, you can add a comma-separated list of shadows.

The following example shows a red and blue neon glow shadow:

h1 {
  text-shadow: 0 0 3px #FF0000, 0 0 5px #0000FF;
}

The following example shows a white text with black, blue, and darkblue shadow:

h1 {
  color: white;
  text-shadow: 1px 1px 2px black, 0 0 25px blue, 0 0 5px darkblue;
}

You can also use the text-shadow property to create a plain border around some text (without shadows):

h1 {
  color: yellow;
  text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;
}

CSS box-shadow Property

The CSS box-shadow property applies shadow to elements.

In its simplest use, you only specify the horizontal shadow and the vertical shadow:

div {
  box-shadow: 10px 10px;
}

Next, add a color to the shadow:

div {
  box-shadow: 10px 10px grey;
}

Next, add a blur effect to the shadow:

div {
  box-shadow: 10px 10px 5px grey;
}

You can also add shadows to the ::before and ::after pseudo-elements, to create an interesting effect:

#boxshadow {
  position: relative;
  box-shadow: 1px 2px 4px rgba(0, 0, 0, .5);
  padding: 10px;
  background: white;
}

#boxshadow img {
  width: 100%;
  border: 1px solid #8a4419;
  border-style: inset;
}

#boxshadow::after {
  content: '';
  position: absolute;
  z-index: -1; /* hide shadow behind image */
  box-shadow: 0 15px 20px rgba(0, 0, 0, 0.3); 
  width: 70%; 
  left: 15%; /* one half of the remaining 30% */
  height: 100px;
  bottom: 0;
}

Cards

An example of using the box-shadow property to create paper-like cards:

div.card {
  width: 250px;
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
  text-align: center;
}

CSS Shadow Properties

The following table lists the CSS shadow properties:

Property Description
box-shadow Adds one or more shadows to an element
text-shadow Adds one or more shadows to a text

Similar pages

Page structure
Terms

CSS

The ::before

The ::after

CSS Text

Text Shadow

position: relative;

position: absolute;

Pseudo-elements