Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions apps/docs/src/app/pages/(home).page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ const COPY = {
frame:
'GSAP es agnóstico al framework y corre en cualquier app Angular hoy, sin wrapper. Lo que no puede saber es Angular: cuándo se pintó un template, qué posee un componente, cuándo se destruye, si el código corre en un servidor. Esta librería resuelve exactamente esas fricciones y nada más.',
howEyebrow: 'La idea completa',
howTitle: 'Un composable. GSAP puro adentro.',
howTitle: 'Un solo composable. Adentro escribes GSAP puro.',
howBody:
'<code>injectGsap()</code> ejecuta tu código GSAP en un contexto que pertenece al componente. Apunta a elementos con queries <code>viewChild</code> o selectores limitados al componente, lee signals para hacerlo reactivo, y el contexto revierte todo cuando el componente se destruye. En el servidor nunca se ejecuta.',
howCta: 'Empieza con los básicos →',
Expand All @@ -62,7 +62,7 @@ const COPY = {
featNote:
'Todo este pegamento lo podrías escribir tú. La mayoría de las apps Angular que animan terminan haciendo justo eso, componente por componente.',
features: [
'Scoped por defecto',
'Acotado a tu componente',
'Dirigido por signals',
'Sin limpieza manual',
'Listo para SSR',
Expand Down
4 changes: 2 additions & 2 deletions apps/docs/src/app/pages/directives.page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ const COPY = {
reveal: 'Entradas para un solo elemento, al pintar o con scroll. Presets: <code>fade</code>, <code>fade-up/down/left/right</code>, <code>scale-in</code>. El demo hace scroll dentro de su propio marco vía <code>[scroller]</code>.',
stagger: 'Las mismas entradas sobre los hijos de un elemento. Funciona natural con <code>@for</code>: los items nuevos repiten la entrada.',
splitReveal: 'Divide el texto en caracteres, palabras o líneas y escalona las piezas. El marcado original se restaura al destruir.',
scrambleText: 'Descodifica el texto en su lugar. Sin texto objetivo, descodifica el contenido propio del elemento.',
scrambleText: 'Revuelve el texto hasta que cae en su lugar. Sin un texto objetivo, descifra el contenido del propio elemento.',
counter: 'Cuenta el texto del elemento hasta un número, con el formato del locale del usuario.',
parallax: 'Deriva ligada al scroll mientras el elemento cruza el viewport. Velocidades negativas van contra el scroll. Aquí sigue al marco, no a la página: eso es <code>[scroller]</code>.',
drawSvg: 'Dibuja trazos de SVG. En un contenedor, cada descendiente con trazo se dibuja, escalonado.',
Expand All @@ -65,7 +65,7 @@ const COPY = {
hover: 'Microinteracciones de puntero. Los tweens de entrada y salida se sobreescriben: los pases rápidos no se acumulan.',
},
explain: [
'Cada directiva aquí es un preset sobre <code>injectGsap</code>: mismo scoping, misma limpieza, mismos inputs de signal. Cubren los casos comunes; para cualquier cosa más rica, usa el composable.',
'Cada directiva aquí es un preset sobre <code>injectGsap</code>: mismo scoping, misma limpieza, mismos inputs de signal. Cubren los casos comunes; para cualquier cosa más elaborada, usa el composable.',
'El ejemplo de sequence envuelve a sus hijos en <code>sequence="0.1"</code>: el título, las etiquetas y la línea partida entran una tras otra sin contabilidad de <code>[delay]</code>. Anidar en el template es la coreografía; <code>[at]</code> acepta cualquier parámetro de posición de GSAP.',
'Los inputs son signals: cambia cualquiera y la entrada se repite. El botón Repetir solo recrea el subárbol.',
'Los demos de reveal y parallax hacen scroll dentro de su propio marco en lugar de la página: <code>[scroller]</code> apunta ScrollTrigger a cualquier contenedor con scroll.',
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/src/app/pages/loop.page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ const COPY = {
'Cada ficha tiene un tween <code>motionPath</code> pausado usado como setter de posición: el estado del bucle es un número <code>p</code>, y cada ficha se pinta en <code>p</code> más su desfase. Mueves el número, se mueve todo el tren.',
'Observer fusiona rueda, touch y puntero en un solo stream. Mientras arrastras suma deltas a <code>p</code>; al soltar, la velocidad del gesto pasa a InertiaPlugin.',
'A InertiaPlugin no le importa que <code>p</code> no sea un elemento: <code>gsap.to(state, { inertia: { p: { velocity } } })</code> desliza cualquier propiedad con fricción física, igual que los ladrillos lanzados en la página de Draggable.',
'Todo se crea dentro del callback: sal de la página y el Observer, los setters y la deriva ambiental se desmontan.',
'Todo se crea dentro del callback: sal de la página y el Observer, los setters y el movimiento de fondo se desmontan.',
],
},
} as const;
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/src/app/pages/sections.page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ const COPY = {
'Un port del demo <a href="https://codepen.io/GreenSock/pen/XWzRraJ" target="_blank" rel="noreferrer">Animated Continuous Sections</a> de GreenSock: cada tick de rueda, deslizamiento o arrastre mueve una sección completa, con envoltorios en capas que se deslizan en direcciones opuestas, un fondo con parallax y títulos que entran carácter por carácter. El original es GSAP puro; esta versión usa queries de signal e <code>injectGsap</code>, sin cambiar nada más.',
hint: 'rueda o desliza dentro del marco',
how: 'Cómo funciona',
slides: ['Con scope', 'Reactivo', 'Limpio', 'Tuyo'],
slides: ['Acotado', 'Reactivo', 'Limpio', 'Tuyo'],
explain: [
'La capa deslizante son dos envoltorios anidados animados en direcciones opuestas (<code>yPercent</code> 100 y −100 encontrándose en 0), mientras el fondo se mueve 15% en contra. La dirección decide el signo, así que subir y bajar se sienten igual de bien.',
"Un Observer convierte rueda, touch y puntero en 'siguiente' y 'anterior'. Una bandera <code>animating</code> ignora la entrada a mitad de transición; <code>gsap.utils.wrap</code> hace que los extremos den la vuelta.",
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/src/app/pages/svg.page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ const COPY = {
eyebrow: 'Ejemplo · SVG',
title: 'Animación de SVG',
intro:
'Para GSAP el SVG es DOM normal: los trazos se dibujan con DrawSVG, las formas se transforman con MorphSVG y los elementos recorren rutas con MotionPath. Los tres plugins se registran una vez en <code>provideGsap</code>. La forma flotante empieza como el logo de Angular; Transformar la pasa por las demás.',
'Para GSAP el SVG es DOM normal: los trazos se dibujan con DrawSVG, las formas se transforman con MorphSVG y los elementos recorren rutas con MotionPath. Los tres plugins se registran una vez en <code>provideGsap</code>. La forma flotante empieza como el logo de Angular; el botón Transformar la va cambiando por las demás.',
morph: 'Transformar',
how: 'Cómo funciona',
explain: [
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/src/app/pages/webgl.page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ const COPY = {
eyebrow: 'Ejemplo · WebGL',
title: 'Un cubo movido por tweens',
intro:
'La rotación, inclinación y escala del cubo viven en un objeto plano; GSAP lo anima como cualquier otra cosa. Un tween lineal infinito lo gira, dos setters <code>quickTo</code> lo inclinan hacia el puntero, Pulso golpea la escala, y el loop de render es un callback de <code>gsap.ticker</code> que la limpieza devuelta se encarga de quitar.',
'La rotación, inclinación y escala del cubo viven en un objeto plano; GSAP lo anima como cualquier otra cosa. Un tween lineal infinito lo gira, dos setters <code>quickTo</code> lo inclinan hacia el puntero, el botón Pulso le da un empujón a la escala, y el loop de render es un callback de <code>gsap.ticker</code> que se quita con la limpieza devuelta.',
hint: 'mueve el puntero para inclinar el cubo',
pulse: 'Pulso',
how: 'Cómo funciona',
Expand Down