@mevdragon/vidfarm-devcli 0.14.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/embedded-captions/CATALOG.md +93 -0
- package/.agents/skills/embedded-captions/SKILL.md +286 -0
- package/.agents/skills/embedded-captions/assets/brand/CDPR-fankit-terms.txt +35 -0
- package/.agents/skills/embedded-captions/assets/brand/cyberpunk-widths.json +115 -0
- package/.agents/skills/embedded-captions/assets/fonts/char-widths.json +2211 -0
- package/.agents/skills/embedded-captions/assets/strokefonts/HersheyScript1.svg +242 -0
- package/.agents/skills/embedded-captions/assets/strokefonts/HersheyScriptMed.svg +242 -0
- package/.agents/skills/embedded-captions/dna/README.md +148 -0
- package/.agents/skills/embedded-captions/dna/chrome.json +68 -0
- package/.agents/skills/embedded-captions/dna/cream.json +69 -0
- package/.agents/skills/embedded-captions/dna/documentary.json +62 -0
- package/.agents/skills/embedded-captions/dna/editorial.json +70 -0
- package/.agents/skills/embedded-captions/dna/glitch.json +82 -0
- package/.agents/skills/embedded-captions/dna/ink.json +65 -0
- package/.agents/skills/embedded-captions/dna/keynote.json +62 -0
- package/.agents/skills/embedded-captions/dna/loud.json +75 -0
- package/.agents/skills/embedded-captions/dna/neon.json +58 -0
- package/.agents/skills/embedded-captions/dna/velocity.json +89 -0
- package/.agents/skills/embedded-captions/modes/cinematic/README.md +48 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/champion/spec.md +98 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/champion/template.html +188 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/memory-wall/spec.md +134 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/memory-wall/template.html +179 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/portrait-header/spec.md +81 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/portrait-header/template.html +170 -0
- package/.agents/skills/embedded-captions/modes/cinematic/cinematic-cream/spec.md +16 -0
- package/.agents/skills/embedded-captions/modes/cinematic/cinematic-cream/template.html +226 -0
- package/.agents/skills/embedded-captions/modes/cinematic/engine.html +355 -0
- package/.agents/skills/embedded-captions/modes/standard/_anatomy.md +233 -0
- package/.agents/skills/embedded-captions/modes/standard/_motion.md +192 -0
- package/.agents/skills/embedded-captions/modes/standard/fonts/build-fonts-css.cjs +97 -0
- package/.agents/skills/embedded-captions/references/aesthetic-principles.md +168 -0
- package/.agents/skills/embedded-captions/references/anti-patterns.md +188 -0
- package/.agents/skills/embedded-captions/references/bespoke-vs-presets.md +178 -0
- package/.agents/skills/embedded-captions/references/caption-grouping.md +130 -0
- package/.agents/skills/embedded-captions/references/composition-craft.md +522 -0
- package/.agents/skills/embedded-captions/references/direction-catalog.md +138 -0
- package/.agents/skills/embedded-captions/references/example-renders/champion.html +371 -0
- package/.agents/skills/embedded-captions/references/example-renders/memory-wall.html +334 -0
- package/.agents/skills/embedded-captions/references/failure-modes.md +145 -0
- package/.agents/skills/embedded-captions/references/layout-heuristics.md +238 -0
- package/.agents/skills/embedded-captions/references/motion-vocabulary.md +148 -0
- package/.agents/skills/embedded-captions/references/rail.md +68 -0
- package/.agents/skills/embedded-captions/references/reference-bar.md +47 -0
- package/.agents/skills/embedded-captions/references/scene-types.md +94 -0
- package/.agents/skills/embedded-captions/references/test-set.md +66 -0
- package/.agents/skills/embedded-captions/references/typographic-moves.md +266 -0
- package/.agents/skills/embedded-captions/references/typography-presets.md +63 -0
- package/.agents/skills/embedded-captions/scripts/audio-envelope.cjs +95 -0
- package/.agents/skills/embedded-captions/scripts/check-occlusion.cjs +250 -0
- package/.agents/skills/embedded-captions/scripts/check-overflow.cjs +194 -0
- package/.agents/skills/embedded-captions/scripts/check-rail-climax.cjs +233 -0
- package/.agents/skills/embedded-captions/scripts/check-timing.cjs +173 -0
- package/.agents/skills/embedded-captions/scripts/fill-timings.cjs +124 -0
- package/.agents/skills/embedded-captions/scripts/fit-fonts.cjs +158 -0
- package/.agents/skills/embedded-captions/scripts/gen-stroke-path.py +46 -0
- package/.agents/skills/embedded-captions/scripts/inject-fonts.cjs +169 -0
- package/.agents/skills/embedded-captions/scripts/lib-dna.cjs +201 -0
- package/.agents/skills/embedded-captions/scripts/make-cinematic.cjs +1205 -0
- package/.agents/skills/embedded-captions/scripts/make-composition.cjs +404 -0
- package/.agents/skills/embedded-captions/scripts/make-theme.cjs +8781 -0
- package/.agents/skills/embedded-captions/scripts/matte.cjs +294 -0
- package/.agents/skills/embedded-captions/scripts/measure-layout.cjs +293 -0
- package/.agents/skills/embedded-captions/scripts/prepare.sh +39 -0
- package/.agents/skills/embedded-captions/scripts/preview-frames.cjs +268 -0
- package/.agents/skills/embedded-captions/scripts/render-and-composite.sh +509 -0
- package/.agents/skills/embedded-captions/scripts/render-theme.sh +34 -0
- package/.agents/skills/embedded-captions/scripts/safe-zones.cjs +813 -0
- package/.agents/skills/embedded-captions/scripts/transcribe.cjs +349 -0
- package/.agents/skills/embedded-captions/themes/PORTING.md +49 -0
- package/.agents/skills/embedded-captions/themes/README.md +244 -0
- package/.agents/skills/embedded-captions/themes/anchor.json +27 -0
- package/.agents/skills/embedded-captions/themes/arcade.json +51 -0
- package/.agents/skills/embedded-captions/themes/aurora.json +41 -0
- package/.agents/skills/embedded-captions/themes/biolume.json +35 -0
- package/.agents/skills/embedded-captions/themes/brush.json +74 -0
- package/.agents/skills/embedded-captions/themes/chalkboard.json +52 -0
- package/.agents/skills/embedded-captions/themes/dossier.json +56 -0
- package/.agents/skills/embedded-captions/themes/graffiti.json +62 -0
- package/.agents/skills/embedded-captions/themes/hologram.json +41 -0
- package/.agents/skills/embedded-captions/themes/inkwater.json +43 -0
- package/.agents/skills/embedded-captions/themes/laser.json +46 -0
- package/.agents/skills/embedded-captions/themes/lastpage.json +33 -0
- package/.agents/skills/embedded-captions/themes/neonsign.json +53 -0
- package/.agents/skills/embedded-captions/themes/nightcity.json +56 -0
- package/.agents/skills/embedded-captions/themes/ordnance.json +54 -0
- package/.agents/skills/embedded-captions/themes/papercut.json +37 -0
- package/.agents/skills/embedded-captions/themes/popup.json +46 -0
- package/.agents/skills/embedded-captions/themes/ransom.json +62 -0
- package/.agents/skills/embedded-captions/themes/scoreboard.json +54 -0
- package/.agents/skills/embedded-captions/themes/spectrum.json +46 -0
- package/.agents/skills/embedded-captions/themes/stardust.json +29 -0
- package/.agents/skills/embedded-captions/themes/stomp.json +43 -0
- package/.agents/skills/embedded-captions/themes/terminal.json +49 -0
- package/.agents/skills/embedded-captions/themes/thunder.json +44 -0
- package/.agents/skills/embedded-captions/themes/transit.json +44 -0
- package/.agents/skills/embedded-captions/themes/vhs.json +47 -0
- package/.agents/skills/faceless-explainer/SKILL.md +209 -0
- package/.agents/skills/faceless-explainer/references/cut-catalog.md +215 -0
- package/.agents/skills/faceless-explainer/references/motion-language.md +156 -0
- package/.agents/skills/faceless-explainer/references/story-design.md +248 -0
- package/.agents/skills/faceless-explainer/references/visual-design.md +146 -0
- package/.agents/skills/faceless-explainer/scripts/assemble-index.mjs +570 -0
- package/.agents/skills/faceless-explainer/scripts/audio.mjs +260 -0
- package/.agents/skills/faceless-explainer/scripts/build-frame.mjs +536 -0
- package/.agents/skills/faceless-explainer/scripts/captions.mjs +508 -0
- package/.agents/skills/faceless-explainer/scripts/lib/assets.mjs +55 -0
- package/.agents/skills/faceless-explainer/scripts/lib/dimensions.mjs +45 -0
- package/.agents/skills/faceless-explainer/scripts/lib/storyboard.mjs +249 -0
- package/.agents/skills/faceless-explainer/scripts/lib/tokens.mjs +204 -0
- package/.agents/skills/faceless-explainer/scripts/lib/transition-registry.mjs +38 -0
- package/.agents/skills/faceless-explainer/scripts/lib/transitions.json +71 -0
- package/.agents/skills/faceless-explainer/scripts/transitions.mjs +320 -0
- package/.agents/skills/faceless-explainer/sub-agents/frame-worker.md +75 -0
- package/.agents/skills/flockposter/LICENSE +17 -0
- package/.agents/skills/flockposter/README.md +72 -0
- package/.agents/skills/flockposter/SKILL.md +562 -0
- package/.agents/skills/flockposter/examples/cli-instagram-reel.sh +21 -0
- package/.agents/skills/flockposter/examples/cli-multi-platform.json +69 -0
- package/.agents/skills/flockposter/examples/cli-tiktok-upload-only.sh +22 -0
- package/.agents/skills/flockposter/examples/cli-x-thread.sh +17 -0
- package/.agents/skills/flockposter/examples/cli-youtube-short.sh +21 -0
- package/.agents/skills/flockposter/examples/public-api-instagram-reel.json +28 -0
- package/.agents/skills/general-video/SKILL.md +143 -0
- package/.agents/skills/hyperframes/SKILL.md +160 -0
- package/.agents/skills/hyperframes-animation/SKILL.md +84 -0
- package/.agents/skills/hyperframes-animation/adapters/animate-text.md +64 -0
- package/.agents/skills/hyperframes-animation/adapters/animejs.md +114 -0
- package/.agents/skills/hyperframes-animation/adapters/css-animations.md +143 -0
- package/.agents/skills/hyperframes-animation/adapters/gsap-easing-and-stagger.md +118 -0
- package/.agents/skills/hyperframes-animation/adapters/gsap-timeline-and-labels.md +96 -0
- package/.agents/skills/hyperframes-animation/adapters/gsap-transforms-and-perf.md +96 -0
- package/.agents/skills/hyperframes-animation/adapters/gsap.md +105 -0
- package/.agents/skills/hyperframes-animation/adapters/html-in-canvas-patterns.md +507 -0
- package/.agents/skills/hyperframes-animation/adapters/lottie.md +117 -0
- package/.agents/skills/hyperframes-animation/adapters/three.md +131 -0
- package/.agents/skills/hyperframes-animation/adapters/typegpu.md +178 -0
- package/.agents/skills/hyperframes-animation/adapters/waapi.md +101 -0
- package/.agents/skills/hyperframes-animation/blueprints/comparison-split.md +27 -0
- package/.agents/skills/hyperframes-animation/blueprints/constellation-hub.md +44 -0
- package/.agents/skills/hyperframes-animation/blueprints/cta-morph-press.md +28 -0
- package/.agents/skills/hyperframes-animation/blueprints/cursor-ui-demo.md +57 -0
- package/.agents/skills/hyperframes-animation/blueprints/dataviz-countup.md +46 -0
- package/.agents/skills/hyperframes-animation/blueprints/device-surface-showcase.md +53 -0
- package/.agents/skills/hyperframes-animation/blueprints/grid-card-assemble.md +66 -0
- package/.agents/skills/hyperframes-animation/blueprints/kinetic-type-beats.md +78 -0
- package/.agents/skills/hyperframes-animation/blueprints/logo-assemble-lockup.md +69 -0
- package/.agents/skills/hyperframes-animation/blueprints/overwhelm-surround.md +28 -0
- package/.agents/skills/hyperframes-animation/blueprints/spatial-pan-stations.md +37 -0
- package/.agents/skills/hyperframes-animation/blueprints/ticker-takeover.md +29 -0
- package/.agents/skills/hyperframes-animation/blueprints/titlecard-reveal.md +42 -0
- package/.agents/skills/hyperframes-animation/blueprints/typewriter-reveal.md +51 -0
- package/.agents/skills/hyperframes-animation/blueprints/video-text-pivot.md +30 -0
- package/.agents/skills/hyperframes-animation/blueprints-index.md +146 -0
- package/.agents/skills/hyperframes-animation/examples/assets/avatars/02.avif +0 -0
- package/.agents/skills/hyperframes-animation/examples/assets/brands/github.avif +0 -0
- package/.agents/skills/hyperframes-animation/examples/assets/brands/nvidia.avif +0 -0
- package/.agents/skills/hyperframes-animation/examples/assets/brands/visa.avif +0 -0
- package/.agents/skills/hyperframes-animation/examples/assets/brands/zoominfo.avif +0 -0
- package/.agents/skills/hyperframes-animation/examples/brand-reveal-assemble-zoom.html +382 -0
- package/.agents/skills/hyperframes-animation/examples/comparison-split-cards.html +649 -0
- package/.agents/skills/hyperframes-animation/examples/concept-demo-decode-pan.html +520 -0
- package/.agents/skills/hyperframes-animation/examples/cta-morph-press.html +468 -0
- package/.agents/skills/hyperframes-animation/examples/cta-orbit-collapse.html +1298 -0
- package/.agents/skills/hyperframes-animation/examples/demo-page-scroll-spotlight.html +759 -0
- package/.agents/skills/hyperframes-animation/examples/hook-counter-burst.html +729 -0
- package/.agents/skills/hyperframes-animation/examples/messaging-multi-phrase.html +352 -0
- package/.agents/skills/hyperframes-animation/examples/metric-video-text-pivot.html +779 -0
- package/.agents/skills/hyperframes-animation/examples/problem-mockup-overwhelm.html +1374 -0
- package/.agents/skills/hyperframes-animation/examples/proof-logo-chain.html +861 -0
- package/.agents/skills/hyperframes-animation/examples/takeover-ticker-displace.html +347 -0
- package/.agents/skills/hyperframes-animation/examples/workflow-approve-press.html +606 -0
- package/.agents/skills/hyperframes-animation/rules/3d-page-scroll.md +227 -0
- package/.agents/skills/hyperframes-animation/rules/3d-text-depth-layers.md +297 -0
- package/.agents/skills/hyperframes-animation/rules/ai-tracking-box.md +382 -0
- package/.agents/skills/hyperframes-animation/rules/ambient-glow-bloom.md +305 -0
- package/.agents/skills/hyperframes-animation/rules/asr-keyword-glow.md +286 -0
- package/.agents/skills/hyperframes-animation/rules/avatar-cloud-network.md +371 -0
- package/.agents/skills/hyperframes-animation/rules/camera-cursor-tracking.md +246 -0
- package/.agents/skills/hyperframes-animation/rules/card-morph-anchor.md +267 -0
- package/.agents/skills/hyperframes-animation/rules/center-outward-expansion.md +227 -0
- package/.agents/skills/hyperframes-animation/rules/context-sensitive-cursor.md +257 -0
- package/.agents/skills/hyperframes-animation/rules/coordinate-target-zoom.md +332 -0
- package/.agents/skills/hyperframes-animation/rules/counting-dynamic-scale.md +283 -0
- package/.agents/skills/hyperframes-animation/rules/css-marker-patterns.md +373 -0
- package/.agents/skills/hyperframes-animation/rules/cursor-click-ripple.md +262 -0
- package/.agents/skills/hyperframes-animation/rules/depth-of-field-blur.md +313 -0
- package/.agents/skills/hyperframes-animation/rules/depth-scatter-assemble.md +303 -0
- package/.agents/skills/hyperframes-animation/rules/discrete-text-sequence.md +273 -0
- package/.agents/skills/hyperframes-animation/rules/dynamic-content-sequencing.md +307 -0
- package/.agents/skills/hyperframes-animation/rules/gsap-effects.md +299 -0
- package/.agents/skills/hyperframes-animation/rules/hacker-flip-3d.md +223 -0
- package/.agents/skills/hyperframes-animation/rules/kinetic-beat-slam.md +183 -0
- package/.agents/skills/hyperframes-animation/rules/motion-blur-streak.md +328 -0
- package/.agents/skills/hyperframes-animation/rules/multi-phase-camera.md +273 -0
- package/.agents/skills/hyperframes-animation/rules/orbit-3d-entry.md +301 -0
- package/.agents/skills/hyperframes-animation/rules/physics-press-reaction.md +350 -0
- package/.agents/skills/hyperframes-animation/rules/press-release-spring.md +296 -0
- package/.agents/skills/hyperframes-animation/rules/reactive-displacement.md +277 -0
- package/.agents/skills/hyperframes-animation/rules/scale-swap-transition.md +298 -0
- package/.agents/skills/hyperframes-animation/rules/sine-wave-loop.md +278 -0
- package/.agents/skills/hyperframes-animation/rules/split-tilt-cards.md +277 -0
- package/.agents/skills/hyperframes-animation/rules/spring-pop-entrance.md +273 -0
- package/.agents/skills/hyperframes-animation/rules/stat-bars-and-fills.md +156 -0
- package/.agents/skills/hyperframes-animation/rules/svg-icon-enrichment.md +329 -0
- package/.agents/skills/hyperframes-animation/rules/svg-path-draw.md +274 -0
- package/.agents/skills/hyperframes-animation/rules/vertical-spring-ticker.md +239 -0
- package/.agents/skills/hyperframes-animation/rules/viewport-change.md +349 -0
- package/.agents/skills/hyperframes-animation/rules-index.md +86 -0
- package/.agents/skills/hyperframes-animation/scripts/animation-map.mjs +606 -0
- package/.agents/skills/hyperframes-animation/scripts/package-loader.mjs +288 -0
- package/.agents/skills/hyperframes-animation/scripts/package-loader.test.mjs +62 -0
- package/.agents/skills/hyperframes-animation/techniques.md +507 -0
- package/.agents/skills/hyperframes-animation/transitions/TRANSITION-REGISTRY.md +167 -0
- package/.agents/skills/hyperframes-animation/transitions/catalog.md +127 -0
- package/.agents/skills/hyperframes-animation/transitions/css-3d.md +12 -0
- package/.agents/skills/hyperframes-animation/transitions/css-blur.md +51 -0
- package/.agents/skills/hyperframes-animation/transitions/css-cover.md +43 -0
- package/.agents/skills/hyperframes-animation/transitions/css-destruction.md +95 -0
- package/.agents/skills/hyperframes-animation/transitions/css-dissolve.md +66 -0
- package/.agents/skills/hyperframes-animation/transitions/css-distortion.md +45 -0
- package/.agents/skills/hyperframes-animation/transitions/css-grid.md +10 -0
- package/.agents/skills/hyperframes-animation/transitions/css-light.md +49 -0
- package/.agents/skills/hyperframes-animation/transitions/css-mechanical.md +30 -0
- package/.agents/skills/hyperframes-animation/transitions/css-other.md +25 -0
- package/.agents/skills/hyperframes-animation/transitions/css-push.md +41 -0
- package/.agents/skills/hyperframes-animation/transitions/css-radial.md +37 -0
- package/.agents/skills/hyperframes-animation/transitions/css-scale.md +24 -0
- package/.agents/skills/hyperframes-animation/transitions/overview.md +153 -0
- package/.agents/skills/hyperframes-cli/SKILL.md +113 -0
- package/.agents/skills/hyperframes-cli/references/doctor-browser.md +45 -0
- package/.agents/skills/hyperframes-cli/references/init-and-scaffold.md +55 -0
- package/.agents/skills/hyperframes-cli/references/lambda.md +132 -0
- package/.agents/skills/hyperframes-cli/references/lint-validate-inspect.md +121 -0
- package/.agents/skills/hyperframes-cli/references/preview-render.md +149 -0
- package/.agents/skills/hyperframes-cli/references/upgrade-info-misc.md +75 -0
- package/.agents/skills/hyperframes-core/SKILL.md +78 -0
- package/.agents/skills/hyperframes-core/references/composition-patterns.md +263 -0
- package/.agents/skills/hyperframes-core/references/data-attributes.md +70 -0
- package/.agents/skills/hyperframes-core/references/determinism-rules.md +68 -0
- package/.agents/skills/hyperframes-core/references/full-screen-motion.md +62 -0
- package/.agents/skills/hyperframes-core/references/minimal-composition.md +66 -0
- package/.agents/skills/hyperframes-core/references/script-format.md +49 -0
- package/.agents/skills/hyperframes-core/references/storyboard-format.md +95 -0
- package/.agents/skills/hyperframes-core/references/sub-compositions.md +237 -0
- package/.agents/skills/hyperframes-core/references/subagent-dispatch.md +41 -0
- package/.agents/skills/hyperframes-core/references/tailwind.md +125 -0
- package/.agents/skills/hyperframes-core/references/tracks-and-clips.md +76 -0
- package/.agents/skills/hyperframes-core/references/variables-and-media.md +90 -0
- package/.agents/skills/hyperframes-creative/SKILL.md +70 -0
- package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/FRAME.md +289 -0
- package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/caption-skin.html +221 -0
- package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/frame-showcase.html +1214 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blockframe/FRAME.md +275 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blockframe/caption-skin.html +224 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blockframe/frame-showcase.html +1347 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/FRAME.md +307 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/caption-skin.html +223 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/frame-showcase.html +1372 -0
- package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/FRAME.md +275 -0
- package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/caption-skin.html +230 -0
- package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/frame-showcase.html +1140 -0
- package/.agents/skills/hyperframes-creative/frame-presets/broadside/FRAME.md +284 -0
- package/.agents/skills/hyperframes-creative/frame-presets/broadside/caption-skin.html +225 -0
- package/.agents/skills/hyperframes-creative/frame-presets/broadside/frame-showcase.html +1166 -0
- package/.agents/skills/hyperframes-creative/frame-presets/capsule/FRAME.md +284 -0
- package/.agents/skills/hyperframes-creative/frame-presets/capsule/caption-skin.html +224 -0
- package/.agents/skills/hyperframes-creative/frame-presets/capsule/frame-showcase.html +1465 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cartesian/FRAME.md +278 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cartesian/caption-skin.html +222 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cartesian/frame-showcase.html +1263 -0
- package/.agents/skills/hyperframes-creative/frame-presets/claude/FRAME.md +277 -0
- package/.agents/skills/hyperframes-creative/frame-presets/claude/caption-skin.html +224 -0
- package/.agents/skills/hyperframes-creative/frame-presets/claude/frame-showcase.html +1439 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/FRAME.md +265 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/caption-skin.html +238 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/frame-showcase.html +1468 -0
- package/.agents/skills/hyperframes-creative/frame-presets/coral/FRAME.md +314 -0
- package/.agents/skills/hyperframes-creative/frame-presets/coral/caption-skin.html +226 -0
- package/.agents/skills/hyperframes-creative/frame-presets/coral/frame-showcase.html +1268 -0
- package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/FRAME.md +333 -0
- package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/caption-skin.html +227 -0
- package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/frame-showcase.html +1330 -0
- package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/FRAME.md +274 -0
- package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/caption-skin.html +230 -0
- package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/frame-showcase.html +1444 -0
- package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/FRAME.md +265 -0
- package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/caption-skin.html +223 -0
- package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/frame-showcase.html +1273 -0
- package/.agents/skills/hyperframes-creative/palettes/bold-energetic.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/clean-corporate.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/dark-premium.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/jewel-rich.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/monochrome.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/nature-earth.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/neon-electric.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/pastel-soft.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/warm-editorial.md +14 -0
- package/.agents/skills/hyperframes-creative/references/audio-reactive.md +76 -0
- package/.agents/skills/hyperframes-creative/references/beat-direction.md +164 -0
- package/.agents/skills/hyperframes-creative/references/composition-patterns.md +199 -0
- package/.agents/skills/hyperframes-creative/references/data-in-motion.md +19 -0
- package/.agents/skills/hyperframes-creative/references/design-adherence.md +19 -0
- package/.agents/skills/hyperframes-creative/references/design-picker.md +123 -0
- package/.agents/skills/hyperframes-creative/references/design-spec.md +55 -0
- package/.agents/skills/hyperframes-creative/references/house-style.md +73 -0
- package/.agents/skills/hyperframes-creative/references/motion-principles.md +150 -0
- package/.agents/skills/hyperframes-creative/references/narration.md +92 -0
- package/.agents/skills/hyperframes-creative/references/prompt-expansion.md +68 -0
- package/.agents/skills/hyperframes-creative/references/typography.md +218 -0
- package/.agents/skills/hyperframes-creative/references/video-composition.md +63 -0
- package/.agents/skills/hyperframes-creative/references/visual-styles.md +457 -0
- package/.agents/skills/hyperframes-creative/scripts/contrast-report.mjs +353 -0
- package/.agents/skills/hyperframes-creative/scripts/extract-audio-data.py +188 -0
- package/.agents/skills/hyperframes-creative/scripts/package-loader.mjs +288 -0
- package/.agents/skills/hyperframes-creative/scripts/package-loader.test.mjs +62 -0
- package/.agents/skills/hyperframes-creative/templates/design-picker.html +1432 -0
- package/.agents/skills/hyperframes-keyframes/SKILL.md +237 -0
- package/.agents/skills/hyperframes-keyframes/agents/openai.yaml +4 -0
- package/.agents/skills/hyperframes-keyframes/references/keyframe-patterns.md +106 -0
- package/.agents/skills/motion-graphics/SKILL.md +172 -0
- package/.agents/skills/motion-graphics/agents/builder.md +40 -0
- package/.agents/skills/motion-graphics/agents/director.md +53 -0
- package/.agents/skills/motion-graphics/agents/finalize.md +17 -0
- package/.agents/skills/motion-graphics/catalog-map.md +40 -0
- package/.agents/skills/motion-graphics/categories/asset-fusion/module.md +37 -0
- package/.agents/skills/motion-graphics/categories/charts/module.md +21 -0
- package/.agents/skills/motion-graphics/categories/kinetic-type/module.md +19 -0
- package/.agents/skills/motion-graphics/categories/logo-reveal/module.md +17 -0
- package/.agents/skills/motion-graphics/categories/lower-thirds/module.md +16 -0
- package/.agents/skills/motion-graphics/categories/maps/bake-basemap.mjs +273 -0
- package/.agents/skills/motion-graphics/categories/maps/module.md +61 -0
- package/.agents/skills/motion-graphics/categories/news/module.md +56 -0
- package/.agents/skills/motion-graphics/categories/stat/module.md +21 -0
- package/.agents/skills/motion-graphics/categories/tweet/module.md +16 -0
- package/.agents/skills/motion-graphics/categories/webpage/module.md +21 -0
- package/.agents/skills/motion-graphics/grounding/PROTOCOL.md +64 -0
- package/.agents/skills/motion-graphics/grounding/locate.mjs +227 -0
- package/.agents/skills/motion-graphics/phases/source/guide.md +21 -0
- package/.agents/skills/motion-graphics/references/builder-contract.md +38 -0
- package/.agents/skills/motion-graphics/references/motion-vocabulary.md +43 -0
- package/.agents/skills/motion-graphics/references/shot-plan-ir.md +54 -0
- package/.agents/skills/motion-graphics/samples/asset-fusion/_ref-circle-highlight.html +306 -0
- package/.agents/skills/product-launch-video/SKILL.md +208 -0
- package/.agents/skills/product-launch-video/references/cut-catalog.md +220 -0
- package/.agents/skills/product-launch-video/references/motion-language.md +156 -0
- package/.agents/skills/product-launch-video/references/story-design.md +373 -0
- package/.agents/skills/product-launch-video/references/visual-design.md +126 -0
- package/.agents/skills/product-launch-video/scripts/assemble-index.mjs +570 -0
- package/.agents/skills/product-launch-video/scripts/audio.mjs +260 -0
- package/.agents/skills/product-launch-video/scripts/build-frame.mjs +536 -0
- package/.agents/skills/product-launch-video/scripts/captions.mjs +508 -0
- package/.agents/skills/product-launch-video/scripts/lib/assets.mjs +55 -0
- package/.agents/skills/product-launch-video/scripts/lib/dimensions.mjs +45 -0
- package/.agents/skills/product-launch-video/scripts/lib/pad-frame-duration.mjs +36 -0
- package/.agents/skills/product-launch-video/scripts/lib/pad-frame-duration.test.mjs +76 -0
- package/.agents/skills/product-launch-video/scripts/lib/storyboard.mjs +249 -0
- package/.agents/skills/product-launch-video/scripts/lib/tokens.mjs +204 -0
- package/.agents/skills/product-launch-video/scripts/lib/transition-registry.mjs +38 -0
- package/.agents/skills/product-launch-video/scripts/lib/transitions.json +71 -0
- package/.agents/skills/product-launch-video/scripts/stage-assets.mjs +39 -0
- package/.agents/skills/product-launch-video/scripts/transitions.mjs +327 -0
- package/.agents/skills/product-launch-video/sub-agents/frame-worker.md +75 -0
- package/.agents/skills/slideshow/SKILL.md +550 -0
- package/.agents/skills/slideshow/references/standalone-harness.md +1020 -0
- package/.agents/skills/talking-head-recut/NOTICE.md +39 -0
- package/.agents/skills/talking-head-recut/SKILL.md +1195 -0
- package/.agents/skills/talking-head-recut/assets/vendor/gsap.min.js +10 -0
- package/.agents/skills/talking-head-recut/references/DESIGN_INDEX.md +145 -0
- package/.agents/skills/talking-head-recut/references/frames/clean.html +92 -0
- package/.agents/skills/talking-head-recut/references/frames/hairline.html +171 -0
- package/.agents/skills/talking-head-recut/references/frames/polaroid.html +131 -0
- package/.agents/skills/talking-head-recut/references/layouts/overlay.html +164 -0
- package/.agents/skills/talking-head-recut/references/layouts/pip.html +143 -0
- package/.agents/skills/talking-head-recut/references/layouts/split.html +121 -0
- package/.agents/skills/talking-head-recut/references/layouts/stack.html +109 -0
- package/.agents/skills/talking-head-recut/references/styles/academic.html +172 -0
- package/.agents/skills/talking-head-recut/references/styles/audit.html +170 -0
- package/.agents/skills/talking-head-recut/references/styles/editorial.html +189 -0
- package/.agents/skills/talking-head-recut/references/styles/geom.html +181 -0
- package/.agents/skills/talking-head-recut/references/styles/minimal.html +130 -0
- package/.agents/skills/talking-head-recut/references/styles/spotlight.html +142 -0
- package/.agents/skills/talking-head-recut/references/styles/swiss.html +188 -0
- package/.agents/skills/talking-head-recut/references/styles/terminal.html +196 -0
- package/.agents/skills/talking-head-recut/references/styles/whiteboard.html +170 -0
- package/.agents/skills/talking-head-recut/references/styles/xhs.html +206 -0
- package/.agents/skills/vidfarm-media/SKILL.md +85 -0
- package/.agents/skills/vidfarm-media/references/tts.md +54 -0
- package/.agents/skills/vidfarm-media/scripts/audio.mjs +628 -0
- package/.agents/skills/vidfarm-media/scripts/wait-bgm.mjs +31 -0
- package/.agents/skills/website-to-video/SKILL.md +145 -0
- package/.agents/skills/website-to-video/assets/sfx/CREDITS.md +35 -0
- package/.agents/skills/website-to-video/assets/sfx/manifest.json +97 -0
- package/.agents/skills/website-to-video/references/beat-builder-guide.md +263 -0
- package/.agents/skills/website-to-video/references/capabilities.md +713 -0
- package/.agents/skills/website-to-video/references/step-0-capture.md +55 -0
- package/.agents/skills/website-to-video/references/step-1-design.md +333 -0
- package/.agents/skills/website-to-video/references/step-2-brief.md +178 -0
- package/.agents/skills/website-to-video/references/step-3-storyboard.md +572 -0
- package/.agents/skills/website-to-video/references/step-4-vo.md +225 -0
- package/.agents/skills/website-to-video/references/step-5-build.md +483 -0
- package/.agents/skills/website-to-video/references/step-6-validate.md +341 -0
- package/.agents/skills/website-to-video/scripts/w2h-verify.mjs +759 -0
- package/SKILL.director.md +37 -0
- package/SKILL.platform.md +6 -1
- package/demo/dist/app.js +295 -11
- package/dist/src/app.js +317 -133
- package/dist/src/cli.js +529 -12
- package/dist/src/composition-runtime.js +262 -3
- package/dist/src/devcli/doctor.js +192 -0
- package/dist/src/devcli/hyperframes-cli.js +118 -0
- package/dist/src/devcli/skills.js +476 -0
- package/dist/src/devcli/stills.js +249 -0
- package/dist/src/editor-chat.js +255 -0
- package/dist/src/hyperframes/composition.js +5 -5
- package/dist/src/services/composition-lint.js +199 -0
- package/dist/src/services/hyperframes.js +67 -13
- package/package.json +2 -1
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# Blueprints (the proven shapes)
|
|
2
|
+
|
|
3
|
+
> Entry point to the blueprint layer. Read this to find the shape for a frame; read `blueprints/<id>.md` to instantiate it. The Step-4 method (Reproduce / Adapt / Compose, what to write per frame) lives in `visual-design.md` — this file is the menu + the picker.
|
|
4
|
+
|
|
5
|
+
A **blueprint** is a product-agnostic, **time-coded shot template** — `Scene N (a–b s): …` with `[slots]` and one named **signature move** — reverse-engineered from 50 golden product-launch clips (plus 13 hyperframes-animation blueprints reverse-translated to the same brief format). It encodes a whole shot across its full duration — reveals paced to the spoken line, not dumped at t=0 — so instantiating one structurally keeps content arriving instead of freezing. The full template lives in `blueprints/<id>.md`. **Step 4 (visual design) instantiates one blueprint per frame** (or composes from the motion vocabulary when none fits).
|
|
6
|
+
|
|
7
|
+
## The 15 blueprints
|
|
8
|
+
|
|
9
|
+
<blueprints>
|
|
10
|
+
<blueprint id="kinetic-type-beats" roles="Hook, Problem, Product_Intro, Benefits, CTA, Brand_Outro" duration="3.4–12s">
|
|
11
|
+
Flat, centered, bold-type shot where the **motion IS the words changing** — a fixed line swaps tokens in place by hard cut, or a statement builds across full-screen beats (each its own move) onto a spring-pop payoff. The workhorse (6 roles). Reach for it whenever the words carry the shot and there's no set, surface, or click.
|
|
12
|
+
</blueprint>
|
|
13
|
+
|
|
14
|
+
<blueprint id="typewriter-reveal" roles="Hook, Brand_Outro" duration="3.6–7s">
|
|
15
|
+
A live text caret **types (and edits) a line as a human would**, then collapses it and pops a brand payoff, or holds it under a persistent mark while a sub-line types into the final CTA. Reach for it when "someone is typing this" should be the engine — a relatable typed pain → brand, or a standing logo + a typed CTA rail.
|
|
16
|
+
</blueprint>
|
|
17
|
+
|
|
18
|
+
<blueprint id="spatial-pan-stations" roles="Hook, Problem" duration="7–10s">
|
|
19
|
+
Pre-placed labeled **stations on one oversized canvas, traversed by a single virtual camera** — repeated lateral/diagonal pans centering each station and revealing a callout, landing held on the last. Reach for it for a milestone timeline panned to "us," or a connected web of pain stations ending in a tangled knot.
|
|
20
|
+
</blueprint>
|
|
21
|
+
|
|
22
|
+
<blueprint id="constellation-hub" roles="Hook, Social_Proof" duration="5–6s">
|
|
23
|
+
Iconned **nodes spring into a ring around a center**, then resolve on the core — a camera push-IN (depth-of-field collapsing onto it) or a held hub mark with satellites orbiting it. Reach for it for "it connects everything / one hub" or "sits at the center of your stack."
|
|
24
|
+
</blueprint>
|
|
25
|
+
|
|
26
|
+
<blueprint id="grid-card-assemble" roles="Key_Feature, Benefits, Social_Proof" duration="3.0–10.5s">
|
|
27
|
+
N items (tiles / cards / logos / list-lines) **self-assemble in a staggered cascade** into a grid or vertical list and hold; an optional camera zoom-OUT reveals the array inside a vaster whole. Reach for it to enumerate breadth at once — a feature grid, an accumulating benefit list, or a logo wall.
|
|
28
|
+
</blueprint>
|
|
29
|
+
|
|
30
|
+
<blueprint id="logo-assemble-lockup" roles="Product_Intro, CTA, Brand_Outro" duration="4.6–11s">
|
|
31
|
+
A brand mark / wordmark **builds itself from parts** (elements assemble/orbit, letters cascade, an outline draws on, or a camera pushes through negative space) and resolves into a centered lockup, optionally extended to a URL/CTA. Reach for it for a wordless premium brand sting, or a logo build leading into the final ask.
|
|
32
|
+
</blueprint>
|
|
33
|
+
|
|
34
|
+
<blueprint id="cursor-ui-demo" roles="Product_Intro, Key_Feature" duration="4.0–9.3s">
|
|
35
|
+
A visible custom **cursor drives a reconstructed app UI** through clicks/hovers/drags so the screen changes state shot-to-shot, while the camera chases each interaction. Reach for it for a first cursor-led look at the surface (Product_Intro) or one workflow demonstrated end-to-end onto the action button (Key_Feature).
|
|
36
|
+
</blueprint>
|
|
37
|
+
|
|
38
|
+
<blueprint id="device-surface-showcase" roles="Key_Feature" duration="7.8–9.6s">
|
|
39
|
+
A **device mockup or floating window held as hero** while its screens cycle through a real flow, presented by a camera ranging from a static hold to a continuous 3D push. Role-narrow (Key_Feature only) but mechanic-rich (static tour · floating-window push-scroll · 3D-hand demo). Reach for it to show a feature experienced *inside its real interface*.
|
|
40
|
+
</blueprint>
|
|
41
|
+
|
|
42
|
+
<blueprint id="dataviz-countup" roles="Problem, Product_Intro" duration="6–12s">
|
|
43
|
+
Numbers and charts are the hero — a **count-up ring/number, trend chart, tilted stat grid** — traversed by a camera that pushes THROUGH (or scrolls across) them to land on one hero metric. Reach for it when the data carries the argument: quantify a worsening problem, or open confidently on "look at the result."
|
|
44
|
+
</blueprint>
|
|
45
|
+
|
|
46
|
+
<blueprint id="titlecard-reveal" roles="Benefits, Social_Proof" duration="3–5s">
|
|
47
|
+
The calm **breather/landing beat** — one clean title or single brand/proof card revealed with exactly ONE restrained move (slide-up crossfade, or wipe-away-to-reveal), then a still hold. Low motion is the payload, not a deficiency. Reach for it for a two-line value title, or a busy open wiped to a clean lockup + a "loved by N+ teams" stat.
|
|
48
|
+
</blueprint>
|
|
49
|
+
|
|
50
|
+
<blueprint id="comparison-split" roles="Key_Feature" duration="4–6s">
|
|
51
|
+
Two paired items of equal weight enter from opposite wings with **mirrored 3D "book-open" tilts** and hold side-by-side, then an inner-edge pill badge spring-pops on each to punctuate. Reach for it for an A/B or "X + Y together" — two complementary capabilities weighed at once (not >2 items, not sequential steps).
|
|
52
|
+
</blueprint>
|
|
53
|
+
|
|
54
|
+
<blueprint id="overwhelm-surround" roles="Problem" duration="6–9s">
|
|
55
|
+
Overwhelm by accumulation — recognizable surfaces assemble, density-marker icons scatter in, the center one **morphs into the viewer's own avatar**, then elements close in from all sides (surrounded, not zoomed-into). Reach for it when the pain is "you're buried in tools," ending on a claustrophobic crowd.
|
|
56
|
+
</blueprint>
|
|
57
|
+
|
|
58
|
+
<blueprint id="ticker-takeover" roles="Hook, Brand_Outro" duration="5–7s">
|
|
59
|
+
A typed lead-in + an accent word cycling through options, then a hero **crashes in from off-screen and physically shoves the text aside** — a collision, not a fade — settling alone. Reach for it when a "could be many things" build should be violently replaced by "this is it."
|
|
60
|
+
</blueprint>
|
|
61
|
+
|
|
62
|
+
<blueprint id="video-text-pivot" roles="Product_Intro, Key_Feature" duration="6–8s">
|
|
63
|
+
A product video holds center and breathes, then **slides aside to hand its weight to a hero stat**, then both clear and kinetic text types into the vacated center, sealed by a gradient pill. Reach for it for "see the feature → see the impact" where the video must stay visible (slides, never cuts).
|
|
64
|
+
</blueprint>
|
|
65
|
+
|
|
66
|
+
<blueprint id="cta-morph-press" roles="CTA" duration="4–6s">
|
|
67
|
+
A resting brand mark **condenses at the same center into a brighter CTA**, then a cursor arrives and lands a human-aimed click with feedback. Reach for it for a focused "click here" sign-off that walks the eye from identity to action — no spatial set, no multi-step UI.
|
|
68
|
+
</blueprint>
|
|
69
|
+
</blueprints>
|
|
70
|
+
|
|
71
|
+
## Role → blueprint menu
|
|
72
|
+
|
|
73
|
+
A **SOFT** menu: story truth comes first. Story-design reaches in **when the product's own beat calls for that shape** — it suggests a proven shape, it never dictates which beats exist. Each role has 2–4 options; if none fits the beat, compose freely (the menu is not a checklist). Each line is the **trigger** that should make you reach for that blueprint.
|
|
74
|
+
|
|
75
|
+
Roles here map 1:1 to the storyboard frame `type` enum: **Hook**=`hook` · **Problem**=`pain_point` · **Product_Intro**=`product_intro` · **Key_Feature**=`feature_showcase` · **Benefits**=`benefit_highlight` · **Social_Proof**=`social_proof` · **CTA**=`cta` · **Brand_Outro**=`branding`.
|
|
76
|
+
|
|
77
|
+
**Hook**
|
|
78
|
+
|
|
79
|
+
- `kinetic-type-beats` — a punchy rhetorical line / "you keep doing X" callout where the in-place word-swap is the joke, OR an escalating multi-beat statement landing a spring-pop payoff.
|
|
80
|
+
- `typewriter-reveal` — type a relatable line, collapse it, pop the brand (logo or product-UI) — "here's the everyday pain, now here's us."
|
|
81
|
+
- `spatial-pan-stations` — a timeline of milestones panned to the present ("evolution leading up to us").
|
|
82
|
+
- `constellation-hub` — a constellation of tools/nodes + a camera push-in ("it connects everything").
|
|
83
|
+
- `ticker-takeover` — a cycling accent word ("could be X, or Y…") violently replaced by a hero crashing in from off-screen.
|
|
84
|
+
|
|
85
|
+
**Problem**
|
|
86
|
+
|
|
87
|
+
- `kinetic-type-beats` — 3–5 short pain statements, each landing alone on a bare canvas, no product yet.
|
|
88
|
+
- `spatial-pan-stations` — pan a connected web of pain "stations" ending in a tangled knot.
|
|
89
|
+
- `dataviz-countup` — a count-up ring / chart / stat grid pushed-through to dramatize a worsening or large problem.
|
|
90
|
+
- `overwhelm-surround` — recognizable tools that morph into the viewer, then task bubbles close in from all sides ("you're buried").
|
|
91
|
+
|
|
92
|
+
**Product_Intro**
|
|
93
|
+
|
|
94
|
+
- `kinetic-type-beats` — "Introducing…" hard-cut name-drop resolving on the brand name/logo.
|
|
95
|
+
- `logo-assemble-lockup` — a wordless premium brand sting (elements pulse/orbit and assemble around the mark).
|
|
96
|
+
- `cursor-ui-demo` — first look at the product surface; a cursor sweeps in to introduce the app.
|
|
97
|
+
- `dataviz-countup` — hard-cut into a data-viz card grid, camera scrolls to a glowing hero metric + a kinetic tagline.
|
|
98
|
+
- `video-text-pivot` — a product video that slides aside to hand its weight to a hero stat, then yields the center to kinetic impact text.
|
|
99
|
+
|
|
100
|
+
**Key_Feature**
|
|
101
|
+
|
|
102
|
+
- `grid-card-assemble` — a labeled feature tile/pill grid that self-assembles (or glass cards revealed by a camera zoom-out).
|
|
103
|
+
- `cursor-ui-demo` — a specific multi-step workflow demonstrated end-to-end, landing on the action button/result.
|
|
104
|
+
- `device-surface-showcase` — a device/window hero whose screens cycle (static tour · floating-window push-scroll · 3D-hand demo).
|
|
105
|
+
- `comparison-split` — two paired capabilities side-by-side with mirrored book-open tilts (an A/B / "X + Y together").
|
|
106
|
+
- `video-text-pivot` — a feature clip that slides aside to a frame-filling metric, then a typographic impact line.
|
|
107
|
+
|
|
108
|
+
**Benefits**
|
|
109
|
+
|
|
110
|
+
- `kinetic-type-beats` — a rapid-fire staccato montage of 8–12 short value phrases.
|
|
111
|
+
- `grid-card-assemble` — a vertical benefit list that accumulates or steps.
|
|
112
|
+
- `titlecard-reveal` — a calm two-line value title card (a breather/stillness beat).
|
|
113
|
+
|
|
114
|
+
**Social_Proof**
|
|
115
|
+
|
|
116
|
+
- `constellation-hub` — product mark as the hub, partner logos orbiting it ("works with your stack").
|
|
117
|
+
- `grid-card-assemble` — a logo wall that builds then pulls back to reveal a vast ecosystem.
|
|
118
|
+
- `titlecard-reveal` — wipe a busy open away to a clean brand lockup + a "loved by N+ teams" stat.
|
|
119
|
+
|
|
120
|
+
**CTA**
|
|
121
|
+
|
|
122
|
+
- `kinetic-type-beats` — a punchy closing line (or short value stack) snapping beat-by-beat onto the logo/URL.
|
|
123
|
+
- `logo-assemble-lockup` — a logo build → camera push-through into the final URL/CTA verb.
|
|
124
|
+
- `cta-morph-press` — a brand mark that condenses into the CTA at one center, then a cursor lands a human-aimed click.
|
|
125
|
+
|
|
126
|
+
**Brand_Outro**
|
|
127
|
+
|
|
128
|
+
- `kinetic-type-beats` — a rapid verb barrage resolving on the brand's one defining word.
|
|
129
|
+
- `typewriter-reveal` — a persistent brand mark with a typed/swapping CTA rail beneath it.
|
|
130
|
+
- `logo-assemble-lockup` — feature/UI elements clear the stage and the lockup draws itself in.
|
|
131
|
+
- `ticker-takeover` — options cycle, then the brand mark crashes in and owns the frame.
|
|
132
|
+
|
|
133
|
+
> Coverage: every role has ≥2 options; every blueprint serves ≥1 role. `kinetic-type-beats` is the workhorse (6 roles); `device-surface-showcase` is role-narrow (Key_Feature only) but mechanic-rich. Five shapes — `comparison-split`, `overwhelm-surround`, `ticker-takeover`, `video-text-pivot`, `cta-morph-press` — were added from the hyperframes-animation blueprints.
|
|
134
|
+
|
|
135
|
+
## Picking guidance
|
|
136
|
+
|
|
137
|
+
1. Find the frame's **role** in the menu above; pick the blueprint whose **shape fits this beat** (story may already have named a candidate id — confirm or override). If two fit, prefer the one whose motions are closer to your plan.
|
|
138
|
+
2. Open `blueprints/<id>.md` — read its time-coded template, `[slots]`, and named **signature move**.
|
|
139
|
+
3. Choose a posture — **Reproduce** (slots map cleanly), **Adapt** (structure fits, content/surface differs; keep the signature move), or **Compose** (nothing fits → build from the motion vocabulary). The _how_ of writing each — what to keep/change, the per-frame fields — is `visual-design.md`'s job; defer to it.
|
|
140
|
+
4. If nothing in the menu fits the beat, **compose** from the motion vocabulary in `motion-language.md` — still pace the reveals to the VO across the shot. Don't force a wrong blueprint.
|
|
141
|
+
|
|
142
|
+
## Motion coverage
|
|
143
|
+
|
|
144
|
+
Every recurring move in the golden vocabulary is backed by this skill's local `rules/` — including five added to round out the corpus: `depth-of-field-blur`, `motion-blur-streak`, `depth-scatter-assemble`, `spring-pop-entrance` (the canonical entrance pop, distinct from the click/press `press-release-spring`), and `ambient-glow-bloom`. Each blueprint's `rule mapping` cites the real rule.
|
|
145
|
+
|
|
146
|
+
One genuine out-of-scope special remains: `device-surface-showcase`'s **3D-hand gesture-input + WebGL bloom/portal** needs R3F/Three.js + WebGL — a heavier capability than the rule library. Use it sparingly, or pick a simpler `device-surface-showcase` variant.
|
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=1920, height=1080" />
|
|
6
|
+
<title>Scene 3 — Assembly Focus Reveal (hyperframes)</title>
|
|
7
|
+
|
|
8
|
+
<!--
|
|
9
|
+
HyperFrames composition.tsx.
|
|
10
|
+
|
|
11
|
+
Choreography (5 phases, 5 seconds total):
|
|
12
|
+
0.00 – 0.67s "Just use" assembles in a discrete sequence (with hold)
|
|
13
|
+
0.73 – 1.23s Pink logo pops in with back.out elastic
|
|
14
|
+
1.50 – 2.20s "Just use" slides left + fades; container recenters around brand
|
|
15
|
+
2.67 – 3.57s Camera zooms 5.5× into the logo (scale + counter-translate)
|
|
16
|
+
3.67 – 5.00s Logo breathes (sine onUpdate, multiplicative on pop scale)
|
|
17
|
+
|
|
18
|
+
Key differences :
|
|
19
|
+
- Single paused GSAP timeline registered to window.__timelines["main"]
|
|
20
|
+
- brandTextWidth measured via getBoundingClientRect after document.fonts.ready
|
|
21
|
+
- HERO_FINAL_OFFSET_X derived from real measurement, not estimate
|
|
22
|
+
- Breathing uses the onUpdate (multiplicative) form so it multiplies
|
|
23
|
+
onto the pop scale, not a fromTo + yoyo which would overwrite the pop value
|
|
24
|
+
- Three nested transform layers: zoom-scale → zoom-translate → recenter-shift
|
|
25
|
+
- Logo is loaded from a static PNG asset
|
|
26
|
+
-->
|
|
27
|
+
|
|
28
|
+
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
|
29
|
+
|
|
30
|
+
<style>
|
|
31
|
+
:root {
|
|
32
|
+
--bg: #000000;
|
|
33
|
+
--text-white: #ffffff;
|
|
34
|
+
--pink: #e91e63;
|
|
35
|
+
}
|
|
36
|
+
* {
|
|
37
|
+
margin: 0;
|
|
38
|
+
padding: 0;
|
|
39
|
+
box-sizing: border-box;
|
|
40
|
+
}
|
|
41
|
+
html,
|
|
42
|
+
body {
|
|
43
|
+
margin: 0;
|
|
44
|
+
width: 1920px;
|
|
45
|
+
height: 1080px;
|
|
46
|
+
overflow: hidden;
|
|
47
|
+
background: var(--bg);
|
|
48
|
+
font-family: "Google Sans", "Roboto", Inter, system-ui, sans-serif;
|
|
49
|
+
color: var(--text-white);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.stage {
|
|
53
|
+
position: absolute;
|
|
54
|
+
inset: 0;
|
|
55
|
+
display: flex;
|
|
56
|
+
align-items: center;
|
|
57
|
+
justify-content: center;
|
|
58
|
+
overflow: hidden;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* Three nested transform layers (outer → inner) */
|
|
62
|
+
.zoom-scale {
|
|
63
|
+
transform-origin: center center;
|
|
64
|
+
will-change: transform;
|
|
65
|
+
display: flex;
|
|
66
|
+
align-items: center;
|
|
67
|
+
justify-content: center;
|
|
68
|
+
}
|
|
69
|
+
.zoom-translate {
|
|
70
|
+
will-change: transform;
|
|
71
|
+
display: flex;
|
|
72
|
+
align-items: center;
|
|
73
|
+
justify-content: center;
|
|
74
|
+
}
|
|
75
|
+
.recenter-shift {
|
|
76
|
+
display: flex;
|
|
77
|
+
align-items: center;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/* Companion text — fixed width to prevent assembly jitter */
|
|
81
|
+
.companion {
|
|
82
|
+
width: 600px;
|
|
83
|
+
display: flex;
|
|
84
|
+
justify-content: flex-end;
|
|
85
|
+
margin-right: 30px;
|
|
86
|
+
white-space: nowrap;
|
|
87
|
+
color: var(--text-white);
|
|
88
|
+
font-size: 140px;
|
|
89
|
+
font-weight: 400;
|
|
90
|
+
line-height: 1;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/* Brand group: text + hero icon */
|
|
94
|
+
.brand-group {
|
|
95
|
+
display: flex;
|
|
96
|
+
align-items: center;
|
|
97
|
+
gap: 20px;
|
|
98
|
+
}
|
|
99
|
+
.brand-text {
|
|
100
|
+
color: var(--text-white);
|
|
101
|
+
font-size: 140px;
|
|
102
|
+
font-weight: 700;
|
|
103
|
+
white-space: nowrap;
|
|
104
|
+
line-height: 1;
|
|
105
|
+
}
|
|
106
|
+
.hero {
|
|
107
|
+
display: flex;
|
|
108
|
+
align-items: center;
|
|
109
|
+
justify-content: center;
|
|
110
|
+
width: 140px;
|
|
111
|
+
height: 140px;
|
|
112
|
+
/* initial scale(0) set by GSAP fromTo */
|
|
113
|
+
}
|
|
114
|
+
.hero .logo-mark {
|
|
115
|
+
width: 100%;
|
|
116
|
+
height: 100%;
|
|
117
|
+
display: block;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/* Hidden probe used for text measurement */
|
|
121
|
+
.measure-probe {
|
|
122
|
+
position: absolute;
|
|
123
|
+
left: -99999px;
|
|
124
|
+
top: -99999px;
|
|
125
|
+
visibility: hidden;
|
|
126
|
+
white-space: pre;
|
|
127
|
+
}
|
|
128
|
+
</style>
|
|
129
|
+
</head>
|
|
130
|
+
<body>
|
|
131
|
+
<div
|
|
132
|
+
id="root"
|
|
133
|
+
data-composition-id="main"
|
|
134
|
+
data-start="0"
|
|
135
|
+
data-duration="5"
|
|
136
|
+
data-width="1920"
|
|
137
|
+
data-height="1080"
|
|
138
|
+
>
|
|
139
|
+
<div
|
|
140
|
+
class="stage clip"
|
|
141
|
+
data-start="0"
|
|
142
|
+
data-duration="5"
|
|
143
|
+
data-track-index="1"
|
|
144
|
+
id="brand-stage"
|
|
145
|
+
>
|
|
146
|
+
<div class="zoom-scale" data-layout-allow-overflow>
|
|
147
|
+
<div class="zoom-translate">
|
|
148
|
+
<div class="recenter-shift">
|
|
149
|
+
<div class="companion">
|
|
150
|
+
<span class="companion-text">J</span>
|
|
151
|
+
</div>
|
|
152
|
+
|
|
153
|
+
<div class="brand-group" data-layout-allow-overflow>
|
|
154
|
+
<span class="brand-text">Hyperframes</span>
|
|
155
|
+
<div class="hero">
|
|
156
|
+
<!-- Inline-SVG placeholder mark — swap for your logo image -->
|
|
157
|
+
<svg
|
|
158
|
+
class="logo-mark"
|
|
159
|
+
viewBox="0 0 100 100"
|
|
160
|
+
role="img"
|
|
161
|
+
aria-label="hyperframes logo"
|
|
162
|
+
>
|
|
163
|
+
<defs>
|
|
164
|
+
<linearGradient id="hfMark" x1="0" y1="0" x2="1" y2="1">
|
|
165
|
+
<stop offset="0" stop-color="#8b7bff" />
|
|
166
|
+
<stop offset="1" stop-color="#3ddc97" />
|
|
167
|
+
</linearGradient>
|
|
168
|
+
</defs>
|
|
169
|
+
<rect x="4" y="4" width="92" height="92" rx="22" fill="url(#hfMark)" />
|
|
170
|
+
<text
|
|
171
|
+
x="50"
|
|
172
|
+
y="63"
|
|
173
|
+
text-anchor="middle"
|
|
174
|
+
font-family="Inter, system-ui, sans-serif"
|
|
175
|
+
font-size="40"
|
|
176
|
+
font-weight="800"
|
|
177
|
+
fill="#fff"
|
|
178
|
+
>
|
|
179
|
+
HF
|
|
180
|
+
</text>
|
|
181
|
+
</svg>
|
|
182
|
+
</div>
|
|
183
|
+
</div>
|
|
184
|
+
</div>
|
|
185
|
+
</div>
|
|
186
|
+
</div>
|
|
187
|
+
</div>
|
|
188
|
+
</div>
|
|
189
|
+
|
|
190
|
+
<script>
|
|
191
|
+
/* ================================================================
|
|
192
|
+
CONSTANTS — composition dimensions baked in.
|
|
193
|
+
================================================================ */
|
|
194
|
+
const W = 1920,
|
|
195
|
+
H = 1080;
|
|
196
|
+
const TOTAL_DURATION = 5.0;
|
|
197
|
+
|
|
198
|
+
const COMPANION_WIDTH = 600;
|
|
199
|
+
const COMPANION_GAP = 30; // margin-right on .companion
|
|
200
|
+
const BRAND_FONT_SIZE = 140;
|
|
201
|
+
const HERO_GAP = 20;
|
|
202
|
+
const HERO_SIZE = 140;
|
|
203
|
+
|
|
204
|
+
const TIMING = {
|
|
205
|
+
// Phase 1: companion assembly
|
|
206
|
+
textStart: 0.0,
|
|
207
|
+
textEnd: 0.67,
|
|
208
|
+
|
|
209
|
+
// Phase 2: hero pop
|
|
210
|
+
popStart: 0.73,
|
|
211
|
+
popDur: 0.5,
|
|
212
|
+
|
|
213
|
+
// Phase 3: slide-out + recenter
|
|
214
|
+
slideStart: 1.5,
|
|
215
|
+
slideDur: 0.7,
|
|
216
|
+
|
|
217
|
+
// Phase 4: zoom
|
|
218
|
+
zoomStart: 2.67,
|
|
219
|
+
zoomDur: 0.9,
|
|
220
|
+
|
|
221
|
+
// Phase 5: breathing
|
|
222
|
+
breathStart: 3.67,
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
const FINAL_RECENTER_OFFSET = -180; // pre-calculated, tuned for visual feel
|
|
226
|
+
|
|
227
|
+
/* ================================================================
|
|
228
|
+
DISCRETE TEXT SEQUENCE for the companion assembly.
|
|
229
|
+
Converted from the source frame-based sequence to seconds at 30fps.
|
|
230
|
+
================================================================ */
|
|
231
|
+
const SEQUENCE = [
|
|
232
|
+
{ t: 0.0, text: "J" },
|
|
233
|
+
{ t: 0.07, text: "Jus" },
|
|
234
|
+
{ t: 0.13, text: "Just" },
|
|
235
|
+
{ t: 0.27, text: "Just" }, // hold for pacing
|
|
236
|
+
{ t: 0.4, text: "Just u" },
|
|
237
|
+
{ t: 0.53, text: "Just us" },
|
|
238
|
+
{ t: 0.67, text: "Just use" },
|
|
239
|
+
];
|
|
240
|
+
|
|
241
|
+
/* ================================================================
|
|
242
|
+
TIMELINE — built synchronously so HyperFrames can seek it.
|
|
243
|
+
================================================================ */
|
|
244
|
+
window.__timelines = window.__timelines || {};
|
|
245
|
+
const tl = gsap.timeline({ paused: true });
|
|
246
|
+
window.__timelines["main"] = tl;
|
|
247
|
+
|
|
248
|
+
{
|
|
249
|
+
/* Measure the brand text width with a hidden DOM probe. */
|
|
250
|
+
const probe = document.createElement("span");
|
|
251
|
+
probe.className = "measure-probe";
|
|
252
|
+
probe.style.font = `700 ${BRAND_FONT_SIZE}px "Google Sans", "Roboto", Inter, system-ui, sans-serif`;
|
|
253
|
+
probe.style.whiteSpace = "pre";
|
|
254
|
+
probe.style.lineHeight = "1";
|
|
255
|
+
probe.textContent = "Hyperframes"; // MUST match the rendered .brand-text casing
|
|
256
|
+
document.body.appendChild(probe);
|
|
257
|
+
const brandTextWidth = probe.getBoundingClientRect().width;
|
|
258
|
+
probe.remove();
|
|
259
|
+
|
|
260
|
+
/* Derive the hero's post-Phase-3 offset from viewport center.
|
|
261
|
+
baseHeroOffset = (C + G + B + L) / 2 <- heroSize cancels out
|
|
262
|
+
HERO_FINAL_OFFSET_X = baseHeroOffset + FINAL_RECENTER_OFFSET */
|
|
263
|
+
const baseHeroOffset = (COMPANION_WIDTH + COMPANION_GAP + brandTextWidth + HERO_GAP) / 2;
|
|
264
|
+
const HERO_FINAL_OFFSET_X = baseHeroOffset + FINAL_RECENTER_OFFSET;
|
|
265
|
+
|
|
266
|
+
/* ============================================================
|
|
267
|
+
PHASE 1: Discrete companion assembly
|
|
268
|
+
============================================================ */
|
|
269
|
+
const textEl = document.querySelector(".companion-text");
|
|
270
|
+
|
|
271
|
+
for (const entry of SEQUENCE) {
|
|
272
|
+
tl.set(textEl, { textContent: entry.text }, entry.t);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
/* ============================================================
|
|
276
|
+
PHASE 2: Hero pops in (elastic)
|
|
277
|
+
============================================================ */
|
|
278
|
+
tl.fromTo(
|
|
279
|
+
".hero",
|
|
280
|
+
{ scale: 0 },
|
|
281
|
+
{
|
|
282
|
+
scale: 1,
|
|
283
|
+
duration: TIMING.popDur,
|
|
284
|
+
ease: "back.out(2)", // spring(stiffness:200, damping:12)
|
|
285
|
+
},
|
|
286
|
+
TIMING.popStart,
|
|
287
|
+
);
|
|
288
|
+
|
|
289
|
+
/* ============================================================
|
|
290
|
+
PHASE 3: Companion exit + container recenter
|
|
291
|
+
Two concurrent tweens at the same timeline position.
|
|
292
|
+
============================================================ */
|
|
293
|
+
tl.to(
|
|
294
|
+
".companion",
|
|
295
|
+
{
|
|
296
|
+
opacity: 0,
|
|
297
|
+
x: -80,
|
|
298
|
+
duration: TIMING.slideDur,
|
|
299
|
+
ease: "power3.out", // spring(stiffness:100, damping:20)
|
|
300
|
+
},
|
|
301
|
+
TIMING.slideStart,
|
|
302
|
+
);
|
|
303
|
+
|
|
304
|
+
tl.to(
|
|
305
|
+
".recenter-shift",
|
|
306
|
+
{
|
|
307
|
+
x: FINAL_RECENTER_OFFSET,
|
|
308
|
+
duration: TIMING.slideDur,
|
|
309
|
+
ease: "power3.out",
|
|
310
|
+
},
|
|
311
|
+
TIMING.slideStart,
|
|
312
|
+
);
|
|
313
|
+
|
|
314
|
+
/* ============================================================
|
|
315
|
+
PHASE 4: Zoom — scale (outer) + counter-translate (middle) + brand text exits.
|
|
316
|
+
============================================================ */
|
|
317
|
+
tl.to(
|
|
318
|
+
".zoom-scale",
|
|
319
|
+
{
|
|
320
|
+
scale: 5.5,
|
|
321
|
+
duration: TIMING.zoomDur,
|
|
322
|
+
ease: "power2.out", // spring(stiffness:80, damping:20, mass:1.5)
|
|
323
|
+
},
|
|
324
|
+
TIMING.zoomStart,
|
|
325
|
+
);
|
|
326
|
+
|
|
327
|
+
tl.to(
|
|
328
|
+
".zoom-translate",
|
|
329
|
+
{
|
|
330
|
+
x: -HERO_FINAL_OFFSET_X,
|
|
331
|
+
y: 0,
|
|
332
|
+
duration: TIMING.zoomDur,
|
|
333
|
+
ease: "power2.out",
|
|
334
|
+
},
|
|
335
|
+
TIMING.zoomStart,
|
|
336
|
+
);
|
|
337
|
+
|
|
338
|
+
// Brand text fades out + slides left so the logo gets all the zoom space.
|
|
339
|
+
tl.to(
|
|
340
|
+
".brand-text",
|
|
341
|
+
{
|
|
342
|
+
opacity: 0,
|
|
343
|
+
x: -600,
|
|
344
|
+
duration: TIMING.zoomDur * 0.4,
|
|
345
|
+
ease: "power2.out",
|
|
346
|
+
},
|
|
347
|
+
TIMING.zoomStart,
|
|
348
|
+
);
|
|
349
|
+
|
|
350
|
+
/* ============================================================
|
|
351
|
+
PHASE 5: Breathing — onUpdate so it MULTIPLIES on the hero's
|
|
352
|
+
final pop scale, doesn't overwrite it.
|
|
353
|
+
============================================================ */
|
|
354
|
+
const heroEl = document.querySelector(".hero");
|
|
355
|
+
const HERO_FINAL_SCALE = 1.0;
|
|
356
|
+
const SCALE_PERIOD = 1.5; // seconds per cycle
|
|
357
|
+
const SCALE_AMP = 0.04;
|
|
358
|
+
const ROTATE_AMP = 2;
|
|
359
|
+
|
|
360
|
+
const breathDur = TOTAL_DURATION - TIMING.breathStart;
|
|
361
|
+
|
|
362
|
+
tl.to(
|
|
363
|
+
{ tick: 0 },
|
|
364
|
+
{
|
|
365
|
+
tick: 1,
|
|
366
|
+
duration: breathDur,
|
|
367
|
+
ease: "none",
|
|
368
|
+
onUpdate: function () {
|
|
369
|
+
const idleTime = Math.max(0, tl.time() - TIMING.breathStart);
|
|
370
|
+
const omega = (idleTime / SCALE_PERIOD) * Math.PI * 2;
|
|
371
|
+
gsap.set(heroEl, {
|
|
372
|
+
scale: HERO_FINAL_SCALE * (1 + Math.sin(omega) * SCALE_AMP),
|
|
373
|
+
rotation: Math.sin(omega) * ROTATE_AMP,
|
|
374
|
+
});
|
|
375
|
+
},
|
|
376
|
+
},
|
|
377
|
+
TIMING.breathStart,
|
|
378
|
+
);
|
|
379
|
+
}
|
|
380
|
+
</script>
|
|
381
|
+
</body>
|
|
382
|
+
</html>
|