mask
Quick Summary for mask
The mask CSS shorthand property hides an element (partially or fully) by masking or clipping the image at specific points.
Code Usage for mask

<pre class="brush: css notranslate"><code><span class="token comment">/ Keyword values /</span> <span class="token property">mask</span><span class="token punctuation">:</span> none<span class="token punctuation">;</span> <span class="token comment">/ Image values /</span> <span class="token property">mask</span><span class="token punctuation">:</span> <span class="token url"><span class="token function">url</span><span class="token punctuation">(</span>mask.png<span class="token punctuation">)</span></span><span class="token punctuation">;</span> <span class="token comment">/ Pixel image used as mask /</span> <span class="token property">mask</span><span class="token punctuation">:</span> <span class="token url"><span class="token function">url</span><span class="token punctuation">(</span>masks.svg#star<span class="token punctuation">)</span></span><span class="token punctuation">;</span> <span class="token comment">/ Element within SVG graphic used as mask /</span> <span class="token comment">/ Combined values /</span> <span class="token property">mask</span><span class="token punctuation">:</span> <span class="token url"><span class="token function">url</span><span class="token punctuation">(</span>masks.svg#star<span class="token punctuation">)</span></span> luminance<span class="token punctuation">;</span> <span class="token comment">/ Element within SVG graphic used as luminance mask /</span> <span class="token property">mask</span><span class="token punctuation">:</span> <span class="token url"><span class="token function">url</span><span class="token punctuation">(</span>masks.svg#star<span class="token punctuation">)</span></span> 40px 20px<span class="token punctuation">;</span> <span class="token comment">/ Element within SVG graphic used as mask positioned 40px from the top and 20px from the left /</span> <span class="token property">mask</span><span class="token punctuation">:</span> <span class="token url"><span class="token function">url</span><span class="token punctuation">(</span>masks.svg#star<span class="token punctuation">)</span></span> 0 0/50px 50px<span class="token punctuation">;</span> <span class="token comment">/ Element within SVG graphic used as mask with a width and height of 50px /</span> <span class="token property">mask</span><span class="token punctuation">:</span> <span class="token url"><span class="token function">url</span><span class="token punctuation">(</span>masks.svg#star<span class="token punctuation">)</span></span> repeat-x<span class="token punctuation">;</span> <span class="token comment">/ Element within SVG graphic used as horizontally repeated mask /</span> <span class="token property">mask</span><span class="token punctuation">:</span> <span class="token url"><span class="token function">url</span><span class="token punctuation">(</span>masks.svg#star<span class="token punctuation">)</span></span> stroke-box<span class="token punctuation">;</span> <span class="token comment">/ Element within SVG graphic used as mask extending to the box enclosed by the stroke /</span> <span class="token property">mask</span><span class="token punctuation">:</span> <span class="token url"><span class="token function">url</span><span class="token punctuation">(</span>masks.svg#star<span class="token punctuation">)</span></span> exclude<span class="token punctuation">;</span> <span class="token comment">/ Element within SVG graphic used as mask and combined with background using non-overlapping parts /</span> <span class="token comment">/ Global values /</span> <span class="token property">mask</span><span class="token punctuation">:</span> inherit<span class="token punctuation">;</span> <span class="token property">mask</span><span class="token punctuation">:</span> initial<span class="token punctuation">;</span> <span class="token property">mask</span><span class="token punctuation">:</span> revert<span class="token punctuation">;</span> <span class="token property">mask</span><span class="token punctuation">:</span> unset<span class="token punctuation">;</span> <span class="token comment">/ Multiple masks /</span> <span class="token property">mask</span><span class="token punctuation">:</span> <span class="token url"><span class="token function">url</span><span class="token punctuation">(</span>masks.svg#star<span class="token punctuation">)</span></span> left / 16px repeat-y<span class="token punctuation">,</span> <span class="token comment">/ Element within SVG graphic is used as a mask on the left-hand side with a width of 16px /</span> <span class="token url"><span class="token function">url</span><span class="token punctuation">(</span>masks.svg#circle<span class="token punctuation">)</span></span> right / 16px repeat-y<span class="token punctuation">;</span> <span class="token comment">/ Element within SVG graphic is used as a mask on the right-hand side with a width of 16px /</span> </code></pre>

More Details for mask

mask

The mask CSS shorthand property hides an element (partially or fully) by masking or clipping the image at specific points.

Note: As well as the properties listed below, the mask shorthand also resets mask-border to its initial value. It is therefore recommended to use the mask shorthand rather than other shorthands or the individual properties to override any mask settings earlier in the cascade. This will ensure that mask-border has also been reset to allow the new styles to take effect.

Constituent properties

This property is a shorthand for the following CSS properties:

mask-clip mask-composite mask-image mask-mode mask-origin mask-position mask-repeat mask-size

Syntax

/* Keyword values */ mask: none;  /* Image values */ mask: url(mask.png);                       /* Pixel image used as mask */ mask: url(masks.svg#star);                 /* Element within SVG graphic used as mask */  /* Combined values */ mask: url(masks.svg#star) luminance;       /* Element within SVG graphic used as luminance mask */ mask: url(masks.svg#star) 40px 20px;       /* Element within SVG graphic used as mask positioned 40px from the top and 20px from the left */ mask: url(masks.svg#star) 0 0/50px 50px;   /* Element within SVG graphic used as mask with a width and height of 50px */ mask: url(masks.svg#star) repeat-x;        /* Element within SVG graphic used as horizontally repeated mask */ mask: url(masks.svg#star) stroke-box;      /* Element within SVG graphic used as mask extending to the box enclosed by the stroke */ mask: url(masks.svg#star) exclude;         /* Element within SVG graphic used as mask and combined with background using non-overlapping parts */  /* Global values */ mask: inherit; mask: initial; mask: revert; mask: unset;  /* Multiple masks */ mask: url(masks.svg#star) left / 16px repeat-y,    /* Element within SVG graphic is used as a mask on the left-hand side with a width of 16px */       url(masks.svg#circle) right / 16px repeat-y; /* Element within SVG graphic is used as a mask on the right-hand side with a width of 16px */ 

Values

<mask-reference>

Sets the mask image source. See mask-image.

<masking-mode>

Sets the masking mode of the mask image. See mask-mode.

<position>

Sets the position of the mask image. See mask-position.

<bg-size>

Sets the size of the mask image. See mask-size.

<repeat-style>

Sets the repetition of the mask image. See mask-repeat.

<geometry-box>

If only one <geometry-box> value is given, it sets both mask-origin and mask-clip. If two <geometry-box> values are present, then the first sets mask-origin and the second sets mask-clip.

<geometry-box> | no-clip

Sets the area that is affected by the mask image. See mask-clip.

<compositing-operator>

Sets the compositing operation used on the current mask layer. See mask-composite.

Formal definition

Initial valueas each of the properties of the shorthand:mask-image: nonemask-mode: match-sourcemask-repeat: no-repeatmask-position: centermask-clip: border-boxmask-origin: border-boxmask-size: automask-composite: add
Applies toall elements; In SVG, it applies to container elements excluding the defs element and all graphics elements
Inheritedno
Percentagesas each of the properties of the shorthand:mask-position: refer to size of mask painting area minus size of mask layer image (see the text for background-position)
Computed valueas each of the properties of the shorthand:mask-image: as specified, but with url() values made absolutemask-mode: as specifiedmask-repeat: Consists of two keywords, one per dimensionmask-position: Consists of two keywords representing the origin and two offsets from that origin, each given as an absolute length (if given a <length>), otherwise as a percentage.mask-clip: as specifiedmask-origin: as specifiedmask-size: as specified, but with relative lengths converted into absolute lengthsmask-composite: as specified
Animation typeas each of the properties of the shorthand:mask-image: discretemask-mode: discretemask-repeat: discretemask-position: repeatable list of simple list of length, percentage, or calcmask-clip: discretemask-origin: discretemask-size: repeatable list of simple list of length, percentage, or calcmask-composite: discrete
Creates stacking contextyes

Formal syntax

<mask-layer>#

where <mask-layer> = <mask-reference> || <position> [ / <bg-size> ]? || <repeat-style> || <geometry-box> || [ <geometry-box> | no-clip ] || <compositing-operator> || <masking-mode>

where <mask-reference> = none | <image> | <mask-source><position> = [ [ left | center | right ] || [ top | center | bottom ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ]? | [ [ left | right ] <length-percentage> ] && [ [ top | bottom ] <length-percentage> ] ]<bg-size> = [ <length-percentage> | auto ]{1,2} | cover | contain<repeat-style> = repeat-x | repeat-y | [ repeat | space | round | no-repeat ]{1,2}<geometry-box> = <shape-box> | fill-box | stroke-box | view-box<compositing-operator> = add | subtract | intersect | exclude<masking-mode> = alpha | luminance | match-source

where <image> = <url> | <image()> | <image-set()> | <element()> | <paint()> | <cross-fade()> | <gradient><mask-source> = <url><length-percentage> = <length> | <percentage><shape-box> = <box> | margin-box

where <image()> = image( <image-tags>? [ <image-src>? , <color>? ]! )<image-set()> = image-set( <image-set-option># )<element()> = element( <id-selector> )<paint()> = paint( <ident>, <declaration-value>? )<cross-fade()> = cross-fade( <cf-mixing-image> , <cf-final-image>? )<gradient> = <linear-gradient()> | <repeating-linear-gradient()> | <radial-gradient()> | <repeating-radial-gradient()> | <conic-gradient()><box> = border-box | padding-box | content-box

where <image-tags> = ltr | rtl<image-src> = <url> | <string><color> = <rgb()> | <rgba()> | <hsl()> | <hsla()> | <hwb()> | <hex-color> | <named-color> | currentcolor | <deprecated-system-color><image-set-option> = [ <image> | <string> ] [ <resolution> || type(<string>) ]<id-selector> = <hash-token><cf-mixing-image> = <percentage>? && <image><cf-final-image> = <image> | <color><linear-gradient()> = linear-gradient( [ <angle> | to <side-or-corner> ]? , <color-stop-list> )<repeating-linear-gradient()> = repeating-linear-gradient( [ <angle> | to <side-or-corner> ]? , <color-stop-list> )<radial-gradient()> = radial-gradient( [ <ending-shape> || <size> ]? [ at <position> ]? , <color-stop-list> )<repeating-radial-gradient()> = repeating-radial-gradient( [ <ending-shape> || <size> ]? [ at <position> ]? , <color-stop-list> )<conic-gradient()> = conic-gradient( [ from <angle> ]? [ at <position> ]?, <angular-color-stop-list> )

where <rgb()> = rgb( <percentage>{3} [ / <alpha-value> ]? ) | rgb( <number>{3} [ / <alpha-value> ]? ) | rgb( <percentage>#{3} , <alpha-value>? ) | rgb( <number>#{3} , <alpha-value>? )<rgba()> = rgba( <percentage>{3} [ / <alpha-value> ]? ) | rgba( <number>{3} [ / <alpha-value> ]? ) | rgba( <percentage>#{3} , <alpha-value>? ) | rgba( <number>#{3} , <alpha-value>? )<hsl()> = hsl( <hue> <percentage> <percentage> [ / <alpha-value> ]? ) | hsl( <hue>, <percentage>, <percentage>, <alpha-value>? )<hsla()> = hsla( <hue> <percentage> <percentage> [ / <alpha-value> ]? ) | hsla( <hue>, <percentage>, <percentage>, <alpha-value>? )<hwb()> = hwb( [<hue> | none] [<percentage> | none] [<percentage> | none] [ / [<alpha-value> | none] ]? )<side-or-corner> = [ left | right ] || [ top | bottom ]<color-stop-list> = [ <linear-color-stop> [, <linear-color-hint>]? ]# , <linear-color-stop><ending-shape> = circle | ellipse<size> = closest-side | farthest-side | closest-corner | farthest-corner | <length> | <length-percentage>{2}<angular-color-stop-list> = [ <angular-color-stop> [, <angular-color-hint>]? ]# , <angular-color-stop>

where <alpha-value> = <number> | <percentage><hue> = <number> | <angle><linear-color-stop> = <color> <color-stop-length>?<linear-color-hint> = <length-percentage><angular-color-stop> = <color> && <color-stop-angle>?<angular-color-hint> = <angle-percentage>

where <color-stop-length> = <length-percentage>{1,2}<color-stop-angle> = <angle-percentage>{1,2}<angle-percentage> = <angle> | <percentage>

Examples

Masking an image

.target {   mask: url(#c1) luminance; }  .anothertarget {   mask: url(resources.svg#c1) 50px 30px/10px 10px repeat-x exclude; } 

Specifications

Specification
CSS Masking Module Level 1 # the-mask

See also

clip-path, filter CSS Shapes, clipping and masking – and how to use them Applying SVG effects to HTML content SVG Select your preferred language English (US)DeutschEspañolFrançais日本語한국어Português (do Brasil)中文 (简体) Change language

No Items Found.

Add Comment
Type in a Nick Name here
 
Other Categories in CSS
css
Search CSS
Search CSS by entering your search text above.
Welcome

This is my test area for webdev. I keep a collection of code here, mostly for my reference. Also if i find a good link, i usually add it here and then forget about it. more...

You could also follow me on twitter. I have a couple of youtube channels if you want to see some video related content. RuneScape 3, Minecraft and also a coding channel here Web Dev.

If you found something useful or like my work, you can buy me a coffee here. Mmm Coffee. ☕

❤️👩‍💻🎮

🪦 2000 - 16 Oct 2022 - Boots
Random Quote
Our brains are wired to find things we are looking for - if your always cynical or waiting for things to go wrong, then your life will reflect that. On the other hand, having a positive outlook on life will bring you joy and provide you with inspiration when you least expect it ☀️🍉🌴
Unknown
Latest News
## 🚀 AI Giants Hit Bullseye: Anthropic & OpenAI Achieve Product-Market Fit Anthropic and OpenAI have reached a significant milestone, finding product-market fit with their AI technologies, which means their products effectively meet the needs of their customers, driving growth and adoption. This achievement showcases the practical value of their innovations, enabling businesses and individuals to leverage AI for enhanced productivity and efficiency. With this alignment of product and market needs, these companies are poised to transform industries and shape the future of technology.