Gerador de animação de spinner CSS

Próximo

Uma animação de spinner CSS é um anel que gira para sempre por meio de uma regra de keyframes. Aqui você define a velocidade da rotação, visualiza o movimento e copia a classe e o bloco @keyframes.

Como ajustar a animação

  1. 1

    Informe a velocidade

    No campo Velocidade (s), digite quantos segundos uma volta completa deve levar, por exemplo 0,8 ou 1,2.

  2. 2

    Observe a prévia

    O anel gira nessa velocidade imediatamente, para que você avalie se o movimento transmite calma ou urgência.

  3. 3

    Ajuste tamanho e cor

    Altere tamanho, espessura e cor para que a animação combine com o lugar onde ela será usada.

  4. 4

    Copie o CSS

    Copie as regras geradas. A linha de animação e os keyframes ficam juntos.

Como a animação é construída

O CSS gerado tem duas partes que funcionam em par. A propriedade animation de .loader dá nome à animação, define sua duração, escolhe a função de temporização e a repete:

animation: spin 0.8s linear infinite;

A regra @keyframes spin descreve o próprio movimento. Ela tem apenas um estado final, que é uma rotação de 360 graus. O navegador parte da posição normal do elemento e interpola até esse estado final:

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

O campo Velocidade da ferramenta vira a duração. Todo o restante, incluindo linear e infinite, permanece igual.

Como escolher a duração

Segundos por volta Como parece
0,4 a 0,6 Rápida e agitada, pode parecer nervosa
0,8 a 1 Constante, a escolha usual
1,2 a 1,6 Calma, combina com spinners grandes
2 ou mais Lenta, pode parecer travada

Anéis grandes podem girar um pouco mais devagar que os pequenos, porque a borda de um círculo grande já percorre mais distância a cada segundo.

Por que temporização linear

A ferramenta usa linear para que o anel mantenha a mesma velocidade angular em toda a volta. Curvas de aceleração como ease-in-out fazem o anel desacelerar e acelerar a cada volta, o que parece trepidação em um loop infinito. Se você quiser esse efeito mesmo assim, troque a palavra linear no CSS colado.

Limites a considerar

  • Uma velocidade de 0 gera uma animação de duração zero, então o anel não gira de forma visível. Use um valor acima de 0.
  • O spinner sempre gira no sentido horário. Para invertê-lo, troque a rotação final por -360deg depois de copiar.
  • O movimento é uma única rotação contínua. Pulsação, quique ou movimentos em várias etapas exigiriam keyframes extras escritos à mão.

Pausar e controlar a animação

Depois que o CSS estiver na sua página, você pode controlar a animação com propriedades padrão. Definir animation-play-state: paused; congela o anel no lugar, o que é útil para um estado em que o trabalho já terminou, mas o elemento continua visível. Definir animation-delay: 0.2s; adia o início, então o spinner só aparece se a espera não for instantânea. São propriedades CSS normais, adicionadas à regra .loader depois que você copiar o código.

Perguntas frequentes

Diminua o número no campo Velocidade (s). Um valor de 0,6 significa que uma volta completa leva seis décimos de segundo, então ele gira mais rápido que com 1.

Ele repete a animação sem fim. Se você substituí-lo por um número como 3, o anel para depois de três voltas.

Sim. Mude o nome nos dois lugares: depois de animation: na classe e depois de @keyframes. Eles precisam coincidir exatamente.

O navegador consegue animar transform sem recalcular o layout da página, então é uma forma leve de mover um elemento e costuma ficar suave, mesmo em dispositivos modestos.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas

Guias e casos de uso