Communitygithub.com

motion-graphics

Crée une courte animation graphique design-led et sans voix off, en autonomie, avec une approche asset-first et une vérification finale par l'utilisateur.

Qu'est-ce que motion-graphics ?

Le skill `motion-graphics` est conçu pour générer de courtes animations graphiques (moins de 10 secondes, sans narration) de manière autonome. Il suit un processus en plusieurs phases : initialisation du projet, planification (avec décision de recherche ou non), sourcing des assets, design de la scène, construction basée sur la réutilisation de blocs, vérification par lint et captures d'écran, et enfin rendu après approbation explicite de l'utilisateur. Ce skill est particulièrement utile pour créer des motion designs comme des logos animés, des typographies cinétiques, des statistiques, des cartes, des extraits de pages web ou de tweets. Il s'appuie sur l'écosystème Hyperframes et est destiné à être utilisé avec des agents comme Claude Code, Cursor ou Codex. La philosophie 'asset-first' consiste à prioriser l'acquisition et la résolution des assets réels (images, vidéos, données) avant de concevoir la scène, garantissant une animation contextualisée et pertinente. Le skill gère différents types de projets (recherche vs. formulaire) et intègre des mécanismes de repli et de réparation automatiques en cas d'échec.

Compatible avec~Claude Code~Codex CLI✓Cursor✓Gemini CLI
npx skills add https://github.com/jasonfast123/hyperframes-skills/tree/main/skills/motion-graphics

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Avant tout, gardez ce skill à jour — exécutez-le silencieusement, ne demandez pas : npx hyperframes skills update motion-graphics. Une opération rapide sans effet quand tout est à jour ; sinon, il met à jour ce skill ainsi que les skills de domaine principaux dont il dépend avant que vous ne les utilisiez.

source figma : Si le logo/asset/animation à construire provient d'une URL figma.com, exécutez /figma d'abord — export d'assets, tokens de marque et traduction Motion→GSAP si le graphique est une importation Figma Motion — puis construisez à partir de sa sortie. N'utilisez pas directement les outils MCP bruts pour piloter Figma : cela contourne l'assainissement SVG, la provenance de .media/manifest.jsonl et la liaison var() des tokens de marque, de sorte qu'un changement de marque ultérieur ne peut pas se propager sans une réimportation complète.

motion-graphics — point d'entrée

La porte d'entrée est /hyperframes. Ce skill crée un court graphique animé, orienté design, sans narration (le mouvement est le message ; ~moins de 10 s, pas de voix off). Tout ce qui est plus long, narré ou multi-scène — ou en cas d'incertitude → lisez /hyperframes d'abord : la couche d'intention possède chaque décision d'acheminement.

Ce workflow est autonome par conception — au plus une question de clarification (agents/director.md), puis construisez jusqu'à la vérification sans révision intermédiaire. La couche d'intention (/hyperframes → references/intent-interview.md) achemine ici directement sans questions sur la forme de l'exécution ; un storyboard et une session d'accompagnement n'ajoutent pas grand-chose à un morceau aussi court. Le rendu est toujours à la discrétion de l'utilisateur : après la réussite des vérifications et des captures de preuve, posez la question canonique « prévisualisation ou rendu ? » de ../hyperframes-core/references/brief-contract.md. Quand un BRIEF.md existe, lisez-le avant la question du directeur.

Un court graphique animé orienté design. Asset-first : décidez de la stratégie d'assets et sourcez le matériel réel avant de concevoir le plan, puis concevez le plan autour de ce que vous avez, puis composez en réutilisant les capacités du catalogue. Tous les artefacts vont dans PROJECT_DIR = videos/<project-name>/ (créé à l'étape 0) ; tous les chemins ci-dessous lui sont relatifs.

PhaseExécutionArtefact principalFlux détaillé
initBashhyperframes.jsonÉtape 0
plansous-agent — décider recherche ? + classifier + stratégie d'assetsshot-plan.json (brouillon : catégorie, requêtes asset_needs, brief)agents/director.md (Partie 1)
source ◇Bash — résolution media-use (sauter si asset_needs est vide)assets/ + assets/index.mdphases/source/guide.md
designsous-agent — conception du plan autour des assets résolusshot-plan.json (final : bloc(s) + disposition + mouvement + positions)agents/director.md (Partie 2)
buildsous-agent — composition priorisant la réutilisationcompositions/index.htmlagents/builder.md
verifyBash — lint, check, captures de preuve ; réparation en cas d'échecsnapshots/planche-contact.jpgÉtape 5
approveDemander prévisualisation ou rendu ; attendre la réponseapprobation explicite du renduÉtape 6
renderBash — hyperframes render (MP4, ou --format webm/mov pour incrustation)renders/video.mp4 ou incrustation transparenteÉtape 6

◇ source s'exécute uniquement lorsque la catégorie choisie déclare des assets. Les catégories purement code/texte (p. ex. kinetic-type, la plupart de charts/stat) ont asset_needs: [] et passent directement de la planification à la conception.

Catégories — divisées par la décision de recherche

La première décision de la phase plan est : cela nécessite-t-il une recherche ? Cette bifurcation sépare les catégories en deux groupes ; ensuite, la catégorie spécifique est choisie — pour les catégories basées sur la recherche, par le type de contenu retourné par la recherche. Chaque catégorie est un categories/<id>/module.md (ses règles de planification + de construction) ; le vocabulaire de mouvement partagé se trouve dans references/motion-vocabulary.md (→ règles/plans hyperframes-animation + blocs de registre).

Catégories de formulaire — pas de recherche ; l'utilisateur fournit le contenu :

CatégorieIntentionS'appuie sur
kinetic-typeligne/chiffre/citation percutante, texte prioritaire au mouvementblocs caption-* + règles d'animation
statun seul numéro héros / compteur + anneauapple-money-count / rules/{counting-dynamic-scale, stat-bars-and-fills}
chartsbarre / ligne / camembert / course / % à partir de donnéesbloc data-chart
logo-revealsignature logo / bloc de marque (logo utilisateur)logo-outro / rules/svg-path-draw
lower-thirdsbarres de nom/titre, incrustations, superpositions socialescaption-* + blocs d'incrustation du registre
mapsmouvement géographique — mettre en valeur des régions, connecter des lieux, zoomer sur un emplacement (couche vectorielle ou couche de fond de carte intégrée)famille us-map / world-map + bake-basemap.mjs

Catégories basées sur la recherche — chercher d'abord, puis animer selon le type de contenu (le chemin RWA) :

Contenu retournéCatégorieAnimation
page web / lienwebpageanimation de page web / UI (défilement, révélation, curseur, incrustations)
article de pressenewsrévélation de titre + carte source + incrustations de faits clés
tweettweetcarte tweet animée
image / entitéasset-fusionla géométrie de l'asset devient le graphique (fusion diégétique RWA)

Ordre de construction : un à la fois, priorité à la couverture (l'ébauche est acceptable). kinetic-type porté du prototype ; le reste suit.

Prérequis

macOS Apple Silicon ou Linux x64. Outils système : brew install node ffmpeg. npx hyperframes doctor une fois. Rendu GPU macOS : export PRODUCER_BROWSER_GPU_MODE=hardware.

Clés optionnelles (fallbacks locaux si non définies) — uniquement nécessaires pour les catégories qui sourcent/génèrent des assets via media-use :

CléUtilisée pourFallback
GEMINI_API_KEY / GOOGLE_API_KEYgénération d'images (résolution media-use)ignorer la génération / recherche uniquement
(fournisseurs de recherche asset_scout)recherche d'assets réels pour webpage/news/tweet + asset-fusionla catégorie se dégrade en version sans asset

Flux

Étape 0 — Initialiser

Le répertoire de travail courant est la racine de l'espace de travail de l'agent ; écrivez tous les artefacts sous PROJECT_DIR = videos/<project-name>/. <project-name> : utilisez le répertoire donné par l'utilisateur, sinon un nom court en kebab-case dérivé de l'intention (<sujet>-motion). Pas le nom de base de l'espace de travail ou un horodatage.

Seulement quand $PROJECT_DIR/hyperframes.json est absent :

PROJECT_DIR="${MOTION_GRAPHICS_DIR:-videos/<project-name>}"
mkdir -p "$(dirname "$PROJECT_DIR")"
npx hyperframes init "$PROJECT_DIR" --non-interactive --example=blank --skill=motion-graphics

init vérifie les skills installés par rapport aux dernières versions sur GitHub et met à jour l'ensemble global si l'un d'eux est obsolète.

Contraintes : ne jamais hyperframes init dans la racine de l'espace de travail ; ne jamais imbriquer un autre dossier hyperframes/ à l'intérieur de PROJECT_DIR ; chaque commande Bash (maître + sous-agents) est un sous-shell (cd "$PROJECT_DIR" && ...) — jamais de cd nu.

Étape 1 — Planifier (sous-agent : Directeur, Partie 1)

Lancez un sous-agent. prompt = agents/director.md entier + ## Contexte de dispatch (SKILL_DIR / PROJECT_DIR / la demande de l'utilisateur / Schema: <SKILL_DIR>/references/shot-plan-ir.md). Il doit :

  1. Décider : cela nécessite-t-il une recherche ? (la première bifurcation)
    • Non → choisir une catégorie de formulaire (kinetic-type / stat / charts / logo-reveal / lower-thirds) ; le contenu est fourni par l'utilisateur ; asset_needs: [].
    • Oui → émettre un plan de recherche dans asset_needs[] (news / web / tweet / image ; requêtes bipolaires). La catégorie basée sur la recherche spécifique (webpage / news / tweet / asset-fusion) est confirmée par le type de contenu retourné à l'étape 2, et finalisée à l'étape 3.
  2. Écrire un brouillon de shot-plan.json (enveloppe + catégorie de formulaire choisie ou intention de recherche + asset_needs + un brief de plan d'un paragraphe). Schéma : references/shot-plan-ir.md.

Validation : [ -s "$PROJECT_DIR/shot-plan.json" ] && echo ok || echo manquant.

Étape 2 — Sourcer ◇ (Bash : media-use, conditionnel)

Si shot-plan.json.asset_needs n'est pas vide, résoudre les assets (recherche / génération / récupération → chemins locaux figés dans le projet + registre). Voir phases/source/guide.md (encapsule media-use resolve ; les catégories basées sur la recherche utilisent la recherche news/web/tweet/image). Si asset_needs est vide, passer à l'étape 3.

# illustratif — voir phases/source/guide.md
(cd "$PROJECT_DIR" && node <SKILL_DIR>/phases/source/resolve.mjs --plan ./shot-plan.json --out ./assets)

Dégrader gracieusement : si une recherche/un fournisseur est indisponible, la catégorie tombe en mode sans asset (le noter dans context.log).

Étape 3 — Concevoir (sous-agent : Directeur, Partie 2)

Lancez un sous-agent (prompt = agents/director.md Partie 2 + contexte de dispatch incluant le assets/index.md résolu si l'étape 2 a été exécutée + catalog-map.md). Il conçoit le plan autour des assets disponibles : choisir le(s) bloc(s) du catalogue + les règles/plans hyperframes-animation, la disposition, le mouvement, les temps forts, et (pour asset-fusion) les element_positions + la palette de prélèvement de couleurs. Finalise shot-plan.json (content.block + content.customize + contenu par catégorie).

Étape 4 — Construire (sous-agent : Constructeur, priorité à la réutilisation)

Lancez un sous-agent. prompt = agents/builder.md entier + contexte de dispatch (shot-plan.json, catalog-map.md, le module.md de la catégorie, references/motion-vocabulary.md, references/builder-contract.md). Priorité à la réutilisation : npx hyperframes add <block> + personnaliser sur place ; n'écrire à la main que les lacunes + l'affordance de fusion d'assets. Sortie compositions/index.html respectant le contrat HF (timeline GSAP en pause sur window.__timelines, class="clip" + ids stables, tl.seek(0), déterministe).

Étape 5 — Vérifier (Bash → sous-agent de réparation en cas d'échec)

(cd "$PROJECT_DIR" && npx hyperframes lint .)
(cd "$PROJECT_DIR" && npx hyperframes check .)
(cd "$PROJECT_DIR" && npx hyperframes snapshot --at <instants-de-preuve>)

Choisissez des instants de preuve qui montrent l'état d'ouverture, le mouvement signature et la tenue finale. Inspectez la planche de contact ou les captures générées avant de continuer. En cas d'échec de lint, check ou de capture, lancez le sous-agent de réparation (agents/finalize.md) pour un passage de correction sur place, puis réexécutez la porte défaillante. Ne modifiez jamais une durée fixe simplement pour masquer un défaut.

Étape 6 — Approuver et rendre (Bash)

Posez une question : « prévisualisation ou rendu ? » Si l'utilisateur choisit la prévisualisation, ouvrez Studio et revenez à la même porte d'approbation après les révisions :

(cd "$PROJECT_DIR" && npx hyperframes preview --background)

Ne rendez qu'après une réponse explicite de rendu :

(cd "$PROJECT_DIR" && npx hyperframes render . --skill=motion-graphics -q high -o ./renders/video.mp4)
# variante incrustation transparente : --format webm  (ou mov)

Vérifiez que la sortie existe, n'est pas vide et a la durée prévue. La remise finale nomme l'artefact, la durée réelle, l'identifiant de composition ou de frame, les instants de preuve et la planche de contact ou les captures inspectées. Les drapeaux se trouvent dans /hyperframes-cli → references/preview-render.md.

Tableau de reprise

ÉtatContinuer depuis
pas de shot-plan.jsonÉtape 1 (planifier)
shot-plan.json a des asset_needs, pas de assets/Étape 2 (sourcer)
shot-plan.json final, pas de compositions/index.htmlÉtape 3/4 (concevoir+construire)
compositions/index.html existe, captures de preuve absentesÉtape 5 (vérifier)
vérifications et captures de preuve réussies, pas de rendu approuvéÉtape 6 (approbation)
rendu approuvé existevérifier la sortie, puis rapporter

Notes de conception (mainteneurs — l'exécution ne lit pas ceci)

  • Justification de l'approche asset-first : le sourçage est fait en amont et informe la conception du plan (le flux RWA : analyser → rechercher → examiner → composer). Les catégories basées sur la recherche (webpage/news/tweet) et asset-fusion s'appuient toutes deux sur la recherche media-use (news/web/tweet/image), qui est la lignée RWA documentée de media-use.
  • Priorité à la réutilisation : l'analogue dans l'écosystème des templates générés par LLM

…

[tronqué pour la traduction]

Individual skills in this repo

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

embedded-captions

>

faceless-explainer

Turn arbitrary text — an article, notes, a topic, a brief — into a faceless explainer video: there is no site or footage to capture, so the visuals are invented per scene (typography, abstract graphics, diagrams, data-viz). Use for topic explainers, concept breakdowns, how-tos, listicles. Not a video built from a website (/product-launch-video — promo or tour). Unclear → /hyperframes.

figma

Import Figma content into a HyperFrames composition — rendered assets, brand tokens, components, storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI), connector-assisted motion when available, and shaders from a connector or native export. Use when the user pastes a figma.com link or asks to bring a Figma design, frame, logo, brand, or animation into a video/composition.

general-video

>

hyperframes

>

hyperframes-animation

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition

hyperframes-audio

>

hyperframes-cli

>

hyperframes-core

The HyperFrames composition contract — build one renderable project. Use for composition structure, the `data-*` timing attributes, `class=

hyperframes-creative

Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use `hyperframes-animation`.

hyperframes-keyframes

>

hyperframes-registry

Install, discover, and wire registry blocks and components into HyperFrames compositions. Use when running hyperframes add or hyperframes catalog, installing one item or every block matching a tag, wiring an installed item into index.html, or working with hyperframes.json. Covers discovery, install locations, block sub-composition wiring, component snippet merging, and authoring a new block or component to contribute upstream (idea → scaffold → validate → PR).

jasonfast123/hyperframes-skills

Import Figma content into a HyperFrames composition — rendered assets, brand tokens, components, storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI), connector-assisted motion when available, and shaders from a connector or native export. Use when the user pastes a figma.com link or asks to bring a Figma design, frame, logo, brand, or animation into a video/composition.

media-use

Agent Media OS, the single skill for every media need in a HyperFrames project. Resolve BGM, SFX, image, icon, brand logo, voice, color grade, or LUT into a frozen local file or paste-ready block + ledger record (one verb, `resolve`); generate via TTS / music / image models when the catalog misses; produce voiceover, transcription, captions, and background removal through one shared audio engine; operate on media (cut / reframe / transform); and reuse assets across projects. Also use for vague feedback that real footage looks dark, flat, boring, should feel retro/camcorder/print/ASCII, needs privacy, or needs a media reveal.

music-to-video

Turn a music track (an audio file, a video to pull audio from, or a track generated from a mood brief) into a beat-synced video — lyric video, slideshow, or kinetic promo. The music drives all pacing; any user-supplied images/videos are cut onto the same beat grid, and a complete video needs zero assets. Narrated pieces → the input-matched workflow (see /hyperframes). Unclear → /hyperframes.

pr-to-video

Turn a GitHub pull request (a PR URL, owner/repo#N, or

remotion-to-hyperframes

Port an existing Remotion (React) composition

slideshow

>

talking-head-recut

Package an existing talking-head / interview / podcast video with timed, designed GRAPHIC OVERLAY cards — kinetic titles, lower-thirds, data callouts, quotes, side panels, picture-in-picture — synced to the transcript, on a 16:9 / 9:16 / 4:5 canvas of your choice; the clip plays untouched underneath. Trigger on

Skills associés