CSS Academy · Aula

will-change e promoção de camadas

Dê ao navegador uma indicação para promover elementos a camadas da GPU usando will-change, obtendo animações mais suaves.

Aula 3 de 413 etapas

will-change e promoção de camadas é uma aula grátis de CSS Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de CSS Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de CSS Academy inclui 4 aulas no total.

O que é will-change?

will-change informa ao navegador que um elemento será animado, permitindo que ele prepare otimizações antecipadamente — como promover o elemento para sua própria camada de composição da GPU antes do início da animação.

Sintaxe

Especifique qual propriedade mudará: will-change: transform, will-change: opacity, will-change: transform, opacity. Use will-change: auto para remover as indicações quando a animação terminar.

Quando usá-lo

Aplique will-change somente aos elementos que realmente serão animados e apenas durante a animação. Adicioná-lo e removê-lo com JavaScript (por meio de uma classe) é mais eficiente do que deixá-lo permanentemente em elementos estáticos.

Custo da promoção de camadas

Cada camada promovida consome memória da GPU. Promover muitos elementos simultaneamente causa pressão sobre a memória, o que pode reduzir o desempenho — especialmente em dispositivos móveis com RAM limitada na GPU. Promova camadas com moderação e de forma deliberada.

Evitando a aplicação indiscriminada

Nunca aplique will-change a * nem a um grande número de elementos. O custo da otimização supera o benefício quando são criadas camadas demais. Analise primeiro; adicione will-change somente quando um problema específico de engasgo tiver sido confirmado.

will-change versus o truque de translateZ

Antes de will-change, os desenvolvedores usavam transform: translateZ(0) ou translate3d(0,0,0) para forçar a promoção para a GPU. will-change é a abordagem adequada e semântica. O truque de translateZ ainda funciona, mas é um detalhe de implementação, não uma expressão da intenção.

Efeito colateral do contexto de empilhamento

Camadas promovidas criam novos contextos de empilhamento. Isso afeta o comportamento de z-index — os filhos de um elemento promovido são empilhados em relação a esse elemento, não à raiz do documento. Tenha atenção às mudanças no contexto de empilhamento ao promover elementos.

Padrão de aplicação dinâmica

Adicione will-change em mouseenter ou no início de uma animação e remova-o em mouseleave ou no fim da animação. Assim, o navegador tem tempo para se preparar sem consumir permanentemente memória da GPU com elementos inativos.

  <pre class="snippet">el.addEventListener("mouseenter", () => el.style.willChange = "transform");
el.addEventListener("mouseleave", () => el.style.willChange = "auto");</pre>

Analisando a quantidade de camadas

Chrome DevTools → o painel Camadas visualiza as camadas promovidas. Uma quantidade elevada de camadas (centenas) indica promoção excessiva. A seção Memória mostra o uso de memória da GPU. Mantenha a quantidade de camadas promovidas no mínimo e monitore-a em perfis de dispositivos de baixo custo.

Alternativa com a propriedade contain

CSS contain: layout paint restringe os cálculos de layout e pintura a uma subárvore, de forma semelhante ao isolamento. Isso melhora o desempenho de componentes autocontidos sem criar camadas da GPU — uma otimização menos dispendiosa que will-change para elementos não animados.

Suporte e comportamento nos navegadores

will-change tem suporte completo em todos os navegadores modernos. Os navegadores tratam essa propriedade como uma indicação, não como um comando — podem ignorá-la quando os recursos estão limitados. Não dependa dela como garantia; use-a apenas como orientação de desempenho.

Verificação de conhecimento

Qual é o principal risco de aplicar will-change a muitos elementos simultaneamente?

Resumo

will-change promove elementos para camadas de composição da GPU antes das animações, eliminando o custo da promoção no início da animação. Aplique-o de forma dinâmica e moderada — somente onde a análise de desempenho mostrar engasgos — para evitar o consumo excessivo de memória da GPU causado pela promoção exagerada.

Grátis para começar

Aprenda CSS com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
40
Aulas
159

Perguntas Frequentes

A aula “will-change e promoção de camadas” é grátis?

Sim — o texto completo de “will-change e promoção de camadas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de CSS Academy, atualize para CoddyKit PRO. O curso de CSS Academy inclui 4 aulas no total.

O que vou aprender em “will-change e promoção de camadas”?

Dê ao navegador uma indicação para promover elementos a camadas da GPU usando will-change, obtendo animações mais suaves. Você pratica CSS Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar CSS Academy?

Nenhuma experiência prévia é necessária. CSS Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “will-change e promoção de camadas”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de CSS Academy?

Sim. Cada aula de CSS Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. CSS crítico e bloqueio de renderização
  2. Layout, pintura e composição: o pipeline de renderização
  3. will-change e promoção de camadas
  4. Cobertura de CSS e estilos não utilizados
← Voltar para CSS Academy