Back to Content

mask

files/en-us/web/svg/reference/attribute/mask/index.md

latest2.3 KB
Original Source

The mask attribute is a presentation attribute mainly used to bind a given {{ SVGElement("mask") }} element with the element the attribute belongs to.

[!NOTE] As a presentation attribute, mask also has a CSS property counterpart: {{cssxref("mask")}}. When both are specified, the CSS property takes priority.

You can use this attribute with the following SVG elements:

  • {{SVGElement('a')}}
  • {{SVGElement('circle')}}
  • {{SVGElement('clipPath')}}
  • {{SVGElement('ellipse')}}
  • {{SVGElement('g')}}
  • {{SVGElement('image')}}
  • {{SVGElement('line')}}
  • {{SVGElement('marker')}}
  • {{SVGElement('mask')}}
  • {{SVGElement('path')}}
  • {{SVGElement('pattern')}}
  • {{SVGElement('polygon')}}
  • {{SVGElement('polyline')}}
  • {{SVGElement('rect')}}
  • {{SVGElement('svg')}}
  • {{SVGElement('symbol')}}
  • {{SVGElement('text')}}
  • {{SVGElement('use')}}

Example

css
html,
body,
svg {
  height: 100%;
}
html
<svg viewBox="0 0 200 100" xmlns="http://www.w3.org/2000/svg">
  <mask id="myMask" maskContentUnits="objectBoundingBox">
    <rect fill="white" x="0" y="0" width="100%" height="100%" />
    <polygon
      fill="black"
      points="0.5,0.2 0.68,0.74 0.21,0.41 0.79,0.41 0.32,0.74" />
  </mask>

  <!--
  Punch a hole in a shape of a star inside the red circle,
  revealing the yellow circle underneath
  -->
  <circle cx="50" cy="50" r="20" fill="yellow" />
  <circle cx="50" cy="50" r="45" fill="red" mask="url(#myMask)" />
</svg>

{{EmbedLiveSample("Example", '100%', 150)}}

Since SVG2, the {{cssxref('mask')}} attribute is defined as a CSS property and is a shorthand for many other properties: {{cssxref('mask-image')}}, {{cssxref('mask-mode')}}, {{cssxref('mask-repeat')}}, {{cssxref('mask-position')}}, {{cssxref('mask-clip')}}, {{cssxref('mask-origin')}}, {{cssxref('mask-size')}}, and {{cssxref('mask-composite')}}.

Usage notes

<table class="properties"> <tbody> <tr> <th scope="row">Value</th> <td>See the CSS property {{cssxref("mask")}}</td> </tr> <tr> <th scope="row">Default value</th> <td><code>none</code></td> </tr> <tr> <th scope="row">Animatable</th> <td>Yes</td> </tr> </tbody> </table>

Specifications

{{Specifications}}

Browser compatibility

{{Compat}}

See also

  • CSS {{cssxref("mask")}} property