Progressão Harmônica de Camadas
Cartão de Interface SaaS
Visualize a renderização em tempo real da sombra projetada sob iluminação física simulada.
Gere sombras CSS multicamadas e elevações suaves realistas. Ajuste deslocamento, desfoque, dispersão e brilho interno (inset), exportando código CSS limpo ou tokens do Tailwind.
Visualize a renderização em tempo real da sombra projetada sob iluminação física simulada.
Gere sombras CSS multicamadas (box-shadow) com elevação suave e realista. Personalize deslocamento, desfoque, propagação e brilho interno (inset), exportando tokens prontos para CSS e Tailwind.
Especifica o deslocamento cartesiano horizontal da sombra em relação à borda do elemento (border-box). Valores positivos projetam a sombra para a direita; valores negativos a deslocam para a esquerda. Em modelos de iluminação multicamada, o offset-x é derivado como dx = distance * cos(theta), onde theta representa o ângulo da fonte de luz incidente.
Especifica o deslocamento cartesiano vertical da sombra. Valores positivos projetam a sombra para baixo (simulando luz solar zenital ou iluminação ambiente de teto); valores negativos a projetam para cima. Modelos físicos de elevação escalam o offset-y proporcionalmente à elevação perceptual no eixo Z.
Define o parâmetro de desvio padrão do kernel do filtro de desfoque gaussiano aplicado ao perímetro da sombra (sigma = blur / 2). Um raio de desfoque igual a 0 gera uma silhueta rígida e nítida; valores acima de 0 produzem um gradiente de penumbra difusa. Valores superiores a 64px podem causar gargalos de rasterização na GPU em dispositivos móveis menos potentes.
Expande ou contrai a geometria da sombra em todas as quatro direções antes da rasterização do desfoque gaussiano. Valores positivos dilatam o perímetro da sombra para fora; valores negativos contraem a sombra para dentro — técnica fundamental em sombras multicamadas para evitar vazamento lateral (bleeding) enquanto preserva uma ancoragem vertical profunda.
Define a cor espectral e a opacidade da sombra projetada. Preto puro (rgba(0, 0, 0, alpha)) representa absorção não calibrada, gerando bordas acinzentadas e opacas sobre fundos coloridos. Tokens profissionais utilizam matizes tonificados (ex.: azul-marinho profundo para superfícies frias ou sépia escuro para superfícies quentes) com canal alfa calibrado entre 4% e 25%.
Quando ativado, inverte o vetor de projeção para renderizar a sombra dentro do border-box do elemento em vez de projetá-la externamente. Sombras inset simulam cavidades em baixo-relevo (debossing), rebaixos côncavos, chanfros internos iluminados e estados de botões pressionados, respeitando rigorosamente a curvatura do border-radius.
O expoente da lei de potência polinomial ou exponencial (tipicamente k = 1.8 a 2.4) que controla a escala das distâncias de deslocamento, raios de desfoque gaussiano e opacidade alfa através das camadas consecutivas na pilha. Evita transições lineares artificiais e emula a dissipação óptica real da luz baseada na lei do inverso do quadrado da distância.
Ao aplicar sombras verticais intensas (ex.: offset-y: 20px, blur: 25px), o desfoque gaussiano se expande automaticamente na horizontal para a esquerda e para a direita, gerando um aspecto inflado e artificial. Ao introduzir um spread radius negativo equivalente a cerca de 20% a 40% do deslocamento vertical (ex.: spread: -6px), você retrai as bordas laterais sem perder a ancoragem vertical inferior, obtendo uma elevação limpa e refinada.
Fazer transições ou animações diretas na propriedade CSS box-shadow força a engine de renderização do navegador a recalcular e rasterizar kernels pesados de desfoque gaussiano nas camadas de pintura (Paint) da CPU e GPU a cada quadro, causando engasgos (jank) e queda de frames no hover. Em vez disso, declare a sombra elevada em um pseudo-elemento ::after com opacity: 0 e will-change: opacity, animando apenas opacity: 1 e uma propriedade acelerada por hardware como transform: translateY(-2px), garantindo transições a 120fps fluidas no compositor da GPU.
Usar sombras pretas neutras (rgba(0, 0, 0, 0.15)) sobre superfícies coloridas como âmbar quente, verde-esmeralda ou safira cria halos acinzentados e dessaturados ao longo do perímetro do desfoque devido à interpolação sRGB gama. Para alcançar profundidade cromática sofisticada, derive a cor da sombra deslocando o matiz (hue) do fundo em 10° a 20° em direção a um tom complementar mais escuro, aumentando a saturação em 15% e reduzindo a luminosidade para a faixa de 8% a 15%.
Se um elemento pai contiver overflow: hidden ou overflow: auto, qualquer box-shadow que ultrapasse as dimensões da caixa delimitadora será recortada imediatamente. Resolva isso aplicando padding suficiente ao contêiner pai (no mínimo igual a blur + offset-y), removendo overflow: hidden ou aplicando a sombra a uma div externa isolada fora do fluxo do contêiner de rolagem.
Empilhar mais de 6 camadas complexas de sombra com raios de desfoque acima de 60px consome memória excessiva no cache de textura da GPU, especialmente em telas Retina de alto DPI. Otimize reduzindo para 3 ou 4 camadas harmônicas rigorosamente calibradas, limitando o desfoque máximo a 40px e adicionando contain: paint ou will-change: transform para promover o elemento a uma camada isolada de composição por hardware.
O WebKit apresenta um bug conhecido de suavização subpixel ao renderizar simultaneamente border-radius externo e box-shadow com a flag inset. Corrija isso aplicando explicitamente -webkit-mask-image: -webkit-radial-gradient(white, black), adicionando transform: translateZ(0) e assegurando que os valores de border-radius usem números inteiros em pixels em vez de decimais fracionados em rem.
A propriedade CSS box-shadow calcula a projeção exclusivamente sobre o retângulo border-box e o border-radius do elemento, ignorando áreas transparentes internas. Para projetar uma sombra que siga exatamente o contorno recortado de imagens PNG ou vetores SVG, substitua box-shadow por CSS filter: drop-shadow(x y blur color). Lembre-se de que filter: drop-shadow não suporta os argumentos spread ou inset.
Sombras de camada única no CSS dependem de um desfoque gaussiano linear uniforme que não reproduz a física óptica do mundo real. Na física da luz, um objeto iluminado gera duas zonas de sombra distintas: uma umbra de contato escura e nítida sob a base (oclusão ambiente) e uma penumbra difusa, suave e ampla que se dissipa gradualmente. Ao empilhar de 3 a 6 camadas de box-shadow com decaimento exponencial de distância e desfoque (ex.: y_i = d * (i/n)^2.2, blur_i = b * (i/n)^2.0, alpha_i = alpha_max * e^(-0.6i)), simula-se com precisão tanto a oclusão ambiente quanto a dispersão volumétrica da luz.
A propriedade CSS box-shadow atua estritamente sobre a caixa retangular (border-box) do elemento e seu border-radius, ignorando transparências internas e pseudo-elementos. Em contrapartida, filter: drop-shadow() avalia a máscara real do canal alfa dos pixels renderizados, projetando sombras nos contornos transparentes de PNGs, vetores SVG inline e formas criadas com clip-path. No entanto, filter: drop-shadow() não tem suporte ao parâmetro spread-radius nem à palavra-chave inset, além de exigir maior custo computacional de composição na GPU quando múltiplos filtros são encadeados.
Sombras em preto puro (rgba(0, 0, 0, 0.15)) sobre fundos coloridos criam contornos cinzentos e visualmente sujos porque a mesclagem alfa no espaço sRGB reduz a cromaticidade do fundo. Para gerar sombras ricas e vívidas, capture a tonalidade do fundo, desloque-a entre 10° e 20° em direção a um tom complementar mais escuro (por exemplo, movendo um fundo laranja para um tom sépia avermelhado profundo, ou um fundo azul para azul-marinho meia-noite), aumente a saturação em 15% a 30% e reduza a luminosidade para 10% a 20%. No CSS moderno, isso pode ser automatizado com color-mix(in oklch, var(--bg-color), black 80%).
Nunca anime a propriedade box-shadow diretamente; essa prática força a CPU e a GPU do navegador a recalcular matrizes pesadas de desfoque gaussiano a cada quadro (disparando etapas custosas de Paint e Composite). Em vez disso, pré-renderize a sombra elevada em um pseudo-elemento ::after persistente com opacity: 0 inicial e anime apenas opacity e transform: translateY(-2px) nos estados :hover ou :focus. Como opacity e transform são processados inteiramente na thread do compositor da GPU sem acionar reflow (Layout) ou repintura (Paint), as animações alcançam 60fps/120fps constantes sem perda de quadros.
Design systems de referência (como Material Design, Tailwind CSS e Apple HIG) organizam sombras em uma escala de elevação no eixo Z de 5 a 6 níveis: Elevação 1 (Estado de repouso de cartões/botões: 1-2px no eixo Y, 3-4px de desfoque, 5-8% de opacidade para separação sutil), Elevação 2 (Hover de cartões/botões elevados: 4-6px no eixo Y, 8-12px de desfoque, 10-12% de opacidade), Elevação 3 (Menus suspensos/popovers: 8-12px no eixo Y, 16-24px de desfoque, 12-15% de opacidade), Elevação 4 (Diálogos modais/drawers: 16-24px no eixo Y, 32-48px de desfoque, 15-20% de opacidade) e Elevação 5 (Toasts/alertas de sistema flutuantes: 24-32px no eixo Y, 48-64px de desfoque, 20-25% de opacidade com brilho perimétrico ambiente).
Não, box-shadow não interfere na geometria do fluxo de layout do documento, não altera as dimensões do bounding box do elemento e não dispara recálculos de reflow (Layout) no DOM quando aplicado ou alternado. Contudo, como as sombras são renderizadas fora do modelo de caixa (box model), valores elevados de blur ou spread podem sobrepor elementos adjacentes, ocultar textos ou gerar barras de rolagem horizontal se a sombra ultrapassar a largura da viewport (a menos que seja contida por overflow: hidden).
Crie formas e polígonos CSS clip-path personalizados com controles interativos. Copie regras CSS compatíveis, código SVG e coordenadas responsivas em porcentagem.
Extraia paletas de cores de imagens instantaneamente. Gere amostras dominantes em HEX, RGB e HSL, exporte tokens CSS e Tailwind e teste o contraste de acessibilidade WCAG.
Calcule dimensões na proporção áurea e retângulos dourados instantaneamente. Divida comprimentos por phi (1,618), dimensione escalas tipográficas e gere grids responsivos para layouts.
Crie sombras suaves em relevo, rebaixadas e planas com nosso Gerador de Neumorfismo CSS. Copie código limpo e ajuste ângulo, desfoque e contraste em tempo real.
Gere esquemas e harmonias de paletas de cores instantaneamente. Crie paletas complementares, análogas, triádicas e meio-complementares com verificação de contraste WCAG em tempo real e exportação CSS.
Gere código CSS moderno de glassmorphism e vidro fosco com ajustes em tempo real de desfoque backdrop-filter, opacidade, borda e sombra. Copie HTML e CSS limpos.