Sistema de Movimento
Toda animação é intencional. Sem ease padrão. Sem durações arbitrárias. Lento é premium — rápido parece barato. O sistema de movimento é engenhado com a mesma precisão dos sistemas de IA que construímos.
Transições rápidas parecem utilitárias. Animações mais lentas e pesadas comunicam luxo e confiança. 800ms para entradas, 500ms para interações de cards — mais lento que a maioria dos sites tech.
Curvas cubic-bezier customizadas criam movimento natural. Elementos desaceleram até a posição (ease-out) e aceleram ao sair da tela (ease-in), imitando objetos físicos com massa.
Nem tudo se move. Elementos estáticos criam contraste que torna elementos animados mais impactantes. Distâncias de translate: máx. 24px. Rotações: máx. 8deg.
5 curves for different animation contexts. Each cell shows a visual bezier canvas and an animated ball on a track. Click any cell to replay the animation.
7 duration tiers, each roughly 1.5-2x the previous. The ambient tier (13s) is for continuous effects only. Click each row to see the timing in real time.
4 entrance types for different contexts. Fade Up is the primary entrance used on most elements. 3D Perspective is reserved for hero sections only. Click each cell to replay.
Cards in a grid appear with cascading delays. Configure the stagger delay (50-300ms per item), animation duration (200-1500ms), and item count to see how different settings feel. The stagger creates a wave effect that guides the eye left-to-right, top-to-bottom.
Three card hover tiers. Standard uses 300ms ease-base. Featured adds blue glow at 500ms with the weighted ease-card. Image cards scale the inner image at 1.03x. Hover each to interact.
A simulated scroll container demonstrating IntersectionObserver-triggered reveals. Scroll down within the container to see items fade in as they enter the viewport. Uses the same fade-up entrance at 800ms with ease-out.
First element visible immediately. No delay needed.
Fades up as user scrolls down. 800ms with ease-out.
Four cards appear with 100ms stagger between each.
Scale reveal for the quote card. 0.96 to 1.0.
Final section with blue ambient pool behind the button.
Subtle fade-in. The last element on the page.
Continuous animations that run in the background. The rotating border (8s) and aurora effect (20s) create ambient movement without demanding attention. These use transform and opacity only for GPU compositing.
When prefers-reduced-motion: reduce is active, all animations and transitions collapse to near-instant (0.01ms). This is a global rule with no exceptions. Content and functionality remain identical; only motion is removed.
- Scroll-triggered fade-up at 800ms
- Card hover transitions at 200-500ms
- Rotating border at 8s continuous
- Aurora background at 20s drift
- Stagger delays: 100-150ms per item
- All elements visible immediately (no fade)
- Hover states change instantly (0.01ms)
- Rotating border: single frame (no spin)
- Aurora: static gradient (no drift)
- No stagger delays
- Use --ease-out for elements entering the viewport
- Use --ease-base for hover/focus state transitions
- Keep translate distances under 24px for standard entrances
- Respect prefers-reduced-motion in all animations
- Use stagger delays (100-150ms) when multiple siblings enter together
- Use CSS default ease or linear for UI transitions
- Animate transforms on elements that trigger layout recalculation
- Use 3D perspective entrance outside of hero sections
- Create stagger chains longer than 6 items (cap at 600ms total)
- Use bounce or elastic easing -- too playful for the brand