0Pricing
React Academy · Aula

Animações de @keyframes CSS com React

Aplique e remova animações de @keyframes dinamicamente com base no estado e nos eventos do componente.

Animações de @keyframes CSS com React é uma aula grátis de React Academy no CoddyKit. Esta é a aula 2 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 React Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de React Academy inclui 4 aulas no total.

Definindo @keyframes

Uma regra @keyframes descreve uma animação em várias etapas, nomeando valores de propriedades em pontos ao longo de uma linha do tempo, usando from/to ou porcentagens como 0%, 50%, 100%.

Ao contrário das transições, os quadros-chave podem descrever movimentos complexos em várias etapas, executados por conta própria sem uma mudança de estado a cada etapa.

A forma abreviada de animação

Você aplica um conjunto de quadros-chave com a propriedade animation: animation: slideIn 400ms ease forwards. Ela reúne o nome, a duração, a função de temporização e o modo de preenchimento.

O modo de preenchimento forwards mantém o elemento nos valores do quadro-chave final depois que a animação termina, impedindo que ele volte bruscamente ao início.

Aplicando uma classe de animação por meio do estado

No React, normalmente você adiciona uma classe que contém a declaração de animation quando o estado se torna verdadeiro. Por exemplo, adicionar is-entering inicia os quadros-chave no momento em que o elemento é montado ou um sinalizador muda.

Isso mantém a lógica da animação no CSS, enquanto o React apenas decide quando anexar a classe.

Modo de preenchimento da animação

animation-fill-mode controla quais estilos são aplicados antes e depois da execução da animação. forwards mantém o último quadro-chave, backwards aplica o primeiro quadro-chave durante qualquer atraso, e both faz as duas coisas.

Sem forwards, um elemento que anima até um estado gradualmente visível voltaria a ficar invisível quando a animação terminasse.

Direção alternada da animação

animation-direction: alternate executa a animação para a frente e depois para trás em cada repetição. Combinada com animation-iteration-count: infinite, ela cria um movimento suave de ida e volta, semelhante a um efeito pulsante ou de respiração.

Isso é útil para indicadores de carregamento ou movimentos sutis que chamam a atenção.

Pausando com o estado de reprodução da animação

animation-play-state pode ser running ou paused. Você pode controlá-la a partir do estado do React, por exemplo, pausando um letreiro ao passar o cursor ao alternar uma classe.

Como ela pausa em vez de reiniciar, a animação continua exatamente de onde parou.

Reativando ao alterar a propriedade de chave

Uma animação de quadros-chave é reproduzida apenas uma vez quando sua classe é aplicada pela primeira vez; reaplicar a mesma classe não a reinicia. A técnica mais simples no React é alterar o key do elemento para que o React monte novamente um nó novo, reproduzindo a animação desde o início.

Por exemplo, key={count} em uma notificação faz com que ela seja montada novamente toda vez que o contador é incrementado.

Respeitando a preferência por movimento reduzido

Alguns usuários ativam o movimento reduzido no sistema operacional por conforto ou acessibilidade. Envolva as animações não essenciais em @media (prefers-reduced-motion: reduce) e desative-as ou reduza sua duração nesse caso.

Respeitar essa preferência torna sua interface mais inclusiva e evita causar desconforto.

Acionando durante a rolagem com IntersectionObserver

Para animar elementos quando eles entram na janela de visualização, use um IntersectionObserver em um useEffect. Quando a entrada se torna visível, você atualiza o estado, o que adiciona a classe de animação.

Isso produz efeitos de revelação durante a rolagem sem precisar executar manipuladores pesados a cada quadro.

Orquestrando com o atraso da animação

animation-delay determina com que atraso cada animação de quadros-chave começa. Atribuir atrasos crescentes a uma lista de itens faz com que eles sejam animados em sequência, criando uma revelação coreografada.

Você pode calcular o atraso de cada item no React com style={{ animationDelay: i * 80 + 'ms' }}.

Quadros-chave versus transições

Use transições para alterações simples entre dois estados, acionadas por uma interação, e quadros-chave quando precisar de movimento em várias etapas, repetição contínua ou uma animação que seja executada independentemente de uma alternância de estado.

Ambos são CSS puro, portanto o React apenas decide quando as classes são anexadas, enquanto o navegador processa os quadros.

Verificação rápida

Teste sua compreensão sobre o comportamento dos quadros-chave.

Recapitulação

Você aprendeu a definir @keyframes, aplicá-los com a abreviação animation, controlar o modo de preenchimento e a direção, pausar e reativar animações e revelar elementos durante a rolagem com IntersectionObserver.

Você também viu como respeitar prefers-reduced-motion para oferecer movimento acessível.

Perguntas Frequentes

A aula “Animações de @keyframes CSS com React” é grátis?

Sim — o texto completo de “Animações de @keyframes CSS com React” é 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 React Academy, atualize para CoddyKit PRO. O curso de React Academy inclui 4 aulas no total.

O que vou aprender em “Animações de @keyframes CSS com React”?

Aplique e remova animações de @keyframes dinamicamente com base no estado e nos eventos do componente. Você pratica React 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 React Academy?

Nenhuma experiência prévia é necessária. React 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 2 de 4.

Quanto tempo leva a aula “Animações de @keyframes CSS com React”?

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 React Academy?

Sim. Cada aula de React 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. Transições CSS com Alterações de Estado do React
  2. Animações de @keyframes CSS com React
  3. useLayoutEffect para medições antes da animação
  4. Animações de entrada e saída sem biblioteca
← Voltar para React Academy