Gerador de Keyframes CSS

Resultados

Uma regra @keyframes define os marcos de uma animação: como o elemento se parece no início, no meio e no fim. Este gerador escreve a regra para quatro movimentos comuns: fade-slide, pulso, giro e salto. Dê um nome à animação, defina a duração e, para os movimentos de deslize e salto, a distância percorrida em pixels. O resultado é a propriedade abreviada animation mais o bloco @keyframes, pronto para colar na sua folha de estilos.

Como gerar keyframes

  1. 1

    Escolha o tipo de animação

    Fade-slide, pulso, giro ou salto. Cada predefinição já vem com os frames prontos.

  2. 2

    Dê um nome à animação

    Um nome em kebab-case como `fade-slide`, usado depois na propriedade abreviada `animation`.

  3. 3

    Defina a duração

    Em segundos, por exemplo 0.6 para uma transição rápida.

  4. 4

    Defina a distância (deslize e salto)

    A distância percorrida em pixels, usada no movimento vertical.

  5. 5

    Copie o CSS

    A propriedade abreviada mais o bloco `@keyframes`, prontos para a sua folha de estilos.

As quatro predefinições

Fade-slide

.animated {
  animation: fade-slide 0.6s ease both;
}

@keyframes fade-slide {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

O elemento aparece enquanto desliza de baixo para cima.

Pulso

@keyframes pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50%      { transform: scale(1.05); opacity: .8; }
}

Um efeito suave de respiração, ótimo para pontos de notificação e selos.

Giro

@keyframes spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

Uma rotação completa, útil para loaders e ícones.

Salto

@keyframes bounce {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-24px); }
}

O elemento salta para cima e volta.

Por que transform e opacity?

Os navegadores compõem transform e opacity na GPU sem recalcular o layout nem repintar, então animá-los permanece fluido. As predefinições evitam de propósito propriedades que disparam o cálculo de layout.

A propriedade abreviada animation

animation: fade-slide 0.6s ease both; lê-se assim: a animação chamada fade-slide, com 0.6 segundo de duração e a curva ease padrão. O modo de preenchimento both aplica o estado inicial antes de a animação começar e mantém o estado final depois que termina, evitando que o elemento pisque antes ou volte de repente após o movimento.

Convenções de nomes

  • Use kebab-case, seguindo a convenção do CSS.
  • Descreva o movimento, não o elemento: fade-in-up é melhor que alert-appear.
  • Evite nomes que possam conflitar com bibliotecas de terceiros.

Suporte dos navegadores

@keyframes é universal, suportado por todos os navegadores desde o IE 10.

Perguntas frequentes

Fade-slide para conteúdo que entra na página, como cards, banners ou diálogos. Pulso para pontos de atenção, selos e botões que precisam se destacar. Giro para loaders e ícones de progresso. Salto para ênfase divertida, como uma seta de chamada para ação.

A distância é o deslocamento vertical em pixels para as predefinições de deslize e salto: a animação de fade-slide começa 24px mais abaixo e sobe, o salto pula 24px para cima e volta. A predefinição de giro não a usa.

Sim, o resultado é CSS puro. Troque ease por qualquer palavra-chave de easing ou um valor cubic-bezier(...), e adicione porcentagens intermediárias como 25% ou 75% dentro do bloco @keyframes para modelar melhor o movimento.

Porque um novo render do framework pode reaplicar a classe e reiniciar a animação. Use animation-fill-mode: both (já presente no resultado) para manter o estado final, ou desligue o gatilho da animação do elemento que é renderizado de novo.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas