CSS Drop Shadow vs Box Shadow


Understanding the difference between Box shadow and Drop shadow

20 Aug, 2020 · 2 min read

The other day Josh made a super cool tweet about drop-shadow supporting PNG's; I didn't know it supported PNG's, so I decided to give it a go.

Josh W. Comeau profile image
Josh W. Comeau
🔥 `box-shadow` doesn't work well with transparent images. `filter: drop-shadow` does what you'd expect, adding a shadow to the image's contents. .my-img { filter: drop-shadow(1px 2px 3px black); } CSS filters are so rad 🥰 Pen:…

HTML Structure

For my example we are using my favourite Pokémon "Eevee" and will place our three Eevee png's in a container.

<div class="container">
  <img src="" />
  <img src="" class="box-shadow" />
  <img src="" class="drop-shadow" />

As you can see one is going to be a raw example, one will have a box-shadow and the third will have the drop-shadow.

CSS Box Shadow

You probably have seen and used the box-shadow before, it's a cool feature and adds a shadow to our "box".

It works like this:

.box-shadow {
  box-shadow: 0px 0px 10px #000;

It puts a shadow on the image, but on the box of it.


CSS Drop Shadow

Then there is a CSS Filter which is amazing when it comes to contouring a PNG!

.drop-shadow {
  filter: drop-shadow(0px 0px 10px rgba(0, 0, 0, 0.5));


This all will result in the following Codepen.

See the Pen CSS Drop Shadow vs Box Shadow by Chris Bongers (@rebelchris) on CodePen.

Browser Support

As mentioned before, CSS Filters are cool, but not widely supported yet 😩.

There is a polyfill, but also limited.

CSS Filter support

Thank you for reading, and let's connect!

Thank you for reading my blog. Feel free to subscribe to my email newsletter and connect on Facebook or Twitter

Spread the knowledge with fellow developers on Twitter
Tweet this tip
Powered by Webmentions - Learn more

Read next 📖

CSS Logos: Vue logo

22 Jun, 2022 · 3 min read

CSS Logos: Vue logo

CSS Logos: Strava logo

21 Jun, 2022 · 5 min read

CSS Logos: Strava logo

Join 1513 devs and subscribe to my newsletter