PTENES
MÓDULO 2.1

🟢 GSAP — timeline perfecto a nivel de frame

La biblioteca estándar de animación web. Coreografía de timelines, stagger y easing profesional para crear videos estilo slide-deck con secuencias impecables.

6
Temas
~40
Minutos
⚡
Intermedio
🎬
Práctico
1

😩 El problema antes de GSAP

Animar elementos con CSS puro para video es doloroso: keyframes manuales, temporización a ojo e imposibilidad de coreografiar secuencias complejas. GSAP lo resuelve con una API clara y precisa.

✗ CSS puro para animación de video

  • ✗Temporización manual de cada keyframe: propensa a errores.
  • ✗Las secuencias encadenadas requieren calcular los delays manualmente.
  • ✗Sin control programático: no puedes "pausar a la mitad".

✓ GSAP para animación de video

  • ✓Línea de tiempo declarativa: cada elemento aparece en el momento adecuado.
  • ✓Posicionamiento relativo: "<0.3" = 300ms después del anterior.
  • ✓Seek en cualquier frame: integración natural con Remotion.
Tipo
Biblioteca JS
Tamaño
~27 KB gzipped
Licencia
Gratis para web
Adopción
Estándar de la industria
2

⌛ Stagger — tarjetas que entran en secuencia

O stagger es el delay progresivo entre elementos de un grupo. En vez de entrar todos al mismo tiempo, cada uno espera un poco al anterior — creando una sensación de "cascada" profesional.

demostración en vivo — entrada escalonada
🟢
Tarjeta A
delay: 0.1s
📊
Tarjeta B
delay: 0.35s
🧊
Tarjeta C
delay: 0.6s
✨
Tarjeta D
delay: 0.85s

↑ Cada card entra 250ms después de la anterior. En GSAP: stagger: 0.25

código GSAP equivalente
gsap.from(".card", {
  y: 22,
  opacity: 0,
  duration: 0.55,
  ease: "power2.out",
  stagger: 0.25   // 250ms entre cada card
});
stagger
Retraso entre elementos
from
Estado inicial
duration
Tiempo por elemento
ease
Curva de velocidad
3

🎯 Easing — la curva que define el tono

Linear parece robótico. Ease-out parece natural. Elastic parece juguetón. La elección del easing es tan importante como el movimiento en sí: comunica la personalidad de la animación.

demostración en vivo — comparación de easing
linear velocidad constante — parece robótico
⚡
ease-out empieza rápido y luego desacelera: parece natural
✨
ease-in-out suave en ambos extremos — elegante
🎬

💡 Consejo de oro

Para UIs y diapositivas use power2.out — entra rápido y se estabiliza. Para elementos que salen use power2.in — empieza suave y termina con velocidad. Reserva elastic para momentos puntuales de énfasis.

power1-4
De suave a intenso
back
Overshoot leve
elastic
Resorte — úsalo con moderación
CustomEase
Curva libre mediante Bezier
4

🎼 Timeline coreografiada

A Línea de tiempo de GSAP es un director de animaciones: defines cuándo entra cada elemento con respecto al anterior, creando coreografías complejas con código sencillo.

0s 0.5s 1.0s 1.5s Elemento A Elemento B Elemento C B empieza 0.3s antes del final de A ("<0.3")
código de la timeline de arriba
const tl = gsap.timeline();

tl.from("#elem-a", { x: -40, opacity: 0, duration: 0.6 })
  .from("#elem-b", { y: 20, opacity: 0, duration: 0.5 }, "<0.3")
  .from("#elem-c", { x: 40, opacity: 0, duration: 0.7 }, "<");
"<"
Inicia junto con el anterior
"<0.3"
0.3s antes del final
"+0.5"
0.5s después del final
label
Punto con nombre
5

🔗 GSAP + Remotion — integración frame-perfect

Remotion renderiza cada frame de forma determinista — para el mismo número de frame, siempre el mismo aspecto visual. GSAP lo respeta mediante seek(): en vez de ejecutar la animación en tiempo real, «saltas» al frame exacto.

🧠 Concepto central

En Remotion, useCurrentFrame() devuelve el fotograma actual (p. ej., 60 en 30fps = 2 segundos). Conviertes este fotograma en "segundos" y llamas a tl.seek(seconds) — GSAP posiciona todos los elementos en el estado correcto para ese instante.

const frame = useCurrentFrame();
const { fps } = useVideoConfig();
// Seek al segundo exacto de este frame
tl.seek(frame / fps);

💡 ¿Por qué no usar animaciones CSS?

Las animaciones CSS no tienen seek(). Remotion toma capturas frame por frame: sin seek, la animación siempre aparecería en el estado t=0. GSAP lo resuelve de forma nativa.

seek()
Salta al tiempo X
frame/fps
Frame → segundos
globalTimeline
Todas las animaciones juntas
determinismo
El mismo frame = el mismo píxel
6

🚀 De la landing page al video — el flujo con Claude

El enfoque más productivo: pedirle a Claude una landing page estática primero — componentes visuales listos, tipografía, colores, espaciado. Luego, en una segunda conversación, pedir que lo transforme en animación GSAP para Remotion.

1

Prompt de diseño

"Crea una landing page en React para un SaaS con hero, 3 características y CTA. Sin animaciones todavía."

2

Revisión visual

Ajusta los colores, la tipografía y los espacios. Asegúrate de que el aspecto visual sea correcto antes de animar.

3

Prompt de transformación

"Ahora conviértelo en una composición de Remotion con GSAP. La sección Hero aparece con fade-up, las características entran en stagger de 0.2s y el CTA con bounce."

4

Renderizar y exportar

npx remotion render — MP4 listo para publicar.

🎯 Ideal para

Introducciones a SaaS, videos de lanzamiento, recorridos de producto, diapositivas de presentación — cualquier contenido con estructura de secciones y revelación progresiva.

Introducciones a SaaS
Presentación de producto
Launch videos
Lanzamientos
Recorridos guiados
Tutoriales estructurados
Diapositivas de presentación
Presentaciones animadas

📋 Resumen del módulo

Lo que aprendimos

  • ✓GSAP es el estándar de animación web por su precisión y API clara
  • ✓Stagger crea cascadas profesionales con una línea de código
  • ✓El easing define la personalidad de la animación
  • ✓La línea de tiempo coreografía secuencias complejas con posicionamiento relativo
  • ✓seek() integra GSAP con el rendering determinístico de Remotion
  • ✓El flujo landing → video maximiza la velocidad de producción

Siguiente módulo

⚖️ 2.2 — GSAP × Framer Motion

Comparación detallada: cuándo destaca cada herramienta y por qué GSAP gana en el contexto del video renderizado.