CSS - mask-composite

The mask-composite CSS property represents a compositing operation used on the current mask layer with the mask layers below it.

Example

CSS Content

#masked {
  width: 100px;
  height: 100px;
  background-color: #8cffa0;
  mask-image: url(https://mdn.mozillademos.org/files/12668/MDN.svg),
              url(https://mdn.mozillademos.org/files/12676/star.svg);
  mask-size: 100% 100%;
  mask-composite: add; /* Can be changed in the live sample */
}

Syntax  

/* Keyword values */
mask-composite: add;
mask-composite: subtract;
mask-composite: intersect;
mask-composite: exclude;

/* Global values */
mask-composite: inherit;
mask-composite: initial;
mask-composite: unset;

Values

For the composition the current mask layer is referred to as source, while all layers below it are referred to as destination.

add
The source is placed over the destination.
subtract
The source is placed, where it falls outside of the destination.
intersect
The parts of source that overlap the destination, replace the destination.
exclude
The non-overlapping regions of source and destination are combined.

Formal syntax

<compositing-operator>#

where
<compositing-operator> = add | subtract | intersect | exclude

Description  

The mask-composite CSS property represents a compositing operation used on the current mask layer with the mask layers below it.

Initial valueadd
Applies toall elements; In SVG, it applies to container elements excluding the <defs> element and all graphics elements
Inheritedno
Mediavisual
Computed valueas specified
Animatableno
Canonical orderthe unique non-ambiguous order defined by the formal grammar

Browser Compatibility  

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support No support[1] No support[2] No support No support[1] No support[1]
Feature Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Basic support ? No support[1] No support ? ?

[1] WebKit and Blink have a -webkit-mask-composite property, which has different keywords.

[2] This feature is not implemented yet. See bug 1251161.

Specifications  

Specification Status Comment
CSS Masking Level 1
The definition of 'mask-composite' in that specification.
Candidate Recommendation Initial definition

License

© 2016 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-us/docs/web/css/mask-composite