π Principios de Animacao
Os 12 principios de animacao da Disney, adaptados para web. Estes principios criam movimento que parece natural e engajante para o usuario.
π¬ Principios Essenciais para Web
Squash & Stretch
Deformacao que da peso e flexibilidade. Botoes que "apertam" ao clicar.
Anticipation
Preparacao antes da acao. Menu recua antes de expandir.
Ease In/Out
Aceleracao e desaceleracao natural. Nada comeca ou para bruscamente.
Secondary Action
Acoes secundarias reforΓ§am a principal. Icone gira enquanto texto aparece.
π Demonstracao ao Vivo
Bounce
Squash & Stretch
Spin (Linear)
π― Vibe Coding Prompt
Use: animacoes que seguem principios de ease-in-out natural,
squash and stretch sutil em botoes clicaveis,
anticipation com pequeno recuo antes de acoes maiores.
π¨ CSS Animations
CSS Animations usam @keyframes para definir etapas do movimento e animation properties para controlar como a animacao se comporta.
π» Sintaxe @keyframes
βοΈ Animation Properties
animation-name
Nome do @keyframes a usar
animation-duration
Duracao (ex: 0.3s, 500ms)
animation-timing-function
Curva de velocidade (ease, linear, cubic-bezier)
animation-delay
Tempo antes de iniciar
animation-iteration-count
Quantas vezes repetir (1, 3, infinite)
animation-fill-mode
Estado antes/depois (forwards, backwards, both)
π» Exemplo Completo
π― Vibe Coding Prompt
Use: @keyframes para animacoes de entrada com fade e translate,
animation-fill-mode forwards para manter estado final,
animation-delay escalonado para sequencia de elementos.
β±οΈ Timing e Easing
Timing functions controlam a velocidade da animacao ao longo do tempo. cubic-bezier permite criar curvas customizadas para movimento natural.
π Comparacao de Easing (clique para animar)
ποΈ cubic-bezier Customizado
Quando Usar Cada Easing
π― Vibe Coding Prompt
Use: ease-out para entrada de modais e menus,
cubic-bezier spring para botoes interativos,
duracoes de 200-400ms para UI, 400-600ms para transicoes de pagina.
π Scroll Animations
Animacoes disparadas pelo scroll criam experiencias imersivas. Use Intersection Observer para detectar elementos e scroll-driven animations para sincronizar com o scroll.
ποΈ Intersection Observer
API nativa que detecta quando elementos entram ou saem da viewport. Perfeito para lazy loading e animacoes de entrada.
π» CSS para Scroll Animations
π CSS Scroll-Driven Animations (Moderno)
Nova API CSS que sincroniza animacoes diretamente com o scroll, sem JavaScript.
* Suporte: Chrome 115+, Edge 115+. Use com fallback JS.
π― Vibe Coding Prompt
Use: Intersection Observer para animar elementos ao entrar na viewport,
fade-in com translateY para secoes de conteudo,
staggered delays para listas e grids.
πͺ Page Transitions
Transicoes entre paginas criam fluidez na navegacao. View Transitions API permite animar entre estados de pagina, e tecnicas tradicionais usam overlay animations.
π Tipos de Transicao
Fade
Pagina atual desaparece, nova aparece
Slide
Nova pagina desliza sobre a atual
Scale
Nova pagina cresce do centro
Morph
Elementos se transformam entre paginas
π» View Transitions API
* View Transitions API: Chrome 111+, Edge 111+.
Tecnica Tradicional (Overlay)
π― Vibe Coding Prompt
Use: View Transitions API para navegacao SPA,
fade transition de 300-400ms entre paginas,
shared element transitions para continuidade visual.
β‘ Performance
Animacoes devem rodar a 60fps para parecerem suaves. GPU acceleration e will-change sao essenciais para performance.
π Propriedades GPU-Accelerated
β Animar (Rapido)
transform- translate, scale, rotateopacity- transparenciafilter- blur, saturate
β Evitar (Lento)
width/height- causa reflowtop/left- use transformmargin/padding- causa reflow
π» Usando will-change
Checklist de Performance
transform ao inves de top/left
opacity a visibility ou display
will-change apenas em elementos que realmente vao animar
prefers-reduced-motion para acessibilidade
βΏ Acessibilidade: prefers-reduced-motion
Alguns usuarios preferem menos movimento (enjoo de movimento, distracoes). Respeite isso:
π― Vibe Coding Prompt
Use: apenas transform e opacity para animacoes,
will-change em elementos com animacoes frequentes,
prefers-reduced-motion para desativar animacoes para usuarios sensiveis.
π Resumo do Modulo
Proximo Modulo:
2.6 - Design Systems: Componentes reutilizaveis e tokens de design