Animações no CSS

CSS
Tempo de leitura: 3 minutos

Animações no CSS: Se as Transições CSS são para o movimento reativo simples (de estado A para estado B), as Animações CSS são para o movimento automático, complexo e repetitivo. Elas permitem definir um roteiro detalhado de estilos que um elemento deve seguir ao longo do tempo.

A ferramenta essencial para isso é a regra @keyframes, que dá ao desenvolvedor controle total sobre a sequência e a temporização de múltiplos estágios de uma animação.

1. O Roteiro da Animação: @keyframes

A regra @keyframes é o coração das animações CSS. Ela define o que deve acontecer em pontos específicos da duração da animação.

A. Definindo Estágios

Você define o nome da animação e, em seguida, lista os estilos que o elemento deve ter em porcentagens de tempo (de 0% a 100%) ou usando as palavras-chave from e to.

CSS

@keyframes pulsar {
  0% {
    transform: scale(1);
    opacity: 0.8;
  }
  50% {
    transform: scale(1.2); /* Cresce no meio do ciclo */
    opacity: 1;
  }
  100% {
    transform: scale(1); /* Volta ao estado inicial */
    opacity: 0.8;
  }
}

2. Controle e Aplicação da Animação

Uma vez que o @keyframes é definido, você o aplica a um elemento usando as propriedades animation-*:

PropriedadeFunçãoExemplo
animation-nameNome do @keyframes (ex: pulsar).nome-animacao
animation-durationTempo que um ciclo completo leva.2s
animation-iteration-countQuantas vezes a animação se repete.infinite ou 3
animation-timing-functionCurva de velocidade para todo o ciclo.linear
animation-directionDefine a direção (Ex: alternate para ir e voltar).alternate
animation-fill-modeO que o elemento faz após a animação. forwards mantém o estilo do 100%.forwards
animation-play-stateControla se a animação está running ou paused.paused

🔑 Shorthand e Exemplo de Uso

A forma mais comum é usar a shorthand animation:

CSS

.alerta {
  /* [nome] [duração] [curva] [contagem] [direção] [modo] */
  animation: pulsar 2s ease-in-out infinite alternate forwards;
}

3. Animações vs. Transições: Quando Usar Qual?

CaracterísticaTransições (transition)Animações (@keyframes)
GatilhoRequer um evento de estado (ex: :hover, classe JS).Automático ou ativado por carregamento/JS.
ComplexidadeSimples, de Ponto A a Ponto B.Múltiplos estágios (Keyframes).
RepetiçãoNão repetem automaticamente.Repetem automaticamente (infinite).
ControleMenos controle, apenas início e fim.Controle granular de cada ponto no tempo (0% a 100%).

Regra Prática: Use Transições para interações de mouse em botões; use Animações para loaders, banners ou efeitos de entrada de elementos.

4. Performance e Boas Práticas

Assim como nas Transições, priorize transform e opacity dentro dos seus @keyframes para garantir que as animações sejam processadas pela GPU e rodem a 60 FPS. Evite animar propriedades de layout (margin, width) que causam reflow.

CSS

/* Otimizado: Animação suave e de alto desempenho */
@keyframes entrada {
  from { transform: translateY(100px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

✅ Conclusão Animações no CSS

As Animações CSS oferecem uma maneira poderosa de adicionar movimento complexo e controlado aos seus projetos. Dominando os @keyframes, você pode criar sequências de movimento ricas e envolventes. Ao usá-las em conjunto com as Transições e priorizando as propriedades de alto desempenho (transform e opacity), você constrói interfaces que são dinâmicas e fluidas.

Toda jornada tem um início, e o início para se tornar um desenvolvedor web é dominar as seguintes tecnologias, que você encontra aqui mesmo:

HTML
HTML
CSS
CSS
Javascript
JavaScript

E se você gosta do nosso conteúdo, não deixe de contribuir adquirindo os serviços e produtos dos nossos apoiadores e empresas que somos associados:

Hospedagem Hostinger
Ofertas Amazon
Amazon Prime
Author: Thiago Rossi
Com mais de 20 anos de jornada na tecnologia, minha trajetória evoluiu do ensino técnico à arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de soluções de Inteligência Artificial nativa e análise de dados públicos, utilizando o ecossistema PHP para transformar dados brutos em transparência e eficiência. Como autor e desenvolvedor, acredito na democratização do conhecimento. Essa visão resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura até os bastidores da indústria de Jogos e IA. No universo de Game Design, sou autor do livro "GDD – O Guia Definitivo" e documento ativamente meus processos através de DevLogs, unindo rigor técnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso é conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.