Mercado
Preços
Iniciar sessãoComeçar
Guia PráticoCSS e web
CSS e web

Backdrop filter em CSS: vidro fosco que se mantém rápido

O vidro fosco leva três linhas de CSS e ainda assim pode fazer engasgar um bom telemóvel. Aqui ficam o código, o que custa desenhá-lo e as alternativas que mantêm as palavras legíveis quando o desfoque não chega.

GradientlyConta Gradiently verificada·1 de outubro de 2026·6 min de leitura
Capa: Acoustic Sound · GR·NF1S·69

A versão curta

  • O backdrop filter do CSS aplica efeitos como o desfoque à zona por trás de um elemento, não ao próprio elemento.
  • Um elemento precisa de um fundo parcialmente transparente para o backdrop filter se ver; num fundo sólido o efeito fica escondido.
  • O custo do desfoque cresce com o raio e com o tamanho da área desfocada, e volta a ser pago sempre que o conteúdo por trás se move.
  • O Safari precisou do prefixo -webkit-backdrop-filter até à versão 18, por isso publicar as duas linhas continua a ser a escolha segura.
  • Uma boa alternativa é um fundo mais opaco dentro de uma consulta @supports, para que o texto continue legível quando o desfoque falta.
Nesta página
A receita básica de vidro foscoO que as funções de backdrop-filter podem fazerDesempenho do backdrop filterPorque é que o backdrop-filter não funcionaUma alternativa que mantém o texto legívelQuando nem precisas de desfoque

Um backdrop filter em CSS aplica um efeito gráfico, normalmente desfoque, ao que está por trás de um elemento. Escreve backdrop-filter: blur(12px) num elemento com um fundo parcialmente transparente e a página por baixo suaviza-se, que é o aspeto de vidro fosco usado em barras de navegação, painéis e cartões. É suportado em todos os navegadores atuais. A arte está em manter a área desfocada pequena, o raio modesto e a alternativa legível.

A receita básica de vidro fosco

Três coisas fazem o vidro: um preenchimento translúcido para o fundo se ver, o próprio desfoque e uma margem ténue para o painel ter forma. A maioria das pessoas acrescenta também um pequeno reforço de saturação, porque desfocar faz a média das cores e deixa-as mais cinzentas do que esperas.

css
.glass {
  background: rgb(255 255 255 / 0.14);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgb(255 255 255 / 0.22);
  border-radius: 16px;
}
Um painel de vidro claro para uma página escura ou colorida. Mantém a linha com prefixo primeiro para que a propriedade padrão vença onde ambas são entendidas.

O vidro só parece vidro quando há algo que valha a pena desfocar por trás. Numa página cinzenta lisa, o painel limita-se a parecer escuro. Põe-no sobre uma fotografia ou um gradiente rico, como o glassmorphism explica com mais profundidade.

Brasa e violeta sobre meia-noiteradial-gradient(circle at 20% 25%, #f97316 0%, transparent 40%), radial-gradient(circle at 80% 70%, #7c3aed 0%, transparent 45%), linear-gradient(160deg, #0f172a 0%, #1e1b4b 100%)
Um fundo com manchas de cor distintas. O desfoque transforma as manchas em luz suave por trás do painel, que é todo o objetivo do efeito.

O que as funções de backdrop-filter podem fazer

A propriedade aceita as mesmas funções que filter, e podes encadeá-las numa só declaração. Aplicam-se por ordem, da esquerda para a direita, por isso blur() e depois saturate() comporta-se de forma diferente do inverso. A lista completa está na MDN.

blur()blur(12px)

Boa para

Vidro fosco, foco por trás de uma caixa de diálogo
saturate()

Exemplo

saturate(160%)

Boa para

Devolver a cor depois de o desfoque a acinzentar
brightness()

Exemplo

brightness(0.7)

Boa para

Escurecer uma zona carregada por trás de texto claro
contrast()

Exemplo

contrast(0.8)

Boa para

Acalmar uma fotografia ruidosa sob um painel
grayscale()

Exemplo

grayscale(1)

Boa para

Atenuar a página por trás de um modal
nonenone

Boa para

Desligar o efeito numa alternativa ou numa media query
FunçãoExemploBoa para
blur()blur(12px)Vidro fosco, foco por trás de uma caixa de diálogo
saturate()saturate(160%)Devolver a cor depois de o desfoque a acinzentar
brightness()brightness(0.7)Escurecer uma zona carregada por trás de texto claro
contrast()contrast(0.8)Acalmar uma fotografia ruidosa sob um painel
grayscale()grayscale(1)Atenuar a página por trás de um modal
nonenoneDesligar o efeito numa alternativa ou numa media query
As funções que vais mesmo usar. brightness() abaixo de 1 costuma ser melhor ferramenta de legibilidade do que um desfoque mais pesado.

Desempenho do backdrop filter

O desfoque é uma das coisas mais caras que um navegador desenha. Para desfocar uma região, tem de ler cada píxel por trás do elemento, amostrar os vizinhos até ao raio de desfoque e compor o resultado, e repete esse trabalho sempre que algo por trás do painel muda. Um cabeçalho fixo sobre uma página em deslocação redesenha o desfoque em cada fotograma do deslocamento.

O custo escala com dois números que controlas: a área do elemento e o raio. Um cabeçalho de 64 píxeis desfocado a 12px é barato em quase tudo. Uma sobreposição de ecrã inteiro desfocada a 40px sobre um vídeo pode perder fotogramas num telemóvel de gama média. O panorama mais amplo está no desempenho dos gradientes em CSS.

Lento

  • Desfocar toda a janela por trás de um modal
  • Raios de 30px ou mais
  • Animar o raio de desfoque ao abrir e fechar
  • Painéis de vidro dentro de painéis de vidro
  • Desfoque sobre vídeo em reprodução automática

Rápido

  • Desfocar só a barra, cartão ou painel que precisa
  • Raios entre 8px e 20px
  • Fazer surgir a opacidade do painel, com o desfoque fixo
  • Uma só camada de vidro, preenchimentos sólidos lá dentro
  • Desfoque sobre imagens estáticas e gradientes

Mede num telemóvel real

Nas ferramentas de programador do Chrome, abre o painel Rendering, liga o paint flashing e desloca. Se o vidro pisca em cada fotograma e o painel Performance mostra fotogramas perdidos, reduz a área ou o raio antes de mais nada.

Porque é que o backdrop-filter não funciona

Quando o desfoque parece não fazer nada, a causa é quase sempre uma de uma lista curta.

  1. 1

    Confirma que o fundo é transparente

    Um background: #fff sólido cobre por completo o fundo desfocado. Usa um valor alfa como rgb(255 255 255 / 0.15).

  2. 2

    Acrescenta o prefixo do Safari

    O Safari só aceita a propriedade sem prefixo a partir da versão 18. Os iPhones mais antigos ainda precisam de -webkit-backdrop-filter.

  3. 3

    Procura uma raiz de fundo acima

    Um elemento pai com filter, opacity abaixo de 1, uma máscara ou o seu próprio backdrop filter limita o que o filho consegue ver. O filho desfoca então só esse pai, o que muitas vezes parece nenhum desfoque.

  4. 4

    Atenção aos filhos fixos

    Tal como o filter, um backdrop filter faz do elemento o bloco contentor de filhos fixos e de posição absoluta. Um menu fixo dentro de um cabeçalho de vidro posiciona-se em relação ao cabeçalho, não à janela.

  5. 5

    Garante que há algo por trás

    O desfoque sobre uma cor lisa é invisível. Desloca o painel sobre uma imagem para confirmar que funciona.

Uma alternativa que mantém o texto legível

Os painéis translúcidos são pensados em torno do desfoque. Sem ele, um preenchimento branco a 14 por cento sobre uma fotografia carregada deixa o texto assente na própria fotografia, e o contraste desaba. Escreve primeiro a versão legível e depois melhora-a onde o navegador consegue desfocar.

css
/* Works everywhere: opaque enough to read on its own */
.glass {
  background: rgb(15 23 42 / 0.86);
  color: #f8fafc;
}

/* Upgrade where blur is available */
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .glass {
    background: rgb(15 23 42 / 0.45);
    -webkit-backdrop-filter: blur(14px) saturate(150%);
    backdrop-filter: blur(14px) saturate(150%);
  }
}

/* Respect people who ask for less transparency, where supported */
@media (prefers-reduced-transparency: reduce) {
  .glass {
    background: rgb(15 23 42 / 0.94);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}
Melhoria progressiva para o vidro. O suporte de prefers-reduced-transparency ainda é limitado, por isso trata esse bloco como uma cortesia e não como uma garantia.

Verifica o contraste no pior ponto por trás do painel, não na média. Um título branco sobre vidro que passa por um céu brilhante pode ficar bem abaixo das razões do contraste de cor e acessibilidade. Escurecer com brightness(0.7) costuma resolver isto com mais fiabilidade do que desfocar mais.

Quando nem precisas de desfoque

Muito vidro fosco existe só para tornar as palavras legíveis sobre um fundo carregado. Se o fundo é teu para desenhar, um mais calmo resolve o problema sem custo de renderização. Um gradiente suave e de baixo contraste por trás de um herói não precisa de painel; vê os fundos de herói para sites e os fundos desfocados, onde o desfoque é incorporado na imagem uma vez em vez de calculado a cada fotograma.

Novidades
Coleção de primavera, já disponível.
Gradiently · @gradiently

Palavras diretamente sobre um fundo animado: é aqui que as pessoas procuram um painel de vidro.

Novidades
Coleção de primavera, já disponível.
Gradiently · @gradiently

O mesmo fundo a acalmar-se por trás das palavras, sem painel, sombra nem desfoque.

Esta segunda abordagem é a que o Gradiently usa para a legibilidade: um Mark sabe onde estão as palavras e move a sua região mais calma e de melhor contraste para trás delas, por isso nunca precisas de uma caixa ou de um desfoque para salvar um título.

Cria com um gradiente vivo

Publicações, stories, diapositivos e banners em todos os tamanhos, com texto que se lê sempre.

Começar a criar, grátis

Perguntas frequentes

Qual é a diferença entre filter e backdrop-filter?

filter altera o elemento e o seu conteúdo. backdrop-filter altera apenas o que se vê por trás do elemento, através do seu fundo transparente.

Porque não aparece o desfoque do meu backdrop-filter?

Normalmente o fundo do elemento é totalmente opaco, o Safari precisa do prefixo -webkit- ou um elemento pai com filter, opacity ou uma máscara limita o que o elemento consegue ver.

O backdrop-filter é mau para o desempenho?

Pode ser. O custo cresce com a área desfocada e o raio e é pago de novo sempre que o conteúdo por trás se move, por isso mantém os painéis de vidro pequenos e os raios modestos.

Ainda preciso de -webkit-backdrop-filter?

O Safari aceita a propriedade sem prefixo a partir da versão 18, mas os iPhones mais antigos continuam em uso, por isso publicar as duas linhas ainda é sensato.

Que valor de desfoque fica melhor em vidro fosco?

Entre 8px e 20px serve a maioria das interfaces. Acrescenta saturate() acima de 100% para restaurar a cor que o desfoque tira.

Partilhar este guia

Escrito pela GradientlyConta Gradiently verificada

A equipa por trás da Gradiently, uma ferramenta de design construída em torno dos Marks: gradientes vivos que fazem tudo o que crias parecer teu.

Ver o nosso perfil

Nesta página

A receita básica de vidro foscoO que as funções de backdrop-filter podem fazerDesempenho do backdrop filterPorque é que o backdrop-filter não funcionaUma alternativa que mantém o texto legívelQuando nem precisas de desfoque

Partilhar este guia

A seguir em CSS e web

CSS text-shadow: sintaxe, exemplos e melhores alternativas

Continua a ler

Todos os guias de CSS e web
Gradientes

Glassmorphism e gradientes: um guia prático

6 min de leitura

Vidro fosco sobre um gradiente luminoso é um dos efeitos mais atraentes no design de interfaces, e um dos mais fáceis de tornar ilegível. Eis como ficar com a beleza e manter as palavras.

CSS e web

Desempenho dos gradientes CSS: os gradientes abrandam um site?

7 min de leitura

Um gradiente CSS estático é quase gratuito. Os custos vêm do que as pessoas fazem com os gradientes: desfocados enormes, fundos que se repintam ao deslocar e animações que nunca páram. Eis como distinguir.

Fundos

Fundos desfocados: desfoque suave bem feito

5 min de leitura

O desfoque empurra o fundo para trás para que o assunto ou as palavras venham para a frente. Pouco parece acidental, demasiado no sítio errado parece barato. Eis como avaliar.

Encontra o visual que é só teu.

Cada Mark é um fundo vivo com um só dono. Experimenta um Mark ainda disponível e reserva o teu quando te parecer certo.

Começar a criar

Verificar um certificado

Escreve um número de certificado ou o código de um Mark para veres quem é o dono.

Funciona com o ChatGPT e o Claude

Pede um design à tua IA. Ela cria-o no teu Mark, pronto a editar.

ChatGPTClaude
Como ligar

Produto

  • Mercado
  • Explorar
  • Preços
  • Certificados

Aprender

  • Guia Prático
  • Centro de ajuda
  • Novidades

Programadores

  • Visão geral
  • ChatGPT e Claude
  • Referência da API
  • Chaves de API

Empresa

  • Sobre nós
  • Contactos
  • Iniciar sessão

Legal

  • Termos
  • Privacidade
  • Reembolsos
  • Proteção de Marks
  • Cookies
  • Todas as políticas
Passa pelas letras. Cada uma veste um Mark real.Toca numa letra para veres o seu Mark.Um nome. Dez Marks lá dentro.
© 2026 Gradiently