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
CSS
Copy Code
#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 Content
HTML
Copy Code
<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 Content
JavaScript
Copy Code
var clipBox = document.getElementById("compositeMode"); clipBox.addEventListener("change", function (evt) { document.getElementById("masked").style.maskClip = evt.target.value; });
Syntax
CSS
Copy Code
/* 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
CSS
Copy Code
<a href="css/mask-composite#compositing-operator"><compositing-operator></a><a href="css/value_definition_syntax#hash_mark_(.23)" title="Hash mark">#</a><p>where <br><code><compositing-operator> = add <a href="css/value_definition_syntax#single_bar" title="Single bar">|</a> subtract <a href="css/value_definition_syntax#single_bar" title="Single bar">|</a> intersect <a href="css/value_definition_syntax#single_bar" title="Single bar">|</a> exclude</code></p>
Description
The mask-composite
CSS property represents a compositing operation used on the current mask layer with the mask layers below it.
Initial value | add |
---|---|
Applies to | all elements; In SVG, it applies to container elements excluding the <defs> element and all graphics elements |
Inherited | no |
Media | visual |
Computed value | as specified |
Animatable | no |
Canonical order | the 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