backdrop-filter

A propriedade CSS backdrop-filter permite que você aplique efeitos gráficos, como desfoque ou mudança de cores, na área ao fundo de um elemento. Como ela se aplica a tudo que fica atrás do elemento, é preciso deixá-lo (ou o seu plando de fundo) ao menos parcialmente transparente para poder ver o efeito em ação.

css
/* Valor de palavra-chave */
backdrop-filter: none;

/* Filtro com URL para SVG */
backdrop-filter: url(commonfilters.svg#filter);

/* Valores <filter-function> */
backdrop-filter: blur(2px);
backdrop-filter: brightness(60%);
backdrop-filter: contrast(40%);
backdrop-filter: drop-shadow(4px 4px 10px blue);
backdrop-filter: grayscale(30%);
backdrop-filter: hue-rotate(120deg);
backdrop-filter: invert(70%);
backdrop-filter: opacity(20%);
backdrop-filter: sepia(90%);
backdrop-filter: saturate(80%);

/* Vários filtros */
backdrop-filter: url(filters.svg#filter) blur(4px) saturate(150%);

/* Valores globais */
backdrop-filter: inherit;
backdrop-filter: initial;
backdrop-filter: unset;

Sintaxe

Valores

none

Nenhum filtro é aplicado ao plano de fundo.

<filter-function-list>

Uma lista de <filter-function> (en-US)s separadas por espaços ou um filtro SVG que será aplicado ao plano de fundo.

Definição formal

Initial valuenone
Aplica-se aall elements; In SVG, it applies to container elements excluding the defs element and all graphics elements
Inheritednão
Computed valueas specified
Animation typea filter function list

Sintaxe formal

backdrop-filter = 
none | (en-US)
<filter-value-list>

<filter-value-list> =
[ (en-US) <filter-function> | (en-US) <url> ] (en-US)+ (en-US)

<filter-function> =
<blur()> | (en-US)
<brightness()> | (en-US)
<contrast()> | (en-US)
<drop-shadow()> | (en-US)
<grayscale()> | (en-US)
<hue-rotate()> | (en-US)
<invert()> | (en-US)
<opacity()> | (en-US)
<sepia()> | (en-US)
<saturate()>

<url> =
<url()> | (en-US)
<src()>

<blur()> =
blur( <length> (en-US)? (en-US) )

<brightness()> =
brightness( [ (en-US) <number> | (en-US) <percentage> (en-US) ] (en-US)? (en-US) )

<contrast()> =
contrast( [ (en-US) <number> | (en-US) <percentage> (en-US) ] (en-US)? (en-US) )

<drop-shadow()> =
drop-shadow( [ (en-US) <color>? (en-US) && (en-US) <length> (en-US){2,3} (en-US) ] (en-US) )

<grayscale()> =
grayscale( [ (en-US) <number> | (en-US) <percentage> (en-US) ] (en-US)? (en-US) )

<hue-rotate()> =
hue-rotate( [ (en-US) <angle> (en-US) | (en-US) <zero> ] (en-US)? (en-US) )

<invert()> =
invert( [ (en-US) <number> | (en-US) <percentage> (en-US) ] (en-US)? (en-US) )

<opacity()> =
opacity( [ (en-US) <number> | (en-US) <percentage> (en-US) ] (en-US)? (en-US) )

<sepia()> =
sepia( [ (en-US) <number> | (en-US) <percentage> (en-US) ] (en-US)? (en-US) )

<saturate()> =
saturate( [ (en-US) <number> | (en-US) <percentage> (en-US) ] (en-US)? (en-US) )

<url()> =
url( <string> (en-US) <url-modifier>* (en-US) ) | (en-US)
<url-token>

<src()> =
src( <string> (en-US) <url-modifier>* (en-US) )

Exemplo

CSS

css
.box {
  background-color: rgba(255, 255, 255, 0.3);
  border-radius: 5px;
  font-family: sans-serif;
  text-align: center;
  line-height: 1;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  max-width: 50%;
  max-height: 50%;
  padding: 20px 40px;
}

html,
body {
  height: 100%;
  width: 100%;
}

body {
  background-image: url(https://picsum.photos/id/1080/6858/4574);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}

.container {
  align-items: center;
  display: flex;
  justify-content: center;
  height: 100%;
  width: 100%;
}

HTML

html
<div class="container">
  <div class="box">
    <p>backdrop-filter: blur(10px)</p>
  </div>
</div>

Resultado

Especificações

Specification
Filter Effects Module Level 2
# BackdropFilterProperty

Compatibilidade com navegadores

BCD tables only load in the browser

Veja também