The CSS mask-type property defines if a mask defined by an SVG <mask> element is used as a luminance or an alpha mask. It applies to the <mask> element. It may be overridden by the mask-mode property which has the same effect, but applies to the element where the mask is used. Alpha masks will generally be faster to render.
/* Keyword values */ mask-type: luminance; mask-type: alpha; /* Global values */ mask-type: inherit; mask-type: initial; mask-type: unset;
| Initial value | luminance |
|---|---|
| Applies to | <mask> elements |
| Inherited | no |
| Media | visual |
| Computed value | as specified |
| Animation type | discrete |
| Canonical order | the unique non-ambiguous order defined by the formal grammar |
Syntax
One or more of the keyword values listed below, separated by commas.
Values
luminance- Is a keyword indicating that the associated mask image is a luminance mask, that is that its relative luminance values must be used when applying it.
alpha- Is a keyword indicating that the associated mask image is an alpha mask, that is that its alpha channel values must be used when applying it.
Formal syntax
luminance | alpha
Examples
Let's apply the following rectangle as a mask:
<rect x="10" y="10" width="80" height="80"
fill="red" fill-opacity="0.7" />
mask
<svg width="100" height="100">
<rect x="10" y="10" width="80" height="80"
fill="red" fill-opacity="0.7"/>
</svg>
to this box:
box
.redsquare {
height: 100px;
width: 100px;
background-color: rgb(128, 128, 128);
border: solid 1px black;
}
<div class="redsquare"></div>
The result, if your browser supports the property, with different value of mask-type applied to the <mask> element are these two different squares:
mask-type: alpha; |
mask-type: luminance; |
<div class="redsquare"></div>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" width="0" height="0">
<defs>
<mask id="m" maskContentUnits="objectBoundingBox"
style="mask-type:alpha">
<rect x=".1" y=".1" width=".8" height=".8"
fill="red" fill-opacity="0.7"/>
</mask>
</defs>
</svg>
.redsquare {
height: 100px;
width: 100px;
background-color: rgb(128, 128, 128);
border: solid 1px black;
mask: url("#m");
}
|
<div class="redsquare"></div>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" width="0" height="0">
<defs>
<mask id="m" maskContentUnits="objectBoundingBox"
style="mask-type:luminance">
<rect x=".1" y=".1" width=".8" height=".8"
fill="red" fill-opacity="0.7"/>
</mask>
</defs>
</svg>
.redsquare {
height: 100px;
width: 100px;
background-color: rgb(128, 128, 128);
border: solid 1px black;
mask: url("#m");
}
|
Specifications
| Specification | Status | Comment |
|---|---|---|
| CSS Masking Module Level 1 The definition of 'mask-type' in that specification. |
Candidate Recommendation | Initial definition. |
Browser compatibility
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|---|---|---|---|---|---|
| Basic support (for SVG) | 24.0 | 35.0 (35.0)[1] | No support | 15.0 | 7 |
| Applies to HTML elements | No support | 35.0 (35.0)[1] | No support | No support | ? |
| Feature | Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|
| Basic support (for SVG) | ? | 35.0 (35.0)[1] | No support | 15.0 | No support |
| Applies to HTML elements | ? | ? | ? | ? | ? |
[1] Available since Gecko 20 (Firefox 20.0 / Thunderbird 20.0 / SeaMonkey 2.17) behind the preference layout.css.masking.enabled, defaulting to false. That preference was removed in Gecko 52 (Firefox 52.0 / Thunderbird 52.0 / SeaMonkey 2.49) (see bug 1308239).
See also
- Other mask-related properties:
mask