The mask-composite
CSS property represents a compositing operation used on the current mask layer with the mask layers below it.
/* 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;
Syntax
One or more of the keyword values listed below, separated by commas.
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 definition
Initial value | add
|
Applies to | all elements; In SVG, it applies to container elements excluding the defs element and all graphics elements
|
Inherited | no |
Computed value | as specified |
Animation type | discrete |
Formal syntax
<compositing-operator>#where <compositing-operator> = add | subtract | intersect | exclude
Examples
Compositing mask layers with addition
CSS
#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 */ }
HTML
<div id="masked">
</div>
<select id="compositeMode">
<option value="add">add</option>
<option value="subtract">subtract</option>
<option value="intersect">intersect</option>
<option value="exclude">exclude</option>
</select>
JavaScript
var clipBox = document.getElementById("compositeMode");
clipBox.addEventListener("change", function (evt) {
document.getElementById("masked").style.maskComposite = evt.target.value;
});
Result
Specifications
Specification | Status | Comment |
---|---|---|
CSS Masking Module Level 1The definition of 'mask-composite' in that specification. | Candidate Recommendation | Initial definition |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
mask-composite
|
Chrome No support No No support No Notes' See also |
Edge
No support 18 — 79 |
Firefox
Full support 53 |
IE
No support No |
Opera No support No No support No Notes' See also |
Safari No support No No support No Notes' See also |
WebView Android No support No No support No Notes' See also |
Chrome Android No support No No support No Notes' See also |
Firefox Android
Full support 53 |
Opera Android No support No No support No Notes' See also |
Safari iOS No support No No support No Notes' See also |
Samsung Internet Android No support No No support No Notes' See also |
Legend
- Full support
- Full support
- No support
- No support
- See implementation notes.'
- See implementation notes.
mask-composite by Mozilla Contributors is licensed under CC-BY-SA 2.5.