Propriedade mask-composite

A propriedade mask-composite permite combinar várias máscaras aplicadas a um mesmo elemento. Ela define como diferentes máscaras irão interagir quando sobrepostas.

Sintaxe

cssseletor {
  mask-composite: <compositing-operator>#;
}

Valores

Valor Descrição
add O resultado é a união de todas as máscaras (padrão).
subtract A segunda máscara é subtraída da primeira.
intersect Exibe apenas a área de interseção das máscaras.
exclude Exibe as áreas que não são comuns às máscaras.

Exemplo . Modo add

União de duas máscaras (coração e seta):

html<img id="image" src="image.jpg">
css#image {
  width: 500px;
  height: 281px;
  mask-image: 
    url("heart.svg"),
    url("arrow.svg");
  mask-position: 
    100px 50px,
    200px 30px;
  mask-size: 150px;
  mask-repeat: no-repeat;
  mask-composite: add;
}

Результат:

Exemplo . Modo subtract

Subtração da seta do coração:

html<img id="image" src="image.jpg">
css#image {
  width: 500px;
  height: 281px;
  mask-image: 
    url("heart.svg"),
    url("arrow.svg");
  mask-position: 
    100px 50px,
    170px 80px;
  mask-size: 
    250px,
    120px;
  mask-repeat: no-repeat;
  mask-composite: subtract;
}

Результат:

Exemplo . Modo intersect

Exibindo apenas a área de interseção das máscaras:

html<img id="image" src="image.jpg">
css#image {
  width: 500px;
  height: 281px;
  mask-image: 
    url("heart.svg"),
    url("arrow.svg");
  mask-position: 
    100px 50px,
    50px 30px;
  mask-size: 150px;
  mask-repeat: no-repeat;
  mask-composite: intersect;
}

Результат:

Exemplo . Modo exclude

Exibindo as áreas que não são comuns:

html<img id="image" src="image.jpg">
css#image {
  width: 500px;
  height: 281px;
  mask-image: 
    url("heart.svg"),
    url("arrow.svg");
  mask-position: 
    100px 50px,
    50px 30px;
  mask-size: 150px;
  mask-repeat: no-repeat;
  mask-composite: exclude;
}

Результат:

Exemplo . Combinação com gradientes

Usando com máscaras de gradiente:

html<div id="gradient-box"></div>
css#gradient-box {
  width: 400px;
  height: 400px;
  background: linear-gradient(45deg, red, yellow, green, blue);
  mask-image: 
    radial-gradient(circle at 30% 30%, black 40%, transparent 70%),
    radial-gradient(circle at 70% 70%, black 40%, transparent 70%);
  mask-composite: exclude;
}

Результат:

Veja também

  • propriedade mask-image,
    define as imagens para as máscaras
  • propriedade mask,
    atalho para todas as propriedades de mascaramento
  • propriedade mask-mode,
    define o modo de composição da máscara
  • propriedade mix-blend-mode,
    define o modo de mesclagem de elementos