Pular para o conteúdo

prefers-reduced-motion: animação com respeito a quem sente desconforto

Para algumas pessoas, animações causam enjoo e tontura. O sistema operacional permite pedir menos movimento — e o seu site precisa respeitar.

Por Equipe We Codex3 min de leitura

Animações deixam interfaces mais vivas. Mas pessoas com distúrbios vestibulares, enxaqueca ou sensibilidade a movimento podem sentir tontura, náusea e desconforto com parallax, zoom e transições grandes. Por isso, iOS, Android, Windows e macOS têm a opção "reduzir movimento".

Como respeitar

O CSS informa a preferência:

css
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

E no JavaScript:

ts
const reduzir = window.matchMedia('(prefers-reduced-motion: reduce)').matches

O que reduzir

O que pode ficar

Mudanças de cor e opacidade, pequenas transições de estado e feedback de clique costumam ser seguros. Reduzir não precisa significar remover todo o feedback (Micro-interações que convertem: como transições de 200ms a 300ms impactam a retenção do usuário).

No app

React Native oferece a mesma informação via AccessibilityInfo, e animações com Reanimated podem respeitá-la (Animações a 60fps no React Native com Reanimated).

Este site respeita essa preferência. Veja sites da We Codex ou fale com a gente.

  • Acessibilidade
  • Animação
  • CSS
  • UX
CompartilharWhatsAppLinkedIn

Resolver de vez, com quem faz isso todo dia

Seu site precisa carregar em menos de um segundo e converter mais?

Este artigo mostra o caminho. A implementação sob medida — o detalhe que muda o resultado no seu caso — é o trabalho da We Codex, empresa de engenharia do grupo Wocom.