Communitygithub.com

assafkip/claude-video-editor

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. Verwenden Sie dies, wenn Sie GSAP-Animationen in HyperFrames-Kompositionen schreiben.

Was ist claude-video-editor?

Diese Fähigkeit bietet eine umfassende Referenz für die GSAP-Animationbibliothek, speziell zugeschnitten auf die Verwendung innerhalb von HyperFrames-Kompositionen. Sie deckt alle wesentlichen Tween-Methoden ab: gsap.to(), gsap.from(), gsap.fromTo() und gsap.set() sowie wichtige Eigenschaften wie Dauer, Verzögerung, Easing-Funktionen und Stagger. Die Referenz enthält eine vollständige Tabelle der GSAP-Transform-Aliase für CSS-Animationen und erklärt Leistungsoptimierungen wie die Bevorzugung von Transform und Opacity gegenüber Layout-Eigenschaften, die Verwendung von will-change und gsap.quickTo() für häufige Aktualisierungen. Timelines werden ausführlich behandelt, einschließlich der Erstellung, des Positionsparameters für präzises Timing, Labels, Verschachtelung und Wiedergabesteuerung. Darüber hinaus werden bewährte Methoden wie die Verwendung von camelCase-Eigenschaftsnamen, die Bevorzugung von Timelines gegenüber verzögerter Verkettung und die ordnungsgemäße Bereinigung von Animationen hervorgehoben. Die Fähigkeit unterstützt auch responsive und barrierefreie Animationen über gsap.matchMedia() und enthält einen Verweis auf eine Effektbibliothek mit vorgefertigten Mustern wie Schreibmaschinentext und Audio-Visualizer.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/assafkip/claude-video-editor/tree/HEAD/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) — sofort anwenden (Dauer 0).

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

Allgemeine vars

  • duration — Sekunden (Standard 0.5).
  • delay — Sekunden vor dem 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(). Setzen Sie false bei späteren Tweens, die auf dieselbe Eigenschaft und dasselbe Element abzielen, um Überschreiben zu vermeiden.

Transforms und CSS

Bevorzugen Sie GSAPs Transform-Aliase gegenüber rohem transform-String:

GSAP-EigenschaftEntsprechung
x, y, ztranslateX/Y/Z (px)
xPercent, yPercenttranslateX/Y in %
scale, scaleX, scaleYscale
rotationrotate (Grad)
rotationX, rotationY3D-Rotate
skewX, skewYskew
transformOrigintransform-origin
  • autoAlpha — opacity vorziehen. Bei 0: setzt auch visibility: hidden.
  • CSS-Variablen — "--hue": 180.
  • svgOrigin (nur SVG) — globaler SVG-Koordinatenraum-Ursprung. 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.

Defaults

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

Tweens steuern

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

Drittes 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 Ende des vorherigen; "<0.2" — 0.2s nach Start des vorherigen
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 Start von .b

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 eingefügt werden.

Timelines verschachteln

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

Das Animieren von x, y, scale, rotation, opacity bleibt im Compositor. Vermeiden Sie width, height, top, left, wenn Transforms denselben Effekt erzielen.

will-change

will-change: transform;

Nur auf Elemente, 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

Verwenden Sie stagger anstelle separater Tweens mit manuellen Verzögerungen.

Bereinigung

Pausieren oder beenden Sie Animationen außerhalb des Bildschirms.


Referenzen (bei Bedarf geladen)

  • references/effects.md — Fertige Effekte: Schreibmaschinentext, Audio-Visualizer. Lesen Sie, wenn Sie vorgefertigte Effektmuster für HyperFrames benötigen.

Bewährte Methoden

  • Verwenden Sie camelCase-Eigenschaftsnamen; bevorzugen Sie Transform-Aliase und autoAlpha.
  • Bevorzugen Sie Timelines gegenüber Verkettung mit delay; verwenden Sie den Positionsparameter.
  • Fügen Sie Labels mit addLabel() für lesbare Ablaufsteuerung hinzu.
  • Übergeben Sie defaults an den Timeline-Konstruktor.
  • Speichern Sie den Rückgabewert von Tween/Timeline, wenn Sie die Wiedergabe steuern.

Nicht tun

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

Individual skills in this repo

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

assafkip/claude-video-editor

Build videos from stills when there is nothing to cut — narration first (ElevenLabs v3 with audio tags), then still keyframes from ANY source (AI image tools, screenshots, photos, HyperFrames-rendered HTML), animated deterministically with the animate-stills recipe (HyperFrames camera moves + GSAP atmosphere). Use when the user wants an explainer, documentary-style video, or any video built from generated or collected visuals instead of recorded footage.

assafkip/claude-video-editor

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.

assafkip/claude-video-editor

Install and wire registry blocks and components into HyperFrames compositions. Use when running hyperframes add, installing a block or component, wiring an installed item into index.html, or working with hyperframes.json. Covers the add command, install locations, block sub-composition wiring, component snippet merging, and registry discovery.

assafkip/claude-video-editor

Create video compositions, animations, title cards, overlays, captions, voiceovers, audio-reactive visuals, and scene transitions in HyperFrames HTML. Use when asked to build any HTML-based video content, add captions or subtitles synced to audio, generate text-to-speech narration, create audio-reactive animation (beat sync, glow, pulse driven by music), add animated text highlighting (marker sweeps, hand-drawn circles, burst lines, scribble, sketchout), or add transitions between scenes (crossfades, wipes, reveals, shader transitions). Covers composition authoring, timing, media, and the full video production workflow. For CLI commands (init, lint, preview, render, transcribe, tts) see the hyperframes-cli skill.

assafkip/claude-video-editor

Beginner-friendly end-to-end video creator for HyperFrames. Use when the user says "make a video", "create a video", "new video", "build a video", "video from scratch", "I want to make a video", "help me create a video", or when someone who's never used HyperFrames before arrives with a concept, script, or rough idea and wants a finished MP4. Interviews the user in one pass, then builds the full video with mandatory preview and visual-verification gates.

assafkip/claude-video-editor

Build and iterate short-form vertical (9:16) videos in Hyperframes — TikTok/Reels/Shorts style. Use when Nate says "short-form video", "vertical video", "TikTok/Reels/Shorts", "make a short", "talking-head + motion graphics", or when the target is a 1080x1920 composition with face video + synced scene overlays + karaoke captions. Encodes the full May Shorts 19 playbook: face-mode choreography, audio-synced scene timing, karaoke captions, and the 10-rule quality checklist.

assafkip/claude-video-editor

Edit any video by conversation — the orchestrator for the bundled video pipeline. Use when the user wants to edit, cut, caption, grade, or add motion graphics to footage; drops a folder of clips and says "edit this"; or asks to make a promo/teaser/tutorial/short. Routes to video-use (the cut engine) and HyperFrames (motion-graphics overlays), with a motion-craft library for taste.

assafkip/claude-video-editor

Production pipeline for mathematical and technical animations using Manim Community Edition. Creates 3Blue1Brown-style explainer videos, algorithm visualizations, equation derivations, architecture diagrams, and data stories. Use when users request: animated explanations, math animations, concept visualizations, algorithm walkthroughs, technical explainers, 3Blue1Brown style videos, or any programmatic animation with geometric/mathematical content.

assafkip/claude-video-editor

Capture a website and create a HyperFrames video from it. Use when: (1) a user provides a URL and wants a video, (2) someone says "capture this site", "turn this into a video", "make a promo from my site", (3) the user wants a social ad, product tour, or any video based on an existing website, (4) the user shares a link and asks for any kind of video content. Even if the user just pastes a URL — this is the skill to use.

Verwandte Skills