One of the most invaluable features of Photoshop—arguably, the feature that powered it ahead of its competition—is blend modes. Blend modes take two pixels laid on top of each other and combine them in different ways, for example the darker color blend mode will simply render the darker of the two pixels. When expanded across a whole image, blend modes can produce some stunning effects.

Although Adobe’s Photoshop didn’t invent blend modes, its implementation is certainly the most emulated. But now, you don’t need Photoshop to style your imagery in this way, because we can do it all, dynamically, with CSS3.

Browser Support

As it stands, browser support for CSS’ background-blend-mode property is improving. Earlier versions of browsers required vendor prefixes and or the activation of experimental features, but caniuse.com reports support in the current versions of Chrome, Firefox and Opera, with Safari following soon.

There’s no sign of IE support yet, but as blend modes are a progressive enhancement we can start considering using them now.

How to use background-blend-mode

There are a number of blend mode options in the CSS3 candidate recommendations, but the most useful for our purposes is background-blend-mode. This property allows us to blend two images, or an image and a background color.

Here’s the code we need:

<div class="blend"></div>

And here’s our basic CSS:

.blend { width:782px; height:540px; background:#3db6b8 url("lighthouse.jpg") no-repeat center center; }

We’re now ready to add the blend modes.

To do this, we’re going to add another class to our div, for example “multiply”:

<div class="blend multiply"></div>

And then we’ll create a second style rule:

.blend.multiply { background-blend-mode: multiply; }

If you’d like to take a look at the code you can download the source files here.

Multiply

Multiply, as the name suggests, multiplies the base pixel by the blend color, resulting in a darker color. Multiplying black results in black, and multiplying white leaves the image unchanged.

background-blend-mode: multiply;

Screen

Screen multiplies the inverse of the two pixel colors. Screen is the opposite of multiply and using screen on white will result in a white image and on black will leave the image unchanged.

background-blend-mode: screen;

Overlay

Overlay is a complex blend mode. The multiplication depends on the base color: light colors get lighter, dark colors get darker.

background-blend-mode: overlay;

Darken

Darken, darkens an image. It looks at the two overlapping pixels and selects the darker of the two.

background-blend-mode: darken;

Lighten

The polar opposite of darken, lighten lightens an image by comparing the two overlapping pixels and choosing the lighter of the two.

background-blend-mode: lighten;

Color dodge

Color dodge brightens the base color to reflect the blend color by decreasing contrast.

background-blend-mode: color-dodge;

Color burn

Color burn is the polar opposite of color dodge, it darkens the base color resulting in an increase in contrast.

background-blend-mode: color-burn;

Hard light

Hard light either multiplies, or screens the colors depending on the blend color. If the blend is lighter than 50% gray the image will be lightened, otherwise it will be darkened. It’s a great way to enhance the highlights and shadows in an image.

background-blend-mode: hard-light;

Soft light

Soft light is similar to hard light, but instead of Multiplying or screening the colors, soft light uses dodge and burn for a subtler effect.

background-blend-mode: soft-light;

Difference

Difference compares the two overlapping pixels and subtracts the color with the greater brightness from the other.

background-blend-mode: difference;

Exclusion

Exclusion is similar to difference, but it produces less contrast so is a little more usable.

background-blend-mode: exclusion;

Hue

Hue takes the luminance and saturation of the base color and the hue of the blend color and merges them.

background-blend-mode: hue;

Saturation

Saturation, like hue, merges two of the values of the base color with one property of the blend color, in this case the saturation.

background-blend-mode: saturation;

Color

Color follows the same pattern as hue and saturation, this time however it’s the luminance of the base color and the hue and saturation of the blend color.

background-blend-mode: color;

Luminosity

Luminosity is the opposite of color, it combines the hue and saturation of the base color and the luminance of the blend color.

background-blend-mode: luminosity;

The image used throughout the article is lighthouse image via Shutterstock.