mask-composite

Baseline 2023

Newly available

Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

The mask-composite CSS property represents a compositing operation used on the current mask layer with the mask layers below it.

Syntax

css
/* Keyword values */
mask-composite: add;
mask-composite: subtract;
mask-composite: intersect;
mask-composite: exclude;

/* Global values */
mask-composite: inherit;
mask-composite: initial;
mask-composite: revert;
mask-composite: revert-layer;
mask-composite: unset;

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 valueadd
Applies toall elements; In SVG, it applies to container elements excluding the <defs> element and all graphics elements
Inheritedno
Computed valueas specified
Animation typediscrete

Formal syntax

mask-composite = 
<compositing-operator>#

<compositing-operator> =
add |
subtract |
intersect |
exclude

Examples

Compositing mask layers with addition

html
<div class="masked"></div>
css
.masked {
  width: 100px;
  height: 100px;
  background-color: red;

  mask-image: url(https://mdn.github.io/shared-assets/images/examples/mdn.svg),
    url(https://mdn.github.io/shared-assets/images/examples/mask-star.svg);
  mask-size: 100% 100%;
  mask-composite: subtract;
}

Specifications

Specification
CSS Masking Module Level 1
# the-mask-composite

Browser compatibility

BCD tables only load in the browser

See also