CSS Mask Image Gradiente
Gere CSS mask-image com gradiente linear para criar efeitos de fade suave nas bordas de imagens e divs. Ajuste a direção e copie o código pronto para usar.
CSS
—
CSS mask-image — máscaras alfa para interfaces modernas
A propriedade CSS mask-image aplica uma máscara alfa sobre qualquer elemento, permitindo que partes dele desapareçam, se misturem ou façam fade no fundo. Diferente do clip-path, que faz um corte binário (o pixel é visível ou invisível), a máscara aceita gradientes ou imagens onde valores intermediários ficam parcialmente transparentes — ideal para fade-outs suaves, bordas curvas e ícones coloridos por CSS.
A sintaxe mínima é mask-image: linear-gradient(black 50%, transparent 100%) para máscara em gradiente, ou mask-image: url(mask.svg) para uma imagem externa. A máscara se aplica ao elemento inteiro, incluindo filhos — uma única declaração consegue fazer fade de uma árvore DOM complexa.
A família completa de propriedades mask-*
mask-image— a imagem, gradiente ou referência a um<mask>SVGmask-size—cover,containou dimensões explícitas (funciona comobackground-size)mask-repeat—no-repeat,repeat-x,round, etc.mask-position— âncora da máscara dentro do elementomask-mode—alpha,luminanceoumatch-source(decide se brilho ou transparência controla a visibilidade)mask-composite—add,subtract,intersect,excludepara operações boolianas entre máscaras empilhadas, no estilo Photoshop
Suporte cross-browser
Chromium 120+ suporta as propriedades mask-* sem prefixo; Firefox 53+ suporta há anos; Safari historicamente exige o prefixo -webkit-. A declaração defensiva é escrever as duas formas:
.fade {
-webkit-mask-image: linear-gradient(black 80%, transparent);
mask-image: linear-gradient(black 80%, transparent);
}
Casos de uso reais
- Fade em prévia longa: o clássico padrão "ler mais" — aplica
linear-gradient(black 70%, transparent)no rodapé de um card para o último parágrafo dissolver suavemente. - Hero com borda curva: uma máscara radial ou SVG corta uma onda ou arco na base de uma foto de hero sem precisar de nós DOM extras.
- Variantes monocromáticas de ícones: mascarar um
background-colorsólido com um PNG/SVG preto-em-transparente para recolorir um ícone para qualquer cor da marca via CSS custom properties, sem exportar novos assets. - Animações de revelação: animar
mask-positionoumask-sizepara deslizar conteúdo para dentro — composto pela GPU e barato.
Perguntas frequentes
Qual a diferença entre mask-image e clip-path? O clip-path faz um corte binário: o pixel é visível ou não, sem opacidade parcial. O mask-image aceita gradientes alfa, então pixels podem ter 50% de transparência, blend ou feather. Use clip-path para formas poligonais duras, mask-image para fades suaves e máscaras baseadas em imagem.
SVG ou PNG para máscara? SVG é quase sempre melhor — escala perfeitamente em qualquer DPR, tem tamanho mínimo e pode ser embutido como data URI. PNGs deixam bordas borradas em telas retina e forçam uma requisição de rede.
Posso combinar mask-image com filter ou backdrop-filter? Sim. O elemento é renderizado, a máscara é aplicada e os filtros entram em cascata por cima. Dá pra empilhar blur, hue-rotate e máscara no mesmo elemento sem problema de performance em hardware moderno — máscaras e filtros são compostos pela GPU.
A máscara age só no background ou no elemento inteiro? No elemento inteiro, incluindo texto e nós filhos. Essa é a diferença-chave em relação a background-image: a máscara corta tudo que o elemento renderiza, e é por isso que o fade de texto longo funciona tão limpo.
Ferramentas Relacionadas
CSS Glow Neon
Crie efeitos de brilho neon em CSS para bordas, botões e textos, com cores vivas e camadas de sombra. Ajuste a intensidade e copie o código pronto.
CSS Box-Shadow Multi
Gere sombras CSS box-shadow com várias camadas para dar profundidade aos elementos. Ajuste cor, desfoque e deslocamento e copie o código na hora.
CSS Focus Ring Acessível
Gere um focus ring (anel de foco) CSS acessível, com bom contraste seguindo as diretrizes WCAG. Melhore a navegação por teclado do seu site e copie o código.