Liquid Glass Lab

Liquid Glass

Liquid Glass é o material que a Apple trouxe no iOS 26: um vidro que dobra a luz nas bordas, separa as cores como um prisma e se funde com outros vidros como gotas d'água. Esta página reconstrói esse material de cinco jeitos, do shader em WebGL ao CSS puro.

O palco acima roda num shader GLSL. Para cada pixel, o shader mede a distância até a borda da gota, inclina a superfície num bisel arredondado e busca o fundo num ponto mais para dentro. Arraste as gotas, encoste uma na outra e mexa nos ajustes.

Técnica
WebGL em 4 passes: cena, desfoque horizontal, desfoque vertical e vidro com SDF
Funciona em
Qualquer navegador com WebGL: Chrome, Edge, Safari e Firefox
Custo
Médio. Cerca de 10 leituras de textura por pixel coberto de vidro

WebGL · união suave de SDFs

Fusão líquida

No iOS 26 um botão de vidro se divide em vários e depois volta a ser um só. Aqui isso é uma união suave de funções de distância: quando duas formas se aproximam, o shader preenche o vão com uma ponte de vidro. Toque no botão + ou arraste-o para ver os itens escorrendo atrás.

Técnica
smin() entre até 8 retângulos arredondados; molas com atraso diferente para cada item
Funciona em
Qualquer navegador com WebGL
Custo
Baixo. A forma é calculada, não desenhada: mudar tamanho ou posição não custa nada

SVG · backdrop-filter: url()

Refração sobre o DOM

O WebGL só refrata o que ele mesmo desenha. Para dobrar HTML de verdade, com texto selecionável e rolagem, o vidro usa um filtro SVG dentro do backdrop-filter. Role o artigo e arraste a lupa por cima do texto.

A luz faz curva no vidro

Quando a luz passa do ar para o vidro, ela desacelera e muda de direção. A lei de Snell descreve essa curva: n₁ · sen θ₁ = n₂ · sen θ₂. Quanto maior o índice de refração, mais forte a curva.

Num bloco de vidro com bordas arredondadas, o centro é plano e deixa a imagem passar quase intacta. No bisel a superfície inclina e os raios são puxados para dentro. Por isso o conteúdo parece escorrer pela borda.

λ 620 nm
listras a 45°
sol de meio-dia
espectro visível
MaterialÍndice n (589 nm)
Ar1,000
Água1,333
Vidro crown (BK7)1,517
Vidro flint (F2)1,620
Safira1,770
Diamante2,417

O índice muda com a cor. O vermelho curva menos que o azul, e essa diferença, a dispersão, é medida pelo número de Abbe: cerca de 64 no BK7 e 36 no flint. Nas bordas do vidro ela vira uma franja colorida. Aqui a franja sai de três mapas de deslocamento com escalas um pouco diferentes, um para cada canal.

O filtro lê o que está atrás do elemento e redesenha cada pixel a partir de outro ponto.

Neste palco o vidro usa backdrop-filter: url(#filtro). O filtro carrega um mapa de deslocamento gerado em JavaScript: o canal vermelho guarda o deslocamento horizontal e o verde, o vertical. O feDisplacementMap usa esse mapa para buscar cada pixel do fundo em outro lugar.

Como o mapa é calculado:

  1. Para cada pixel, mede a distância até a borda arredondada (uma SDF).
  2. No bisel, empurra a amostra para dentro, com mais força perto da borda.
  3. Na lupa, aproxima a amostra do centro para ampliar.
  4. Grava o vetor nos canais R e G, com 128 valendo zero.
360°
padrão de teste

Como o filtro trabalha sobre pixels já desenhados, qualquer coisa atrás do vidro entra no efeito: texto, imagens, vídeo, até outro canvas. O custo cresce com a área do vidro, não com a complexidade da página.

Óptica
18 px
22 px
1,45×
Técnica
feImage com mapa gerado em canvas, três feDisplacementMap (R, G, B) e feBlend
Funciona em
Refração: Chrome, Edge, Opera. Safari e Firefox: desfoque comum
Custo
Baixo a médio. O mapa só é recalculado quando o elemento muda de tamanho

CSS + SVG · física de mola

Componentes no estilo iOS 26

Barras, botões e controles que viram lente quando você toca. Arraste o dedo pela barra de abas: a seleção estica na direção do movimento e amplia os ícones por baixo. Segure um interruptor ou o controle de volume para ver o botão virar vidro.

Ouvir agora

Estação pessoalMix Vidro Líquido

Ouvidos recentemente

Maré AltaLagoa Azul
Vidro AzulCobalto
Neon 84Os Prismas
CítricoSal & Sol
Lua CheiaNoturno
Areia QuenteDuna

Mais tocadas

  • RefraçãoOs Prismas
  • Índice 1,52Cobalto
  • BiselSal & Sol
  • Lei de SnellLagoa Azul
  • Ângulo CríticoNoturno
  • Número de AbbeDuna
RefraçãoOs Prismas

9:41

Terça-feira, 6 de outubro

Conexões

Wi-Fi
Bluetooth
Modo avião

Volume

Brilho

Período

Botões

Técnica
Molas em JavaScript (posição, velocidade, esticamento) e easing linear() gerado a partir da mesma mola
Funciona em
Todos. A lente com refração aparece no Chromium; nos outros, vira vidro desfocado
Custo
Baixo. Só transform e opacity animam; o filtro fica fixo

CSS · camada por camada

Anatomia de uma camada de vidro

Desligue cada ingrediente e veja o que ele faz. O CSS ao lado acompanha as caixas marcadas, pronto para copiar.

Vidrobackdrop-filter · 6 camadas
Camadas do vidro