Animações
Nós podemos aplicar uma animação em um elemento HTML através da propriedade CSS animation
, como no código a seguir:
<p class="animate">Um texto qualquer que vai ficar girando na tela</p>
Repare que neste exemplo há quatro valores associados a diferentes propriedades:
spin
é o nome da animação, que será usado para definirmos seus passos posteriormente.10s
é a duração da animação, no caso 10 segundos.linear
diz que a animação deve ser executada de forma linear, ou seja, sem aceleração ou qualquer tipo de diferença na velocidade dela, sempre constante.infinite
por quanto tempo ela deve se repetir. Neste caso, é para sempre.
Ok, definido o nome da animação, o tempo, velocidade e repetição vamos definir "o que" vai acontecer nessa animação. Aqui é onde entram os Keyframes.
Keyframes
A regra @keyframes
vai definir as etapas da sua animação. Com ela você vai informar o início e o final do valor da propriedade CSS que você deseja animar. Vale lembrar que a animação acontece na transição de um valor para o outro. Exemplo: na transição de 100px de width para 200px de width. Ou na transição do background-color
de black
para white
(no caso de cores).
Não tem mistério para declararmos ela. Basta usar o nome da animação (nesse caso, spin
, mas poderia ter sido qualquer uma) e definir as etapas da mesma. No exemplo abaixo usamos uma propriedade transform
. Veja mais aqui.
@keyframes spin {
0% {
transform: rotateZ(0deg);
background-color: black;
color: white;
}
100% {
transform: rotateZ(360deg);
background-color: white;
color: black;
}
}
O resultado é algo semelhante a animação abaixo.

Propriedades das animações
No exemplo definimos a nossa animação utilizando a versão "enxuta" da declaração. Se quisermos descrever melhor cada um dos itens, podemos definir as propriedades uma a uma:
animation-name: O nome da animação.
animation-duration: Por quanto tempo a animação deve durar (em segundos).
animation-timing-function: Afunção de temporização usada pela animação (valores comuns: linear, ease). Padrão: ease.
animation-delay: Tempo que a animação deve esperar para começar
animation-iteration-count: O número de vezes que a animação deve ser executada. Espera um número inteiro ou a palavra
infinite
.animation-direction: A direção da animação. Pode ser
normal
,reverse
,alternate
oualternate-reverse
.animation-fill-mode : Como estilizar o elemento quando a animação termina, depois de terminar seu número de contagem de iteração.
animation-play-state: Se setado como
paused
, pausa a animação.
Mais sobre animações
Poderiamos falar muito sobre animações em CSS, mas cada animação vai requerer códigos específicos e entendimento específico de funções de transformação e transição. O exemplo aqui serve para demonstrar como é a estrutura base para animações e lhe permite avançar no entendimento e criação de novas animações de acordo com sua necessidade.
Veja também alguns exemplos e gere suas próprias animações no Animista.
Last updated
Was this helpful?