O que são Animações CSS e Como Elas Funcionam?

Animações CSS permitem que você crie efeitos dinâmicos e visualmente envolventes em páginas web sem a necessidade de JavaScript ou programação complexa. Eles fornecem uma maneira de fazer a transição suave de elementos entre diferentes estilos durante uma duração especificada. No seu núcleo, uma animação CSS consiste em dois componentes principais: a regra @keyframes e a propriedade animation. A regra @keyframes define os estágios e estilos da animação. Ele especifica quais estilos o elemento deve ter em vários pontos durante a animação. Aqui está um exemplo:
@keyframes slide-in {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0);
  }
}
Esta regra @keyframes, chamada slide-in, define uma animação que move um elemento da esquerda para a direita. As porcentagens representam o progresso da animação, com 0% sendo o início e 100% sendo o fim. A função translateX na sua animação @keyframes está controlando a posição horizontal de um elemento enquanto ele anima para a visualização. Para aplicar essa animação a um elemento, você usa a propriedade animation. Este exemplo também repete a animação infinitamente para que você possa vê-la em ação (você precisará ativar o editor interativo para ver as prévias):
<link rel="stylesheet" href="styles.css">
<div class="sliding-element">Hello, I slide in!</div>
@keyframes slide-in {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0);
  }
}

.sliding-element {
  animation: slide-in 2s ease-out infinite;
}
Isto aplica a animação slide-in ao elemento com duração de 2 segundos e uma função de tempo ease-out. A propriedade animation é na verdade um atalho para várias propriedades individuais: animation-name que especifica a regra @keyframes a ser usada. animation-duration que define quanto tempo a animação deve levar para ser concluída. animation-timing-function que define como a animação progride ao longo do tempo - como ease, linear e ease-in-out. animation-delay que especifica um atraso antes do início da animação. animation-iteration-count que define quantas vezes a animação deve se repetir. animation-direction que determina se a animação deve ser executada para frente, para trás ou alternadamente. animation-fill-mode que especifica como o elemento deve ser estilizado antes e depois da animação. animation-play-state que permite pausar e retomar a animação. Você pode usar essas propriedades individualmente para um controle mais preciso:
<link rel="stylesheet" href="styles.css">
<div class="complex-animation">Watch my colors change!</div>
.complex-animation {
  animation-name: color-change;
  animation-duration: 3s;
  animation-timing-function: linear;
  animation-delay: 1s;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}

@keyframes color-change {
  0% {
    background-color: red;
  }
  50% {
    background-color: blue;
  }
  100% {
    background-color: green;
  }
}
Isso cria uma animação que continuamente faz a transição da cor de fundo de um elemento entre vermelho, azul e verde. Animações CSS podem ser acionadas por vários eventos, como passar o mouse sobre um elemento:
<link rel="stylesheet" href="styles.css">
<button class="button">Hover over me!</button>
.button {
  background-color: blue;
  transition: background-color 0.3s;
}

.button:hover {
  background-color: red;
}
Embora este exemplo use a propriedade transition, que é mais simples para efeitos básicos, ele demonstra como o CSS pode criar elementos interativos e animados. É importante notar que, embora as animações CSS sejam poderosas, elas devem ser usadas com moderação. O uso excessivo de animações pode levar a um desempenho ruim e pode ser distrativo ou problemático para usuários com certas necessidades de acessibilidade. Sempre considere fornecer opções para reduzir ou desativar animações para usuários que preferem menos movimento. As animações CSS oferecem uma maneira de criar experiências web envolventes e interativas sem depender de JavaScript. Ao entender os princípios das propriedades @keyframes e animation, você pode dar vida aos seus designs web de forma eficiente e acessível.
Este módulo não possui perguntas. Marque como concluído.