Communitygithub.com

zroeschen/Video-Production-Factory

GSAP-Animationsreferenz für HyperFrames. Deckt gsap.to(), from(), fromTo(), Easing, Stagger, Defaults, Timelines (gsap.timeline(), Positionsparameter, Labels, Verschachtelung, Wiedergabe) und Performance (Transforms, will-change, quickTo) ab. Verwende diese für GSAP-Animationen in HyperFrames-Kompositionen.

Was ist Video-Production-Factory?

Der Skill 'Video-Production-Factory' dient als umfassende GSAP-Referenz speziell für HyperFrames-Kompositionen. Er deckt alle wesentlichen GSAP-Features ab: Kern-Tween-Methoden (to, from, fromTo, set), gängige Variablen (duration, delay, ease, stagger, callbacks), Transform-Aliasnamen gegenüber rohen CSS-Transforms sowie fortgeschrittene Konzepte wie funktionsbasierte Werte, Easing-Funktionen und Defaults. Der Schwerpunkt liegt auf Timelines mit detaillierter Erklärung des Positionsparameters, Labels, Verschachtelung und Wiedergabesteuerung. Zusätzlich werden Performance-Techniken behandelt: Bevorzugung von Transform und Opacity, will-change, gsap.quickTo() für häufige Updates und korrekte Bereinigung. Die Dokumentation enthält auch eine Kurzreferenz zu Effekten (typewriter text, audio visualizer) aus der references/effects.md sowie Best-Practices und klare Do's und Don'ts für performante GSAP-Animationen in HyperFrames.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zroeschen/Video-Production-Factory/tree/HEAD/.agents/skills/gsap

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

GSAP

Kern-Tween-Methoden

  • gsap.to(targets, vars) — animiert vom aktuellen Zustand zu vars. Am häufigsten verwendet.
  • gsap.from(targets, vars) — animiert von vars zum aktuellen Zustand (Eingänge).
  • gsap.fromTo(targets, fromVars, toVars) — expliziter Start- und Endzustand.
  • gsap.set(targets, vars) — wendet sofort an (Dauer 0).

Verwende immer camelCase-Eigenschaftsnamen (z.B. backgroundColor, rotationX).

Häufige Variablen

  • duration — Sekunden (Standard 0.5).
  • delay — Sekunden vor Start.
  • ease — "power1.out" (Standard), "power3.inOut", "back.out(1.7)", "elastic.out(1, 0.3)", "none".
  • stagger — Zahl 0.1 oder Objekt: { amount: 0.3, from: "center" }, { each: 0.1, from: "random" }.
  • overwrite — false (Standard), true oder "auto".
  • repeat — Zahl oder -1 für unendlich. yoyo — wechselt die Richtung bei Wiederholung.
  • onComplete, onStart, onUpdate — Callbacks.
  • immediateRender — Standard true für from()/fromTo(). Setze auf false bei späteren Tweens, die dieselbe Eigenschaft+Element ansprechen, um Überschreiben zu vermeiden.

Transforms und CSS

Bevorzuge GSAPs Transform-Aliasnamen gegenüber rohem transform-String:

GSAP-EigenschaftEntsprechung
x, y, ztranslateX/Y/Z (px)
xPercent, yPercenttranslateX/Y in %
scale, scaleX, scaleYscale
rotationrotate (deg)
rotationX, rotationY3D-Rotation
skewX, skewYskew
transformOrigintransform-origin
  • autoAlpha — bevorzuge statt opacity. Bei 0: setzt zusätzlich visibility: hidden.
  • CSS-Variablen — "--hue": 180.
  • svgOrigin (nur SVG) — Ursprung im globalen SVG-Koordinatensystem. Nicht mit transformOrigin kombinieren.
  • Richtungsrotation — "360_cw", "-170_short", "90_ccw".
  • clearProps — "all" oder kommagetrennt; entfernt Inline-Stile bei Abschluss.
  • Relative Werte — "+=20", "-=10", "*=2".

Funktionsbasierte Werte

gsap.to(".item", {
  x: (i, target, targets) => i * 50,
  stagger: 0.1,
});

Easing

Eingebaute Easing-Funktionen: power1–power4, back, bounce, circ, elastic, expo, sine. Jede hat .in, .out, .inOut.

Standardwerte

gsap.defaults({ duration: 0.6, ease: "power2.out" });

Steuerung von Tweens

const tween = gsap.to(".box", { x: 100 });
tween.pause();
tween.play();
tween.reverse();
tween.kill();
tween.progress(0.5);
tween.time(0.2);

gsap.matchMedia() (Responsive + Barrierefreiheit)

Führt Setup nur aus, wenn eine Media Query zutrifft; kehrt automatisch zurück, wenn sie nicht mehr zutrifft.

let mm = gsap.matchMedia();
mm.add(
  {
    isDesktop: "(min-width: 800px)",
    reduceMotion: "(prefers-reduced-motion: reduce)",
  },
  (context) => {
    const { isDesktop, reduceMotion } = context.conditions;
    gsap.to(".box", {
      rotation: isDesktop ? 360 : 180,
      duration: reduceMotion ? 0 : 2,
    });
  },
);

Timelines

Erstellen einer Timeline

const tl = gsap.timeline({ defaults: { duration: 0.5, ease: "power2.out" } });
tl.to(".a", { x: 100 }).to(".b", { y: 50 }).to(".c", { opacity: 0 });

Positionsparameter

Das dritte Argument steuert die Platzierung:

  • Absolut: 1 — bei 1s
  • Relativ: "+=0.5" — nach Ende; "-=0.2" — vor Ende
  • Label: "intro", "intro+=0.3"
  • Ausrichtung: "<" — gleicher Start wie vorheriger; ">" — nach vorherigem Ende; "<0.2" — 0.2s nach vorherigem Start
tl.to(".a", { x: 100 }, 0);
tl.to(".b", { y: 50 }, "<"); // gleicher Start wie .a
tl.to(".c", { opacity: 0 }, "<0.2"); // 0.2s nach .b-Start

Labels

tl.addLabel("intro", 0);
tl.to(".a", { x: 100 }, "intro");
tl.addLabel("outro", "+=0.5");
tl.play("outro");
tl.tweenFromTo("intro", "outro");

Timeline-Optionen

  • paused: true — pausiert erstellen; .play() zum Starten aufrufen.
  • repeat, yoyo — auf gesamte Timeline anwenden.
  • defaults — Variablen, die in jeden Child-Tween übernommen werden.

Verschachtelung von Timelines

const master = gsap.timeline();
const child = gsap.timeline();
child.to(".a", { x: 100 }).to(".b", { y: 50 });
master.add(child, 0);

Wiedergabesteuerung

tl.play(), tl.pause(), tl.reverse(), tl.restart(), tl.time(2), tl.progress(0.5), tl.kill().


Performance

Transform und Opacity bevorzugen

Animationen von x, y, scale, rotation, opacity bleiben auf dem Compositor. Vermeide width, height, top, left, wenn Transforms denselben Effekt erzielen.

will-change

will-change: transform;

Nur auf Elementen, die tatsächlich animieren.

gsap.quickTo() für häufige Aktualisierungen

let xTo = gsap.quickTo("#id", "x", { duration: 0.4, ease: "power3" }),
  yTo = gsap.quickTo("#id", "y", { duration: 0.4, ease: "power3" });
container.addEventListener("mousemove", (e) => {
  xTo(e.pageX);
  yTo(e.pageY);
});

Stagger > viele Tweens

Verwende stagger statt separater Tweens mit manuellen Verzögerungen.

Bereinigung

Pausiere oder beende Tweens für nicht sichtbare Animationen.


Referenzen (auf Anfrage geladen)

  • references/effects.md — Fertige Effektmuster: Typewriter-Text, Audio-Visualizer. Lies dies, wenn vorgefertigte Effektmuster für HyperFrames benötigt werden.

Best Practices

  • Verwende camelCase-Eigenschaftsnamen; bevorzuge Transform-Aliasnamen und autoAlpha.
  • Bevorzuge Timelines gegenüber Verkettung mit delay; nutze den Positionsparameter.
  • Füge Labels mit addLabel() für lesbare Abläufe hinzu.
  • Übergebe Defaults an den Timeline-Konstruktor.
  • Speichere den Rückgabewert von Tween/Timeline, wenn die Wiedergabe gesteuert werden soll.

Nicht tun

  • Layout-Eigenschaften (width/height/top/left) animieren, wenn Transforms ausreichen.
  • Gleichzeitig svgOrigin und transformOrigin auf demselben SVG-Element verwenden.
  • Animationen mit delay verketten, wenn eine Timeline sie sequenzieren kann.
  • Tweens erstellen, bevor das DOM existiert.
  • Bereinigung überspringen – beende Tweens immer, wenn sie nicht mehr benötigt werden.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

zroeschen/Video-Production-Factory

Agent 2 of the video editing pipeline. Finds and removes spoken mistakes — stutters, repeated words, false starts, and retakes (re-recorded lines) — from a talking-head recording. Use after cut-silences, when asked to cut mistakes, remove stutters / repeats / filler restarts, clean up flubs, or keep the best take. Works review-gated: it proposes every cut with context and a reason for approval, then renders only the approved cuts via ffmpeg. Requires a word-level transcript.

zroeschen/Video-Production-Factory

Agent 1 of the video editing pipeline. Removes silences and dead air from a talking-head recording. Use when asked to cut silences, trim pauses, remove dead air / gaps, or tighten the pacing of a raw video, given a word-level transcript. Produces an edit list (EDL), a re-timed transcript for downstream agents, and optionally the cut video via ffmpeg. Does NOT cut mistakes, repeats, or false starts — that is the cut-mistakes agent.

zroeschen/Video-Production-Factory

Edit a raw talking-head video through transcription, silence trimming, mistake review, visual storytelling, motion graphics, and verified HyperFrames rendering. Use for a complete edit; route a single requested operation directly to its specialist skill.

zroeschen/Video-Production-Factory

HyperFrames CLI tool — hyperframes init, lint, preview, render, transcribe, tts, doctor, browser, info, upgrade, compositions, docs, benchmark. Use when scaffolding a project, linting or validating compositions, previewing in the studio, rendering to video, transcribing audio, generating TTS, or troubleshooting the HyperFrames environment.

Verwandte Skills