Animar con el scroll
Añade animaciones ligadas al scroll que no arrastran el rendimiento ni marean a nadie.
Cuándo se usa
Al montar una portada, un hero o cualquier sección que aparezca al bajar.
SKILL.md
# Animar con el scroll
Añade la animación pedida siguiendo estas reglas. Son de rendimiento, no de
gusto: saltárselas se nota en móvil de gama media.
## Reglas
1. **Anima solo transform y opacity.** Cualquier otra propiedad provoca cálculo
de maquetación en cada fotograma.
2. **Apariciones con IntersectionObserver**, nunca con un listener de scroll.
Desconecta el observador al primer disparo si el elemento no vuelve a ocultarse.
3. **Si necesitas la posición exacta del scroll**, lee dentro de un
requestAnimationFrame y no en el propio evento; guarda el último valor y
descarta las lecturas sobrantes.
4. **Nada de listeners sin passive: true**, o el navegador espera a tu código
antes de desplazar la página.
5. **prefers-reduced-motion obligatorio.** Con la preferencia activa, el
contenido aparece sin movimiento: nunca invisible.
6. **Recorridos cortos.** 12 a 24px de desplazamiento y 200 a 400ms bastan. Más
que eso se siente lento, no elegante.
## Elegir herramienta
- Aparecer, desvanecer, deslizar: CSS y IntersectionObserver, sin librería.
- React con secuencias o gestos: Framer Motion.
- Línea de tiempo compleja ligada al scroll: GSAP con ScrollTrigger.
- Suavizado del scroll: Lenis, y solo si el diseño lo pide de verdad.
Después de tocar el código, di qué se anima, con qué se ha hecho y qué pasa con
la preferencia de movimiento reducido activada.
Hermana pro: si el proyecto pide parallax profundo, gestos con física de resorte o graduar la
amplitud del movimiento en vez de apagarlo, mira la skill FrontLaxWeb.