Communitygithub.com

heygen-com/hyperframes

Technique de curseur macOS surdimensionné pour les vidéos de lancement HyperFrames. À charger lorsqu'une scène implique des curseurs ou une action guidée par le pointeur, au lancement d'une scène UI, au déclenchement d'une morphose/transition/saisie par un clic, ou lorsqu'une scène semble statique, morte ou figée et nécessite une source de mouvement peu coûteuse et à fort rendement pour guider l'œil du spectateur et le sortir de cet état figé.

Qu'est-ce que hyperframes ?

Cette compétence définit une technique de curseur macOS surdimensionné, destinée aux vidéos de lancement, notamment celles utilisant HyperFrames. L'approche consiste à utiliser un curseur de grande taille (≥7cqw en plein écran) qui agit comme un protagoniste visible : il entre depuis l'extérieur du cadre, guide l'œil du spectateur jusqu'au point d'intérêt suivant, clique pour déclencher l'action suivante, puis sort physiquement de la zone. Cette méthode offre une source de mouvement à la fois économique et très efficace pour dynamiser des scènes statiques, signaler les transitions et renforcer la clarté narrative. La compétence détaille les règles de taille et d'apparence (y compris l'utilisation de curseurs thématiques de marque), les lois d'entrée et de sortie physiques (jamais de fondu), le ciblage précis du point chaud (la pointe de la flèche) avec un effet de clic asymétrique, et le principe selon lequel chaque clic déclenche l'action suivante dans la même image. Elle est optimisée pour les environnements de montage vidéo et d'animation utilisant GSAP et CSS, et a fait ses preuves dans de multiples campagnes de lancement.

Compatible avec~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/heygen-com/hyperframes/tree/HEAD/.agents/skills/oversized-cursor

Demander à votre IA préférée

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

Documentation

Curseur surdimensionné — le porteur d'œil

Un pointeur macOS délibérément surdimensionné qui parcourt le cadre comme un protagoniste visible : il entre depuis l'extérieur du cadre, promène l'œil du spectateur jusqu'au point d'intérêt suivant, clique pour provoquer la prochaine action, puis sort. Éprouvé en production sur plusieurs films de lancement.

Pourquoi ça existe. Le grand mouvement de curseur est l'une des sources de mouvement les moins coûteuses et les plus efficaces dans une vidéo de lancement : un seul élément, des interpolations de type transform-only, et il (1) amène l'œil à travers l'écran sur des scènes qui autrement seraient perçues comme mortes, (2) donne une ignition causale aux morphoses/transitions (« c'est le clic qui a fait ça »), et (3) sort l'œil d'un état figé lors du lancement d'une nouvelle scène ou d'une séquence d'animation complexe. Plus grand c'est mieux — un curseur de taille réelle disparaît à l'échelle vidéo.

Taille et apparence (convention maison)

  • Scènes plein écran : 7cqw (≈134px à 1920). En variantes dans une maquette / petit cadre : 4,6–5,5cqw. Jamais plus petit.
  • Une seule géométrie de flèche SVG partout. Deux remplissages éprouvés — corps blanc + contour noir, ou corps noir (#1c1c1c) + contour blanc (1,4px). Choisir selon le contraste de la scène, le garder constant pour un film donné.
  • Curseurs thématiques de marque (le geste puissant). La flèche macOS est la VALEUR PAR DÉFAUT, pas une obligation. Lorsque la marque sujet possède une identité de curseur reconnaissable — la flèche multicolore collaborative d'un outil de design avec une étiquette de nom (style Figma), le réticule de précision d'une suite créative, un pointeur de produit distinctif — utilisez CE curseur à la place : langage de marque instantanément lisible pour quiconque connaît le produit. Les mêmes lois s'appliquent sans changement (échelle surdimensionnée, entrée/sortie physique, ciblage de la pointe, ignition par clic), et une variante avec étiquette de nom se déplace comme une unité rigide (l'étiquette suivant la flèche). N'y recourez que lorsque le motif est véritablement référençable ; un curseur que personne ne reconnaît n'est qu'une flèche étrange — revenez par défaut à macOS.
  • filter: drop-shadow(0 4px 6px rgba(0,0,0,.3)), pointer-events: none, z-index au-dessus de tout contenu de scène, will-change: transform.
#root .cursor {
  position: absolute;
  left: 48%;
  top: 115%; /* hors écran en bas — la pose de repos EST hors écran */
  width: 7cqw;
  height: 7cqw;
  z-index: 20;
  filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.3));
  pointer-events: none;
  will-change: transform;
}

Loi d'entrée — physique, jamais révélé

Le curseur entre toujours depuis l'extérieur du cadre (canoniquement : depuis le bas, top:115–120%) et se rend à sa première cible en un seul mouvement décéléré. Il doit donner l'impression d'être entré dans la pièce. Ne l'apparaissez jamais avec un fondu d'opacité à une position fixe, ne le révélez jamais par un masque — cela est perçu comme un défaut (un mode d'échec observé à plusieurs reprises).

  • Trajet par défaut : tout droit sur l'axe y vers la cible — pas de diagonales fragmentées. Une diagonale est acceptable lorsqu'elle FAIT partie de l'histoire (entrée vers une cible hors axe), mais il s'agit dans les deux cas d'un vecteur continu.
  • duration: 0,4–0,92s, ease: power3.out, immediateRender: false sur le fromTo.
tl.fromTo(
  cursor,
  { left: "48,6%", top: "115%" },
  { left: "48,6%", top: "55%", duration: 0,85, ease: "power3.out", immediateRender: false },
  0,25,
);

Ciblage de la pointe et le tap clic

Le point chaud est la POINTE de la flèche, pas le centre de la boîte. Faites atterrir la pointe sur le centre de la cible, et faites pivoter toute la mise à l'échelle de la pression sur la pointe : transformOrigin: '21% 14%' (pour le tracé de flèche maison dans un viewBox de 24 unités).

Clic = compression/expansion asymétrique (un ratio 1:2 donne l'impression d'un tap réel) :

tl.to(cursor, { scale: 0,84, duration: 0,1, ease: "power2.in", transformOrigin: "21% 14%" }, t);
tl.to(
  cursor,
  { scale: 1, duration: 0,22, ease: "power2.out", transformOrigin: "21% 14%" },
  t + 0,1,
);

La réaction de la cible est une interpolation distincte et parallèle (bouton : scale: 0,94 + couleur/ombre de pression, commençant au même t). Les taps uniquement sur le curseur (par exemple pour focaliser un champ de texte) n'obtiennent AUCUNE réaction de la cible. À associer avec cursor-click-ripple / press-release-spring pour le côté cible.

Le clic DÉCLENCHE le prochain temps

Ne laissez jamais une morphose, une séquence de frappe, une transformation de fenêtre ou une animation définissant une scène commencer simplement. Placez le curseur sur le déclencheur et laissez le clic le provoquer, dans la même image :

  • clic ▸ cascade de menu/sous-menu, bascule flip
  • clic ▸ déclenchement de frappe dans un champ de saisie
  • clic ▸ morphose du compositeur / rétrécissement de fenêtre
  • clic ▸ ignition du logo / lancement de vol
  • clic ▸ bascule de lecture + réveil de l'interface utilisateur dans une maquette de produit

Pendant les longues séquences qu'il ne possède pas (frappe, narration), le curseur dérive sur le côté (0,5–0,9s, power2.out) — ne reste jamais figé au-dessus de l'action, ne vacille jamais inutilement.

Loi de sortie et transfert entre scènes

Deux sorties autorisées — les deux physiques, jamais un fondu d'opacité sur place :

  1. Quitter le cadre : accélérer vers le bord le plus proche avec power2.in (left:'118%', left:'-12%', ou top:'116%'), 0,5–0,7s.
  2. Transfert par courbe coupée : dans les ~0,3s finales avant un cut franc, le curseur commence à accélérer (power2.in) vers le premier point de clic de la SCÈNE SUIVANTE, couvrant le premier ~1/3 de ce trajet ; la composition suivante gsap.set le curseur à la pose de transfert et continue avec power2.out à vitesse adaptée. Le curseur lui-même devient l'élément porteur qui coud la jointure :
// scène A, dernière 0,3s — commence le voyage :
tl.to(cursor, { left: "40,7%", top: "63,7%", duration: 0,3, ease: "power2.in" }, CUT - 0,3);
// scène B, t=0 — termine-le à vitesse adaptée :
gsap.set(cursorB, { left: "40,7%", top: "63,7%" });
tl.to(cursorB, { left: "22%", top: "45%", duration: 0,6, ease: "power2.out" }, 0);

Liste de vérification

  • ≥ 7cqw plein écran (4,6–5,5cqw dans une maquette) — en cas de doute, plus grand
  • entre depuis l'extérieur du cadre sur un seul vecteur continu (pas de fondu/révélation par masque)
  • la pointe atterrit au centre de la cible ; la pression pivote sur transformOrigin: '21% 14%'
  • chaque clic provoque quelque chose, dans la même image
  • dérive sur le côté pendant les séquences qu'il ne possède pas ; zéro vacillement inutile
  • sort physiquement (hors cadre ou transfert par courbe coupée) — pas de fondu sur place

Individual skills in this repo

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

general-video

>

heygen-com/animejs

Anime.js adapter patterns for HyperFrames. Use when writing Anime.js animations or timelines inside HyperFrames compositions, registering animations on window.__hfAnime, making Anime.js seek-driven and deterministic, or translating Anime.js examples into render-safe HyperFrames HTML.

heygen-com/claude-design-hyperframes

Use when running inside Claude Design specifically. Produces a valid, brand-accurate HyperFrames video draft using pre-valid skeletons. For Claude Code / Cursor / Codex, use the `hyperframes` skill instead.

heygen-com/contribute-catalog

Author a new HyperFrames registry block (caption style, VFX block, transition, lower third) or component (text effect, overlay, snippet) and ship it as an upstream PR to the hyperframes repo. Use ONLY when the user wants to CONTRIBUTE to the public catalog — for in-project caption/transition authoring use the `hyperframes` skill, for installing existing registry items use the `hyperframes-registry` skill.

heygen-com/css-animations

CSS animation adapter patterns for HyperFrames. Use when authoring CSS keyframes, animation-delay based timing, animation-fill-mode, animation-play-state, or CSS-only motion that HyperFrames must seek deterministically during preview and rendering.

heygen-com/gsap

GSAP animation reference for HyperFrames. Covers gsap.to(), from(), fromTo(), easing, stagger, defaults, timelines (gsap.timeline(), position parameter, labels, nesting, playback), and performance (transforms, will-change, quickTo). Use when writing GSAP animations in HyperFrames compositions.

heygen-com/hyperframes

A tiled headline surface flips cell by cell under a sweeping depth field to reveal the rear headline. HyperFrames block, 1920×1080, 8s, 18 variables.

heygen-com/hyperframes

Leaves sweep through the frame and part to reveal the headline. HyperFrames block, 1920×1080, 12s, 11 variables.

heygen-com/hyperframes

The technique catalog: five velocity-matched SEAMS (zoom-through, INVERSE zoom-through, cut-the-curve, waterfall cut, rack-focus blur-cut) plus the two in-scene techniques — waterfall ENTRY (staggered arrival cascades for title cards / segment openers) and the nudge curve (slow-fast-slow three-phase group slides). Covers partial-travel (~12% of frame) velocity matching via mirrored power4 eases, the Z scale-sign rule, size-scaled blur (10px text / 18-20px full-frame), word-by-word staggered cuts, cascade pacing by element weight, and the 10/65/25 slide ratio. Read before authoring any transition, text-beat handoff, kinetic text entry, or group reposition. [depth, zoom, inverse-zoom, scale-sign, mirrored-zoom, rack-focus, pacing, velocity, cut-the-curve, waterfall, stagger, cascade, kinetic-text, title-card, segment-opener, nudge, slide, easing, group-motion, z-depth, motion-graphics, cinematic, transition, blur, directional-continuity]

heygen-com/hyperframes

A single feature card orbits a dot sphere on approved Blender camera motion. HyperFrames block, 1920×1080, 10s, 4 variables.

heygen-com/hyperframes

A wireframe portal bursts open, the title comes through, then its letters swap into a second phrase. HyperFrames block, 1920×1080, 8s, 9 variables.

heygen-com/hyperframes

Glass shards fly in through fog and tile themselves into the headline. HyperFrames block, 1920×1080, 12.16s, 19 variables.

heygen-com/hyperframes

Render-correctness doctrine for scene-to-scene seams in HyperFrames launch videos — the prerequisites that make transitions composite correctly on the master timeline. Load when assembling the master timeline / index.html, when a white flash appears at a cut or crossfade seam (especially on dark films), when reasoning about why a transition opacity dip shows through, or when verifying the render-side mechanics of how overlapping scene wrappers blend. Covers the opaque stage-ground (#root background) white-flash guard and how the injector overlaps wrappers, holds final frames, ping-pongs tracks, and stamps lint-clean template code onto the master timeline. Does NOT contain the per-transition catalog — see the transition registry for individual transition entries.

heygen-com/hyperframes

An orbiting camera follows an ice logo as it breaks apart, reforms into two text moments, and fades. HyperFrames block, 1920×1080, 22.5s, 216 variables.

heygen-com/hyperframes

name: embedded-captions

heygen-com/hyperframes

A chain of bevelled cuboids rides a travelling wave as a content carousel. HyperFrames block, 1920×1080, 6.666666666666667s, 40 variables.

heygen-com/hyperframes

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.

heygen-com/hyperframes

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.

heygen-com/hyperframes

GATEWAY — load FIRST before composing any HyperFrames animation or video. The high-level motion law that makes a multi-scene video feel like ONE continuous camera move instead of a stack of independently-animated slides. Covers the vector law (how you exit determines how you enter, incl. the Z scale-sign rule), the film's current, carrier elements, causal motion, the Seam Gate (build-gate enforcement), the ban on idle wobble (motion must PERFORM, not breathe), stillness-before-climax, and the sustained-motion routes. Routes to the low-level technique skills (cut-the-curve — the full catalog incl. waterfall entry + nudge curve, oversized-cursor, seam-craft). These rules SUPERSEDE generic / upstream motion guidance. [continuity, direction, vector, momentum, seam, transition, ease, performance, idle-motion, narrative-motion, film-grammar]

heygen-com/hyperframes

Turn a weekly changelog .md into a finished branded changelog video (square 1080, ~45-60s, Annie VO, animated brand background, mock-UI visualizations, lowkey captions). Use when the user provides a changelog/digest markdown and wants the weekly video, or says "changelog video". Self-contained — fonts, background, lexicon, and scripts ship in this skill.

Skills associés