revisão de animações css

Noções básicas de animação CSS

  • Definição: Animações CSS permitem que você crie efeitos dinâmicos e visualmente atraentes em páginas web sem a necessidade de JavaScript ou programação complexa. Elas fornecem uma maneira de transitar suavemente elementos entre diferentes estilos ao longo de uma duração especificada.
  • A Regra @keyframes: Esta regra define os estágios e estilos da animação. Ela especifica quais estilos o elemento deve ter em vários pontos durante a animação.
<link rel="stylesheet" href="styles.css">
<div class="box">Slide</div>
.box {
  width: 120px;
  padding: 10px;
  background: #0077ff;
  color: white;
  animation: slide-in 1s ease-in-out;
}

@keyframes slide-in {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(0);
  }
}
  • Propriedade animation: Esta é a propriedade abreviada usada para aplicar animações.
  • animation-name: Isso especifica o nome para a regra @keyframes a ser usada.
  • animation-duration: Isso define quanto tempo a animação deve levar para ser concluída.
  • animation-timing-function: Isso define como a animação progride ao longo do tempo (como ease, linear, ease-in-out).
  • animation-delay: Isso especifica um atraso antes de a animação começar.
  • animation-iteration-count: Isso define quantas vezes a animação deve se repetir.
  • animation-direction: Isso determina se a animação deve ser executada na direção normal, em reverse ou alternar entre as duas.
  • animation-fill-mode: Isso especifica como o elemento deve ser estilizado antes e depois da animação.
  • animation-play-state: Isso permite que você pause e retome a animação.

Acessibilidade e a Media Query prefers-reduced-motion

  • A Media Query prefers-reduced-motion: Uma das principais preocupações de acessibilidade com animações é que elas podem causar desconforto ou até danos físicos a alguns usuários. Pessoas com distúrbios vestibulares ou sensibilidade ao movimento podem sentir tontura, náusea ou dores de cabeça quando expostas a certos tipos de movimento na tela. A media query prefers-reduced-motion permite que desenvolvedores web detectem se o usuário solicitou animações ou efeitos de movimento mínimos no nível do sistema.
<link rel="stylesheet" href="styles.css">
<button class="animated-element">Hover me</button>
.animated-element {
  padding: 10px 16px;
  transition: transform 0.3s ease-in-out;
}

.animated-element:hover {
  transform: translateX(20px);
}

@media (prefers-reduced-motion: reduce) {
  .animated-element {
    transition: none;
  }
}