takomi 2.1.45 → 2.5.4
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/.pi/README.md +5 -5
- package/.pi/agents/architect.md +2 -2
- package/.pi/agents/designer.md +2 -2
- package/.pi/agents/worker.md +32 -0
- package/.pi/extensions/oauth-router/README.md +3 -3
- package/.pi/extensions/oauth-router/config.ts +34 -34
- package/.pi/extensions/oauth-router/report-ui.ts +205 -205
- package/.pi/extensions/oauth-router/scripts/vibe-verify.py +5 -5
- package/.pi/extensions/takomi-context-manager/diagnostics.ts +560 -560
- package/.pi/extensions/takomi-context-manager/model-policy-gate.ts +15 -103
- package/.pi/extensions/takomi-context-manager/policy-tools.ts +93 -93
- package/.pi/extensions/takomi-context-manager/skill-categories.d.ts +11 -11
- package/.pi/extensions/takomi-context-manager/skill-tools.ts +208 -208
- package/.pi/extensions/takomi-context-manager/tool-renderers.ts +112 -112
- package/.pi/extensions/takomi-runtime/command-text.ts +5 -4
- package/.pi/extensions/takomi-runtime/commands.ts +17 -17
- package/.pi/extensions/takomi-runtime/gate-provenance.ts +24 -24
- package/.pi/extensions/takomi-runtime/index.ts +278 -86
- package/.pi/extensions/takomi-runtime/model-routing-defaults.ts +168 -232
- package/.pi/extensions/takomi-runtime/profile.ts +9 -8
- package/.pi/extensions/takomi-runtime/routing-policy.ts +84 -65
- package/.pi/extensions/takomi-runtime/shared.ts +7 -30
- package/.pi/extensions/takomi-runtime/tool-renderers.ts +234 -234
- package/.pi/extensions/takomi-runtime/workflow-catalog.ts +54 -54
- package/.pi/extensions/takomi-subagents/agents.ts +5 -0
- package/.pi/extensions/takomi-subagents/async-lifecycle.ts +401 -401
- package/.pi/extensions/takomi-subagents/detached-results.ts +940 -940
- package/.pi/extensions/takomi-subagents/index.ts +4 -0
- package/.pi/extensions/takomi-subagents/native-render.ts +253 -250
- package/.pi/extensions/takomi-subagents/pi-subagents-engine.ts +7 -1
- package/.pi/extensions/takomi-subagents/result-heartbeat.ts +55 -55
- package/.pi/extensions/takomi-subagents/subagent-ux.ts +162 -162
- package/.pi/extensions/takomi-subagents/tool-runner.ts +65 -1
- package/.pi/settings.json +39 -36
- package/.pi/takomi/model-routing.md +6 -0
- package/.pi/takomi-profile.json +8 -4
- package/README.md +1 -1
- package/assets/.agent/skills/embedded-captions/CATALOG.md +93 -93
- package/assets/.agent/skills/embedded-captions/SKILL.md +286 -286
- package/assets/.agent/skills/embedded-captions/assets/brand/CDPR-fankit-terms.txt +35 -35
- package/assets/.agent/skills/embedded-captions/assets/brand/cyberpunk-widths.json +115 -115
- package/assets/.agent/skills/embedded-captions/assets/fonts/char-widths.json +2211 -2211
- package/assets/.agent/skills/embedded-captions/assets/strokefonts/HersheyScript1.svg +241 -241
- package/assets/.agent/skills/embedded-captions/assets/strokefonts/HersheyScriptMed.svg +241 -241
- package/assets/.agent/skills/embedded-captions/dna/README.md +148 -148
- package/assets/.agent/skills/embedded-captions/dna/chrome.json +68 -68
- package/assets/.agent/skills/embedded-captions/dna/cream.json +69 -69
- package/assets/.agent/skills/embedded-captions/dna/documentary.json +62 -62
- package/assets/.agent/skills/embedded-captions/dna/editorial.json +70 -70
- package/assets/.agent/skills/embedded-captions/dna/glitch.json +82 -82
- package/assets/.agent/skills/embedded-captions/dna/ink.json +65 -65
- package/assets/.agent/skills/embedded-captions/dna/keynote.json +62 -62
- package/assets/.agent/skills/embedded-captions/dna/loud.json +75 -75
- package/assets/.agent/skills/embedded-captions/dna/neon.json +58 -58
- package/assets/.agent/skills/embedded-captions/dna/velocity.json +89 -89
- package/assets/.agent/skills/embedded-captions/modes/cinematic/README.md +48 -48
- package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/champion/spec.md +98 -98
- package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/champion/template.html +188 -188
- package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/memory-wall/spec.md +134 -134
- package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/memory-wall/template.html +179 -179
- package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/portrait-header/spec.md +81 -81
- package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/portrait-header/template.html +170 -170
- package/assets/.agent/skills/embedded-captions/modes/cinematic/cinematic-cream/spec.md +16 -16
- package/assets/.agent/skills/embedded-captions/modes/cinematic/cinematic-cream/template.html +226 -226
- package/assets/.agent/skills/embedded-captions/modes/cinematic/engine.html +355 -355
- package/assets/.agent/skills/embedded-captions/modes/standard/_anatomy.md +233 -233
- package/assets/.agent/skills/embedded-captions/modes/standard/_motion.md +192 -192
- package/assets/.agent/skills/embedded-captions/modes/standard/fonts/build-fonts-css.cjs +97 -97
- package/assets/.agent/skills/embedded-captions/references/aesthetic-principles.md +168 -168
- package/assets/.agent/skills/embedded-captions/references/anti-patterns.md +188 -188
- package/assets/.agent/skills/embedded-captions/references/bespoke-vs-presets.md +178 -178
- package/assets/.agent/skills/embedded-captions/references/caption-grouping.md +130 -130
- package/assets/.agent/skills/embedded-captions/references/composition-craft.md +522 -522
- package/assets/.agent/skills/embedded-captions/references/direction-catalog.md +138 -138
- package/assets/.agent/skills/embedded-captions/references/example-renders/champion.html +371 -371
- package/assets/.agent/skills/embedded-captions/references/example-renders/memory-wall.html +334 -334
- package/assets/.agent/skills/embedded-captions/references/failure-modes.md +145 -145
- package/assets/.agent/skills/embedded-captions/references/layout-heuristics.md +238 -238
- package/assets/.agent/skills/embedded-captions/references/motion-vocabulary.md +148 -148
- package/assets/.agent/skills/embedded-captions/references/rail.md +68 -68
- package/assets/.agent/skills/embedded-captions/references/reference-bar.md +47 -47
- package/assets/.agent/skills/embedded-captions/references/scene-types.md +94 -94
- package/assets/.agent/skills/embedded-captions/references/test-set.md +66 -66
- package/assets/.agent/skills/embedded-captions/references/typographic-moves.md +266 -266
- package/assets/.agent/skills/embedded-captions/references/typography-presets.md +63 -63
- package/assets/.agent/skills/embedded-captions/scripts/audio-envelope.cjs +95 -95
- package/assets/.agent/skills/embedded-captions/scripts/check-occlusion.cjs +250 -250
- package/assets/.agent/skills/embedded-captions/scripts/check-overflow.cjs +194 -194
- package/assets/.agent/skills/embedded-captions/scripts/check-rail-climax.cjs +233 -233
- package/assets/.agent/skills/embedded-captions/scripts/check-timing.cjs +173 -173
- package/assets/.agent/skills/embedded-captions/scripts/fill-timings.cjs +124 -124
- package/assets/.agent/skills/embedded-captions/scripts/fit-fonts.cjs +158 -158
- package/assets/.agent/skills/embedded-captions/scripts/gen-stroke-path.py +46 -46
- package/assets/.agent/skills/embedded-captions/scripts/inject-fonts.cjs +169 -169
- package/assets/.agent/skills/embedded-captions/scripts/lib-dna.cjs +201 -201
- package/assets/.agent/skills/embedded-captions/scripts/make-cinematic.cjs +1205 -1205
- package/assets/.agent/skills/embedded-captions/scripts/make-composition.cjs +404 -404
- package/assets/.agent/skills/embedded-captions/scripts/make-theme.cjs +8781 -8781
- package/assets/.agent/skills/embedded-captions/scripts/matte.cjs +279 -279
- package/assets/.agent/skills/embedded-captions/scripts/measure-layout.cjs +293 -293
- package/assets/.agent/skills/embedded-captions/scripts/prepare.sh +39 -39
- package/assets/.agent/skills/embedded-captions/scripts/preview-frames.cjs +268 -268
- package/assets/.agent/skills/embedded-captions/scripts/render-and-composite.sh +469 -469
- package/assets/.agent/skills/embedded-captions/scripts/render-theme.sh +34 -34
- package/assets/.agent/skills/embedded-captions/scripts/safe-zones.cjs +813 -813
- package/assets/.agent/skills/embedded-captions/scripts/transcribe.cjs +332 -332
- package/assets/.agent/skills/embedded-captions/themes/PORTING.md +49 -49
- package/assets/.agent/skills/embedded-captions/themes/README.md +244 -244
- package/assets/.agent/skills/embedded-captions/themes/anchor.json +27 -27
- package/assets/.agent/skills/embedded-captions/themes/arcade.json +51 -51
- package/assets/.agent/skills/embedded-captions/themes/aurora.json +41 -41
- package/assets/.agent/skills/embedded-captions/themes/biolume.json +35 -35
- package/assets/.agent/skills/embedded-captions/themes/brush.json +74 -74
- package/assets/.agent/skills/embedded-captions/themes/chalkboard.json +52 -52
- package/assets/.agent/skills/embedded-captions/themes/dossier.json +56 -56
- package/assets/.agent/skills/embedded-captions/themes/graffiti.json +62 -62
- package/assets/.agent/skills/embedded-captions/themes/hologram.json +41 -41
- package/assets/.agent/skills/embedded-captions/themes/inkwater.json +43 -43
- package/assets/.agent/skills/embedded-captions/themes/laser.json +46 -46
- package/assets/.agent/skills/embedded-captions/themes/lastpage.json +33 -33
- package/assets/.agent/skills/embedded-captions/themes/neonsign.json +53 -53
- package/assets/.agent/skills/embedded-captions/themes/nightcity.json +56 -56
- package/assets/.agent/skills/embedded-captions/themes/ordnance.json +54 -54
- package/assets/.agent/skills/embedded-captions/themes/papercut.json +37 -37
- package/assets/.agent/skills/embedded-captions/themes/popup.json +46 -46
- package/assets/.agent/skills/embedded-captions/themes/ransom.json +62 -62
- package/assets/.agent/skills/embedded-captions/themes/scoreboard.json +54 -54
- package/assets/.agent/skills/embedded-captions/themes/spectrum.json +46 -46
- package/assets/.agent/skills/embedded-captions/themes/stardust.json +29 -29
- package/assets/.agent/skills/embedded-captions/themes/stomp.json +43 -43
- package/assets/.agent/skills/embedded-captions/themes/terminal.json +49 -49
- package/assets/.agent/skills/embedded-captions/themes/thunder.json +44 -44
- package/assets/.agent/skills/embedded-captions/themes/transit.json +44 -44
- package/assets/.agent/skills/embedded-captions/themes/vhs.json +47 -47
- package/assets/.agent/skills/faceless-explainer/SKILL.md +209 -209
- package/assets/.agent/skills/faceless-explainer/references/cut-catalog.md +215 -215
- package/assets/.agent/skills/faceless-explainer/references/motion-language.md +156 -156
- package/assets/.agent/skills/faceless-explainer/references/story-design.md +248 -248
- package/assets/.agent/skills/faceless-explainer/references/visual-design.md +146 -146
- package/assets/.agent/skills/faceless-explainer/scripts/assemble-index.mjs +570 -570
- package/assets/.agent/skills/faceless-explainer/scripts/audio.mjs +253 -253
- package/assets/.agent/skills/faceless-explainer/scripts/build-frame.mjs +536 -536
- package/assets/.agent/skills/faceless-explainer/scripts/captions.mjs +508 -508
- package/assets/.agent/skills/faceless-explainer/scripts/lib/assets.mjs +55 -55
- package/assets/.agent/skills/faceless-explainer/scripts/lib/dimensions.mjs +45 -45
- package/assets/.agent/skills/faceless-explainer/scripts/lib/storyboard.mjs +249 -249
- package/assets/.agent/skills/faceless-explainer/scripts/lib/tokens.mjs +204 -204
- package/assets/.agent/skills/faceless-explainer/scripts/lib/transition-registry.mjs +38 -38
- package/assets/.agent/skills/faceless-explainer/scripts/lib/transitions.json +71 -71
- package/assets/.agent/skills/faceless-explainer/scripts/transitions.mjs +320 -320
- package/assets/.agent/skills/faceless-explainer/sub-agents/frame-worker.md +75 -75
- package/assets/.agent/skills/figma/SKILL.md +121 -121
- package/assets/.agent/skills/general-video/SKILL.md +143 -143
- package/assets/.agent/skills/hyperframes/SKILL.md +164 -164
- package/assets/.agent/skills/hyperframes-animation/SKILL.md +84 -84
- package/assets/.agent/skills/hyperframes-animation/adapters/animate-text.md +64 -64
- package/assets/.agent/skills/hyperframes-animation/adapters/animejs.md +114 -114
- package/assets/.agent/skills/hyperframes-animation/adapters/css-animations.md +143 -143
- package/assets/.agent/skills/hyperframes-animation/adapters/gsap-easing-and-stagger.md +118 -118
- package/assets/.agent/skills/hyperframes-animation/adapters/gsap-timeline-and-labels.md +96 -96
- package/assets/.agent/skills/hyperframes-animation/adapters/gsap-transforms-and-perf.md +96 -96
- package/assets/.agent/skills/hyperframes-animation/adapters/gsap.md +105 -105
- package/assets/.agent/skills/hyperframes-animation/adapters/html-in-canvas-patterns.md +507 -507
- package/assets/.agent/skills/hyperframes-animation/adapters/lottie.md +117 -117
- package/assets/.agent/skills/hyperframes-animation/adapters/three.md +131 -131
- package/assets/.agent/skills/hyperframes-animation/adapters/typegpu.md +178 -178
- package/assets/.agent/skills/hyperframes-animation/adapters/waapi.md +101 -101
- package/assets/.agent/skills/hyperframes-animation/blueprints/comparison-split.md +27 -27
- package/assets/.agent/skills/hyperframes-animation/blueprints/constellation-hub.md +44 -44
- package/assets/.agent/skills/hyperframes-animation/blueprints/cta-morph-press.md +28 -28
- package/assets/.agent/skills/hyperframes-animation/blueprints/cursor-ui-demo.md +57 -57
- package/assets/.agent/skills/hyperframes-animation/blueprints/dataviz-countup.md +46 -46
- package/assets/.agent/skills/hyperframes-animation/blueprints/device-surface-showcase.md +53 -53
- package/assets/.agent/skills/hyperframes-animation/blueprints/grid-card-assemble.md +66 -66
- package/assets/.agent/skills/hyperframes-animation/blueprints/kinetic-type-beats.md +78 -78
- package/assets/.agent/skills/hyperframes-animation/blueprints/logo-assemble-lockup.md +69 -69
- package/assets/.agent/skills/hyperframes-animation/blueprints/overwhelm-surround.md +28 -28
- package/assets/.agent/skills/hyperframes-animation/blueprints/spatial-pan-stations.md +37 -37
- package/assets/.agent/skills/hyperframes-animation/blueprints/ticker-takeover.md +29 -29
- package/assets/.agent/skills/hyperframes-animation/blueprints/titlecard-reveal.md +42 -42
- package/assets/.agent/skills/hyperframes-animation/blueprints/typewriter-reveal.md +51 -51
- package/assets/.agent/skills/hyperframes-animation/blueprints/video-text-pivot.md +30 -30
- package/assets/.agent/skills/hyperframes-animation/blueprints-index.md +146 -146
- package/assets/.agent/skills/hyperframes-animation/examples/brand-reveal-assemble-zoom.html +382 -382
- package/assets/.agent/skills/hyperframes-animation/examples/comparison-split-cards.html +649 -649
- package/assets/.agent/skills/hyperframes-animation/examples/concept-demo-decode-pan.html +520 -520
- package/assets/.agent/skills/hyperframes-animation/examples/cta-morph-press.html +468 -468
- package/assets/.agent/skills/hyperframes-animation/examples/cta-orbit-collapse.html +1298 -1298
- package/assets/.agent/skills/hyperframes-animation/examples/demo-page-scroll-spotlight.html +759 -759
- package/assets/.agent/skills/hyperframes-animation/examples/hook-counter-burst.html +729 -729
- package/assets/.agent/skills/hyperframes-animation/examples/messaging-multi-phrase.html +352 -352
- package/assets/.agent/skills/hyperframes-animation/examples/metric-video-text-pivot.html +779 -779
- package/assets/.agent/skills/hyperframes-animation/examples/problem-mockup-overwhelm.html +1374 -1374
- package/assets/.agent/skills/hyperframes-animation/examples/proof-logo-chain.html +861 -861
- package/assets/.agent/skills/hyperframes-animation/examples/takeover-ticker-displace.html +347 -347
- package/assets/.agent/skills/hyperframes-animation/examples/workflow-approve-press.html +606 -606
- package/assets/.agent/skills/hyperframes-animation/rules/3d-page-scroll.md +227 -227
- package/assets/.agent/skills/hyperframes-animation/rules/3d-text-depth-layers.md +297 -297
- package/assets/.agent/skills/hyperframes-animation/rules/ai-tracking-box.md +382 -382
- package/assets/.agent/skills/hyperframes-animation/rules/ambient-glow-bloom.md +305 -305
- package/assets/.agent/skills/hyperframes-animation/rules/asr-keyword-glow.md +286 -286
- package/assets/.agent/skills/hyperframes-animation/rules/avatar-cloud-network.md +371 -371
- package/assets/.agent/skills/hyperframes-animation/rules/camera-cursor-tracking.md +246 -246
- package/assets/.agent/skills/hyperframes-animation/rules/card-morph-anchor.md +267 -267
- package/assets/.agent/skills/hyperframes-animation/rules/center-outward-expansion.md +227 -227
- package/assets/.agent/skills/hyperframes-animation/rules/context-sensitive-cursor.md +257 -257
- package/assets/.agent/skills/hyperframes-animation/rules/coordinate-target-zoom.md +332 -332
- package/assets/.agent/skills/hyperframes-animation/rules/counting-dynamic-scale.md +283 -283
- package/assets/.agent/skills/hyperframes-animation/rules/css-marker-patterns.md +373 -373
- package/assets/.agent/skills/hyperframes-animation/rules/cursor-click-ripple.md +262 -262
- package/assets/.agent/skills/hyperframes-animation/rules/depth-of-field-blur.md +313 -313
- package/assets/.agent/skills/hyperframes-animation/rules/depth-scatter-assemble.md +303 -303
- package/assets/.agent/skills/hyperframes-animation/rules/discrete-text-sequence.md +273 -273
- package/assets/.agent/skills/hyperframes-animation/rules/dynamic-content-sequencing.md +307 -307
- package/assets/.agent/skills/hyperframes-animation/rules/gsap-effects.md +299 -299
- package/assets/.agent/skills/hyperframes-animation/rules/hacker-flip-3d.md +223 -223
- package/assets/.agent/skills/hyperframes-animation/rules/kinetic-beat-slam.md +183 -183
- package/assets/.agent/skills/hyperframes-animation/rules/motion-blur-streak.md +328 -328
- package/assets/.agent/skills/hyperframes-animation/rules/multi-phase-camera.md +273 -273
- package/assets/.agent/skills/hyperframes-animation/rules/orbit-3d-entry.md +301 -301
- package/assets/.agent/skills/hyperframes-animation/rules/physics-press-reaction.md +350 -350
- package/assets/.agent/skills/hyperframes-animation/rules/press-release-spring.md +296 -296
- package/assets/.agent/skills/hyperframes-animation/rules/reactive-displacement.md +277 -277
- package/assets/.agent/skills/hyperframes-animation/rules/scale-swap-transition.md +298 -298
- package/assets/.agent/skills/hyperframes-animation/rules/sine-wave-loop.md +278 -278
- package/assets/.agent/skills/hyperframes-animation/rules/split-tilt-cards.md +277 -277
- package/assets/.agent/skills/hyperframes-animation/rules/spring-pop-entrance.md +273 -273
- package/assets/.agent/skills/hyperframes-animation/rules/stat-bars-and-fills.md +156 -156
- package/assets/.agent/skills/hyperframes-animation/rules/svg-icon-enrichment.md +329 -329
- package/assets/.agent/skills/hyperframes-animation/rules/svg-path-draw.md +274 -274
- package/assets/.agent/skills/hyperframes-animation/rules/vertical-spring-ticker.md +239 -239
- package/assets/.agent/skills/hyperframes-animation/rules/viewport-change.md +349 -349
- package/assets/.agent/skills/hyperframes-animation/rules-index.md +86 -86
- package/assets/.agent/skills/hyperframes-animation/scripts/animation-map.mjs +606 -606
- package/assets/.agent/skills/hyperframes-animation/scripts/package-loader.mjs +288 -288
- package/assets/.agent/skills/hyperframes-animation/scripts/package-loader.test.mjs +62 -62
- package/assets/.agent/skills/hyperframes-animation/techniques.md +507 -507
- package/assets/.agent/skills/hyperframes-animation/transitions/TRANSITION-REGISTRY.md +167 -167
- package/assets/.agent/skills/hyperframes-animation/transitions/catalog.md +127 -127
- package/assets/.agent/skills/hyperframes-animation/transitions/css-3d.md +12 -12
- package/assets/.agent/skills/hyperframes-animation/transitions/css-blur.md +51 -51
- package/assets/.agent/skills/hyperframes-animation/transitions/css-cover.md +43 -43
- package/assets/.agent/skills/hyperframes-animation/transitions/css-destruction.md +95 -95
- package/assets/.agent/skills/hyperframes-animation/transitions/css-dissolve.md +66 -66
- package/assets/.agent/skills/hyperframes-animation/transitions/css-distortion.md +45 -45
- package/assets/.agent/skills/hyperframes-animation/transitions/css-grid.md +10 -10
- package/assets/.agent/skills/hyperframes-animation/transitions/css-light.md +49 -49
- package/assets/.agent/skills/hyperframes-animation/transitions/css-mechanical.md +30 -30
- package/assets/.agent/skills/hyperframes-animation/transitions/css-other.md +25 -25
- package/assets/.agent/skills/hyperframes-animation/transitions/css-push.md +41 -41
- package/assets/.agent/skills/hyperframes-animation/transitions/css-radial.md +37 -37
- package/assets/.agent/skills/hyperframes-animation/transitions/css-scale.md +24 -24
- package/assets/.agent/skills/hyperframes-animation/transitions/overview.md +153 -153
- package/assets/.agent/skills/hyperframes-cli/SKILL.md +113 -113
- package/assets/.agent/skills/hyperframes-cli/references/doctor-browser.md +45 -45
- package/assets/.agent/skills/hyperframes-cli/references/init-and-scaffold.md +51 -51
- package/assets/.agent/skills/hyperframes-cli/references/lambda.md +132 -132
- package/assets/.agent/skills/hyperframes-cli/references/lint-validate-inspect.md +121 -121
- package/assets/.agent/skills/hyperframes-cli/references/preview-render.md +164 -164
- package/assets/.agent/skills/hyperframes-cli/references/upgrade-info-misc.md +75 -75
- package/assets/.agent/skills/hyperframes-core/SKILL.md +78 -78
- package/assets/.agent/skills/hyperframes-core/references/composition-patterns.md +263 -263
- package/assets/.agent/skills/hyperframes-core/references/data-attributes.md +70 -70
- package/assets/.agent/skills/hyperframes-core/references/determinism-rules.md +68 -68
- package/assets/.agent/skills/hyperframes-core/references/full-screen-motion.md +62 -62
- package/assets/.agent/skills/hyperframes-core/references/minimal-composition.md +66 -66
- package/assets/.agent/skills/hyperframes-core/references/script-format.md +49 -49
- package/assets/.agent/skills/hyperframes-core/references/storyboard-format.md +95 -95
- package/assets/.agent/skills/hyperframes-core/references/sub-compositions.md +237 -237
- package/assets/.agent/skills/hyperframes-core/references/subagent-dispatch.md +41 -41
- package/assets/.agent/skills/hyperframes-core/references/tailwind.md +125 -125
- package/assets/.agent/skills/hyperframes-core/references/tracks-and-clips.md +76 -76
- package/assets/.agent/skills/hyperframes-core/references/variables-and-media.md +90 -90
- package/assets/.agent/skills/hyperframes-creative/SKILL.md +70 -70
- package/assets/.agent/skills/hyperframes-creative/frame-presets/biennale-yellow/FRAME.md +289 -289
- package/assets/.agent/skills/hyperframes-creative/frame-presets/biennale-yellow/caption-skin.html +221 -221
- package/assets/.agent/skills/hyperframes-creative/frame-presets/biennale-yellow/frame-showcase.html +1214 -1214
- package/assets/.agent/skills/hyperframes-creative/frame-presets/blockframe/FRAME.md +275 -275
- package/assets/.agent/skills/hyperframes-creative/frame-presets/blockframe/caption-skin.html +224 -224
- package/assets/.agent/skills/hyperframes-creative/frame-presets/blockframe/frame-showcase.html +1347 -1347
- package/assets/.agent/skills/hyperframes-creative/frame-presets/blue-professional/FRAME.md +307 -307
- package/assets/.agent/skills/hyperframes-creative/frame-presets/blue-professional/caption-skin.html +223 -223
- package/assets/.agent/skills/hyperframes-creative/frame-presets/blue-professional/frame-showcase.html +1372 -1372
- package/assets/.agent/skills/hyperframes-creative/frame-presets/bold-poster/FRAME.md +275 -275
- package/assets/.agent/skills/hyperframes-creative/frame-presets/bold-poster/caption-skin.html +230 -230
- package/assets/.agent/skills/hyperframes-creative/frame-presets/bold-poster/frame-showcase.html +1140 -1140
- package/assets/.agent/skills/hyperframes-creative/frame-presets/broadside/FRAME.md +284 -284
- package/assets/.agent/skills/hyperframes-creative/frame-presets/broadside/caption-skin.html +225 -225
- package/assets/.agent/skills/hyperframes-creative/frame-presets/broadside/frame-showcase.html +1166 -1166
- package/assets/.agent/skills/hyperframes-creative/frame-presets/capsule/FRAME.md +284 -284
- package/assets/.agent/skills/hyperframes-creative/frame-presets/capsule/caption-skin.html +224 -224
- package/assets/.agent/skills/hyperframes-creative/frame-presets/capsule/frame-showcase.html +1465 -1465
- package/assets/.agent/skills/hyperframes-creative/frame-presets/cartesian/FRAME.md +278 -278
- package/assets/.agent/skills/hyperframes-creative/frame-presets/cartesian/caption-skin.html +222 -222
- package/assets/.agent/skills/hyperframes-creative/frame-presets/cartesian/frame-showcase.html +1263 -1263
- package/assets/.agent/skills/hyperframes-creative/frame-presets/claude/FRAME.md +277 -277
- package/assets/.agent/skills/hyperframes-creative/frame-presets/claude/caption-skin.html +224 -224
- package/assets/.agent/skills/hyperframes-creative/frame-presets/claude/frame-showcase.html +1439 -1439
- package/assets/.agent/skills/hyperframes-creative/frame-presets/cobalt-grid/FRAME.md +265 -265
- package/assets/.agent/skills/hyperframes-creative/frame-presets/cobalt-grid/caption-skin.html +238 -238
- package/assets/.agent/skills/hyperframes-creative/frame-presets/cobalt-grid/frame-showcase.html +1468 -1468
- package/assets/.agent/skills/hyperframes-creative/frame-presets/coral/FRAME.md +314 -314
- package/assets/.agent/skills/hyperframes-creative/frame-presets/coral/caption-skin.html +226 -226
- package/assets/.agent/skills/hyperframes-creative/frame-presets/coral/frame-showcase.html +1268 -1268
- package/assets/.agent/skills/hyperframes-creative/frame-presets/creative-mode/FRAME.md +333 -333
- package/assets/.agent/skills/hyperframes-creative/frame-presets/creative-mode/caption-skin.html +227 -227
- package/assets/.agent/skills/hyperframes-creative/frame-presets/creative-mode/frame-showcase.html +1330 -1330
- package/assets/.agent/skills/hyperframes-creative/frame-presets/daisy-days/FRAME.md +274 -274
- package/assets/.agent/skills/hyperframes-creative/frame-presets/daisy-days/caption-skin.html +230 -230
- package/assets/.agent/skills/hyperframes-creative/frame-presets/daisy-days/frame-showcase.html +1444 -1444
- package/assets/.agent/skills/hyperframes-creative/frame-presets/editorial-forest/FRAME.md +265 -265
- package/assets/.agent/skills/hyperframes-creative/frame-presets/editorial-forest/caption-skin.html +223 -223
- package/assets/.agent/skills/hyperframes-creative/frame-presets/editorial-forest/frame-showcase.html +1273 -1273
- package/assets/.agent/skills/hyperframes-creative/palettes/bold-energetic.md +14 -14
- package/assets/.agent/skills/hyperframes-creative/palettes/clean-corporate.md +14 -14
- package/assets/.agent/skills/hyperframes-creative/palettes/dark-premium.md +14 -14
- package/assets/.agent/skills/hyperframes-creative/palettes/jewel-rich.md +14 -14
- package/assets/.agent/skills/hyperframes-creative/palettes/monochrome.md +14 -14
- package/assets/.agent/skills/hyperframes-creative/palettes/nature-earth.md +14 -14
- package/assets/.agent/skills/hyperframes-creative/palettes/neon-electric.md +14 -14
- package/assets/.agent/skills/hyperframes-creative/palettes/pastel-soft.md +14 -14
- package/assets/.agent/skills/hyperframes-creative/palettes/warm-editorial.md +14 -14
- package/assets/.agent/skills/hyperframes-creative/references/audio-reactive.md +76 -76
- package/assets/.agent/skills/hyperframes-creative/references/beat-direction.md +164 -164
- package/assets/.agent/skills/hyperframes-creative/references/composition-patterns.md +199 -199
- package/assets/.agent/skills/hyperframes-creative/references/data-in-motion.md +19 -19
- package/assets/.agent/skills/hyperframes-creative/references/design-adherence.md +19 -19
- package/assets/.agent/skills/hyperframes-creative/references/design-picker.md +123 -123
- package/assets/.agent/skills/hyperframes-creative/references/design-spec.md +55 -55
- package/assets/.agent/skills/hyperframes-creative/references/house-style.md +73 -73
- package/assets/.agent/skills/hyperframes-creative/references/motion-principles.md +150 -150
- package/assets/.agent/skills/hyperframes-creative/references/narration.md +92 -92
- package/assets/.agent/skills/hyperframes-creative/references/prompt-expansion.md +68 -68
- package/assets/.agent/skills/hyperframes-creative/references/typography.md +218 -218
- package/assets/.agent/skills/hyperframes-creative/references/video-composition.md +63 -63
- package/assets/.agent/skills/hyperframes-creative/references/visual-styles.md +457 -457
- package/assets/.agent/skills/hyperframes-creative/scripts/contrast-report.mjs +353 -353
- package/assets/.agent/skills/hyperframes-creative/scripts/extract-audio-data.py +188 -188
- package/assets/.agent/skills/hyperframes-creative/scripts/package-loader.mjs +288 -288
- package/assets/.agent/skills/hyperframes-creative/scripts/package-loader.test.mjs +62 -62
- package/assets/.agent/skills/hyperframes-creative/templates/design-picker.html +1432 -1432
- package/assets/.agent/skills/hyperframes-keyframes/SKILL.md +237 -237
- package/assets/.agent/skills/hyperframes-keyframes/agents/openai.yaml +4 -4
- package/assets/.agent/skills/hyperframes-keyframes/references/keyframe-patterns.md +106 -106
- package/assets/.agent/skills/hyperframes-media/SKILL.md +97 -97
- package/assets/.agent/skills/hyperframes-media/assets/sfx/CREDITS.md +35 -35
- package/assets/.agent/skills/hyperframes-media/assets/sfx/manifest.json +97 -97
- package/assets/.agent/skills/hyperframes-media/references/bgm.md +72 -72
- package/assets/.agent/skills/hyperframes-media/references/captions/authoring.md +159 -159
- package/assets/.agent/skills/hyperframes-media/references/captions/motion.md +87 -87
- package/assets/.agent/skills/hyperframes-media/references/captions/transcript-handling.md +97 -97
- package/assets/.agent/skills/hyperframes-media/references/remove-background.md +143 -143
- package/assets/.agent/skills/hyperframes-media/references/requirements.md +29 -29
- package/assets/.agent/skills/hyperframes-media/references/sfx.md +42 -42
- package/assets/.agent/skills/hyperframes-media/references/transcribe.md +52 -52
- package/assets/.agent/skills/hyperframes-media/references/tts-to-captions.md +24 -24
- package/assets/.agent/skills/hyperframes-media/references/tts.md +135 -135
- package/assets/.agent/skills/hyperframes-media/scripts/audio.mjs +293 -293
- package/assets/.agent/skills/hyperframes-media/scripts/heygen-tts.mjs +121 -121
- package/assets/.agent/skills/hyperframes-media/scripts/lib/bgm.mjs +235 -235
- package/assets/.agent/skills/hyperframes-media/scripts/lib/concurrency.mjs +14 -14
- package/assets/.agent/skills/hyperframes-media/scripts/lib/concurrency.test.mjs +41 -41
- package/assets/.agent/skills/hyperframes-media/scripts/lib/heygen.mjs +131 -131
- package/assets/.agent/skills/hyperframes-media/scripts/lib/sfx.mjs +128 -128
- package/assets/.agent/skills/hyperframes-media/scripts/lib/tts.mjs +298 -298
- package/assets/.agent/skills/hyperframes-media/scripts/lib/tts.spawn.test.mjs +97 -97
- package/assets/.agent/skills/hyperframes-media/scripts/lib/tts.test.mjs +66 -66
- package/assets/.agent/skills/hyperframes-media/scripts/lyria-recipe.py +128 -128
- package/assets/.agent/skills/hyperframes-media/scripts/wait-bgm.mjs +167 -167
- package/assets/.agent/skills/hyperframes-registry/SKILL.md +101 -101
- package/assets/.agent/skills/hyperframes-registry/examples/add-block.md +51 -51
- package/assets/.agent/skills/hyperframes-registry/examples/add-component.md +73 -73
- package/assets/.agent/skills/hyperframes-registry/references/contributing.md +166 -166
- package/assets/.agent/skills/hyperframes-registry/references/demo-html-pattern.md +54 -54
- package/assets/.agent/skills/hyperframes-registry/references/discovery.md +215 -215
- package/assets/.agent/skills/hyperframes-registry/references/install-locations.md +45 -45
- package/assets/.agent/skills/hyperframes-registry/references/templates.md +417 -417
- package/assets/.agent/skills/hyperframes-registry/references/wiring-blocks.md +61 -61
- package/assets/.agent/skills/hyperframes-registry/references/wiring-components.md +39 -39
- package/assets/.agent/skills/media-use/SKILL.md +124 -124
- package/assets/.agent/skills/media-use/scripts/eval.mjs +369 -369
- package/assets/.agent/skills/media-use/scripts/lib/adopt.mjs +112 -112
- package/assets/.agent/skills/media-use/scripts/lib/bgm-provider.mjs +20 -20
- package/assets/.agent/skills/media-use/scripts/lib/brand-provider.mjs +59 -59
- package/assets/.agent/skills/media-use/scripts/lib/cache.mjs +114 -114
- package/assets/.agent/skills/media-use/scripts/lib/freeze.mjs +26 -26
- package/assets/.agent/skills/media-use/scripts/lib/heygen-search.mjs +51 -51
- package/assets/.agent/skills/media-use/scripts/lib/image-provider.mjs +44 -44
- package/assets/.agent/skills/media-use/scripts/lib/index-gen.mjs +63 -63
- package/assets/.agent/skills/media-use/scripts/lib/manifest.mjs +91 -91
- package/assets/.agent/skills/media-use/scripts/lib/manifest.test.mjs +293 -293
- package/assets/.agent/skills/media-use/scripts/lib/probe.mjs +39 -39
- package/assets/.agent/skills/media-use/scripts/lib/probe.test.mjs +31 -31
- package/assets/.agent/skills/media-use/scripts/lib/providers.mjs +29 -29
- package/assets/.agent/skills/media-use/scripts/lib/sfx-provider.mjs +23 -23
- package/assets/.agent/skills/media-use/scripts/resolve.mjs +247 -247
- package/assets/.agent/skills/media-use/scripts/resolve.test.mjs +247 -247
- package/assets/.agent/skills/motion-graphics/SKILL.md +172 -172
- package/assets/.agent/skills/motion-graphics/agents/builder.md +40 -40
- package/assets/.agent/skills/motion-graphics/agents/director.md +53 -53
- package/assets/.agent/skills/motion-graphics/agents/finalize.md +17 -17
- package/assets/.agent/skills/motion-graphics/catalog-map.md +40 -40
- package/assets/.agent/skills/motion-graphics/categories/asset-fusion/module.md +37 -37
- package/assets/.agent/skills/motion-graphics/categories/charts/module.md +21 -21
- package/assets/.agent/skills/motion-graphics/categories/kinetic-type/module.md +19 -19
- package/assets/.agent/skills/motion-graphics/categories/logo-reveal/module.md +17 -17
- package/assets/.agent/skills/motion-graphics/categories/lower-thirds/module.md +16 -16
- package/assets/.agent/skills/motion-graphics/categories/maps/bake-basemap.mjs +273 -273
- package/assets/.agent/skills/motion-graphics/categories/maps/module.md +61 -61
- package/assets/.agent/skills/motion-graphics/categories/news/module.md +56 -56
- package/assets/.agent/skills/motion-graphics/categories/stat/module.md +21 -21
- package/assets/.agent/skills/motion-graphics/categories/tweet/module.md +16 -16
- package/assets/.agent/skills/motion-graphics/categories/webpage/module.md +21 -21
- package/assets/.agent/skills/motion-graphics/grounding/PROTOCOL.md +64 -64
- package/assets/.agent/skills/motion-graphics/grounding/locate.mjs +227 -227
- package/assets/.agent/skills/motion-graphics/phases/source/guide.md +21 -21
- package/assets/.agent/skills/motion-graphics/references/builder-contract.md +38 -38
- package/assets/.agent/skills/motion-graphics/references/motion-vocabulary.md +43 -43
- package/assets/.agent/skills/motion-graphics/references/shot-plan-ir.md +54 -54
- package/assets/.agent/skills/motion-graphics/samples/asset-fusion/_ref-circle-highlight.html +306 -306
- package/assets/.agent/skills/music-to-video/SKILL.md +197 -197
- package/assets/.agent/skills/music-to-video/references/frame-skeleton.md +100 -100
- package/assets/.agent/skills/music-to-video/references/montage.md +58 -58
- package/assets/.agent/skills/music-to-video/references/motion-primitive-catalog.md +75 -75
- package/assets/.agent/skills/music-to-video/references/motion-primitives/3d-card-flip/index.html +154 -154
- package/assets/.agent/skills/music-to-video/references/motion-primitives/assets/gsap.min.js +11 -11
- package/assets/.agent/skills/music-to-video/references/motion-primitives/bg-flow-field/index.html +326 -326
- package/assets/.agent/skills/music-to-video/references/motion-primitives/binary-decrypt/index.html +120 -120
- package/assets/.agent/skills/music-to-video/references/motion-primitives/blur-resolve/index.html +95 -95
- package/assets/.agent/skills/music-to-video/references/motion-primitives/braam-punch/index.html +135 -135
- package/assets/.agent/skills/music-to-video/references/motion-primitives/chromatic-split/index.html +146 -146
- package/assets/.agent/skills/music-to-video/references/motion-primitives/chrome-sweep/index.html +103 -103
- package/assets/.agent/skills/music-to-video/references/motion-primitives/counting-punch/index.html +154 -154
- package/assets/.agent/skills/music-to-video/references/motion-primitives/crash-zoom-in/index.html +155 -155
- package/assets/.agent/skills/music-to-video/references/motion-primitives/datamosh-smear/index.html +166 -166
- package/assets/.agent/skills/music-to-video/references/motion-primitives/directional-fill/index.html +133 -133
- package/assets/.agent/skills/music-to-video/references/motion-primitives/dolly-zoom/index.html +137 -137
- package/assets/.agent/skills/music-to-video/references/motion-primitives/electric-arc/index.html +144 -144
- package/assets/.agent/skills/music-to-video/references/motion-primitives/flash-cut/index.html +132 -132
- package/assets/.agent/skills/music-to-video/references/motion-primitives/gooey-metaball/index.html +241 -241
- package/assets/.agent/skills/music-to-video/references/motion-primitives/hard-cut/index.html +117 -117
- package/assets/.agent/skills/music-to-video/references/motion-primitives/hypercut-whip/index.html +79 -79
- package/assets/.agent/skills/music-to-video/references/motion-primitives/iris-open/index.html +104 -104
- package/assets/.agent/skills/music-to-video/references/motion-primitives/kinetic-letter-in/index.html +92 -92
- package/assets/.agent/skills/music-to-video/references/motion-primitives/liquid-morph/index.html +131 -131
- package/assets/.agent/skills/music-to-video/references/motion-primitives/mask-reveal/index.html +109 -109
- package/assets/.agent/skills/music-to-video/references/motion-primitives/mosaic-pack/index.html +124 -124
- package/assets/.agent/skills/music-to-video/references/motion-primitives/neon-flicker/index.html +108 -108
- package/assets/.agent/skills/music-to-video/references/motion-primitives/outline-to-fill/index.html +117 -117
- package/assets/.agent/skills/music-to-video/references/motion-primitives/palette-flip/index.html +132 -132
- package/assets/.agent/skills/music-to-video/references/motion-primitives/particle-burst/index.html +141 -141
- package/assets/.agent/skills/music-to-video/references/motion-primitives/pixel-dissolve/index.html +121 -121
- package/assets/.agent/skills/music-to-video/references/motion-primitives/radial-burst-lines/index.html +160 -160
- package/assets/.agent/skills/music-to-video/references/motion-primitives/screen-shake/index.html +113 -113
- package/assets/.agent/skills/music-to-video/references/motion-primitives/slot-machine-reveal/index.html +130 -130
- package/assets/.agent/skills/music-to-video/references/motion-primitives/spotlight-sweep/index.html +137 -137
- package/assets/.agent/skills/music-to-video/references/motion-primitives/staggered-exit/index.html +117 -117
- package/assets/.agent/skills/music-to-video/references/motion-primitives/text-spectral-rays/USAGE.md +42 -42
- package/assets/.agent/skills/music-to-video/references/motion-primitives/text-spectral-rays/index.html +313 -313
- package/assets/.agent/skills/music-to-video/references/motion-primitives/text-wave-distort/index.html +136 -136
- package/assets/.agent/skills/music-to-video/references/motion-primitives/tile-mosaic/index.html +144 -144
- package/assets/.agent/skills/music-to-video/references/motion-primitives/typewriter-reveal/index.html +122 -122
- package/assets/.agent/skills/music-to-video/references/motion-primitives/word-grid-burst/index.html +126 -126
- package/assets/.agent/skills/music-to-video/references/planning.md +104 -104
- package/assets/.agent/skills/music-to-video/references/storyboard-format.md +94 -94
- package/assets/.agent/skills/music-to-video/references/template-catalog.md +106 -106
- package/assets/.agent/skills/music-to-video/references/templates/card-flyby/index.html +527 -527
- package/assets/.agent/skills/music-to-video/references/templates/card-flyby/program.json +13 -13
- package/assets/.agent/skills/music-to-video/references/templates/held-message-living-field/index.html +485 -485
- package/assets/.agent/skills/music-to-video/references/templates/held-text-strobe-burst/index.html +302 -302
- package/assets/.agent/skills/music-to-video/references/templates/intro-kinetic-cascade/index.html +610 -610
- package/assets/.agent/skills/music-to-video/references/templates/intro-kinetic-cascade/program.json +41 -41
- package/assets/.agent/skills/music-to-video/references/templates/logo-split-lockup-pulse/index.html +596 -596
- package/assets/.agent/skills/music-to-video/references/templates/poster-tile-mosaic/index.html +589 -589
- package/assets/.agent/skills/music-to-video/references/templates/poster-tile-mosaic/program.json +25 -25
- package/assets/.agent/skills/music-to-video/references/templates/roll-flipbook-word-cycle/index.html +267 -267
- package/assets/.agent/skills/music-to-video/references/templates/split-anchor-word-slot/index.html +594 -594
- package/assets/.agent/skills/music-to-video/references/templates/split-anchor-word-slot/program.json +39 -39
- package/assets/.agent/skills/music-to-video/references/templates/typewriter-phrase-keyword-shuffle/index.html +238 -238
- package/assets/.agent/skills/music-to-video/scripts/analyze-beatgrid.py +531 -531
- package/assets/.agent/skills/music-to-video/scripts/assemble-index.mjs +218 -218
- package/assets/.agent/skills/music-to-video/scripts/lib/storyboard.mjs +249 -249
- package/assets/.agent/skills/music-to-video/scripts/stage-assets.mjs +58 -58
- package/assets/.agent/skills/music-to-video/scripts/validate-plan.mjs +161 -161
- package/assets/.agent/skills/music-to-video/sub-agents/frame-worker.md +75 -75
- package/assets/.agent/skills/pr-to-video/SKILL.md +240 -240
- package/assets/.agent/skills/pr-to-video/references/code-vocabulary.md +111 -111
- package/assets/.agent/skills/pr-to-video/references/cut-catalog.md +215 -215
- package/assets/.agent/skills/pr-to-video/references/motion-language.md +156 -156
- package/assets/.agent/skills/pr-to-video/references/story-design.md +211 -211
- package/assets/.agent/skills/pr-to-video/references/visual-design.md +164 -164
- package/assets/.agent/skills/pr-to-video/scripts/assemble-index.mjs +570 -570
- package/assets/.agent/skills/pr-to-video/scripts/audio.mjs +253 -253
- package/assets/.agent/skills/pr-to-video/scripts/build-frame.mjs +536 -536
- package/assets/.agent/skills/pr-to-video/scripts/captions.mjs +508 -508
- package/assets/.agent/skills/pr-to-video/scripts/fetch-people-avatars.mjs +157 -157
- package/assets/.agent/skills/pr-to-video/scripts/fetch-pr.mjs +164 -164
- package/assets/.agent/skills/pr-to-video/scripts/ingest.mjs +539 -539
- package/assets/.agent/skills/pr-to-video/scripts/lib/assets.mjs +55 -55
- package/assets/.agent/skills/pr-to-video/scripts/lib/dimensions.mjs +45 -45
- package/assets/.agent/skills/pr-to-video/scripts/lib/storyboard.mjs +249 -249
- package/assets/.agent/skills/pr-to-video/scripts/lib/tokens.mjs +204 -204
- package/assets/.agent/skills/pr-to-video/scripts/lib/transition-registry.mjs +38 -38
- package/assets/.agent/skills/pr-to-video/scripts/lib/transitions.json +71 -71
- package/assets/.agent/skills/pr-to-video/scripts/transitions.mjs +320 -320
- package/assets/.agent/skills/pr-to-video/sub-agents/frame-worker.md +95 -95
- package/assets/.agent/skills/product-launch-video/SKILL.md +208 -208
- package/assets/.agent/skills/product-launch-video/references/cut-catalog.md +220 -220
- package/assets/.agent/skills/product-launch-video/references/motion-language.md +156 -156
- package/assets/.agent/skills/product-launch-video/references/story-design.md +373 -373
- package/assets/.agent/skills/product-launch-video/references/visual-design.md +126 -126
- package/assets/.agent/skills/product-launch-video/scripts/assemble-index.mjs +570 -570
- package/assets/.agent/skills/product-launch-video/scripts/audio.mjs +253 -253
- package/assets/.agent/skills/product-launch-video/scripts/build-frame.mjs +536 -536
- package/assets/.agent/skills/product-launch-video/scripts/captions.mjs +508 -508
- package/assets/.agent/skills/product-launch-video/scripts/lib/assets.mjs +55 -55
- package/assets/.agent/skills/product-launch-video/scripts/lib/dimensions.mjs +45 -45
- package/assets/.agent/skills/product-launch-video/scripts/lib/storyboard.mjs +249 -249
- package/assets/.agent/skills/product-launch-video/scripts/lib/tokens.mjs +204 -204
- package/assets/.agent/skills/product-launch-video/scripts/lib/transition-registry.mjs +38 -38
- package/assets/.agent/skills/product-launch-video/scripts/lib/transitions.json +71 -71
- package/assets/.agent/skills/product-launch-video/scripts/stage-assets.mjs +39 -39
- package/assets/.agent/skills/product-launch-video/scripts/transitions.mjs +320 -320
- package/assets/.agent/skills/product-launch-video/sub-agents/frame-worker.md +75 -75
- package/assets/.agent/skills/remotion/SKILL.md +357 -38
- package/assets/.agent/skills/remotion/rules/3d.md +5 -5
- package/assets/.agent/skills/remotion/rules/assets/text-animations-word-highlight.tsx +1 -6
- package/assets/.agent/skills/remotion/rules/audio-visualization.md +198 -0
- package/assets/.agent/skills/remotion/rules/audio.md +1 -4
- package/assets/.agent/skills/remotion/rules/calculate-metadata.md +48 -18
- package/assets/.agent/skills/remotion/rules/compositions.md +16 -24
- package/assets/.agent/skills/remotion/rules/display-captions.md +79 -21
- package/assets/.agent/skills/remotion/rules/effects.md +235 -0
- package/assets/.agent/skills/remotion/rules/ffmpeg.md +34 -0
- package/assets/.agent/skills/remotion/rules/get-audio-duration.md +13 -13
- package/assets/.agent/skills/remotion/rules/get-video-dimensions.md +1 -1
- package/assets/.agent/skills/remotion/rules/get-video-duration.md +12 -10
- package/assets/.agent/skills/remotion/rules/gifs.md +21 -18
- package/assets/.agent/skills/remotion/rules/google-fonts.md +72 -0
- package/assets/.agent/skills/remotion/rules/html-in-canvas.md +122 -0
- package/assets/.agent/skills/remotion/rules/images.md +5 -64
- package/assets/.agent/skills/remotion/rules/import-srt-captions.md +9 -7
- package/assets/.agent/skills/remotion/rules/light-leaks.md +73 -0
- package/assets/.agent/skills/remotion/rules/local-fonts.md +65 -0
- package/assets/.agent/skills/remotion/rules/lottie.md +10 -8
- package/assets/.agent/skills/remotion/rules/maplibre.md +458 -0
- package/assets/.agent/skills/remotion/rules/measuring-dom-nodes.md +0 -1
- package/assets/.agent/skills/remotion/rules/measuring-text.md +2 -5
- package/assets/.agent/skills/remotion/rules/parameters.md +21 -10
- package/assets/.agent/skills/remotion/rules/sequencing.md +35 -9
- package/assets/.agent/skills/remotion/rules/sfx.md +51 -0
- package/assets/.agent/skills/remotion/rules/silence-detection.md +71 -0
- package/assets/.agent/skills/remotion/rules/subtitles.md +36 -0
- package/assets/.agent/skills/remotion/rules/tailwind.md +2 -2
- package/assets/.agent/skills/remotion/rules/timing.md +89 -106
- package/assets/.agent/skills/remotion/rules/transcribe-captions.md +58 -7
- package/assets/.agent/skills/remotion/rules/transitions.md +117 -42
- package/assets/.agent/skills/remotion/rules/transparent-videos.md +106 -0
- package/assets/.agent/skills/remotion/rules/trimming.md +1 -3
- package/assets/.agent/skills/remotion/rules/video-layout.md +68 -0
- package/assets/.agent/skills/remotion/rules/voiceover.md +99 -0
- package/assets/.agent/skills/remotion-real-ui-video/SKILL.md +264 -264
- package/assets/.agent/skills/remotion-real-ui-video/references/anti-patterns.md +114 -114
- package/assets/.agent/skills/remotion-real-ui-video/references/completion-checklist.md +75 -75
- package/assets/.agent/skills/remotion-real-ui-video/references/real-ui-bridge-example.md +93 -93
- package/assets/.agent/skills/remotion-to-hyperframes/SKILL.md +127 -127
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/run.sh +249 -249
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/README.md +41 -41
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/expected.json +26 -26
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/hf-src/index.html +61 -61
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/package.json +14 -14
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/remotion.config.ts +13 -13
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/src/Root.tsx +13 -13
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/src/TitleCard.tsx +34 -34
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/src/index.ts +4 -4
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/tsconfig.json +15 -15
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/README.md +54 -54
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/expected.json +29 -29
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/hf-src/index.html +118 -118
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/package.json +14 -14
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/remotion.config.ts +13 -13
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/src/MultiScene.tsx +105 -105
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/src/Root.tsx +13 -13
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/src/index.ts +4 -4
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/tsconfig.json +15 -15
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/setup.sh +34 -34
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/README.md +85 -85
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/expected.json +41 -41
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/hf-src/index.html +269 -269
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/package.json +15 -15
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/remotion.config.ts +13 -13
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/Root.tsx +27 -27
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/Stargazed.tsx +37 -37
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/components/AnimatedNumber.tsx +23 -23
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/components/StatCard.tsx +59 -59
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/components/UnderlinedText.tsx +47 -47
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/index.ts +4 -4
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/scenes/OutroScene.tsx +18 -18
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/scenes/StatsScene.tsx +34 -34
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/scenes/TitleScene.tsx +55 -55
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/tsconfig.json +15 -15
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/README.md +51 -51
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/01-use-state.tsx +29 -29
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/02-use-effect-deps.tsx +29 -29
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/03-async-metadata.tsx +39 -39
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/04-third-party-react.tsx +30 -30
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/05-lambda-config.tsx +38 -38
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/06-warnings-only.tsx +36 -36
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/07-custom-hook.tsx +28 -28
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/08-mixed.tsx +41 -41
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/expected.json +85 -85
- package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/validate.sh +110 -110
- package/assets/.agent/skills/remotion-to-hyperframes/references/api-map.md +142 -142
- package/assets/.agent/skills/remotion-to-hyperframes/references/escape-hatch.md +115 -115
- package/assets/.agent/skills/remotion-to-hyperframes/references/eval.md +140 -140
- package/assets/.agent/skills/remotion-to-hyperframes/references/fonts.md +112 -112
- package/assets/.agent/skills/remotion-to-hyperframes/references/limitations.md +136 -136
- package/assets/.agent/skills/remotion-to-hyperframes/references/lottie.md +121 -121
- package/assets/.agent/skills/remotion-to-hyperframes/references/media.md +149 -149
- package/assets/.agent/skills/remotion-to-hyperframes/references/parameters.md +167 -167
- package/assets/.agent/skills/remotion-to-hyperframes/references/sequencing.md +195 -195
- package/assets/.agent/skills/remotion-to-hyperframes/references/timing.md +165 -165
- package/assets/.agent/skills/remotion-to-hyperframes/references/transitions.md +114 -114
- package/assets/.agent/skills/remotion-to-hyperframes/scripts/frame_strip.sh +107 -107
- package/assets/.agent/skills/remotion-to-hyperframes/scripts/lint_source.py +358 -358
- package/assets/.agent/skills/remotion-to-hyperframes/scripts/render_diff.sh +103 -103
- package/assets/.agent/skills/remotion-to-hyperframes/scripts/tests/fixtures/blocker.tsx +50 -50
- package/assets/.agent/skills/remotion-to-hyperframes/scripts/tests/fixtures/clean.tsx +46 -46
- package/assets/.agent/skills/remotion-to-hyperframes/scripts/tests/smoke.sh +90 -90
- package/assets/.agent/skills/shared-resend-portfolio/SKILL.md +124 -124
- package/assets/.agent/skills/slideshow/SKILL.md +550 -550
- package/assets/.agent/skills/slideshow/references/standalone-harness.md +1020 -1020
- package/assets/.agent/skills/talking-head-recut/NOTICE.md +39 -39
- package/assets/.agent/skills/talking-head-recut/SKILL.md +1191 -1191
- package/assets/.agent/skills/talking-head-recut/assets/vendor/gsap.min.js +10 -10
- package/assets/.agent/skills/talking-head-recut/references/DESIGN_INDEX.md +145 -145
- package/assets/.agent/skills/talking-head-recut/references/frames/clean.html +92 -92
- package/assets/.agent/skills/talking-head-recut/references/frames/hairline.html +171 -171
- package/assets/.agent/skills/talking-head-recut/references/frames/polaroid.html +131 -131
- package/assets/.agent/skills/talking-head-recut/references/layouts/overlay.html +164 -164
- package/assets/.agent/skills/talking-head-recut/references/layouts/pip.html +143 -143
- package/assets/.agent/skills/talking-head-recut/references/layouts/split.html +121 -121
- package/assets/.agent/skills/talking-head-recut/references/layouts/stack.html +109 -109
- package/assets/.agent/skills/talking-head-recut/references/styles/academic.html +172 -172
- package/assets/.agent/skills/talking-head-recut/references/styles/audit.html +170 -170
- package/assets/.agent/skills/talking-head-recut/references/styles/editorial.html +189 -189
- package/assets/.agent/skills/talking-head-recut/references/styles/geom.html +181 -181
- package/assets/.agent/skills/talking-head-recut/references/styles/minimal.html +130 -130
- package/assets/.agent/skills/talking-head-recut/references/styles/spotlight.html +142 -142
- package/assets/.agent/skills/talking-head-recut/references/styles/swiss.html +188 -188
- package/assets/.agent/skills/talking-head-recut/references/styles/terminal.html +196 -196
- package/assets/.agent/skills/talking-head-recut/references/styles/whiteboard.html +170 -170
- package/assets/.agent/skills/talking-head-recut/references/styles/xhs.html +206 -206
- package/assets/.agent/skills/website-to-video/SKILL.md +145 -145
- package/assets/.agent/skills/website-to-video/assets/sfx/CREDITS.md +35 -35
- package/assets/.agent/skills/website-to-video/assets/sfx/manifest.json +97 -97
- package/assets/.agent/skills/website-to-video/references/beat-builder-guide.md +263 -263
- package/assets/.agent/skills/website-to-video/references/capabilities.md +713 -713
- package/assets/.agent/skills/website-to-video/references/step-0-capture.md +55 -55
- package/assets/.agent/skills/website-to-video/references/step-1-design.md +333 -333
- package/assets/.agent/skills/website-to-video/references/step-2-brief.md +178 -178
- package/assets/.agent/skills/website-to-video/references/step-3-storyboard.md +572 -572
- package/assets/.agent/skills/website-to-video/references/step-4-vo.md +230 -230
- package/assets/.agent/skills/website-to-video/references/step-5-build.md +483 -483
- package/assets/.agent/skills/website-to-video/references/step-6-validate.md +341 -341
- package/assets/.agent/skills/website-to-video/scripts/w2h-verify.mjs +759 -759
- package/package.json +6 -5
- package/src/pi-takomi-core/orchestration.ts +39 -21
- package/src/pi-takomi-core/routing.ts +8 -8
- package/src/pi-takomi-core/types.ts +25 -5
- package/src/pi-takomi-core/workflows.ts +86 -86
- package/src/takomi-stats.js +5 -5
- package/assets/.agent/skills/remotion/rules/animations.md +0 -29
- package/assets/.agent/skills/remotion/rules/assets.md +0 -78
- package/assets/.agent/skills/remotion/rules/can-decode.md +0 -75
- package/assets/.agent/skills/remotion/rules/charts.md +0 -58
- package/assets/.agent/skills/remotion/rules/extract-frames.md +0 -229
- package/assets/.agent/skills/remotion/rules/fonts.md +0 -152
- package/assets/.agent/skills/remotion/rules/maps.md +0 -403
|
@@ -1,266 +1,266 @@
|
|
|
1
|
-
# Typographic moves — a palette, not a cage
|
|
2
|
-
|
|
3
|
-
`cinematic-cream` template locks DNA only (font-family, motion, color
|
|
4
|
-
palette defaults). It does NOT enforce slot structure. The agent writes
|
|
5
|
-
each caption group's typography from scratch via the plan.json `css`
|
|
6
|
-
field.
|
|
7
|
-
|
|
8
|
-
This doc is a **palette** of tried combinations — pick what fits the
|
|
9
|
-
scene, invent new ones, skip these if the content demands. These are
|
|
10
|
-
recommendations, not rules.
|
|
11
|
-
|
|
12
|
-
## Size vs text length — DO THIS BEFORE PICKING SIZE
|
|
13
|
-
|
|
14
|
-
Bigger is NOT better if the word doesn't fit the frame width. Every time
|
|
15
|
-
you pick a font-size, sanity-check against word length:
|
|
16
|
-
|
|
17
|
-
**Rough rule for Inter 900 uppercase at -0.03em tracking:**
|
|
18
|
-
`max_font_px ≈ frame_width / (longest_word_chars × 0.72)`
|
|
19
|
-
|
|
20
|
-
The 0.72 multiplier is intentionally conservative — it targets the text
|
|
21
|
-
filling ~90% of the frame width so there's a small side margin. If you
|
|
22
|
-
want edge-to-edge, drop to 0.65, but you lose a bit of safety margin.
|
|
23
|
-
|
|
24
|
-
720px portrait:
|
|
25
|
-
|
|
26
|
-
- 3-char word (15%): max ~330px (a single big number like "15%")
|
|
27
|
-
- 5-char word (TAKE): max ~200px
|
|
28
|
-
- 7-char word (AUGMENT / QUANTUM / MATTERS): max ~143px
|
|
29
|
-
- 10-char word (CREATIVITY): max ~100px
|
|
30
|
-
- 13-char word (UNPRECEDENTED): max ~77px
|
|
31
|
-
|
|
32
|
-
1920px landscape:
|
|
33
|
-
|
|
34
|
-
- 7-char word: max ~380px
|
|
35
|
-
- 10-char word: max ~267px
|
|
36
|
-
|
|
37
|
-
For italic/upright 500-700 it's slightly narrower — increase max by ~10%.
|
|
38
|
-
|
|
39
|
-
**If you want the word bigger than it fits:**
|
|
40
|
-
|
|
41
|
-
- Split into multiple words per group (natural wrap), OR
|
|
42
|
-
- Add explicit `<br>` between syllables, OR
|
|
43
|
-
- Drop letter-spacing to -0.05em, OR
|
|
44
|
-
- Accept that the matte will cut part of it (Vogue-cover embed effect —
|
|
45
|
-
only works when the cut area is exactly where the subject is)
|
|
46
|
-
|
|
47
|
-
Never let the text OVERFLOW the frame edge — that's not cinematic, that's
|
|
48
|
-
just broken. Use the heuristic.
|
|
49
|
-
|
|
50
|
-
## Sizing discipline (frame-height-relative)
|
|
51
|
-
|
|
52
|
-
Portrait 9:16 (720×1290) and landscape 16:9 (1920×1080) have very
|
|
53
|
-
different comfort ranges. Use `calc(<pct> * var(--h))` for responsive:
|
|
54
|
-
|
|
55
|
-
| Feel | % of frame height | Example calc |
|
|
56
|
-
| ---------------------- | ----------------- | ----------------------- |
|
|
57
|
-
| Whisper / label | 4-6% | `calc(0.05 * var(--h))` |
|
|
58
|
-
| Soft opener | 6-9% | `calc(0.07 * var(--h))` |
|
|
59
|
-
| Narrative body | 9-14% | `calc(0.11 * var(--h))` |
|
|
60
|
-
| Emphasis | 14-22% | `calc(0.18 * var(--h))` |
|
|
61
|
-
| Climax / monumental | 22-35% | `calc(0.28 * var(--h))` |
|
|
62
|
-
| Title-bigger-than-face | 40%+ | `calc(0.48 * var(--h))` |
|
|
63
|
-
|
|
64
|
-
Use absolute px only when a specific scale needs to look identical
|
|
65
|
-
across frame sizes (rare). Prefer `calc` + `var(--h)`.
|
|
66
|
-
|
|
67
|
-
## Named moves — pick per group
|
|
68
|
-
|
|
69
|
-
**Italic contemplative opener** (memory-wall cap-1 lineage):
|
|
70
|
-
|
|
71
|
-
```css
|
|
72
|
-
font-weight: 600;
|
|
73
|
-
font-style: italic;
|
|
74
|
-
letter-spacing: -0.01em;
|
|
75
|
-
font-size: calc(0.075 * var(--h));
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
**Italic continuation / dreamier continuation** (cap-2 lineage):
|
|
79
|
-
|
|
80
|
-
```css
|
|
81
|
-
font-weight: 500;
|
|
82
|
-
font-style: italic;
|
|
83
|
-
letter-spacing: -0.005em;
|
|
84
|
-
font-size: calc(0.065 * var(--h));
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
**Upright pivot / statement** (cap-3 lineage — "but suddenly"):
|
|
88
|
-
|
|
89
|
-
```css
|
|
90
|
-
font-weight: 700;
|
|
91
|
-
letter-spacing: -0.015em;
|
|
92
|
-
font-size: calc(0.07 * var(--h));
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
**Uppercase climax / monumental** (cap-4 lineage — "EVERYTHING IS SHARP AGAIN"):
|
|
96
|
-
|
|
97
|
-
```css
|
|
98
|
-
font-weight: 900;
|
|
99
|
-
text-transform: uppercase;
|
|
100
|
-
letter-spacing: -0.03em;
|
|
101
|
-
line-height: 0.95;
|
|
102
|
-
font-size: calc(0.18 * var(--h));
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
**Chapter card / full-frame Adam Curtis manifesto**:
|
|
106
|
-
|
|
107
|
-
```css
|
|
108
|
-
font-weight: 700;
|
|
109
|
-
text-transform: uppercase;
|
|
110
|
-
letter-spacing: -0.015em;
|
|
111
|
-
line-height: 0.9;
|
|
112
|
-
font-size: calc(0.14 * var(--h));
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
**News chyron / broadcast label** (small, locked):
|
|
116
|
-
|
|
117
|
-
```css
|
|
118
|
-
font-weight: 500;
|
|
119
|
-
letter-spacing: 0.02em;
|
|
120
|
-
font-size: calc(0.038 * var(--h));
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
**Tiny side note / caption-on-surface**:
|
|
124
|
-
|
|
125
|
-
```css
|
|
126
|
-
font-weight: 400;
|
|
127
|
-
font-style: italic;
|
|
128
|
-
font-size: calc(0.045 * var(--h));
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
**Vogue-masthead monumental**:
|
|
132
|
-
|
|
133
|
-
```css
|
|
134
|
-
font-weight: 900;
|
|
135
|
-
text-transform: uppercase;
|
|
136
|
-
letter-spacing: -0.04em;
|
|
137
|
-
line-height: 0.85;
|
|
138
|
-
font-size: calc(0.32 * var(--h));
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
## Narrative arcs (suggestions, not required)
|
|
142
|
-
|
|
143
|
-
**Poem arc** — memory-wall canonical: italic opener → italic continuation
|
|
144
|
-
→ upright pivot → uppercase climax. Four steps.
|
|
145
|
-
|
|
146
|
-
**Question-answer arc**: italic question small → uppercase answer big.
|
|
147
|
-
Two steps.
|
|
148
|
-
|
|
149
|
-
**List-of-three arc**: three equal-weight narration segments, one
|
|
150
|
-
climactic uppercase. Four steps.
|
|
151
|
-
|
|
152
|
-
**Single-statement arc**: one monumental uppercase held long. One step.
|
|
153
|
-
|
|
154
|
-
**Whisper-hook arc** (short-form): tiny italic hook → massive uppercase
|
|
155
|
-
reveal. Two steps.
|
|
156
|
-
|
|
157
|
-
The **number** of groups comes from the **content**. A 25s Pausch talk
|
|
158
|
-
has ~8 beats. A 7s TikTok hook has 2-3 beats. Don't force 4 or 5 or 7 —
|
|
159
|
-
read the transcript and mark breath-groups.
|
|
160
|
-
|
|
161
|
-
## Position + layer vocabulary
|
|
162
|
-
|
|
163
|
-
**Position** is where the caption lives in frame. Use:
|
|
164
|
-
|
|
165
|
-
- `top / left / right / bottom` (percentages or px) for anchor
|
|
166
|
-
- `transform: translateX/Y` for fine offsets
|
|
167
|
-
- `text-align: center / left / right` for alignment
|
|
168
|
-
|
|
169
|
-
**Layer** per group:
|
|
170
|
-
|
|
171
|
-
- `bg` (default) — behind subject. Matte occludes. Cinematic embed. Works
|
|
172
|
-
on clean zones (sky, walls) OR intentionally crosses subject for the
|
|
173
|
-
Vogue-masthead effect.
|
|
174
|
-
- `fg` — on top of subject. Announcement. Use for climax breakthroughs or
|
|
175
|
-
when bg would be 100% occluded by body.
|
|
176
|
-
|
|
177
|
-
**Tone** per group:
|
|
178
|
-
|
|
179
|
-
- `soft` — gentle per-word opacity+y drift (0.45s power2.out). Use for
|
|
180
|
-
introspective, dreamy, or narrative content.
|
|
181
|
-
- `present` — snappy per-word opacity+y+scale pop (0.22s power3.out). Use
|
|
182
|
-
for emphatic or declarative beats.
|
|
183
|
-
|
|
184
|
-
## Anti-patterns the DNA protects against
|
|
185
|
-
|
|
186
|
-
The DNA defaults prevent most ugly outcomes. But avoid in per-group CSS:
|
|
187
|
-
|
|
188
|
-
- Multiple different `font-family` within one video (DNA is one family)
|
|
189
|
-
- Multiple saturated colors (one accent at most; DNA defaults cream or
|
|
190
|
-
deep warm)
|
|
191
|
-
- `letter-spacing` above ±0.05em unless there's a specific reason
|
|
192
|
-
- `font-weight` 300 or below — too light for screen
|
|
193
|
-
- `font-style: italic` on emphasis — italic is for lyricism, not stress
|
|
194
|
-
|
|
195
|
-
## When cinematic-cream is wrong
|
|
196
|
-
|
|
197
|
-
This DNA assumes mid-to-dark backgrounds (luminance 60-180). For:
|
|
198
|
-
|
|
199
|
-
- Bright white studios → cinematic-cream's cream + `screen` washes out, and the DNA is
|
|
200
|
-
**locked** (you cannot recolour it) → use **Standard mode** (opaque rail) instead
|
|
201
|
-
- Documentary formal → Standard mode (documentary-dignified direction; see references/direction-catalog.md §1)
|
|
202
|
-
- Energetic vlog hooks → future `kinetic-vlog` DNA (not yet shipped)
|
|
203
|
-
|
|
204
|
-
## Example: memory-wall original, expressed in freeform
|
|
205
|
-
|
|
206
|
-
Same output as the canonical memory-wall.html, but using slot-free plan:
|
|
207
|
-
|
|
208
|
-
```json
|
|
209
|
-
{
|
|
210
|
-
"template": "cinematic-cream",
|
|
211
|
-
"caption_layer": "bg",
|
|
212
|
-
"groups": [
|
|
213
|
-
{
|
|
214
|
-
"id": "cg-0",
|
|
215
|
-
"tone": "soft",
|
|
216
|
-
"in": 0.2,
|
|
217
|
-
"out": 4.85,
|
|
218
|
-
"css": "top: 14%; right: 6%; left: auto; text-align: right; font-size: calc(0.09 * var(--h)); font-weight: 600; font-style: italic; letter-spacing: -0.01em;",
|
|
219
|
-
"words": [
|
|
220
|
-
{ "text": "Some", "start": 0.24, "end": 0.44 },
|
|
221
|
-
{ "text": "memories", "start": 0.48, "end": 0.82 },
|
|
222
|
-
{ "text": "feel", "start": 0.92, "end": 1.14 },
|
|
223
|
-
{ "text": "soft", "start": 1.2, "end": 1.64 }
|
|
224
|
-
]
|
|
225
|
-
},
|
|
226
|
-
{
|
|
227
|
-
"id": "cg-1",
|
|
228
|
-
"tone": "soft",
|
|
229
|
-
"in": 2.55,
|
|
230
|
-
"out": 4.85,
|
|
231
|
-
"css": "top: 26%; right: 10%; left: auto; text-align: right; font-size: calc(0.075 * var(--h)); font-weight: 500; font-style: italic;",
|
|
232
|
-
"words": [
|
|
233
|
-
{ "text": "like", "start": 2.66, "end": 2.78 },
|
|
234
|
-
{ "text": "old", "start": 2.88, "end": 3.02 },
|
|
235
|
-
{ "text": "film", "start": 3.16, "end": 3.46 }
|
|
236
|
-
]
|
|
237
|
-
},
|
|
238
|
-
{
|
|
239
|
-
"id": "cg-2",
|
|
240
|
-
"tone": "present",
|
|
241
|
-
"in": 4.9,
|
|
242
|
-
"out": 8.04,
|
|
243
|
-
"css": "top: 18%; right: 6%; left: auto; text-align: right; font-size: calc(0.085 * var(--h)); font-weight: 700;",
|
|
244
|
-
"words": [
|
|
245
|
-
{ "text": "but", "start": 5.04, "end": 5.18 },
|
|
246
|
-
{ "text": "suddenly", "start": 5.24, "end": 5.76 }
|
|
247
|
-
]
|
|
248
|
-
},
|
|
249
|
-
{
|
|
250
|
-
"id": "cg-3",
|
|
251
|
-
"tone": "present",
|
|
252
|
-
"in": 6.7,
|
|
253
|
-
"out": 8.04,
|
|
254
|
-
"css": "top: 32%; right: 6%; left: auto; text-align: right; font-size: calc(0.11 * var(--h)); font-weight: 900; text-transform: uppercase; letter-spacing: -0.03em; line-height: 0.95;",
|
|
255
|
-
"words": [
|
|
256
|
-
{ "text": "everything", "start": 6.82, "end": 7.14 },
|
|
257
|
-
{ "text": "is", "start": 7.18, "end": 7.28 },
|
|
258
|
-
{ "text": "sharp", "start": 7.32, "end": 7.52 },
|
|
259
|
-
{ "text": "again", "start": 7.58, "end": 7.92 }
|
|
260
|
-
]
|
|
261
|
-
}
|
|
262
|
-
]
|
|
263
|
-
}
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
Same visual, no slot constraint. Each group owns its typography.
|
|
1
|
+
# Typographic moves — a palette, not a cage
|
|
2
|
+
|
|
3
|
+
`cinematic-cream` template locks DNA only (font-family, motion, color
|
|
4
|
+
palette defaults). It does NOT enforce slot structure. The agent writes
|
|
5
|
+
each caption group's typography from scratch via the plan.json `css`
|
|
6
|
+
field.
|
|
7
|
+
|
|
8
|
+
This doc is a **palette** of tried combinations — pick what fits the
|
|
9
|
+
scene, invent new ones, skip these if the content demands. These are
|
|
10
|
+
recommendations, not rules.
|
|
11
|
+
|
|
12
|
+
## Size vs text length — DO THIS BEFORE PICKING SIZE
|
|
13
|
+
|
|
14
|
+
Bigger is NOT better if the word doesn't fit the frame width. Every time
|
|
15
|
+
you pick a font-size, sanity-check against word length:
|
|
16
|
+
|
|
17
|
+
**Rough rule for Inter 900 uppercase at -0.03em tracking:**
|
|
18
|
+
`max_font_px ≈ frame_width / (longest_word_chars × 0.72)`
|
|
19
|
+
|
|
20
|
+
The 0.72 multiplier is intentionally conservative — it targets the text
|
|
21
|
+
filling ~90% of the frame width so there's a small side margin. If you
|
|
22
|
+
want edge-to-edge, drop to 0.65, but you lose a bit of safety margin.
|
|
23
|
+
|
|
24
|
+
720px portrait:
|
|
25
|
+
|
|
26
|
+
- 3-char word (15%): max ~330px (a single big number like "15%")
|
|
27
|
+
- 5-char word (TAKE): max ~200px
|
|
28
|
+
- 7-char word (AUGMENT / QUANTUM / MATTERS): max ~143px
|
|
29
|
+
- 10-char word (CREATIVITY): max ~100px
|
|
30
|
+
- 13-char word (UNPRECEDENTED): max ~77px
|
|
31
|
+
|
|
32
|
+
1920px landscape:
|
|
33
|
+
|
|
34
|
+
- 7-char word: max ~380px
|
|
35
|
+
- 10-char word: max ~267px
|
|
36
|
+
|
|
37
|
+
For italic/upright 500-700 it's slightly narrower — increase max by ~10%.
|
|
38
|
+
|
|
39
|
+
**If you want the word bigger than it fits:**
|
|
40
|
+
|
|
41
|
+
- Split into multiple words per group (natural wrap), OR
|
|
42
|
+
- Add explicit `<br>` between syllables, OR
|
|
43
|
+
- Drop letter-spacing to -0.05em, OR
|
|
44
|
+
- Accept that the matte will cut part of it (Vogue-cover embed effect —
|
|
45
|
+
only works when the cut area is exactly where the subject is)
|
|
46
|
+
|
|
47
|
+
Never let the text OVERFLOW the frame edge — that's not cinematic, that's
|
|
48
|
+
just broken. Use the heuristic.
|
|
49
|
+
|
|
50
|
+
## Sizing discipline (frame-height-relative)
|
|
51
|
+
|
|
52
|
+
Portrait 9:16 (720×1290) and landscape 16:9 (1920×1080) have very
|
|
53
|
+
different comfort ranges. Use `calc(<pct> * var(--h))` for responsive:
|
|
54
|
+
|
|
55
|
+
| Feel | % of frame height | Example calc |
|
|
56
|
+
| ---------------------- | ----------------- | ----------------------- |
|
|
57
|
+
| Whisper / label | 4-6% | `calc(0.05 * var(--h))` |
|
|
58
|
+
| Soft opener | 6-9% | `calc(0.07 * var(--h))` |
|
|
59
|
+
| Narrative body | 9-14% | `calc(0.11 * var(--h))` |
|
|
60
|
+
| Emphasis | 14-22% | `calc(0.18 * var(--h))` |
|
|
61
|
+
| Climax / monumental | 22-35% | `calc(0.28 * var(--h))` |
|
|
62
|
+
| Title-bigger-than-face | 40%+ | `calc(0.48 * var(--h))` |
|
|
63
|
+
|
|
64
|
+
Use absolute px only when a specific scale needs to look identical
|
|
65
|
+
across frame sizes (rare). Prefer `calc` + `var(--h)`.
|
|
66
|
+
|
|
67
|
+
## Named moves — pick per group
|
|
68
|
+
|
|
69
|
+
**Italic contemplative opener** (memory-wall cap-1 lineage):
|
|
70
|
+
|
|
71
|
+
```css
|
|
72
|
+
font-weight: 600;
|
|
73
|
+
font-style: italic;
|
|
74
|
+
letter-spacing: -0.01em;
|
|
75
|
+
font-size: calc(0.075 * var(--h));
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Italic continuation / dreamier continuation** (cap-2 lineage):
|
|
79
|
+
|
|
80
|
+
```css
|
|
81
|
+
font-weight: 500;
|
|
82
|
+
font-style: italic;
|
|
83
|
+
letter-spacing: -0.005em;
|
|
84
|
+
font-size: calc(0.065 * var(--h));
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Upright pivot / statement** (cap-3 lineage — "but suddenly"):
|
|
88
|
+
|
|
89
|
+
```css
|
|
90
|
+
font-weight: 700;
|
|
91
|
+
letter-spacing: -0.015em;
|
|
92
|
+
font-size: calc(0.07 * var(--h));
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**Uppercase climax / monumental** (cap-4 lineage — "EVERYTHING IS SHARP AGAIN"):
|
|
96
|
+
|
|
97
|
+
```css
|
|
98
|
+
font-weight: 900;
|
|
99
|
+
text-transform: uppercase;
|
|
100
|
+
letter-spacing: -0.03em;
|
|
101
|
+
line-height: 0.95;
|
|
102
|
+
font-size: calc(0.18 * var(--h));
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Chapter card / full-frame Adam Curtis manifesto**:
|
|
106
|
+
|
|
107
|
+
```css
|
|
108
|
+
font-weight: 700;
|
|
109
|
+
text-transform: uppercase;
|
|
110
|
+
letter-spacing: -0.015em;
|
|
111
|
+
line-height: 0.9;
|
|
112
|
+
font-size: calc(0.14 * var(--h));
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**News chyron / broadcast label** (small, locked):
|
|
116
|
+
|
|
117
|
+
```css
|
|
118
|
+
font-weight: 500;
|
|
119
|
+
letter-spacing: 0.02em;
|
|
120
|
+
font-size: calc(0.038 * var(--h));
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
**Tiny side note / caption-on-surface**:
|
|
124
|
+
|
|
125
|
+
```css
|
|
126
|
+
font-weight: 400;
|
|
127
|
+
font-style: italic;
|
|
128
|
+
font-size: calc(0.045 * var(--h));
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Vogue-masthead monumental**:
|
|
132
|
+
|
|
133
|
+
```css
|
|
134
|
+
font-weight: 900;
|
|
135
|
+
text-transform: uppercase;
|
|
136
|
+
letter-spacing: -0.04em;
|
|
137
|
+
line-height: 0.85;
|
|
138
|
+
font-size: calc(0.32 * var(--h));
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Narrative arcs (suggestions, not required)
|
|
142
|
+
|
|
143
|
+
**Poem arc** — memory-wall canonical: italic opener → italic continuation
|
|
144
|
+
→ upright pivot → uppercase climax. Four steps.
|
|
145
|
+
|
|
146
|
+
**Question-answer arc**: italic question small → uppercase answer big.
|
|
147
|
+
Two steps.
|
|
148
|
+
|
|
149
|
+
**List-of-three arc**: three equal-weight narration segments, one
|
|
150
|
+
climactic uppercase. Four steps.
|
|
151
|
+
|
|
152
|
+
**Single-statement arc**: one monumental uppercase held long. One step.
|
|
153
|
+
|
|
154
|
+
**Whisper-hook arc** (short-form): tiny italic hook → massive uppercase
|
|
155
|
+
reveal. Two steps.
|
|
156
|
+
|
|
157
|
+
The **number** of groups comes from the **content**. A 25s Pausch talk
|
|
158
|
+
has ~8 beats. A 7s TikTok hook has 2-3 beats. Don't force 4 or 5 or 7 —
|
|
159
|
+
read the transcript and mark breath-groups.
|
|
160
|
+
|
|
161
|
+
## Position + layer vocabulary
|
|
162
|
+
|
|
163
|
+
**Position** is where the caption lives in frame. Use:
|
|
164
|
+
|
|
165
|
+
- `top / left / right / bottom` (percentages or px) for anchor
|
|
166
|
+
- `transform: translateX/Y` for fine offsets
|
|
167
|
+
- `text-align: center / left / right` for alignment
|
|
168
|
+
|
|
169
|
+
**Layer** per group:
|
|
170
|
+
|
|
171
|
+
- `bg` (default) — behind subject. Matte occludes. Cinematic embed. Works
|
|
172
|
+
on clean zones (sky, walls) OR intentionally crosses subject for the
|
|
173
|
+
Vogue-masthead effect.
|
|
174
|
+
- `fg` — on top of subject. Announcement. Use for climax breakthroughs or
|
|
175
|
+
when bg would be 100% occluded by body.
|
|
176
|
+
|
|
177
|
+
**Tone** per group:
|
|
178
|
+
|
|
179
|
+
- `soft` — gentle per-word opacity+y drift (0.45s power2.out). Use for
|
|
180
|
+
introspective, dreamy, or narrative content.
|
|
181
|
+
- `present` — snappy per-word opacity+y+scale pop (0.22s power3.out). Use
|
|
182
|
+
for emphatic or declarative beats.
|
|
183
|
+
|
|
184
|
+
## Anti-patterns the DNA protects against
|
|
185
|
+
|
|
186
|
+
The DNA defaults prevent most ugly outcomes. But avoid in per-group CSS:
|
|
187
|
+
|
|
188
|
+
- Multiple different `font-family` within one video (DNA is one family)
|
|
189
|
+
- Multiple saturated colors (one accent at most; DNA defaults cream or
|
|
190
|
+
deep warm)
|
|
191
|
+
- `letter-spacing` above ±0.05em unless there's a specific reason
|
|
192
|
+
- `font-weight` 300 or below — too light for screen
|
|
193
|
+
- `font-style: italic` on emphasis — italic is for lyricism, not stress
|
|
194
|
+
|
|
195
|
+
## When cinematic-cream is wrong
|
|
196
|
+
|
|
197
|
+
This DNA assumes mid-to-dark backgrounds (luminance 60-180). For:
|
|
198
|
+
|
|
199
|
+
- Bright white studios → cinematic-cream's cream + `screen` washes out, and the DNA is
|
|
200
|
+
**locked** (you cannot recolour it) → use **Standard mode** (opaque rail) instead
|
|
201
|
+
- Documentary formal → Standard mode (documentary-dignified direction; see references/direction-catalog.md §1)
|
|
202
|
+
- Energetic vlog hooks → future `kinetic-vlog` DNA (not yet shipped)
|
|
203
|
+
|
|
204
|
+
## Example: memory-wall original, expressed in freeform
|
|
205
|
+
|
|
206
|
+
Same output as the canonical memory-wall.html, but using slot-free plan:
|
|
207
|
+
|
|
208
|
+
```json
|
|
209
|
+
{
|
|
210
|
+
"template": "cinematic-cream",
|
|
211
|
+
"caption_layer": "bg",
|
|
212
|
+
"groups": [
|
|
213
|
+
{
|
|
214
|
+
"id": "cg-0",
|
|
215
|
+
"tone": "soft",
|
|
216
|
+
"in": 0.2,
|
|
217
|
+
"out": 4.85,
|
|
218
|
+
"css": "top: 14%; right: 6%; left: auto; text-align: right; font-size: calc(0.09 * var(--h)); font-weight: 600; font-style: italic; letter-spacing: -0.01em;",
|
|
219
|
+
"words": [
|
|
220
|
+
{ "text": "Some", "start": 0.24, "end": 0.44 },
|
|
221
|
+
{ "text": "memories", "start": 0.48, "end": 0.82 },
|
|
222
|
+
{ "text": "feel", "start": 0.92, "end": 1.14 },
|
|
223
|
+
{ "text": "soft", "start": 1.2, "end": 1.64 }
|
|
224
|
+
]
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"id": "cg-1",
|
|
228
|
+
"tone": "soft",
|
|
229
|
+
"in": 2.55,
|
|
230
|
+
"out": 4.85,
|
|
231
|
+
"css": "top: 26%; right: 10%; left: auto; text-align: right; font-size: calc(0.075 * var(--h)); font-weight: 500; font-style: italic;",
|
|
232
|
+
"words": [
|
|
233
|
+
{ "text": "like", "start": 2.66, "end": 2.78 },
|
|
234
|
+
{ "text": "old", "start": 2.88, "end": 3.02 },
|
|
235
|
+
{ "text": "film", "start": 3.16, "end": 3.46 }
|
|
236
|
+
]
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"id": "cg-2",
|
|
240
|
+
"tone": "present",
|
|
241
|
+
"in": 4.9,
|
|
242
|
+
"out": 8.04,
|
|
243
|
+
"css": "top: 18%; right: 6%; left: auto; text-align: right; font-size: calc(0.085 * var(--h)); font-weight: 700;",
|
|
244
|
+
"words": [
|
|
245
|
+
{ "text": "but", "start": 5.04, "end": 5.18 },
|
|
246
|
+
{ "text": "suddenly", "start": 5.24, "end": 5.76 }
|
|
247
|
+
]
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"id": "cg-3",
|
|
251
|
+
"tone": "present",
|
|
252
|
+
"in": 6.7,
|
|
253
|
+
"out": 8.04,
|
|
254
|
+
"css": "top: 32%; right: 6%; left: auto; text-align: right; font-size: calc(0.11 * var(--h)); font-weight: 900; text-transform: uppercase; letter-spacing: -0.03em; line-height: 0.95;",
|
|
255
|
+
"words": [
|
|
256
|
+
{ "text": "everything", "start": 6.82, "end": 7.14 },
|
|
257
|
+
{ "text": "is", "start": 7.18, "end": 7.28 },
|
|
258
|
+
{ "text": "sharp", "start": 7.32, "end": 7.52 },
|
|
259
|
+
{ "text": "again", "start": 7.58, "end": 7.92 }
|
|
260
|
+
]
|
|
261
|
+
}
|
|
262
|
+
]
|
|
263
|
+
}
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
Same visual, no slot constraint. Each group owns its typography.
|
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
# Typography Presets
|
|
2
|
-
|
|
3
|
-
Five named styles corresponding to the `cap-*` CSS classes. Pick one per caption group in `plan.json` based on the line's semantic role.
|
|
4
|
-
|
|
5
|
-
| style | CSS | Use when |
|
|
6
|
-
| -------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
|
|
7
|
-
| `intro` | 66px italic 500 | First line, filler ("You know…", "So…"), contemplative openings. Low visual weight. |
|
|
8
|
-
| `phrase` | 78px upright 600 | Main statement clauses. Default for most lines. |
|
|
9
|
-
| `emph` | 92px upright 800 | Lines with emotional peak or key achievement ("I've achieved incredible things"). |
|
|
10
|
-
| `dream` | 82px italic 700 | Aspirational / "was dreaming of…" style lines. Italic signals memory/imagination. |
|
|
11
|
-
| `crown` | 140px upright 900 uppercase | **Only for the climax line.** Used in center-stage `crown-plane`. Maximum one per composition — ideally the last caption. |
|
|
12
|
-
|
|
13
|
-
## Tone field
|
|
14
|
-
|
|
15
|
-
Independent of style, each group has `tone`: `soft` or `present`.
|
|
16
|
-
|
|
17
|
-
- **soft** — gentle fade + 8px y-drift entrance, `power2.out` ease. Feels floaty, nostalgic. Use for memory, intro, dream.
|
|
18
|
-
- **present** — snappy 6px y + 1.04 scale pop, `power3.out`, transformOrigin center. Feels assertive, in-the-moment. Use for emphasis and crown.
|
|
19
|
-
|
|
20
|
-
## Picking automatically
|
|
21
|
-
|
|
22
|
-
Scan each group's words:
|
|
23
|
-
|
|
24
|
-
1. Does it contain superlatives (incredible, best, only, never, always) or brand/proper nouns? → `emph` + `present`
|
|
25
|
-
2. Does it start with discourse markers (you know, so, well, look) or is it short (≤3 words)? → `intro` + `soft`
|
|
26
|
-
3. Does it reference dreams, hopes, memory, past tense verbs like "was dreaming"? → `dream` + `soft`
|
|
27
|
-
4. Is it the final sentence-clinching line and feels like a title/headline? → `crown` + `present` (only one per video)
|
|
28
|
-
5. Otherwise → `phrase` + (match the group's neighbors' tone; default `soft`)
|
|
29
|
-
|
|
30
|
-
## Font-size scales with column width
|
|
31
|
-
|
|
32
|
-
The `.cap-*` defaults in each template are tuned for a **~560px column** (the original champion composition). When the caption plane is wider than that, the fonts feel underweight — too much negative space around text. Scale up accordingly.
|
|
33
|
-
|
|
34
|
-
| Plane width | intro | phrase | emph | dream | crown (centered, full-frame) | crown (clean-zone only) |
|
|
35
|
-
| ------------------- | ----- | ------ | ---- | ----- | ---------------------------- | ----------------------- |
|
|
36
|
-
| 460-580 px (tight) | 66 | 78 | 92 | 82 | 140 | n/a |
|
|
37
|
-
| 600-760 px (medium) | 78 | 108 | 128 | 100 | 220 | 118 |
|
|
38
|
-
| 780+ px (wide) | 90 | 128 | 150 | 116 | 260 | 140 |
|
|
39
|
-
|
|
40
|
-
Notes:
|
|
41
|
-
|
|
42
|
-
- Crown sizes assume landscape (1920×1080). For portrait 1080×1920, divide all crown sizes by 1.5.
|
|
43
|
-
- "full-frame crown" = centered, designed to span `0.8+ × frame_width` and cross the subject's body. Use only when [layout-heuristics.md § Crown placement](layout-heuristics.md) conditions pass.
|
|
44
|
-
- "clean-zone only crown" = crown positioned inside one clean zone, smaller font, tail letters lightly touch subject. Fallback when centered crown would eat too much.
|
|
45
|
-
|
|
46
|
-
Also: if a plane's `rotateY` is non-trivial (say > 8°), effective visible width shrinks. Scale fonts up ~10% to compensate.
|
|
47
|
-
|
|
48
|
-
## What NOT to do
|
|
49
|
-
|
|
50
|
-
- Don't use more than **one crown** per render. The whole point is that it's a singular payoff.
|
|
51
|
-
- Don't use `emph` on more than ~30% of groups. Emphasis loses meaning when everything is emphasized.
|
|
52
|
-
- Don't pick `intro` for the main content just because the words are short. "I won" (2 words) is `emph` or `crown`, not `intro`.
|
|
53
|
-
- Don't mix `soft` and `present` alternately for no reason. Tone should follow the story arc: soft opening → present build → emph peak → (optional crown climax).
|
|
54
|
-
|
|
55
|
-
## When scene luminance affects color choice
|
|
56
|
-
|
|
57
|
-
The default color is warm bone-white (`#fff5df`). Adjust in the template CSS:
|
|
58
|
-
|
|
59
|
-
- Wall is mostly warm wood / tan → keep default, or shift cooler `#e8f0ff`
|
|
60
|
-
- Wall is cool blue / tech-lab → push warmer `#fff0c0`
|
|
61
|
-
- Wall has strong primary color → desaturate default, luminance first
|
|
62
|
-
|
|
63
|
-
These adjustments happen in the HTML template, not plan.json. If you repeatedly need different palettes, make new template variants.
|
|
1
|
+
# Typography Presets
|
|
2
|
+
|
|
3
|
+
Five named styles corresponding to the `cap-*` CSS classes. Pick one per caption group in `plan.json` based on the line's semantic role.
|
|
4
|
+
|
|
5
|
+
| style | CSS | Use when |
|
|
6
|
+
| -------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
|
|
7
|
+
| `intro` | 66px italic 500 | First line, filler ("You know…", "So…"), contemplative openings. Low visual weight. |
|
|
8
|
+
| `phrase` | 78px upright 600 | Main statement clauses. Default for most lines. |
|
|
9
|
+
| `emph` | 92px upright 800 | Lines with emotional peak or key achievement ("I've achieved incredible things"). |
|
|
10
|
+
| `dream` | 82px italic 700 | Aspirational / "was dreaming of…" style lines. Italic signals memory/imagination. |
|
|
11
|
+
| `crown` | 140px upright 900 uppercase | **Only for the climax line.** Used in center-stage `crown-plane`. Maximum one per composition — ideally the last caption. |
|
|
12
|
+
|
|
13
|
+
## Tone field
|
|
14
|
+
|
|
15
|
+
Independent of style, each group has `tone`: `soft` or `present`.
|
|
16
|
+
|
|
17
|
+
- **soft** — gentle fade + 8px y-drift entrance, `power2.out` ease. Feels floaty, nostalgic. Use for memory, intro, dream.
|
|
18
|
+
- **present** — snappy 6px y + 1.04 scale pop, `power3.out`, transformOrigin center. Feels assertive, in-the-moment. Use for emphasis and crown.
|
|
19
|
+
|
|
20
|
+
## Picking automatically
|
|
21
|
+
|
|
22
|
+
Scan each group's words:
|
|
23
|
+
|
|
24
|
+
1. Does it contain superlatives (incredible, best, only, never, always) or brand/proper nouns? → `emph` + `present`
|
|
25
|
+
2. Does it start with discourse markers (you know, so, well, look) or is it short (≤3 words)? → `intro` + `soft`
|
|
26
|
+
3. Does it reference dreams, hopes, memory, past tense verbs like "was dreaming"? → `dream` + `soft`
|
|
27
|
+
4. Is it the final sentence-clinching line and feels like a title/headline? → `crown` + `present` (only one per video)
|
|
28
|
+
5. Otherwise → `phrase` + (match the group's neighbors' tone; default `soft`)
|
|
29
|
+
|
|
30
|
+
## Font-size scales with column width
|
|
31
|
+
|
|
32
|
+
The `.cap-*` defaults in each template are tuned for a **~560px column** (the original champion composition). When the caption plane is wider than that, the fonts feel underweight — too much negative space around text. Scale up accordingly.
|
|
33
|
+
|
|
34
|
+
| Plane width | intro | phrase | emph | dream | crown (centered, full-frame) | crown (clean-zone only) |
|
|
35
|
+
| ------------------- | ----- | ------ | ---- | ----- | ---------------------------- | ----------------------- |
|
|
36
|
+
| 460-580 px (tight) | 66 | 78 | 92 | 82 | 140 | n/a |
|
|
37
|
+
| 600-760 px (medium) | 78 | 108 | 128 | 100 | 220 | 118 |
|
|
38
|
+
| 780+ px (wide) | 90 | 128 | 150 | 116 | 260 | 140 |
|
|
39
|
+
|
|
40
|
+
Notes:
|
|
41
|
+
|
|
42
|
+
- Crown sizes assume landscape (1920×1080). For portrait 1080×1920, divide all crown sizes by 1.5.
|
|
43
|
+
- "full-frame crown" = centered, designed to span `0.8+ × frame_width` and cross the subject's body. Use only when [layout-heuristics.md § Crown placement](layout-heuristics.md) conditions pass.
|
|
44
|
+
- "clean-zone only crown" = crown positioned inside one clean zone, smaller font, tail letters lightly touch subject. Fallback when centered crown would eat too much.
|
|
45
|
+
|
|
46
|
+
Also: if a plane's `rotateY` is non-trivial (say > 8°), effective visible width shrinks. Scale fonts up ~10% to compensate.
|
|
47
|
+
|
|
48
|
+
## What NOT to do
|
|
49
|
+
|
|
50
|
+
- Don't use more than **one crown** per render. The whole point is that it's a singular payoff.
|
|
51
|
+
- Don't use `emph` on more than ~30% of groups. Emphasis loses meaning when everything is emphasized.
|
|
52
|
+
- Don't pick `intro` for the main content just because the words are short. "I won" (2 words) is `emph` or `crown`, not `intro`.
|
|
53
|
+
- Don't mix `soft` and `present` alternately for no reason. Tone should follow the story arc: soft opening → present build → emph peak → (optional crown climax).
|
|
54
|
+
|
|
55
|
+
## When scene luminance affects color choice
|
|
56
|
+
|
|
57
|
+
The default color is warm bone-white (`#fff5df`). Adjust in the template CSS:
|
|
58
|
+
|
|
59
|
+
- Wall is mostly warm wood / tan → keep default, or shift cooler `#e8f0ff`
|
|
60
|
+
- Wall is cool blue / tech-lab → push warmer `#fff0c0`
|
|
61
|
+
- Wall has strong primary color → desaturate default, luminance first
|
|
62
|
+
|
|
63
|
+
These adjustments happen in the HTML template, not plan.json. If you repeatedly need different palettes, make new template variants.
|