@mevdragon/vidfarm-devcli 0.14.0 → 0.16.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.css +1 -1
- package/demo/dist/app.js +369 -85
- package/dist/src/app.js +630 -140
- package/dist/src/cli.js +529 -12
- package/dist/src/composition-runtime.js +262 -3
- package/dist/src/config.js +13 -0
- 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 +256 -0
- package/dist/src/frontend/homepage-client.js +50 -1
- package/dist/src/frontend/homepage-shared.js +197 -0
- package/dist/src/frontend/homepage-store.js +10 -1
- package/dist/src/frontend/homepage-view.js +43 -5
- package/dist/src/homepage.js +51 -18
- 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/dist/src/services/serverless-records.js +9 -0
- package/package.json +2 -1
- package/public/assets/homepage-client-app.js +23 -23
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: alpha
|
|
3
|
+
name: Bold Poster — Frame (video / frame layer)
|
|
4
|
+
description: >
|
|
5
|
+
Video-first companion to Bold Poster's design.md. The unit is the frame (1920×1080). Atoms are
|
|
6
|
+
identical and sacred — the four-color palette (white / brown-black ink / tomato red / off-white),
|
|
7
|
+
the three-face stack (Shrikhand display tilted at poster scale, Libre Baskerville serif body,
|
|
8
|
+
Space Grotesk mono chrome), the stacked text-shadow on red display, the 3px+1.5px double-border
|
|
9
|
+
grid, red leftbar cards, red em-dash bullets, and the red progress bar. Composition + frame scale
|
|
10
|
+
rewritten. Motion out of scope.
|
|
11
|
+
unit: the frame — 1920×1080 primary; 9:16 and 1:1 documented
|
|
12
|
+
principle: atoms are sacred · composition is free · numbers come from the script
|
|
13
|
+
|
|
14
|
+
colors:
|
|
15
|
+
bg: "#FFFFFF"
|
|
16
|
+
dark: "#1C1410"
|
|
17
|
+
red: "#D8000F"
|
|
18
|
+
light: "#F5F2EF"
|
|
19
|
+
|
|
20
|
+
typography:
|
|
21
|
+
# — reading + chrome ramp —
|
|
22
|
+
body: { fontFamily: "Libre Baskerville", cqw: 0.85, weight: 400, lineHeight: 1.75, color: "dark" }
|
|
23
|
+
body-cell:{ fontFamily: "Libre Baskerville", cqw: 0.7, weight: 400, lineHeight: 1.55 }
|
|
24
|
+
label: { fontFamily: "Space Grotesk", px: 10, weight: 600, tracking: "2px", upper: true, color: "red" }
|
|
25
|
+
bullet-body:{ fontFamily: "Space Grotesk", cqw: 0.62, weight: 400, lineHeight: 1.45 }
|
|
26
|
+
# — display / hero ramp (Shrikhand 400, tilted) —
|
|
27
|
+
card-title:{ fontFamily: "Shrikhand", cqw: 1.9, weight: 400, lineHeight: 1.1, color: "dark" }
|
|
28
|
+
cell-number:{ fontFamily: "Shrikhand", cqw: 2.7, weight: 400, lineHeight: 1.0, color: "red" }
|
|
29
|
+
section-header:{ fontFamily: "Shrikhand", cqw: 3.3, weight: 400, lineHeight: 1.0, color: "dark" }
|
|
30
|
+
red-quote:{ fontFamily: "Shrikhand", cqw: 4.7, weight: 400, lineHeight: 1.15, color: "bg", shadow: "stacked" }
|
|
31
|
+
hero-title-bottom:{ fontFamily: "Shrikhand", cqw: 10.4, weight: 400, lineHeight: 0.9, color: "dark", rotate: "2deg" }
|
|
32
|
+
hero-title:{ fontFamily: "Shrikhand", cqw: 11.5, weight: 400, lineHeight: 0.88, color: "dark" }
|
|
33
|
+
hero-title-red:{ fontFamily: "Shrikhand", cqw: 13.5, weight: 400, lineHeight: 0.85, color: "red", rotate: "-4deg" }
|
|
34
|
+
close-big:{ fontFamily: "Shrikhand", cqw: 13.5, weight: 400, lineHeight: 0.88, color: "red", rotate: "-5deg" }
|
|
35
|
+
stat-big:{ fontFamily: "Shrikhand", cqw: 22.0, weight: 400, lineHeight: 0.82, color: "red", rotate: "-6deg" }
|
|
36
|
+
|
|
37
|
+
spacing:
|
|
38
|
+
pad-slide: "3cqw 3.6cqw"
|
|
39
|
+
gap-grid: "1.5cqw 2cqw"
|
|
40
|
+
|
|
41
|
+
components:
|
|
42
|
+
progress-bar:
|
|
43
|
+
backgroundColor: "{colors.red}"
|
|
44
|
+
size: "0.5cqw tall, bottom edge, width grows with index"
|
|
45
|
+
description: "The most prominent chrome."
|
|
46
|
+
hero-title-stack:
|
|
47
|
+
typography: "{typography.hero-title} + {typography.hero-title-red} + {typography.hero-title-bottom}"
|
|
48
|
+
transform: "≥4 tilt (−4°/+2°), ≥1 line in {colors.red}"
|
|
49
|
+
description: "A 3-line Shrikhand composition — the signature opener."
|
|
50
|
+
stat-big:
|
|
51
|
+
typography: "{typography.stat-big}"
|
|
52
|
+
color: "{colors.red} (or {colors.bg} on red with stacked shadow)"
|
|
53
|
+
transform: "rotate(-6deg)"
|
|
54
|
+
description: "Hero numeral at poster scale."
|
|
55
|
+
fin-grid:
|
|
56
|
+
border: "0.3cqw solid {colors.dark} outer"
|
|
57
|
+
rule: "0.15cqw solid {colors.dark} inner (touching at intersections)"
|
|
58
|
+
rounded: "0"
|
|
59
|
+
typography: "{typography.cell-number} ({colors.red}) + {typography.label} + {typography.body-cell}"
|
|
60
|
+
description: "The double-border tabular signature."
|
|
61
|
+
red-leftbar-card:
|
|
62
|
+
borderLeft: "4px solid {colors.red}"
|
|
63
|
+
padding: "0 0 0 ~1cqw"
|
|
64
|
+
rounded: "0"
|
|
65
|
+
shadow: "none"
|
|
66
|
+
typography: "{typography.card-title} + {typography.body} + red em-dash bullets"
|
|
67
|
+
description: "Editorial card cantilevered off a red left rule — no outline."
|
|
68
|
+
red-panel:
|
|
69
|
+
backgroundColor: "{colors.red}"
|
|
70
|
+
textColor: "{colors.bg}"
|
|
71
|
+
description: "Full-bleed statement surface; display carries the stacked text-shadow."
|
|
72
|
+
dark-panel:
|
|
73
|
+
backgroundColor: "{colors.dark}"
|
|
74
|
+
textColor: "{colors.bg}"
|
|
75
|
+
description: "Full-bleed dark statement surface; red accents."
|
|
76
|
+
stacked-text-shadow:
|
|
77
|
+
shadow: "2px 2px 0 rgba(28,20,16,.25), 4px 4px 0 rgba(28,20,16,.2), 6px 6px 0 rgba(28,20,16,.15)"
|
|
78
|
+
appliesTo: "red display text on red panels only"
|
|
79
|
+
description: "The ONLY shadow in the system — text-shadow, not box-shadow."
|
|
80
|
+
bullet:
|
|
81
|
+
marker: "red em-dash (—) or round (•) glyph at absolute-left"
|
|
82
|
+
color: "{colors.red}"
|
|
83
|
+
description: "No default disc bullets; capped at three."
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
# Bold Poster — Frame (video / frame layer)
|
|
87
|
+
|
|
88
|
+
## Overview
|
|
89
|
+
|
|
90
|
+
Bold Poster at frame scale is a **populist editorial poster** — vintage Italian sports-magazine
|
|
91
|
+
display, classical serif body, one saturated tomato red, grids ruled in ink. Every frame should
|
|
92
|
+
feel _printed_: heavy display type at poster scale, locked to one red accent, on a white/off-white
|
|
93
|
+
sheet (or a full red/dark statement panel), with decoration kept to a strict minimum.
|
|
94
|
+
|
|
95
|
+
The voice is a three-face stack: **Shrikhand** (heavy slab-script, weight 400 only, routinely
|
|
96
|
+
tilted −6°..+2°) carries every hero title, section header, stat, and card title; **Libre
|
|
97
|
+
Baskerville** (literary serif) carries every body paragraph — it's what makes the system feel
|
|
98
|
+
printed; **Space Grotesk** (uppercase, 2–3px tracked) is chrome only — labels, eyebrows, counters,
|
|
99
|
+
bullet bodies. The plane is flat; the _only_ shadow is the stacked text-shadow on red display.
|
|
100
|
+
|
|
101
|
+
**Key characteristics at frame scale:**
|
|
102
|
+
|
|
103
|
+
- **Four colors only** — white / brown-black ink / tomato red / off-white. Red is the lone accent.
|
|
104
|
+
- **Shrikhand display, tilted** (−6° stat, −5° close, −4° hero-red, +2° hero-bottom) — the signature movement.
|
|
105
|
+
- **Libre Baskerville serif body** (line 1.75); **Space Grotesk** chrome (uppercase tracked).
|
|
106
|
+
- **Double-border grids** (3px outer + 1.5px inner ink); **red leftbar cards**; **red em-dash bullets** (max 3).
|
|
107
|
+
- **Stacked text-shadow** on red display — the only shadow; flat plane otherwise; square corners.
|
|
108
|
+
- **Red progress bar** at the bottom edge of every frame.
|
|
109
|
+
|
|
110
|
+
## The Frame
|
|
111
|
+
|
|
112
|
+
### Frame Craft Bar
|
|
113
|
+
|
|
114
|
+
Three eyeball tests gate every frame before any structural check:
|
|
115
|
+
|
|
116
|
+
- **Squint** — **one display moment dominates** at 3–6× everything else (the hero stack, `stat-big`, or `close-big`); nothing competes.
|
|
117
|
+
- **Silence** — statement frames reserve **~50–60% negative space**; the **financial grid is the one dense exception**.
|
|
118
|
+
- **Restraint** — **four colors only**, red the lone accent; one display moment per frame; the stacked text-shadow on red is the only shadow; bullets capped at three.
|
|
119
|
+
- **Reference** — aim at a **vintage Italian sports-magazine cover / mid-century European annual report**; failure looks like a **rounded, soft-shadowed multi-accent slide**.
|
|
120
|
+
|
|
121
|
+
- **Primary:** 1920×1080 (16:9). Display authored in **`cqw`** (`px ÷ 1920 × 100 = cqw`).
|
|
122
|
+
- **Vertical:** 1080×1920 (9:16). **Square:** 1080×1080 (1:1).
|
|
123
|
+
- **Safe area:** `pad-slide` ~3cqw — deliberately tight so the poster type crowds the frame.
|
|
124
|
+
|
|
125
|
+
**The container law (load-bearing).** Every frame ground sets `container-type: size`; ALL
|
|
126
|
+
frame-relative units are `cqw`/`cqh` against it — never `vw`. Borders stay px; rotation transforms hold.
|
|
127
|
+
|
|
128
|
+
## Colors
|
|
129
|
+
|
|
130
|
+
Tokens identical to the source. `{colors.bg}` white is the default ground; `{colors.dark}` is body,
|
|
131
|
+
borders, headers; `{colors.red}` is the only accent — every numeral, section rule, eyebrow,
|
|
132
|
+
leftbar, bullet, progress bar, and the full statement-panel ground. `{colors.light}` off-white
|
|
133
|
+
stripes alternating panels. **No fifth color** (no green/blue/yellow); categorical difference comes
|
|
134
|
+
from position, label, and tilt. Red is never body text, never a tint, never an untexted fill.
|
|
135
|
+
|
|
136
|
+
## Typography
|
|
137
|
+
|
|
138
|
+
Two ramps. The **reading/chrome ramp** (Baskerville body 0.85cqw, Space Grotesk labels in px)
|
|
139
|
+
carries copy + chrome; the **display ramp** (Shrikhand `section-header` 3.3cqw → `stat-big` 22cqw)
|
|
140
|
+
carries every statement and numeral.
|
|
141
|
+
|
|
142
|
+
- **Legibility floor:** any load-bearing line ≥ **1.4cqw**; mono labels are chrome only.
|
|
143
|
+
- **Fit-to-measure:** size the headline to its length. Cap the block at **≤ 78cqw**; ≤2 words → `stat-big`/`hero-title-red`; 3–4 → `hero-title`; 5+ → `section-header`. The hero is a stacked 3-line composition.
|
|
144
|
+
- **Shrikhand is weight 400, tilted on statement/hero elements, red on numerals**; **Baskerville body at line ≥1.5**; **Space Grotesk chrome uppercase, 2–3px**. Inline `<strong>` switches face to Space Grotesk 600. No italic display, no untilted red hero.
|
|
145
|
+
|
|
146
|
+
## Depth & Surface
|
|
147
|
+
|
|
148
|
+
Flat plane. Depth from:
|
|
149
|
+
|
|
150
|
+
- **Heavy borders** — 3px+1.5px double-border grids, 2px global-card outline, 4px red leftbar rules.
|
|
151
|
+
- **Surface inversion** — full-bleed red or dark statement panels.
|
|
152
|
+
- **Tilt** — rotated Shrikhand breaks the baseline for perceived dimension.
|
|
153
|
+
- **The single shadow** — stacked text-shadow on red display only (text-shadow, three steps).
|
|
154
|
+
|
|
155
|
+
**Ceiling:** no box-shadow, no rounded surface (square corners; only the hint pill is 4px), no gradient.
|
|
156
|
+
|
|
157
|
+
## Shapes
|
|
158
|
+
|
|
159
|
+
- **0 radius everywhere** except the hint pill (4px). Cards, cells, panels, callouts — sharp rectangles.
|
|
160
|
+
|
|
161
|
+
## Components
|
|
162
|
+
|
|
163
|
+
- **hero-title-stack** — the 3-line tilted opener. **stat-big** — the poster numeral.
|
|
164
|
+
- **fin-grid** — the double-border tabular signature. **red-leftbar-card** — the cantilevered editorial card.
|
|
165
|
+
- **red-panel / dark-panel** — statement surfaces. **stacked-text-shadow** — the one shadow.
|
|
166
|
+
- **bullet** — red em-dash (max 3). **progress-bar** — the red bottom strip.
|
|
167
|
+
|
|
168
|
+
## Frame Treatments
|
|
169
|
+
|
|
170
|
+
> Recipe: ground · register · composes · focal · chrome · accent · silence · Fixed/Free · density.
|
|
171
|
+
> One display moment per frame; statement frames reserve massive negative space.
|
|
172
|
+
|
|
173
|
+
### 1 · Hero Stack (identity · move: 3-line tilted stack · left)
|
|
174
|
+
|
|
175
|
+
**Ground** white. **Composes** hero-title-stack, label, body tagline, progress-bar. **Focal** a
|
|
176
|
+
3-line Shrikhand stack (e.g. ink / red-tilted / paper) — one red line, one+ tilted. **Chrome** mono
|
|
177
|
+
eyebrow + Baskerville tagline; bottom progress bar + counter. **Accent** the red line. **Silence**
|
|
178
|
+
right half open. **Fixed** Shrikhand 400, ≥1 tilt + ≥1 red, square. **Free** the words, line sizes.
|
|
179
|
+
**Density** low.
|
|
180
|
+
|
|
181
|
+
### 2 · Hero Stat (statement · move: poster numeral · red panel · centered)
|
|
182
|
+
|
|
183
|
+
**Ground** full `{colors.red}`. **Composes** stat-big, label, body sub. **Focal** a `stat-big`
|
|
184
|
+
numeral rotated −6° in white with the stacked shadow, centered, with a mono label above + Baskerville
|
|
185
|
+
sub below. **Accent** the ink stacked-shadow on white. **Silence** ~60%. **Fixed** white-on-red +
|
|
186
|
+
stacked shadow, −6° tilt. **Free** the figure (from script), label. **Density** low.
|
|
187
|
+
|
|
188
|
+
### 3 · Financial Grid (data · move: double-border matrix · the dense frame)
|
|
189
|
+
|
|
190
|
+
**Ground** white, `pad-slide`. **Composes** label, section-header, fin-grid. **Focal** a 3px-outer/
|
|
191
|
+
1.5px-inner ink grid of cells (red Shrikhand numeral + mono label + Baskerville body). **Chrome** mono
|
|
192
|
+
eyebrow; progress bar. **Accent** the red numerals. **Silence** tight — the density exception.
|
|
193
|
+
**Fixed** double-border, red numerals, serif body. **Free** figures (from script), labels. **Density** dense-exception.
|
|
194
|
+
|
|
195
|
+
### 4 · Pull Quote (quote · move: tilted/stacked display · red panel · left)
|
|
196
|
+
|
|
197
|
+
**Ground** full `{colors.red}`. **Composes** red-quote, Baskerville cite. **Focal** a 2-line Shrikhand
|
|
198
|
+
quote in white with the stacked shadow; a Baskerville cite beneath. **Accent** the stacked shadow.
|
|
199
|
+
**Silence** ~50%. **Fixed** white-on-red + stacked shadow. **Free** quote, cite. **Density** low.
|
|
200
|
+
|
|
201
|
+
### 5 · Editorial Cards (content · move: red leftbar cards · left)
|
|
202
|
+
|
|
203
|
+
**Ground** white (or alternating off-white stripes). **Composes** label, section-header, 2–3×
|
|
204
|
+
red-leftbar-card. **Focal** cards cantilevered off 4px red rules — Shrikhand title + Baskerville body
|
|
205
|
+
|
|
206
|
+
- red em-dash bullets (max 3). **Accent** the red left rules + bullets. **Silence** moderate. **Fixed**
|
|
207
|
+
4px red leftbar, em-dash bullets, no outline. **Free** card content. **Density** standard.
|
|
208
|
+
|
|
209
|
+
### 6 · Closing Statement (closer · move: tilted close-big · centered/left)
|
|
210
|
+
|
|
211
|
+
**Ground** white or `{colors.dark}`. **Composes** close-big, label, body sub, progress-bar. **Focal**
|
|
212
|
+
a Shrikhand `close-big` (rotated −5°, red) sign-off; mono eyebrow + Baskerville contact line. **Accent**
|
|
213
|
+
the red tilted title. **Silence** ~60%. **Fixed** −5° tilt, red close-big. **Free** sign-off, contact.
|
|
214
|
+
**Density** low.
|
|
215
|
+
|
|
216
|
+
## Composition Rules
|
|
217
|
+
|
|
218
|
+
### Do
|
|
219
|
+
|
|
220
|
+
- Stack hero titles in 3 Shrikhand lines — at least one tilted, at least one red.
|
|
221
|
+
- Make every numeral **red Shrikhand**; tilt statement display **−5° to −6°**.
|
|
222
|
+
- Set eyebrows in **Space Grotesk 600 uppercase, 2–3px**, red; body in **Baskerville, line 1.75**.
|
|
223
|
+
- Build data grids with the **3px outer + 1.5px inner double border**; use red leftbar cards elsewhere.
|
|
224
|
+
- Use **red em-dash bullets, capped at three**; apply the stacked text-shadow on red display.
|
|
225
|
+
- One display moment per frame; reserve negative space on statement frames.
|
|
226
|
+
|
|
227
|
+
### Don't
|
|
228
|
+
|
|
229
|
+
- No second accent color; no rounded corners (square only, save the hint pill).
|
|
230
|
+
- No drop shadow — the stacked text-shadow on red is the only one.
|
|
231
|
+
- No font substitutes; no Shrikhand body, no Baskerville labels, no Space Grotesk headlines.
|
|
232
|
+
- No default disc bullets; no untilted red statement display.
|
|
233
|
+
- Don't crowd a statement frame; don't blow a long line edge-to-edge (step down).
|
|
234
|
+
|
|
235
|
+
## Aspect-Ratio Behavior
|
|
236
|
+
|
|
237
|
+
| Treatment | 16:9 | 9:16 | 1:1 |
|
|
238
|
+
| --------------- | ------------------------- | ------------------------ | -------------------- |
|
|
239
|
+
| Hero Stack | stack left, tagline below | stack centered, taller | stack, tagline below |
|
|
240
|
+
| Hero Stat | numeral centered | numeral centered, taller | centered |
|
|
241
|
+
| Financial Grid | 3 cells across | 2 across / stacked | 2×2 |
|
|
242
|
+
| Pull Quote | quote left | quote stacked | centered |
|
|
243
|
+
| Editorial Cards | 2–3 across | stacked | stacked |
|
|
244
|
+
| Closing | close-big centered | close-big stacked | centered |
|
|
245
|
+
|
|
246
|
+
`pad-slide` stays tight on the short edge; re-step display so the line stays ≤78cqw above the floor.
|
|
247
|
+
Tilts hold; the progress bar spans the bottom on every ratio.
|
|
248
|
+
|
|
249
|
+
## Approved Entities
|
|
250
|
+
|
|
251
|
+
No real customers, logos, or vendors are defined in the source — render any such mark as a
|
|
252
|
+
placeholder. The system supplies type, one red, and ink rules, not brands.
|
|
253
|
+
|
|
254
|
+
## Numerals & Claims (hard rule)
|
|
255
|
+
|
|
256
|
+
Never invent figures, financials, percentages, or dates at frame scale. Render slots as `— figure —`,
|
|
257
|
+
`{metric}`, `+NN%`. Fin-grid cells and stat-big especially carry placeholders until the script
|
|
258
|
+
supplies them. Catalogue numbers / progress are decorative.
|
|
259
|
+
|
|
260
|
+
## Pre-Render Self-Audit
|
|
261
|
+
|
|
262
|
+
- **Squint** — one display moment dominates; nothing competes.
|
|
263
|
+
- **Silence** — statement frames reserve ~50–60% negative space; only the fin-grid runs dense.
|
|
264
|
+
- **Color** — four colors only; red is the lone accent; no red body text.
|
|
265
|
+
- **Type** — Shrikhand 400 tilted on statements, red numerals, fit-to-measure; Baskerville body line 1.75; mono chrome uppercase 2–3px; ≥1.4cqw floor.
|
|
266
|
+
- **Depth** — flat; the stacked text-shadow on red display is the only shadow; square corners.
|
|
267
|
+
- **Bullets** — red em-dash, capped at three.
|
|
268
|
+
- **Fabrication** — every numeral traces to the script, else placeholder.
|
|
269
|
+
|
|
270
|
+
## Known Gaps
|
|
271
|
+
|
|
272
|
+
- **Motion intentionally out of scope.** frame.md specifies composition only; the source's 550ms slide transitions are deck mechanics.
|
|
273
|
+
- **Shrikhand + Libre Baskerville + Space Grotesk via Google Fonts.** CJK: Noto Serif SC 900/400 + Noto Sans SC; Shrikhand's slab-script has no Hanzi equal — keep tilts + red + double-borders to carry the identity.
|
|
274
|
+
- **9:16 / 1:1 are guidance**; verify the one big line ≤78cqw per ratio and that tilts don't clip.
|
|
275
|
+
- Grids, leftbar cards, and the stacked shadow are CSS-only; no external imagery is required.
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Bold Poster — caption skin (preset-local source).
|
|
3
|
+
|
|
4
|
+
This is the preset's own lower-third karaoke caption look. product-launch-video's
|
|
5
|
+
Step 2 copies it into the project as caption-skin.html; captions.mjs then fills the
|
|
6
|
+
three reserved holes, wraps the fragment in a <template>, and writes
|
|
7
|
+
compositions/captions.html:
|
|
8
|
+
· the empty GROUPS array → the engine's scene-aware word groups
|
|
9
|
+
· the 0 duration + 0 width/height → real total + canvas size
|
|
10
|
+
· the empty data-brand-tokens style → :root tokens derived from the project's frame.md
|
|
11
|
+
|
|
12
|
+
Token contract — reference ONLY this fixed vocab (captions.mjs injects it from
|
|
13
|
+
frame.md, so the Step-2 brand overlay flows through; each var has a bold-poster
|
|
14
|
+
literal fallback for standalone preview):
|
|
15
|
+
--cap-ink · --cap-canvas · --cap-accent · --cap-accent-2 · --font-display ·
|
|
16
|
+
--font-body · --cap-band-top · --cap-band-height
|
|
17
|
+
Hooks (do not rename): .caption-group / .caption-word + states .is-active / .is-spoken,
|
|
18
|
+
root data-composition-id="captions", timeline at window.__timelines["captions"].
|
|
19
|
+
State changes use gsap.set({className}) (applied on the engine's frame-by-frame seek);
|
|
20
|
+
never tl.call() callbacks (seek does not fire them → wrong state on render).
|
|
21
|
+
|
|
22
|
+
Visual: a fresh-paper card with bold poster framing — a heavy 1.5px brown-black ink
|
|
23
|
+
rule plus a 4px tomato-red leftbar (the brand's cantilevered-card signature), SQUARE
|
|
24
|
+
corners, NO drop shadow (the system's only shadow is the stacked text-shadow on red
|
|
25
|
+
display). Serif body face, ink glyphs. Upcoming words sit in faint ink; the current
|
|
26
|
+
word slams into a tomato-red panel (the brand's signature surface inversion, a hard
|
|
27
|
+
square block on paper-white reading, no blur) with the stacked text-shadow on it;
|
|
28
|
+
spoken words settle to solid ink, panel cleared.
|
|
29
|
+
-->
|
|
30
|
+
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
|
31
|
+
|
|
32
|
+
<!-- captions.mjs injects the project's :root tokens here -->
|
|
33
|
+
<style data-brand-tokens></style>
|
|
34
|
+
|
|
35
|
+
<style>
|
|
36
|
+
#captions-root {
|
|
37
|
+
position: absolute;
|
|
38
|
+
inset: 0;
|
|
39
|
+
pointer-events: none;
|
|
40
|
+
}
|
|
41
|
+
.caption-layer {
|
|
42
|
+
position: absolute;
|
|
43
|
+
inset: 0;
|
|
44
|
+
z-index: 20;
|
|
45
|
+
pointer-events: none;
|
|
46
|
+
}
|
|
47
|
+
/* the keep-out band, from captionBand(H) — frame content stays above it */
|
|
48
|
+
.caption-stage {
|
|
49
|
+
position: absolute;
|
|
50
|
+
left: 0;
|
|
51
|
+
right: 0;
|
|
52
|
+
top: var(--cap-band-top, 900px);
|
|
53
|
+
height: var(--cap-band-height, 180px);
|
|
54
|
+
display: flex;
|
|
55
|
+
align-items: center;
|
|
56
|
+
justify-content: center;
|
|
57
|
+
}
|
|
58
|
+
.caption-group {
|
|
59
|
+
/* every group is absolutely stacked over the SAME band — exactly one shown at a
|
|
60
|
+
time via opacity. Must be absolute: in-flow groups would lay out side-by-side. */
|
|
61
|
+
position: absolute;
|
|
62
|
+
inset: 0;
|
|
63
|
+
display: flex;
|
|
64
|
+
align-items: center;
|
|
65
|
+
justify-content: center;
|
|
66
|
+
opacity: 0;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* THE paper card — heavy 1.5px brown-black ink rule + a 4px tomato-red leftbar
|
|
70
|
+
(bold poster's cantilevered red-leftbar-card signature), square corners, NO
|
|
71
|
+
drop shadow (the only shadow in the system is the stacked text-shadow on red) */
|
|
72
|
+
.caption-pill {
|
|
73
|
+
max-width: 78%;
|
|
74
|
+
padding: 20px 44px 24px;
|
|
75
|
+
background: var(--cap-canvas, #ffffff);
|
|
76
|
+
border: 1.5px solid var(--cap-ink, #1c1410);
|
|
77
|
+
border-left: 4px solid var(--cap-accent, #d8000f);
|
|
78
|
+
border-radius: 0;
|
|
79
|
+
}
|
|
80
|
+
.caption-line {
|
|
81
|
+
display: flex;
|
|
82
|
+
flex-wrap: wrap;
|
|
83
|
+
justify-content: center;
|
|
84
|
+
gap: 0.1em 0.34em;
|
|
85
|
+
font-family: var(--font-display, "Shrikhand"), Georgia, serif;
|
|
86
|
+
font-weight: 400;
|
|
87
|
+
font-size: clamp(40px, 4.4vw, 58px);
|
|
88
|
+
line-height: 1.16;
|
|
89
|
+
letter-spacing: -0.01em;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/* upcoming — faint brown-black ink, no panel */
|
|
93
|
+
.caption-word {
|
|
94
|
+
display: inline-block;
|
|
95
|
+
padding: 0 0.06em;
|
|
96
|
+
color: color-mix(in srgb, var(--cap-ink, #1c1410) 42%, var(--cap-canvas, #ffffff));
|
|
97
|
+
}
|
|
98
|
+
/* current word — THE tomato-red panel (box-shadow spread = a hard square block
|
|
99
|
+
w/o layout shift; no blur), paper-white reading on top carrying the stacked
|
|
100
|
+
text-shadow — bold poster's surface-inversion + only-shadow signatures */
|
|
101
|
+
.caption-word.is-active {
|
|
102
|
+
color: var(--cap-canvas, #ffffff);
|
|
103
|
+
background: var(--cap-accent, #d8000f);
|
|
104
|
+
box-shadow: 0 0 0 0.06em var(--cap-accent, #d8000f);
|
|
105
|
+
text-shadow:
|
|
106
|
+
0.03em 0.03em 0 rgba(28, 20, 16, 0.25),
|
|
107
|
+
0.06em 0.06em 0 rgba(28, 20, 16, 0.2),
|
|
108
|
+
0.09em 0.09em 0 rgba(28, 20, 16, 0.15);
|
|
109
|
+
}
|
|
110
|
+
/* already spoken — solid brown-black ink, panel cleared */
|
|
111
|
+
.caption-word.is-spoken {
|
|
112
|
+
color: var(--cap-ink, #1c1410);
|
|
113
|
+
background: transparent;
|
|
114
|
+
box-shadow: none;
|
|
115
|
+
text-shadow: none;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/* optional per-word accents (dormant until a word-classer tags them) */
|
|
119
|
+
/* brand / key term — Shrikhand display, bold poster's display face inflection */
|
|
120
|
+
.caption-word.cap-brand {
|
|
121
|
+
font-family: var(--font-display, "Shrikhand"), Georgia, serif;
|
|
122
|
+
}
|
|
123
|
+
/* numerals / data — the mono chrome voice, slightly recessed */
|
|
124
|
+
.caption-word.cap-num {
|
|
125
|
+
font-family: var(--font-body, "Libre Baskerville"), ui-monospace, monospace;
|
|
126
|
+
color: color-mix(in srgb, var(--cap-ink, #1c1410) 72%, var(--cap-canvas, #ffffff));
|
|
127
|
+
}
|
|
128
|
+
/* emphasis — a tomato-red em-dash-weight underline (the lone accent) */
|
|
129
|
+
.caption-word.cap-cta {
|
|
130
|
+
text-decoration: underline;
|
|
131
|
+
text-decoration-thickness: 2px;
|
|
132
|
+
text-decoration-color: var(--cap-accent-2, #f5f2ef);
|
|
133
|
+
text-underline-offset: 0.1em;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
@media (max-aspect-ratio: 9/16) {
|
|
137
|
+
.caption-pill {
|
|
138
|
+
max-width: 92%;
|
|
139
|
+
}
|
|
140
|
+
.caption-line {
|
|
141
|
+
font-size: clamp(34px, 5.4vw, 48px);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
</style>
|
|
145
|
+
|
|
146
|
+
<div
|
|
147
|
+
id="captions-root"
|
|
148
|
+
data-composition-id="captions"
|
|
149
|
+
data-timeline-locked
|
|
150
|
+
data-start="0"
|
|
151
|
+
data-duration="0"
|
|
152
|
+
data-fps="30"
|
|
153
|
+
data-width="0"
|
|
154
|
+
data-height="0"
|
|
155
|
+
>
|
|
156
|
+
<div class="caption-layer" aria-hidden="true">
|
|
157
|
+
<div id="caption-stage" class="caption-stage"></div>
|
|
158
|
+
</div>
|
|
159
|
+
</div>
|
|
160
|
+
|
|
161
|
+
<script>
|
|
162
|
+
// captions.mjs injects the engine's scene-aware groups + real duration here.
|
|
163
|
+
var GROUPS = [];
|
|
164
|
+
var DURATION = 0;
|
|
165
|
+
|
|
166
|
+
(function () {
|
|
167
|
+
var stage = document.getElementById("caption-stage");
|
|
168
|
+
|
|
169
|
+
// build DOM: one .caption-group per group, .caption-word per word
|
|
170
|
+
GROUPS.forEach(function (group, g) {
|
|
171
|
+
var groupEl = document.createElement("div");
|
|
172
|
+
groupEl.className = "caption-group";
|
|
173
|
+
groupEl.id = "caption-group-" + g;
|
|
174
|
+
var pill = document.createElement("div");
|
|
175
|
+
pill.className = "caption-pill";
|
|
176
|
+
var line = document.createElement("div");
|
|
177
|
+
line.className = "caption-line";
|
|
178
|
+
(group.words || []).forEach(function (w, i) {
|
|
179
|
+
var span = document.createElement("span");
|
|
180
|
+
span.className = "caption-word";
|
|
181
|
+
span.id = "caption-word-" + g + "-" + i;
|
|
182
|
+
span.textContent = String(w.text);
|
|
183
|
+
line.appendChild(span);
|
|
184
|
+
});
|
|
185
|
+
pill.appendChild(line);
|
|
186
|
+
groupEl.appendChild(pill);
|
|
187
|
+
stage.appendChild(groupEl);
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
window.__timelines = window.__timelines || {};
|
|
191
|
+
var tl = gsap.timeline({ paused: true });
|
|
192
|
+
|
|
193
|
+
GROUPS.forEach(function (group, g) {
|
|
194
|
+
var groupEl = document.getElementById("caption-group-" + g);
|
|
195
|
+
var words = group.words || [];
|
|
196
|
+
var next = GROUPS[g + 1];
|
|
197
|
+
var isLast = g === GROUPS.length - 1;
|
|
198
|
+
var start = Math.max(0, Number(group.start));
|
|
199
|
+
var end = isLast ? DURATION : Math.min(Number(next.start), Number(group.end) + 0.3);
|
|
200
|
+
if (end <= start) end = start + 0.01;
|
|
201
|
+
|
|
202
|
+
// group on/off — exactly one group visible at a time
|
|
203
|
+
tl.set(groupEl, { opacity: 1 }, start);
|
|
204
|
+
tl.set(groupEl, { opacity: 0 }, end);
|
|
205
|
+
|
|
206
|
+
// 3-state karaoke via className SETS — seek-safe (gsap.set applies on the
|
|
207
|
+
// engine's frame-by-frame seek; .call callbacks would NOT fire).
|
|
208
|
+
words.forEach(function (w, i) {
|
|
209
|
+
var el = document.getElementById("caption-word-" + g + "-" + i);
|
|
210
|
+
var at = Math.max(start, Number(w.start));
|
|
211
|
+
tl.set(el, { className: "caption-word" }, start); // upcoming (also resets on reverse-seek)
|
|
212
|
+
tl.set(el, { className: "caption-word is-active" }, at); // current
|
|
213
|
+
tl.fromTo(el, { scale: 0.9 }, { scale: 1, duration: 0.16, ease: "back.out(2.2)" }, at);
|
|
214
|
+
if (i + 1 < words.length) {
|
|
215
|
+
var nextAt = Math.max(start, Number(words[i + 1].start));
|
|
216
|
+
tl.set(el, { className: "caption-word is-spoken" }, nextAt); // demote when next activates
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
if (words.length) {
|
|
220
|
+
var lastEl = document.getElementById("caption-word-" + g + "-" + (words.length - 1));
|
|
221
|
+
var lastSpoken = Math.min(end, Number(words[words.length - 1].end) + 0.1);
|
|
222
|
+
tl.set(lastEl, { className: "caption-word is-spoken" }, lastSpoken);
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
|
|
226
|
+
// full-span anchor so the sub-comp timeline spans the whole video
|
|
227
|
+
tl.to({}, { duration: DURATION }, 0);
|
|
228
|
+
window.__timelines["captions"] = tl;
|
|
229
|
+
})();
|
|
230
|
+
</script>
|