@mevdragon/vidfarm-devcli 0.14.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. package/.agents/skills/embedded-captions/CATALOG.md +93 -0
  2. package/.agents/skills/embedded-captions/SKILL.md +286 -0
  3. package/.agents/skills/embedded-captions/assets/brand/CDPR-fankit-terms.txt +35 -0
  4. package/.agents/skills/embedded-captions/assets/brand/cyberpunk-widths.json +115 -0
  5. package/.agents/skills/embedded-captions/assets/fonts/char-widths.json +2211 -0
  6. package/.agents/skills/embedded-captions/assets/strokefonts/HersheyScript1.svg +242 -0
  7. package/.agents/skills/embedded-captions/assets/strokefonts/HersheyScriptMed.svg +242 -0
  8. package/.agents/skills/embedded-captions/dna/README.md +148 -0
  9. package/.agents/skills/embedded-captions/dna/chrome.json +68 -0
  10. package/.agents/skills/embedded-captions/dna/cream.json +69 -0
  11. package/.agents/skills/embedded-captions/dna/documentary.json +62 -0
  12. package/.agents/skills/embedded-captions/dna/editorial.json +70 -0
  13. package/.agents/skills/embedded-captions/dna/glitch.json +82 -0
  14. package/.agents/skills/embedded-captions/dna/ink.json +65 -0
  15. package/.agents/skills/embedded-captions/dna/keynote.json +62 -0
  16. package/.agents/skills/embedded-captions/dna/loud.json +75 -0
  17. package/.agents/skills/embedded-captions/dna/neon.json +58 -0
  18. package/.agents/skills/embedded-captions/dna/velocity.json +89 -0
  19. package/.agents/skills/embedded-captions/modes/cinematic/README.md +48 -0
  20. package/.agents/skills/embedded-captions/modes/cinematic/_archive/champion/spec.md +98 -0
  21. package/.agents/skills/embedded-captions/modes/cinematic/_archive/champion/template.html +188 -0
  22. package/.agents/skills/embedded-captions/modes/cinematic/_archive/memory-wall/spec.md +134 -0
  23. package/.agents/skills/embedded-captions/modes/cinematic/_archive/memory-wall/template.html +179 -0
  24. package/.agents/skills/embedded-captions/modes/cinematic/_archive/portrait-header/spec.md +81 -0
  25. package/.agents/skills/embedded-captions/modes/cinematic/_archive/portrait-header/template.html +170 -0
  26. package/.agents/skills/embedded-captions/modes/cinematic/cinematic-cream/spec.md +16 -0
  27. package/.agents/skills/embedded-captions/modes/cinematic/cinematic-cream/template.html +226 -0
  28. package/.agents/skills/embedded-captions/modes/cinematic/engine.html +355 -0
  29. package/.agents/skills/embedded-captions/modes/standard/_anatomy.md +233 -0
  30. package/.agents/skills/embedded-captions/modes/standard/_motion.md +192 -0
  31. package/.agents/skills/embedded-captions/modes/standard/fonts/build-fonts-css.cjs +97 -0
  32. package/.agents/skills/embedded-captions/references/aesthetic-principles.md +168 -0
  33. package/.agents/skills/embedded-captions/references/anti-patterns.md +188 -0
  34. package/.agents/skills/embedded-captions/references/bespoke-vs-presets.md +178 -0
  35. package/.agents/skills/embedded-captions/references/caption-grouping.md +130 -0
  36. package/.agents/skills/embedded-captions/references/composition-craft.md +522 -0
  37. package/.agents/skills/embedded-captions/references/direction-catalog.md +138 -0
  38. package/.agents/skills/embedded-captions/references/example-renders/champion.html +371 -0
  39. package/.agents/skills/embedded-captions/references/example-renders/memory-wall.html +334 -0
  40. package/.agents/skills/embedded-captions/references/failure-modes.md +145 -0
  41. package/.agents/skills/embedded-captions/references/layout-heuristics.md +238 -0
  42. package/.agents/skills/embedded-captions/references/motion-vocabulary.md +148 -0
  43. package/.agents/skills/embedded-captions/references/rail.md +68 -0
  44. package/.agents/skills/embedded-captions/references/reference-bar.md +47 -0
  45. package/.agents/skills/embedded-captions/references/scene-types.md +94 -0
  46. package/.agents/skills/embedded-captions/references/test-set.md +66 -0
  47. package/.agents/skills/embedded-captions/references/typographic-moves.md +266 -0
  48. package/.agents/skills/embedded-captions/references/typography-presets.md +63 -0
  49. package/.agents/skills/embedded-captions/scripts/audio-envelope.cjs +95 -0
  50. package/.agents/skills/embedded-captions/scripts/check-occlusion.cjs +250 -0
  51. package/.agents/skills/embedded-captions/scripts/check-overflow.cjs +194 -0
  52. package/.agents/skills/embedded-captions/scripts/check-rail-climax.cjs +233 -0
  53. package/.agents/skills/embedded-captions/scripts/check-timing.cjs +173 -0
  54. package/.agents/skills/embedded-captions/scripts/fill-timings.cjs +124 -0
  55. package/.agents/skills/embedded-captions/scripts/fit-fonts.cjs +158 -0
  56. package/.agents/skills/embedded-captions/scripts/gen-stroke-path.py +46 -0
  57. package/.agents/skills/embedded-captions/scripts/inject-fonts.cjs +169 -0
  58. package/.agents/skills/embedded-captions/scripts/lib-dna.cjs +201 -0
  59. package/.agents/skills/embedded-captions/scripts/make-cinematic.cjs +1205 -0
  60. package/.agents/skills/embedded-captions/scripts/make-composition.cjs +404 -0
  61. package/.agents/skills/embedded-captions/scripts/make-theme.cjs +8781 -0
  62. package/.agents/skills/embedded-captions/scripts/matte.cjs +294 -0
  63. package/.agents/skills/embedded-captions/scripts/measure-layout.cjs +293 -0
  64. package/.agents/skills/embedded-captions/scripts/prepare.sh +39 -0
  65. package/.agents/skills/embedded-captions/scripts/preview-frames.cjs +268 -0
  66. package/.agents/skills/embedded-captions/scripts/render-and-composite.sh +509 -0
  67. package/.agents/skills/embedded-captions/scripts/render-theme.sh +34 -0
  68. package/.agents/skills/embedded-captions/scripts/safe-zones.cjs +813 -0
  69. package/.agents/skills/embedded-captions/scripts/transcribe.cjs +349 -0
  70. package/.agents/skills/embedded-captions/themes/PORTING.md +49 -0
  71. package/.agents/skills/embedded-captions/themes/README.md +244 -0
  72. package/.agents/skills/embedded-captions/themes/anchor.json +27 -0
  73. package/.agents/skills/embedded-captions/themes/arcade.json +51 -0
  74. package/.agents/skills/embedded-captions/themes/aurora.json +41 -0
  75. package/.agents/skills/embedded-captions/themes/biolume.json +35 -0
  76. package/.agents/skills/embedded-captions/themes/brush.json +74 -0
  77. package/.agents/skills/embedded-captions/themes/chalkboard.json +52 -0
  78. package/.agents/skills/embedded-captions/themes/dossier.json +56 -0
  79. package/.agents/skills/embedded-captions/themes/graffiti.json +62 -0
  80. package/.agents/skills/embedded-captions/themes/hologram.json +41 -0
  81. package/.agents/skills/embedded-captions/themes/inkwater.json +43 -0
  82. package/.agents/skills/embedded-captions/themes/laser.json +46 -0
  83. package/.agents/skills/embedded-captions/themes/lastpage.json +33 -0
  84. package/.agents/skills/embedded-captions/themes/neonsign.json +53 -0
  85. package/.agents/skills/embedded-captions/themes/nightcity.json +56 -0
  86. package/.agents/skills/embedded-captions/themes/ordnance.json +54 -0
  87. package/.agents/skills/embedded-captions/themes/papercut.json +37 -0
  88. package/.agents/skills/embedded-captions/themes/popup.json +46 -0
  89. package/.agents/skills/embedded-captions/themes/ransom.json +62 -0
  90. package/.agents/skills/embedded-captions/themes/scoreboard.json +54 -0
  91. package/.agents/skills/embedded-captions/themes/spectrum.json +46 -0
  92. package/.agents/skills/embedded-captions/themes/stardust.json +29 -0
  93. package/.agents/skills/embedded-captions/themes/stomp.json +43 -0
  94. package/.agents/skills/embedded-captions/themes/terminal.json +49 -0
  95. package/.agents/skills/embedded-captions/themes/thunder.json +44 -0
  96. package/.agents/skills/embedded-captions/themes/transit.json +44 -0
  97. package/.agents/skills/embedded-captions/themes/vhs.json +47 -0
  98. package/.agents/skills/faceless-explainer/SKILL.md +209 -0
  99. package/.agents/skills/faceless-explainer/references/cut-catalog.md +215 -0
  100. package/.agents/skills/faceless-explainer/references/motion-language.md +156 -0
  101. package/.agents/skills/faceless-explainer/references/story-design.md +248 -0
  102. package/.agents/skills/faceless-explainer/references/visual-design.md +146 -0
  103. package/.agents/skills/faceless-explainer/scripts/assemble-index.mjs +570 -0
  104. package/.agents/skills/faceless-explainer/scripts/audio.mjs +260 -0
  105. package/.agents/skills/faceless-explainer/scripts/build-frame.mjs +536 -0
  106. package/.agents/skills/faceless-explainer/scripts/captions.mjs +508 -0
  107. package/.agents/skills/faceless-explainer/scripts/lib/assets.mjs +55 -0
  108. package/.agents/skills/faceless-explainer/scripts/lib/dimensions.mjs +45 -0
  109. package/.agents/skills/faceless-explainer/scripts/lib/storyboard.mjs +249 -0
  110. package/.agents/skills/faceless-explainer/scripts/lib/tokens.mjs +204 -0
  111. package/.agents/skills/faceless-explainer/scripts/lib/transition-registry.mjs +38 -0
  112. package/.agents/skills/faceless-explainer/scripts/lib/transitions.json +71 -0
  113. package/.agents/skills/faceless-explainer/scripts/transitions.mjs +320 -0
  114. package/.agents/skills/faceless-explainer/sub-agents/frame-worker.md +75 -0
  115. package/.agents/skills/flockposter/LICENSE +17 -0
  116. package/.agents/skills/flockposter/README.md +72 -0
  117. package/.agents/skills/flockposter/SKILL.md +562 -0
  118. package/.agents/skills/flockposter/examples/cli-instagram-reel.sh +21 -0
  119. package/.agents/skills/flockposter/examples/cli-multi-platform.json +69 -0
  120. package/.agents/skills/flockposter/examples/cli-tiktok-upload-only.sh +22 -0
  121. package/.agents/skills/flockposter/examples/cli-x-thread.sh +17 -0
  122. package/.agents/skills/flockposter/examples/cli-youtube-short.sh +21 -0
  123. package/.agents/skills/flockposter/examples/public-api-instagram-reel.json +28 -0
  124. package/.agents/skills/general-video/SKILL.md +143 -0
  125. package/.agents/skills/hyperframes/SKILL.md +160 -0
  126. package/.agents/skills/hyperframes-animation/SKILL.md +84 -0
  127. package/.agents/skills/hyperframes-animation/adapters/animate-text.md +64 -0
  128. package/.agents/skills/hyperframes-animation/adapters/animejs.md +114 -0
  129. package/.agents/skills/hyperframes-animation/adapters/css-animations.md +143 -0
  130. package/.agents/skills/hyperframes-animation/adapters/gsap-easing-and-stagger.md +118 -0
  131. package/.agents/skills/hyperframes-animation/adapters/gsap-timeline-and-labels.md +96 -0
  132. package/.agents/skills/hyperframes-animation/adapters/gsap-transforms-and-perf.md +96 -0
  133. package/.agents/skills/hyperframes-animation/adapters/gsap.md +105 -0
  134. package/.agents/skills/hyperframes-animation/adapters/html-in-canvas-patterns.md +507 -0
  135. package/.agents/skills/hyperframes-animation/adapters/lottie.md +117 -0
  136. package/.agents/skills/hyperframes-animation/adapters/three.md +131 -0
  137. package/.agents/skills/hyperframes-animation/adapters/typegpu.md +178 -0
  138. package/.agents/skills/hyperframes-animation/adapters/waapi.md +101 -0
  139. package/.agents/skills/hyperframes-animation/blueprints/comparison-split.md +27 -0
  140. package/.agents/skills/hyperframes-animation/blueprints/constellation-hub.md +44 -0
  141. package/.agents/skills/hyperframes-animation/blueprints/cta-morph-press.md +28 -0
  142. package/.agents/skills/hyperframes-animation/blueprints/cursor-ui-demo.md +57 -0
  143. package/.agents/skills/hyperframes-animation/blueprints/dataviz-countup.md +46 -0
  144. package/.agents/skills/hyperframes-animation/blueprints/device-surface-showcase.md +53 -0
  145. package/.agents/skills/hyperframes-animation/blueprints/grid-card-assemble.md +66 -0
  146. package/.agents/skills/hyperframes-animation/blueprints/kinetic-type-beats.md +78 -0
  147. package/.agents/skills/hyperframes-animation/blueprints/logo-assemble-lockup.md +69 -0
  148. package/.agents/skills/hyperframes-animation/blueprints/overwhelm-surround.md +28 -0
  149. package/.agents/skills/hyperframes-animation/blueprints/spatial-pan-stations.md +37 -0
  150. package/.agents/skills/hyperframes-animation/blueprints/ticker-takeover.md +29 -0
  151. package/.agents/skills/hyperframes-animation/blueprints/titlecard-reveal.md +42 -0
  152. package/.agents/skills/hyperframes-animation/blueprints/typewriter-reveal.md +51 -0
  153. package/.agents/skills/hyperframes-animation/blueprints/video-text-pivot.md +30 -0
  154. package/.agents/skills/hyperframes-animation/blueprints-index.md +146 -0
  155. package/.agents/skills/hyperframes-animation/examples/assets/avatars/02.avif +0 -0
  156. package/.agents/skills/hyperframes-animation/examples/assets/brands/github.avif +0 -0
  157. package/.agents/skills/hyperframes-animation/examples/assets/brands/nvidia.avif +0 -0
  158. package/.agents/skills/hyperframes-animation/examples/assets/brands/visa.avif +0 -0
  159. package/.agents/skills/hyperframes-animation/examples/assets/brands/zoominfo.avif +0 -0
  160. package/.agents/skills/hyperframes-animation/examples/brand-reveal-assemble-zoom.html +382 -0
  161. package/.agents/skills/hyperframes-animation/examples/comparison-split-cards.html +649 -0
  162. package/.agents/skills/hyperframes-animation/examples/concept-demo-decode-pan.html +520 -0
  163. package/.agents/skills/hyperframes-animation/examples/cta-morph-press.html +468 -0
  164. package/.agents/skills/hyperframes-animation/examples/cta-orbit-collapse.html +1298 -0
  165. package/.agents/skills/hyperframes-animation/examples/demo-page-scroll-spotlight.html +759 -0
  166. package/.agents/skills/hyperframes-animation/examples/hook-counter-burst.html +729 -0
  167. package/.agents/skills/hyperframes-animation/examples/messaging-multi-phrase.html +352 -0
  168. package/.agents/skills/hyperframes-animation/examples/metric-video-text-pivot.html +779 -0
  169. package/.agents/skills/hyperframes-animation/examples/problem-mockup-overwhelm.html +1374 -0
  170. package/.agents/skills/hyperframes-animation/examples/proof-logo-chain.html +861 -0
  171. package/.agents/skills/hyperframes-animation/examples/takeover-ticker-displace.html +347 -0
  172. package/.agents/skills/hyperframes-animation/examples/workflow-approve-press.html +606 -0
  173. package/.agents/skills/hyperframes-animation/rules/3d-page-scroll.md +227 -0
  174. package/.agents/skills/hyperframes-animation/rules/3d-text-depth-layers.md +297 -0
  175. package/.agents/skills/hyperframes-animation/rules/ai-tracking-box.md +382 -0
  176. package/.agents/skills/hyperframes-animation/rules/ambient-glow-bloom.md +305 -0
  177. package/.agents/skills/hyperframes-animation/rules/asr-keyword-glow.md +286 -0
  178. package/.agents/skills/hyperframes-animation/rules/avatar-cloud-network.md +371 -0
  179. package/.agents/skills/hyperframes-animation/rules/camera-cursor-tracking.md +246 -0
  180. package/.agents/skills/hyperframes-animation/rules/card-morph-anchor.md +267 -0
  181. package/.agents/skills/hyperframes-animation/rules/center-outward-expansion.md +227 -0
  182. package/.agents/skills/hyperframes-animation/rules/context-sensitive-cursor.md +257 -0
  183. package/.agents/skills/hyperframes-animation/rules/coordinate-target-zoom.md +332 -0
  184. package/.agents/skills/hyperframes-animation/rules/counting-dynamic-scale.md +283 -0
  185. package/.agents/skills/hyperframes-animation/rules/css-marker-patterns.md +373 -0
  186. package/.agents/skills/hyperframes-animation/rules/cursor-click-ripple.md +262 -0
  187. package/.agents/skills/hyperframes-animation/rules/depth-of-field-blur.md +313 -0
  188. package/.agents/skills/hyperframes-animation/rules/depth-scatter-assemble.md +303 -0
  189. package/.agents/skills/hyperframes-animation/rules/discrete-text-sequence.md +273 -0
  190. package/.agents/skills/hyperframes-animation/rules/dynamic-content-sequencing.md +307 -0
  191. package/.agents/skills/hyperframes-animation/rules/gsap-effects.md +299 -0
  192. package/.agents/skills/hyperframes-animation/rules/hacker-flip-3d.md +223 -0
  193. package/.agents/skills/hyperframes-animation/rules/kinetic-beat-slam.md +183 -0
  194. package/.agents/skills/hyperframes-animation/rules/motion-blur-streak.md +328 -0
  195. package/.agents/skills/hyperframes-animation/rules/multi-phase-camera.md +273 -0
  196. package/.agents/skills/hyperframes-animation/rules/orbit-3d-entry.md +301 -0
  197. package/.agents/skills/hyperframes-animation/rules/physics-press-reaction.md +350 -0
  198. package/.agents/skills/hyperframes-animation/rules/press-release-spring.md +296 -0
  199. package/.agents/skills/hyperframes-animation/rules/reactive-displacement.md +277 -0
  200. package/.agents/skills/hyperframes-animation/rules/scale-swap-transition.md +298 -0
  201. package/.agents/skills/hyperframes-animation/rules/sine-wave-loop.md +278 -0
  202. package/.agents/skills/hyperframes-animation/rules/split-tilt-cards.md +277 -0
  203. package/.agents/skills/hyperframes-animation/rules/spring-pop-entrance.md +273 -0
  204. package/.agents/skills/hyperframes-animation/rules/stat-bars-and-fills.md +156 -0
  205. package/.agents/skills/hyperframes-animation/rules/svg-icon-enrichment.md +329 -0
  206. package/.agents/skills/hyperframes-animation/rules/svg-path-draw.md +274 -0
  207. package/.agents/skills/hyperframes-animation/rules/vertical-spring-ticker.md +239 -0
  208. package/.agents/skills/hyperframes-animation/rules/viewport-change.md +349 -0
  209. package/.agents/skills/hyperframes-animation/rules-index.md +86 -0
  210. package/.agents/skills/hyperframes-animation/scripts/animation-map.mjs +606 -0
  211. package/.agents/skills/hyperframes-animation/scripts/package-loader.mjs +288 -0
  212. package/.agents/skills/hyperframes-animation/scripts/package-loader.test.mjs +62 -0
  213. package/.agents/skills/hyperframes-animation/techniques.md +507 -0
  214. package/.agents/skills/hyperframes-animation/transitions/TRANSITION-REGISTRY.md +167 -0
  215. package/.agents/skills/hyperframes-animation/transitions/catalog.md +127 -0
  216. package/.agents/skills/hyperframes-animation/transitions/css-3d.md +12 -0
  217. package/.agents/skills/hyperframes-animation/transitions/css-blur.md +51 -0
  218. package/.agents/skills/hyperframes-animation/transitions/css-cover.md +43 -0
  219. package/.agents/skills/hyperframes-animation/transitions/css-destruction.md +95 -0
  220. package/.agents/skills/hyperframes-animation/transitions/css-dissolve.md +66 -0
  221. package/.agents/skills/hyperframes-animation/transitions/css-distortion.md +45 -0
  222. package/.agents/skills/hyperframes-animation/transitions/css-grid.md +10 -0
  223. package/.agents/skills/hyperframes-animation/transitions/css-light.md +49 -0
  224. package/.agents/skills/hyperframes-animation/transitions/css-mechanical.md +30 -0
  225. package/.agents/skills/hyperframes-animation/transitions/css-other.md +25 -0
  226. package/.agents/skills/hyperframes-animation/transitions/css-push.md +41 -0
  227. package/.agents/skills/hyperframes-animation/transitions/css-radial.md +37 -0
  228. package/.agents/skills/hyperframes-animation/transitions/css-scale.md +24 -0
  229. package/.agents/skills/hyperframes-animation/transitions/overview.md +153 -0
  230. package/.agents/skills/hyperframes-cli/SKILL.md +113 -0
  231. package/.agents/skills/hyperframes-cli/references/doctor-browser.md +45 -0
  232. package/.agents/skills/hyperframes-cli/references/init-and-scaffold.md +55 -0
  233. package/.agents/skills/hyperframes-cli/references/lambda.md +132 -0
  234. package/.agents/skills/hyperframes-cli/references/lint-validate-inspect.md +121 -0
  235. package/.agents/skills/hyperframes-cli/references/preview-render.md +149 -0
  236. package/.agents/skills/hyperframes-cli/references/upgrade-info-misc.md +75 -0
  237. package/.agents/skills/hyperframes-core/SKILL.md +78 -0
  238. package/.agents/skills/hyperframes-core/references/composition-patterns.md +263 -0
  239. package/.agents/skills/hyperframes-core/references/data-attributes.md +70 -0
  240. package/.agents/skills/hyperframes-core/references/determinism-rules.md +68 -0
  241. package/.agents/skills/hyperframes-core/references/full-screen-motion.md +62 -0
  242. package/.agents/skills/hyperframes-core/references/minimal-composition.md +66 -0
  243. package/.agents/skills/hyperframes-core/references/script-format.md +49 -0
  244. package/.agents/skills/hyperframes-core/references/storyboard-format.md +95 -0
  245. package/.agents/skills/hyperframes-core/references/sub-compositions.md +237 -0
  246. package/.agents/skills/hyperframes-core/references/subagent-dispatch.md +41 -0
  247. package/.agents/skills/hyperframes-core/references/tailwind.md +125 -0
  248. package/.agents/skills/hyperframes-core/references/tracks-and-clips.md +76 -0
  249. package/.agents/skills/hyperframes-core/references/variables-and-media.md +90 -0
  250. package/.agents/skills/hyperframes-creative/SKILL.md +70 -0
  251. package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/FRAME.md +289 -0
  252. package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/caption-skin.html +221 -0
  253. package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/frame-showcase.html +1214 -0
  254. package/.agents/skills/hyperframes-creative/frame-presets/blockframe/FRAME.md +275 -0
  255. package/.agents/skills/hyperframes-creative/frame-presets/blockframe/caption-skin.html +224 -0
  256. package/.agents/skills/hyperframes-creative/frame-presets/blockframe/frame-showcase.html +1347 -0
  257. package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/FRAME.md +307 -0
  258. package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/caption-skin.html +223 -0
  259. package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/frame-showcase.html +1372 -0
  260. package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/FRAME.md +275 -0
  261. package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/caption-skin.html +230 -0
  262. package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/frame-showcase.html +1140 -0
  263. package/.agents/skills/hyperframes-creative/frame-presets/broadside/FRAME.md +284 -0
  264. package/.agents/skills/hyperframes-creative/frame-presets/broadside/caption-skin.html +225 -0
  265. package/.agents/skills/hyperframes-creative/frame-presets/broadside/frame-showcase.html +1166 -0
  266. package/.agents/skills/hyperframes-creative/frame-presets/capsule/FRAME.md +284 -0
  267. package/.agents/skills/hyperframes-creative/frame-presets/capsule/caption-skin.html +224 -0
  268. package/.agents/skills/hyperframes-creative/frame-presets/capsule/frame-showcase.html +1465 -0
  269. package/.agents/skills/hyperframes-creative/frame-presets/cartesian/FRAME.md +278 -0
  270. package/.agents/skills/hyperframes-creative/frame-presets/cartesian/caption-skin.html +222 -0
  271. package/.agents/skills/hyperframes-creative/frame-presets/cartesian/frame-showcase.html +1263 -0
  272. package/.agents/skills/hyperframes-creative/frame-presets/claude/FRAME.md +277 -0
  273. package/.agents/skills/hyperframes-creative/frame-presets/claude/caption-skin.html +224 -0
  274. package/.agents/skills/hyperframes-creative/frame-presets/claude/frame-showcase.html +1439 -0
  275. package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/FRAME.md +265 -0
  276. package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/caption-skin.html +238 -0
  277. package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/frame-showcase.html +1468 -0
  278. package/.agents/skills/hyperframes-creative/frame-presets/coral/FRAME.md +314 -0
  279. package/.agents/skills/hyperframes-creative/frame-presets/coral/caption-skin.html +226 -0
  280. package/.agents/skills/hyperframes-creative/frame-presets/coral/frame-showcase.html +1268 -0
  281. package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/FRAME.md +333 -0
  282. package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/caption-skin.html +227 -0
  283. package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/frame-showcase.html +1330 -0
  284. package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/FRAME.md +274 -0
  285. package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/caption-skin.html +230 -0
  286. package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/frame-showcase.html +1444 -0
  287. package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/FRAME.md +265 -0
  288. package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/caption-skin.html +223 -0
  289. package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/frame-showcase.html +1273 -0
  290. package/.agents/skills/hyperframes-creative/palettes/bold-energetic.md +14 -0
  291. package/.agents/skills/hyperframes-creative/palettes/clean-corporate.md +14 -0
  292. package/.agents/skills/hyperframes-creative/palettes/dark-premium.md +14 -0
  293. package/.agents/skills/hyperframes-creative/palettes/jewel-rich.md +14 -0
  294. package/.agents/skills/hyperframes-creative/palettes/monochrome.md +14 -0
  295. package/.agents/skills/hyperframes-creative/palettes/nature-earth.md +14 -0
  296. package/.agents/skills/hyperframes-creative/palettes/neon-electric.md +14 -0
  297. package/.agents/skills/hyperframes-creative/palettes/pastel-soft.md +14 -0
  298. package/.agents/skills/hyperframes-creative/palettes/warm-editorial.md +14 -0
  299. package/.agents/skills/hyperframes-creative/references/audio-reactive.md +76 -0
  300. package/.agents/skills/hyperframes-creative/references/beat-direction.md +164 -0
  301. package/.agents/skills/hyperframes-creative/references/composition-patterns.md +199 -0
  302. package/.agents/skills/hyperframes-creative/references/data-in-motion.md +19 -0
  303. package/.agents/skills/hyperframes-creative/references/design-adherence.md +19 -0
  304. package/.agents/skills/hyperframes-creative/references/design-picker.md +123 -0
  305. package/.agents/skills/hyperframes-creative/references/design-spec.md +55 -0
  306. package/.agents/skills/hyperframes-creative/references/house-style.md +73 -0
  307. package/.agents/skills/hyperframes-creative/references/motion-principles.md +150 -0
  308. package/.agents/skills/hyperframes-creative/references/narration.md +92 -0
  309. package/.agents/skills/hyperframes-creative/references/prompt-expansion.md +68 -0
  310. package/.agents/skills/hyperframes-creative/references/typography.md +218 -0
  311. package/.agents/skills/hyperframes-creative/references/video-composition.md +63 -0
  312. package/.agents/skills/hyperframes-creative/references/visual-styles.md +457 -0
  313. package/.agents/skills/hyperframes-creative/scripts/contrast-report.mjs +353 -0
  314. package/.agents/skills/hyperframes-creative/scripts/extract-audio-data.py +188 -0
  315. package/.agents/skills/hyperframes-creative/scripts/package-loader.mjs +288 -0
  316. package/.agents/skills/hyperframes-creative/scripts/package-loader.test.mjs +62 -0
  317. package/.agents/skills/hyperframes-creative/templates/design-picker.html +1432 -0
  318. package/.agents/skills/hyperframes-keyframes/SKILL.md +237 -0
  319. package/.agents/skills/hyperframes-keyframes/agents/openai.yaml +4 -0
  320. package/.agents/skills/hyperframes-keyframes/references/keyframe-patterns.md +106 -0
  321. package/.agents/skills/motion-graphics/SKILL.md +172 -0
  322. package/.agents/skills/motion-graphics/agents/builder.md +40 -0
  323. package/.agents/skills/motion-graphics/agents/director.md +53 -0
  324. package/.agents/skills/motion-graphics/agents/finalize.md +17 -0
  325. package/.agents/skills/motion-graphics/catalog-map.md +40 -0
  326. package/.agents/skills/motion-graphics/categories/asset-fusion/module.md +37 -0
  327. package/.agents/skills/motion-graphics/categories/charts/module.md +21 -0
  328. package/.agents/skills/motion-graphics/categories/kinetic-type/module.md +19 -0
  329. package/.agents/skills/motion-graphics/categories/logo-reveal/module.md +17 -0
  330. package/.agents/skills/motion-graphics/categories/lower-thirds/module.md +16 -0
  331. package/.agents/skills/motion-graphics/categories/maps/bake-basemap.mjs +273 -0
  332. package/.agents/skills/motion-graphics/categories/maps/module.md +61 -0
  333. package/.agents/skills/motion-graphics/categories/news/module.md +56 -0
  334. package/.agents/skills/motion-graphics/categories/stat/module.md +21 -0
  335. package/.agents/skills/motion-graphics/categories/tweet/module.md +16 -0
  336. package/.agents/skills/motion-graphics/categories/webpage/module.md +21 -0
  337. package/.agents/skills/motion-graphics/grounding/PROTOCOL.md +64 -0
  338. package/.agents/skills/motion-graphics/grounding/locate.mjs +227 -0
  339. package/.agents/skills/motion-graphics/phases/source/guide.md +21 -0
  340. package/.agents/skills/motion-graphics/references/builder-contract.md +38 -0
  341. package/.agents/skills/motion-graphics/references/motion-vocabulary.md +43 -0
  342. package/.agents/skills/motion-graphics/references/shot-plan-ir.md +54 -0
  343. package/.agents/skills/motion-graphics/samples/asset-fusion/_ref-circle-highlight.html +306 -0
  344. package/.agents/skills/product-launch-video/SKILL.md +208 -0
  345. package/.agents/skills/product-launch-video/references/cut-catalog.md +220 -0
  346. package/.agents/skills/product-launch-video/references/motion-language.md +156 -0
  347. package/.agents/skills/product-launch-video/references/story-design.md +373 -0
  348. package/.agents/skills/product-launch-video/references/visual-design.md +126 -0
  349. package/.agents/skills/product-launch-video/scripts/assemble-index.mjs +570 -0
  350. package/.agents/skills/product-launch-video/scripts/audio.mjs +260 -0
  351. package/.agents/skills/product-launch-video/scripts/build-frame.mjs +536 -0
  352. package/.agents/skills/product-launch-video/scripts/captions.mjs +508 -0
  353. package/.agents/skills/product-launch-video/scripts/lib/assets.mjs +55 -0
  354. package/.agents/skills/product-launch-video/scripts/lib/dimensions.mjs +45 -0
  355. package/.agents/skills/product-launch-video/scripts/lib/pad-frame-duration.mjs +36 -0
  356. package/.agents/skills/product-launch-video/scripts/lib/pad-frame-duration.test.mjs +76 -0
  357. package/.agents/skills/product-launch-video/scripts/lib/storyboard.mjs +249 -0
  358. package/.agents/skills/product-launch-video/scripts/lib/tokens.mjs +204 -0
  359. package/.agents/skills/product-launch-video/scripts/lib/transition-registry.mjs +38 -0
  360. package/.agents/skills/product-launch-video/scripts/lib/transitions.json +71 -0
  361. package/.agents/skills/product-launch-video/scripts/stage-assets.mjs +39 -0
  362. package/.agents/skills/product-launch-video/scripts/transitions.mjs +327 -0
  363. package/.agents/skills/product-launch-video/sub-agents/frame-worker.md +75 -0
  364. package/.agents/skills/slideshow/SKILL.md +550 -0
  365. package/.agents/skills/slideshow/references/standalone-harness.md +1020 -0
  366. package/.agents/skills/talking-head-recut/NOTICE.md +39 -0
  367. package/.agents/skills/talking-head-recut/SKILL.md +1195 -0
  368. package/.agents/skills/talking-head-recut/assets/vendor/gsap.min.js +10 -0
  369. package/.agents/skills/talking-head-recut/references/DESIGN_INDEX.md +145 -0
  370. package/.agents/skills/talking-head-recut/references/frames/clean.html +92 -0
  371. package/.agents/skills/talking-head-recut/references/frames/hairline.html +171 -0
  372. package/.agents/skills/talking-head-recut/references/frames/polaroid.html +131 -0
  373. package/.agents/skills/talking-head-recut/references/layouts/overlay.html +164 -0
  374. package/.agents/skills/talking-head-recut/references/layouts/pip.html +143 -0
  375. package/.agents/skills/talking-head-recut/references/layouts/split.html +121 -0
  376. package/.agents/skills/talking-head-recut/references/layouts/stack.html +109 -0
  377. package/.agents/skills/talking-head-recut/references/styles/academic.html +172 -0
  378. package/.agents/skills/talking-head-recut/references/styles/audit.html +170 -0
  379. package/.agents/skills/talking-head-recut/references/styles/editorial.html +189 -0
  380. package/.agents/skills/talking-head-recut/references/styles/geom.html +181 -0
  381. package/.agents/skills/talking-head-recut/references/styles/minimal.html +130 -0
  382. package/.agents/skills/talking-head-recut/references/styles/spotlight.html +142 -0
  383. package/.agents/skills/talking-head-recut/references/styles/swiss.html +188 -0
  384. package/.agents/skills/talking-head-recut/references/styles/terminal.html +196 -0
  385. package/.agents/skills/talking-head-recut/references/styles/whiteboard.html +170 -0
  386. package/.agents/skills/talking-head-recut/references/styles/xhs.html +206 -0
  387. package/.agents/skills/vidfarm-media/SKILL.md +85 -0
  388. package/.agents/skills/vidfarm-media/references/tts.md +54 -0
  389. package/.agents/skills/vidfarm-media/scripts/audio.mjs +628 -0
  390. package/.agents/skills/vidfarm-media/scripts/wait-bgm.mjs +31 -0
  391. package/.agents/skills/website-to-video/SKILL.md +145 -0
  392. package/.agents/skills/website-to-video/assets/sfx/CREDITS.md +35 -0
  393. package/.agents/skills/website-to-video/assets/sfx/manifest.json +97 -0
  394. package/.agents/skills/website-to-video/references/beat-builder-guide.md +263 -0
  395. package/.agents/skills/website-to-video/references/capabilities.md +713 -0
  396. package/.agents/skills/website-to-video/references/step-0-capture.md +55 -0
  397. package/.agents/skills/website-to-video/references/step-1-design.md +333 -0
  398. package/.agents/skills/website-to-video/references/step-2-brief.md +178 -0
  399. package/.agents/skills/website-to-video/references/step-3-storyboard.md +572 -0
  400. package/.agents/skills/website-to-video/references/step-4-vo.md +225 -0
  401. package/.agents/skills/website-to-video/references/step-5-build.md +483 -0
  402. package/.agents/skills/website-to-video/references/step-6-validate.md +341 -0
  403. package/.agents/skills/website-to-video/scripts/w2h-verify.mjs +759 -0
  404. package/SKILL.director.md +37 -0
  405. package/SKILL.platform.md +6 -1
  406. package/demo/dist/app.js +295 -11
  407. package/dist/src/app.js +317 -133
  408. package/dist/src/cli.js +529 -12
  409. package/dist/src/composition-runtime.js +262 -3
  410. package/dist/src/devcli/doctor.js +192 -0
  411. package/dist/src/devcli/hyperframes-cli.js +118 -0
  412. package/dist/src/devcli/skills.js +476 -0
  413. package/dist/src/devcli/stills.js +249 -0
  414. package/dist/src/editor-chat.js +255 -0
  415. package/dist/src/hyperframes/composition.js +5 -5
  416. package/dist/src/services/composition-lint.js +199 -0
  417. package/dist/src/services/hyperframes.js +67 -13
  418. package/package.json +2 -1
@@ -0,0 +1,274 @@
1
+ ---
2
+ version: alpha
3
+ name: Daisy Days — Frame (video / frame layer)
4
+ description: >
5
+ Video-first companion to Daisy Days' design.md. The unit is the frame (1920×1080). Atoms are
6
+ identical and sacred — the sunny-garden pastel palette (cream + turquoise/pink/butter/mint/
7
+ lavender/peach/sky + coral accent), charcoal 3px outlines, hard offset shadows (6/4px, no blur),
8
+ the Fredoka + Quicksand pairing, generous radii, headline text-shadow on color, dot bullets, and
9
+ the hand-drawn SVG ornament layer. Composition + frame scale rewritten. Motion out of scope.
10
+ unit: the frame — 1920×1080 primary; 9:16 and 1:1 documented
11
+ principle: atoms are sacred · composition is free · numbers come from the script
12
+
13
+ colors:
14
+ cream: "#F5F0E6"
15
+ turquoise: "#7ECDC0"
16
+ soft-pink: "#F7C8D4"
17
+ butter: "#FDE68A"
18
+ mint: "#A8E6CF"
19
+ lavender: "#D4A5E8"
20
+ peach: "#FFCBA4"
21
+ sky: "#A8D8F0"
22
+ coral: "#F8635F"
23
+ text-dark: "#2D2D2D"
24
+ text-muted: "#6B6B6B"
25
+ white: "#FFFFFF"
26
+
27
+ borders: { primary: "3px solid text-dark", thin: "2px solid text-dark" }
28
+ shadows: { default: "6px 6px 0 text-dark", small: "4px 4px 0 text-dark", text-headline: "3px 3px 0 text-dark", text-headline-soft: "3px 3px 0 rgba(0,0,0,0.2)" }
29
+
30
+ typography:
31
+ # — reading ramp (Quicksand) —
32
+ body: { fontFamily: "Quicksand", cqw: 0.95, weight: 500, lineHeight: 1.6 }
33
+ body-strong:{ fontFamily: "Quicksand", cqw: 0.95, weight: 600, lineHeight: 1.5 }
34
+ meta: { fontFamily: "Quicksand", cqw: 0.78, weight: 600, lineHeight: 1.45 }
35
+ # — display ramp (Fredoka One / Fredoka 600 — single weight, never italic) —
36
+ badge: { fontFamily: "Fredoka One", cqw: 0.9, tracking: "0.02em" }
37
+ label-display:{ fontFamily: "Fredoka One", cqw: 1.3, lineHeight: 1.3, tracking: "0.02em" }
38
+ subtitle:{ fontFamily: "Fredoka One", cqw: 1.8, lineHeight: 1.2, tracking: "0.02em" }
39
+ quote: { fontFamily: "Fredoka One", cqw: 2.6, lineHeight: 1.35 }
40
+ title: { fontFamily: "Fredoka One", cqw: 3.0, lineHeight: 1.15, tracking: "0.02em" }
41
+ headline:{ fontFamily: "Fredoka One", cqw: 4.5, lineHeight: 1.1, tracking: "0.02em" }
42
+ display: { fontFamily: "Fredoka One", cqw: 6.5, lineHeight: 1.1, tracking: "0.02em" }
43
+
44
+ spacing:
45
+ pad-slide: "3cqw"
46
+ radius: "20px"
47
+ radius-lg: "28px"
48
+ radius-pill: "50px"
49
+ radius-round: "50%"
50
+
51
+ components:
52
+ card:
53
+ backgroundColor: "{colors.white}"
54
+ border: "3px solid {colors.text-dark}"
55
+ rounded: "{spacing.radius} (28px featured)"
56
+ shadow: "6px 6px 0 {colors.text-dark}"
57
+ description: "The universal container; white-on-pastel is standard."
58
+ framed-header:
59
+ backgroundColor: "pastel cap + {colors.white} body"
60
+ border: "3px solid {colors.text-dark} (one continuous)"
61
+ rounded: "{spacing.radius-lg}"
62
+ shadow: "6px 6px 0 {colors.text-dark}"
63
+ description: "Pastel header strip flush above a white body — one unit, one shadow."
64
+ badge-pill:
65
+ backgroundColor: "{colors.butter}"
66
+ border: "3px solid {colors.text-dark}"
67
+ rounded: "{spacing.radius-pill}"
68
+ typography: "{typography.badge}"
69
+ shadow: "4px 4px 0 {colors.text-dark}"
70
+ description: "Section tag. white-space:nowrap."
71
+ circle-marker:
72
+ backgroundColor: "any pastel"
73
+ textColor: "{colors.white} (dark on butter)"
74
+ border: "3px solid {colors.text-dark}"
75
+ rounded: "50%"
76
+ size: "bullet 20 / icon 44 / dot 48 / step 90"
77
+ typography: "Fredoka numeral"
78
+ description: "Steps carry a small shadow."
79
+ bullet-dot:
80
+ backgroundColor: "{colors.butter}"
81
+ border: "2px solid {colors.text-dark}"
82
+ rounded: "50%"
83
+ size: "20px (::before, 4px from line top)"
84
+ description: "Lists never use glyph bullets."
85
+ ornament:
86
+ type: "hand-drawn SVG (daisy, star, sun, cloud, rainbow)"
87
+ stroke: "2.1px {colors.text-dark}"
88
+ placement: "z-index:1 behind content (z-index:2), cropping past the frame edge"
89
+ description: "3–7 per frame, clustered at corners/edges."
90
+ quote-mark:
91
+ typography: "oversized Fredoka quote glyph"
92
+ color: "{colors.soft-pink} (charcoal stroke)"
93
+ description: "Above a quote body."
94
+ text-headline-shadow:
95
+ shadow: "3px 3px 0 {colors.text-dark} (soft 20% variant on pink/mint)"
96
+ appliesTo: "Fredoka headlines on saturated surfaces (cream headlines sit flat)"
97
+ description: "Makes the headline read 'outlined' like the shapes."
98
+ ---
99
+
100
+ # Daisy Days — Frame (video / frame layer)
101
+
102
+ ## Overview
103
+
104
+ Daisy Days at frame scale is a **cheerful, childlike system** — picture-book illustration meets
105
+ sticker-sheet kawaii. Every shape carries a **3px charcoal outline**, every elevated element a
106
+ **solid hard offset shadow** (no blur), every surface a sunny-garden pastel. The voice is one
107
+ pairing: **Fredoka One** (chunky rounded, single weight) for every headline, **Quicksand** for
108
+ every body and meta line. The signature is the **hand-drawn SVG ornament layer** — daisies, stars,
109
+ suns, clouds, rainbows clustering at corners and cropping past the edge.
110
+
111
+ The palette is **multi-pastel with one warm pop**: cream canvas, seven pastel surfaces, and
112
+ `{colors.coral}` reserved for small high-attention markers only. Headlines on a saturated surface
113
+ get a 3px charcoal text-shadow (so they read "outlined" like the shapes) and switch to white;
114
+ headlines on cream sit flat in charcoal. Depth is 2D and graphic — thick outline + hard offset =
115
+ sticker-on-paper.
116
+
117
+ **Key characteristics at frame scale:**
118
+
119
+ - **Cream default + rotating pastel surfaces**; `{colors.coral}` is a marker accent, never a surface.
120
+ - **Fredoka One** headlines + **Quicksand 500/600** body — strict by role, never crossed.
121
+ - **3px charcoal outline + hard offset shadow** (6/4px, zero blur) on every elevated shape.
122
+ - **Generous radii** — 20px cards, 28px featured, pill badges, full-circle markers; no square corners.
123
+ - **Headline text-shadow on saturated surfaces** (white text); flat charcoal on cream.
124
+ - **Dot bullets** (outlined butter discs, never glyphs) + a **3–7 ornament wreath** per frame.
125
+
126
+ ## The Frame
127
+
128
+ ### Frame Craft Bar
129
+
130
+ Three eyeball tests gate every frame before any structural check:
131
+
132
+ - **Squint** — one Fredoka headline or content card dominates at 3–6× its neighbor.
133
+ - **Silence** — **one content container per frame** surrounded by an ornament wreath; the **info-card grid is the one dense exception**. Empty corners read as broken.
134
+ - **Restraint** — cream or **one** pastel surface; coral is a small-marker accent (never a surface); charcoal borders + hard offset shadows only; no ninth color.
135
+ - **Reference** — aim at a **children's picture-book / sticker-sheet kawaii zine**; failure looks like a **flat, square-cornered, blurred-shadow corporate slide**.
136
+
137
+ - **Primary:** 1920×1080 (16:9). Display authored in **`cqw`** (`px ÷ 1920 × 100 = cqw`).
138
+ - **Vertical:** 1080×1920 (9:16). **Square:** 1080×1080 (1:1).
139
+ - **Safe area:** `pad-slide` ~3cqw; ornaments deliberately bleed past the edge.
140
+
141
+ **The container law (load-bearing).** Every frame ground sets `container-type: size`; ALL
142
+ frame-relative units are `cqw`/`cqh` against it — never `vw`. Borders stay 3px/2px; radii stay
143
+ 20/28/50px; shadow offsets scale in `cqw` so the sticker offset holds proportionally.
144
+
145
+ ## Colors
146
+
147
+ Tokens identical to the source. Default ground `{colors.cream}`; rotate saturated pastels
148
+ (turquoise / soft-pink / butter / mint / lavender / peach / sky) for tonal mood. **Cards are white**
149
+ on any surface. **Borders + shadows are always `{colors.text-dark}` charcoal** — never colored,
150
+ never blurred, never `rgba` (save the soft text-shadow variant). `{colors.coral}` is the lone
151
+ high-saturation accent — small markers (step circles, dots, headers) **only**, never a surface.
152
+ Body is charcoal/muted; pastels carry **no semantic meaning**. No ninth color.
153
+
154
+ ## Typography
155
+
156
+ Two ramps. The **reading ramp** (Quicksand 500 body 0.95cqw, 600 emphasis, meta) carries copy; the
157
+ **display ramp** (Fredoka One `label-display` 1.3cqw → `display` 6.5cqw, single weight) carries
158
+ every headline, title, quote, and marker numeral.
159
+
160
+ - **Legibility floor:** any load-bearing line ≥ **1.4cqw**; meta is chrome only.
161
+ - **Fit-to-measure:** size the headline to its length. Cap the block at **≤ 78cqw**; ≤3 words → `display`; 4–6 → `headline`; 7+ → `title`.
162
+ - **Fredoka One for all display, Quicksand for all body — never crossed.** Fredoka is single-weight (no italic, no underline, no alt weights); Quicksand stays 500/600/700. Fredoka tracking 0.02em; Quicksand body never uppercase.
163
+
164
+ ## Depth & Surface
165
+
166
+ 2D graphic depth — hard offset shadow, solid charcoal, zero blur, bottom-right:
167
+
168
+ - **`shadows.default` 6px** cards, frames, badges, chart containers.
169
+ - **`shadows.small` 4px** small cards, step circles, avatars.
170
+ - **Text-headline shadow** — 3px charcoal on Fredoka headlines over saturated surfaces (20% soft variant on pink/mint); cream headlines flat.
171
+ - **Outline + offset** together are the sticker-on-paper signature.
172
+
173
+ **Ceiling:** no blurred shadow, no `rgba` (except the soft text-shadow), no gradient, no glow; an element either casts a hard charcoal offset or none.
174
+
175
+ ## Shapes
176
+
177
+ - **20px** cards, **28px** featured, **50px** pill (badges, counter), **50%** all circles, **4px** legend swatch. Zero square corners — every region is rounded.
178
+
179
+ ## Components
180
+
181
+ - **card / framed-header** — the white-fill bordered containers (one shadow). **badge-pill** — butter section tag.
182
+ - **circle-marker** family (bullet 20 / icon 44 / dot 48 / step 90) + **bullet-dot** — outlined pastel discs, Fredoka numerals.
183
+ - **ornament** — the hand-drawn SVG sticker layer (3–7 per frame). **quote-mark** — soft-pink Fredoka anchor. **text-headline-shadow** — the on-color headline treatment.
184
+
185
+ ## Frame Treatments
186
+
187
+ > Recipe: ground · container · composes · focal · chrome · accent · silence · Fixed/Free · density.
188
+ > One content container per frame + a 3–7 ornament wreath; empty corners read as broken.
189
+
190
+ ### 1 · Cover (identity · move: ornament wreath · saturated · centered)
191
+
192
+ **Ground** a saturated pastel (e.g. `{colors.turquoise}`). **Composes** badge-pill, display, body sub, 3–7 ornaments, counter. **Focal** a 1–2 line Fredoka `display` in **white with the 3px charcoal text-shadow**, centered, under a butter badge-pill. **Chrome** counter pill. **Accent** the ornament wreath (daisies + stars at corners, cropping past edges). **Silence** content centered; ornaments fill the edges. **Fixed** text-shadow on color, 3px outlines, charcoal shadows. **Free** surface color, ornament mix/positions, copy. **Density** full-but-not-crowded.
193
+
194
+ ### 2 · Info Cards (catalog · move: 3-up white cards · cream · the dense frame)
195
+
196
+ **Ground** `{colors.cream}`, `pad-slide`. **Composes** headline (flat charcoal), 3× card (circle-icon + Fredoka title + Quicksand body), a couple ornaments. **Focal** three white 3px-bordered cards with 6px shadows. **Chrome** flat headline. **Accent** the pastel circle-icons (rotate turquoise/coral/lavender). **Silence** tight — the density exception (fewer ornaments here). **Fixed** white cards, 3px + 6px, 20px radius. **Free** card content, icon hues. **Density** dense-exception.
197
+
198
+ ### 3 · Process Steps (sequence · move: rotating circle markers · peach · centered)
199
+
200
+ **Ground** `{colors.peach}` (or another pastel). **Composes** headline (white + text-shadow), 3–4 step circles + `→` arrows, ornaments. **Focal** a row of 90px outlined step circles, fills **rotating coral → mint → sky → lavender**, Fredoka white numerals, linked by Fredoka arrows. **Chrome** white headline with text-shadow. **Accent** the rotating circle fills. **Silence** moderate. **Fixed** 3px circles + small shadow, rotating fills, arrow glyphs. **Free** step count, labels. **Density** standard.
201
+
202
+ ### 4 · Quote (quote · move: quote-mark anchor · soft-pink · centered)
203
+
204
+ **Ground** `{colors.soft-pink}`. **Composes** a white quote card (28px radius, 6px shadow), quote-mark, Fredoka quote, Quicksand attribution, ornaments. **Focal** a Fredoka `quote` in charcoal inside the white card, under an oversized soft-pink quote-mark. **Chrome** Quicksand 700 attribution. **Accent** the quote-mark + a star or two. **Silence** card centered, ornaments at corners. **Fixed** quote-mark anchor, white card. **Free** quote, attribution. **Density** moderate.
205
+
206
+ ### 5 · Framed Section (feature · move: cap+body card · cream)
207
+
208
+ **Ground** `{colors.cream}`. **Composes** framed-header (pastel cap + white body), bullet-dot list, ornaments. **Focal** a framed-header — a pastel cap strip (Fredoka title, optional text-shadow) above a white body with a butter-dot bullet list. **Accent** the cap color + bullet dots. **Silence** moderate. **Fixed** one continuous 3px border + one shadow, butter dot bullets. **Free** cap color, list. **Density** standard.
209
+
210
+ ### 6 · Closing (closer · move: ornament wreath · saturated · centered)
211
+
212
+ **Ground** a saturated pastel (e.g. `{colors.lavender}`). **Composes** badge-pill, display (white + text-shadow), 3–7 ornaments. **Focal** a Fredoka `display` sign-off in white with the charcoal text-shadow, centered. **Accent** the ornament wreath. **Silence** content centered. **Fixed** text-shadow on color, ornaments fill corners. **Free** sign-off, surface, ornaments. **Density** full.
213
+
214
+ ## Composition Rules
215
+
216
+ ### Do
217
+
218
+ - Pair **Fredoka One headlines + Quicksand body** strictly by role.
219
+ - Outline every shape **3px charcoal + a hard offset shadow** (6/4px, no blur); white card fills on any surface.
220
+ - Give Fredoka headlines on **saturated surfaces a 3px charcoal text-shadow + white text**; flat charcoal on cream.
221
+ - Use **outlined butter-disc bullets** (never glyphs); cluster **3–7 hand-drawn ornaments** per frame (corners, cropping past edges).
222
+ - Keep **one content container per frame**; rotate marker colors (coral → mint → sky → lavender → butter); reserve coral for small markers.
223
+ - Center most frames; lean cream for content-dense frames, saturated for cover/closer/quote.
224
+
225
+ ### Don't
226
+
227
+ - No square corners; no blurred or `rgba` shadows (save the soft text-shadow).
228
+ - No colored borders (charcoal only); no coral surface; no ninth color.
229
+ - No third font; no Quicksand headline or Fredoka body; no italic/underline Fredoka; no uppercase Quicksand body.
230
+ - No glyph bullets; no empty corners (ornaments fill them); no two competing content panels.
231
+ - Don't blow a headline edge-to-edge — fit to measure.
232
+
233
+ ## Aspect-Ratio Behavior
234
+
235
+ | Treatment | 16:9 | 9:16 | 1:1 |
236
+ | -------------- | -------------------------- | -------------------------------- | ---------- |
237
+ | Cover | centered, corner ornaments | centered, taller, more ornaments | centered |
238
+ | Info Cards | 3 across | stacked | 2+1 |
239
+ | Process Steps | horizontal + arrows | vertical, arrows rotate down | 2×2 |
240
+ | Quote | centered card | centered, taller | centered |
241
+ | Framed Section | cap + body | cap + body taller | cap + body |
242
+ | Closing | centered, wreath | centered, wreath | centered |
243
+
244
+ `pad-slide` holds on the short edge; re-step display above the 1.4cqw floor. On tighter ratios keep
245
+ the ornament count toward the upper end (5–7) so corners never read empty.
246
+
247
+ ## Approved Real Entities
248
+
249
+ No real customers, logos, or vendors are defined in the source — render any such mark as a
250
+ placeholder. Ornaments and pastels are content-agnostic; counters/badges carry per-deck text.
251
+
252
+ ## Numerals & Claims (hard rule)
253
+
254
+ Never invent figures, dates, or counts at frame scale. Render slots as `— figure —`, `{metric}`,
255
+ `N`. Step numbers and any chart values carry placeholders until the script supplies them; the slide
256
+ counter is decorative chrome.
257
+
258
+ ## Pre-Render Self-Audit
259
+
260
+ - **Squint** — one Fredoka headline or content card dominates per frame.
261
+ - **Silence** — one container per frame surrounded by an ornament wreath; only the info-card grid runs dense.
262
+ - **Color** — cream or one pastel surface; coral markers only; charcoal borders/shadows; no ninth hue.
263
+ - **Type** — Fredoka headlines (text-shadow + white on saturated, flat charcoal on cream), Quicksand body; ≥1.4cqw floor.
264
+ - **Depth** — 3px outline + hard offset (no blur, no rgba save soft text-shadow); rounded corners only.
265
+ - **Ornaments** — 3–7 per frame, cropping past edges; no empty corners. **Bullets** — outlined discs, never glyphs.
266
+ - **Fabrication** — every numeral traces to the script, else placeholder.
267
+
268
+ ## Known Gaps
269
+
270
+ - **Motion intentionally out of scope.** frame.md specifies composition only; the source uses scroll-snap nav, no transition spec.
271
+ - **Fonts:** the source names _Fredoka One_; Google now serves the **Fredoka** variable family — request `Fredoka:wght@500;600;700` and set display weight 600 (visually equal to Fredoka One), with `Fredoka One` kept first in the stack for environments that still serve it. Quicksand loads normally. CJK: ZCOOL XiaoWei (display) / Yozai (body).
272
+ - **9:16 / 1:1 are guidance**; keep ornament count high so corners stay filled per ratio.
273
+ - Ornaments (daisy/star/sun/cloud/rainbow), markers, and framed headers are CSS/SVG-only; recoloring SVG ornaments requires editing their stroke values.
274
+ - **Contrast:** keep `{colors.text-muted}` off pastel surfaces (cream/white cards only); small text on saturated grounds should be charcoal or white.
@@ -0,0 +1,230 @@
1
+ <!--
2
+ Daisy Days — 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 daisy-days literal
14
+ 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 cheerful picture-book card — a cream surface inside a 3px charcoal outline
23
+ with a hard 6px charcoal offset shadow (no blur) and a generous 24px radius, the
24
+ sticker-on-paper signature. Fredoka One glyphs, sentence case, charcoal ink. Upcoming
25
+ words sit in muted charcoal; the current word pops into a rounded sunny-pastel candy
26
+ block (coral fill, 3px charcoal outline, hard 3px offset shadow, 12px radius) with a
27
+ bouncy scale pop; spoken words settle to solid charcoal, the candy block cleared.
28
+ -->
29
+ <script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
30
+
31
+ <!-- captions.mjs injects the project's :root tokens here -->
32
+ <style data-brand-tokens></style>
33
+
34
+ <style>
35
+ #captions-root {
36
+ position: absolute;
37
+ inset: 0;
38
+ pointer-events: none;
39
+ }
40
+ .caption-layer {
41
+ position: absolute;
42
+ inset: 0;
43
+ z-index: 20;
44
+ pointer-events: none;
45
+ }
46
+ /* the keep-out band, from captionBand(H) — frame content stays above it */
47
+ .caption-stage {
48
+ position: absolute;
49
+ left: 0;
50
+ right: 0;
51
+ top: var(--cap-band-top, 900px);
52
+ height: var(--cap-band-height, 180px);
53
+ display: flex;
54
+ align-items: center;
55
+ justify-content: center;
56
+ }
57
+ .caption-group {
58
+ /* every group is absolutely stacked over the SAME band — exactly one shown at a
59
+ time via opacity. Must be absolute: in-flow groups would lay out side-by-side. */
60
+ position: absolute;
61
+ inset: 0;
62
+ display: flex;
63
+ align-items: center;
64
+ justify-content: center;
65
+ opacity: 0;
66
+ }
67
+
68
+ /* THE picture-book card — cream surface, 3px charcoal outline, generous 24px radius,
69
+ a hard 6px charcoal offset shadow (no blur): the sticker-on-paper signature */
70
+ .caption-pill {
71
+ max-width: 80%;
72
+ padding: 18px 40px 22px;
73
+ background: var(--cap-canvas, #f5f0e6);
74
+ border: 3px solid var(--cap-ink, #2d2d2d);
75
+ border-radius: 24px;
76
+ box-shadow: 6px 6px 0 var(--cap-ink, #2d2d2d);
77
+ }
78
+ .caption-line {
79
+ display: flex;
80
+ flex-wrap: wrap;
81
+ justify-content: center;
82
+ gap: 0.18em 0.32em;
83
+ font-family: var(--font-display, "Fredoka One"), "Baloo 2", sans-serif;
84
+ font-weight: 600;
85
+ font-size: clamp(38px, 4.2vw, 56px);
86
+ line-height: 1.22;
87
+ letter-spacing: 0.02em;
88
+ }
89
+
90
+ /* upcoming — muted charcoal, no candy block */
91
+ .caption-word {
92
+ display: inline-block;
93
+ padding: 0.02em 0.16em;
94
+ border-radius: 12px;
95
+ color: color-mix(in srgb, var(--cap-ink, #2d2d2d) 52%, var(--cap-canvas, #f5f0e6));
96
+ }
97
+ /* current word — THE sunny-pastel candy block: a rounded coral chip with a 3px
98
+ charcoal outline + a hard 3px charcoal offset shadow (no blur), charcoal on top */
99
+ .caption-word.is-active {
100
+ color: var(--cap-ink, #2d2d2d);
101
+ background: var(--cap-accent, #f8635f);
102
+ border-radius: 12px;
103
+ box-shadow:
104
+ 0 0 0 3px var(--cap-ink, #2d2d2d),
105
+ 3px 5px 0 0 var(--cap-ink, #2d2d2d);
106
+ }
107
+ /* already spoken — solid charcoal, candy block cleared */
108
+ .caption-word.is-spoken {
109
+ color: var(--cap-ink, #2d2d2d);
110
+ background: transparent;
111
+ box-shadow: none;
112
+ }
113
+
114
+ /* optional per-word accents (dormant until a word-classer tags them) */
115
+ /* brand / key term — a butter candy chip, the cheerful second pastel */
116
+ .caption-word.cap-brand {
117
+ color: var(--cap-ink, #2d2d2d);
118
+ background: var(--cap-accent-2, #fde68a);
119
+ border-radius: 12px;
120
+ box-shadow: 0 0 0 3px var(--cap-ink, #2d2d2d);
121
+ }
122
+ /* numerals / data — Quicksand, slightly recessed */
123
+ .caption-word.cap-num {
124
+ font-family: var(--font-body, "Quicksand"), system-ui, sans-serif;
125
+ font-weight: 700;
126
+ color: color-mix(in srgb, var(--cap-ink, #2d2d2d) 78%, var(--cap-canvas, #f5f0e6));
127
+ }
128
+ /* emphasis — a butter underline rule (the second sunny pastel) */
129
+ .caption-word.cap-cta {
130
+ text-decoration: underline;
131
+ text-decoration-thickness: 3px;
132
+ text-decoration-color: var(--cap-accent-2, #fde68a);
133
+ text-underline-offset: 0.12em;
134
+ }
135
+
136
+ @media (max-aspect-ratio: 9/16) {
137
+ .caption-pill {
138
+ max-width: 92%;
139
+ }
140
+ .caption-line {
141
+ font-size: clamp(32px, 5.2vw, 46px);
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.82 }, { scale: 1, duration: 0.2, ease: "back.out(2.6)" }, 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>