Web/CSS/mix-blend-mode

From Get docs


The mix-blend-mode CSS property sets how an element's content should blend with the content of the element's parent and the element's background.


The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.

Syntax

/* Keyword values */
mix-blend-mode: normal;
mix-blend-mode: multiply;
mix-blend-mode: screen;
mix-blend-mode: overlay;
mix-blend-mode: darken;
mix-blend-mode: lighten;
mix-blend-mode: color-dodge;
mix-blend-mode: color-burn;
mix-blend-mode: hard-light;
mix-blend-mode: soft-light;
mix-blend-mode: difference;
mix-blend-mode: exclusion;
mix-blend-mode: hue;
mix-blend-mode: saturation;
mix-blend-mode: color;
mix-blend-mode: luminosity;

/* Global values */
mix-blend-mode: initial;
mix-blend-mode: inherit;
mix-blend-mode: unset;

Values

<blend-mode>
The blending mode that should be applied.

Formal definition

Initial value normal
Applies to all elements
Inherited no
Computed value as specified
Animation type discrete
Creates stacking context yes

Formal syntax

<blend-mode>where <blend-mode> = normal | multiply | screen | overlay | darken | lighten | color-dodge | color-burn | hard-light | soft-light | difference | exclusion | hue | saturation | color | luminosity

Examples

Effect of different mix-blend-mode values


Using mix-blend-mode with HTML

HTML

<div class="isolate">
  <div class="circle circle-1"></div>
  <div class="circle circle-2"></div>
  <div class="circle circle-3"></div>
</div>

CSS

.circle {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  mix-blend-mode: screen;
  position: absolute;
}

.circle-1 {
  background: red;
}

.circle-2 {
  background: lightgreen;
  left: 40px;
}

.circle-3 {
  background: blue;
  left: 20px;
  top: 40px;
}

.isolate {
  isolation: isolate; /* Without isolation, the background color will be taken into account */
  position: relative;
}

Result

Using mix-blend-mode with SVG

SVG

<svg>
  <g class="isolate">
    <circle cx="40" cy="40" r="40" fill="red"/>
    <circle cx="80" cy="40" r="40" fill="lightgreen"/>
    <circle cx="60" cy="80" r="40" fill="blue"/>
  </g>
</svg>

CSS

circle { mix-blend-mode: screen; }  
.isolate { isolation: isolate; } /* Without isolation, the background color will be taken into account */

Result

Specifications

Specification Status Comment
Compositing and Blending Level 1The definition of 'mix-blend-mode' in that specification. Candidate Recommendation Initial definition

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
mix-blend-mode Chrome

Full support 41

Edge

Full support 79

Firefox

Full support 32

IE

No support No

Opera

Full support 28

Safari

Full support 8

WebView Android

Full support 41

Chrome Android

Full support 41

Firefox Android

Full support 32

Opera Android

Full support 28

Safari iOS

Full support 8

Samsung Internet Android

Full support 4.0

On SVG elements Chrome

Full support 41

Edge

Full support 79

Firefox

Full support 32

IE

No support No

Opera

Full support 28

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

Full support 32

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

Legend

Full support  
Full support
No support  
No support


See also