Comando @keyframes

O comando @keyframes define os quadros-chave de uma animação. Um quadro-chave representa várias propriedades do nosso elemento CSS, por exemplo, posição, tamanho, cor etc., que são aplicadas ao elemento em um momento específico no tempo.

Sintaxe

css@keyframes nome-da-animação {
  quadros-chave
}

Exemplo

Definindo os quadros-chave:

html<div id="elem"></div>
css@keyframes anim {
  from {
    margin-left: 0px;
  }
  to {
    margin-left: 400px;
  }
}

#elem {
  animation: anim 3s infinite;
  border: 1px solid black;
  width: 50px;
  height: 50px;
}

Результат:

Exemplo

Agora vamos mover nosso quadrado de cima para baixo usando animação:

html<div id="elem"></div>
css@keyframes anim {
  from {
    margin-top: 0%;
  }
  to {
    margin-top: 10%;
  }
}

#elem {
  animation: anim 2s infinite;
  border: 1px solid black;
  width: 50px;
  height: 50px;
}

Результат:

Exemplo

Vamos aumentar a largura da nossa forma usando animação, definindo os pontos-chave em porcentagem:

html<div id="elem"></div>
css@keyframes anim {
  from {
    width: 10%;
  }
  to {
    width: 40%;
  }
}

#elem {
  animation: anim 2s infinite;
  border: 1px solid black;
  width: 50px;
  height: 50px;
}

Результат:

Exemplo

Agora vamos mudar a opacidade da nossa forma:

html<div id="elem"></div>
css@keyframes anim {
  from {
    background-color: #467CBC;
  }
  to {
    background-color: #C2DDFD;
  }
}

#elem {
  animation: anim 2s infinite;
  border: 1px solid black;
  width: 50px;
  height: 50px;
}

Результат:

Veja também