@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,373 @@
1
+ # CSS Patterns for Marker Highlighting
2
+
3
+ Pure CSS + GSAP implementations of all five MarkerHighlight.js drawing modes. Use these for deterministic rendering in HyperFrames compositions — no external library dependency, full GSAP timeline control.
4
+
5
+ ## Contents
6
+
7
+ - [1. Highlight Mode](#1-highlight-mode) — Yellow marker sweep behind text
8
+ - [2. Circle Mode](#2-circle-mode) — Hand-drawn ellipse around text
9
+ - [3. Burst Mode](#3-burst-mode) — Radiating lines from text
10
+ - [4. Scribble Mode](#4-scribble-mode) — Chaotic scribble over text
11
+ - [5. Sketchout Mode](#5-sketchout-mode) — Rough rectangle outline
12
+
13
+ ## 1. Highlight Mode
14
+
15
+ Yellow marker sweep behind text. The most common mode.
16
+
17
+ ```html
18
+ <span class="mh-highlight-wrap">
19
+ <span class="mh-highlight-bar" id="hl-1"></span>
20
+ <span class="mh-highlight-text">highlighted text</span>
21
+ </span>
22
+ ```
23
+
24
+ ```css
25
+ .mh-highlight-wrap {
26
+ position: relative;
27
+ display: inline;
28
+ }
29
+ .mh-highlight-bar {
30
+ position: absolute;
31
+ top: 0;
32
+ left: -6px;
33
+ right: -6px;
34
+ bottom: 0;
35
+ background: #fdd835;
36
+ opacity: 0.35;
37
+ transform: scaleX(0);
38
+ transform-origin: left center;
39
+ border-radius: 3px;
40
+ z-index: 0;
41
+ }
42
+ .mh-highlight-text {
43
+ position: relative;
44
+ z-index: 1;
45
+ }
46
+ ```
47
+
48
+ ```js
49
+ // Sweep in from left
50
+ tl.to("#hl-1", { scaleX: 1, duration: 0.5, ease: "power2.out" }, 0.6);
51
+
52
+ // Optional: skew for hand-drawn feel
53
+ // gsap.set("#hl-1", { skewX: -2 });
54
+ ```
55
+
56
+ ### Multi-line Highlight
57
+
58
+ Stagger bars across multiple lines:
59
+
60
+ ```js
61
+ tl.to(
62
+ ".mh-highlight-bar",
63
+ {
64
+ scaleX: 1,
65
+ duration: 0.5,
66
+ ease: "power2.out",
67
+ stagger: 0.3,
68
+ },
69
+ 0.6,
70
+ );
71
+ ```
72
+
73
+ ## 2. Circle Mode
74
+
75
+ Hand-drawn circle around text. Use `border-radius: 50%` with a slight rotation for organic feel.
76
+
77
+ ```html
78
+ <span class="mh-circle-wrap">
79
+ <span class="mh-circle-text" id="circle-word">IMPORTANT</span>
80
+ <span class="mh-circle-ring" id="circle-1"></span>
81
+ </span>
82
+ ```
83
+
84
+ ```css
85
+ .mh-circle-wrap {
86
+ position: relative;
87
+ display: inline;
88
+ }
89
+ .mh-circle-text {
90
+ position: relative;
91
+ z-index: 1;
92
+ }
93
+ .mh-circle-ring {
94
+ position: absolute;
95
+ top: 50%;
96
+ left: 50%;
97
+ width: 130%;
98
+ height: 160%;
99
+ transform: translate(-50%, -50%) rotate(-3deg) scale(0);
100
+ border: 3px solid #e53935;
101
+ border-radius: 50%;
102
+ pointer-events: none;
103
+ z-index: 0;
104
+ }
105
+ ```
106
+
107
+ ```js
108
+ // Circle scales in with a wobble
109
+ tl.to(
110
+ "#circle-1",
111
+ {
112
+ scale: 1,
113
+ rotation: -3,
114
+ duration: 0.6,
115
+ ease: "back.out(1.7)",
116
+ transformOrigin: "center center",
117
+ },
118
+ 0.7,
119
+ );
120
+ ```
121
+
122
+ ### Variations
123
+
124
+ ```css
125
+ /* Tighter circle (for short words) */
126
+ .mh-circle-ring.tight {
127
+ width: 150%;
128
+ height: 180%;
129
+ }
130
+
131
+ /* Squared circle (rounded rectangle) */
132
+ .mh-circle-ring.rounded {
133
+ border-radius: 30%;
134
+ width: 120%;
135
+ height: 140%;
136
+ }
137
+
138
+ /* Ellipse (wider than tall) */
139
+ .mh-circle-ring.ellipse {
140
+ width: 150%;
141
+ height: 130%;
142
+ border-radius: 50%;
143
+ }
144
+ ```
145
+
146
+ ## 3. Burst Mode
147
+
148
+ Radiating lines from text center. Each line is a positioned div rotated to its angle.
149
+
150
+ ```html
151
+ <span class="mh-burst-wrap">
152
+ <span class="mh-burst-text">WOW</span>
153
+ <span class="mh-burst-container" id="burst-1">
154
+ <span class="mh-burst-line" style="--angle: 0deg; --len: 70px;"></span>
155
+ <span class="mh-burst-line" style="--angle: 30deg; --len: 55px;"></span>
156
+ <span class="mh-burst-line" style="--angle: 60deg; --len: 80px;"></span>
157
+ <span class="mh-burst-line" style="--angle: 90deg; --len: 45px;"></span>
158
+ <span class="mh-burst-line" style="--angle: 120deg; --len: 65px;"></span>
159
+ <span class="mh-burst-line" style="--angle: 150deg; --len: 75px;"></span>
160
+ <span class="mh-burst-line" style="--angle: 180deg; --len: 50px;"></span>
161
+ <span class="mh-burst-line" style="--angle: 210deg; --len: 60px;"></span>
162
+ <span class="mh-burst-line" style="--angle: 240deg; --len: 80px;"></span>
163
+ <span class="mh-burst-line" style="--angle: 270deg; --len: 40px;"></span>
164
+ <span class="mh-burst-line" style="--angle: 300deg; --len: 70px;"></span>
165
+ <span class="mh-burst-line" style="--angle: 330deg; --len: 55px;"></span>
166
+ </span>
167
+ </span>
168
+ ```
169
+
170
+ ```css
171
+ .mh-burst-wrap {
172
+ position: relative;
173
+ display: inline;
174
+ }
175
+ .mh-burst-text {
176
+ position: relative;
177
+ z-index: 2;
178
+ }
179
+ .mh-burst-container {
180
+ position: absolute;
181
+ top: 50%;
182
+ left: 50%;
183
+ width: 0;
184
+ height: 0;
185
+ z-index: 1;
186
+ }
187
+ .mh-burst-line {
188
+ position: absolute;
189
+ display: block;
190
+ width: 3px;
191
+ height: var(--len);
192
+ background: #1e88e5;
193
+ left: -1.5px;
194
+ top: calc(-1 * var(--len));
195
+ transform: rotate(var(--angle));
196
+ transform-origin: bottom center;
197
+ opacity: 0;
198
+ }
199
+ ```
200
+
201
+ ```js
202
+ // All lines burst outward simultaneously with slight stagger
203
+ tl.fromTo(
204
+ "#burst-1 .mh-burst-line",
205
+ { scaleY: 0, opacity: 0 },
206
+ { scaleY: 1, opacity: 1, duration: 0.4, ease: "power2.out", stagger: 0.03 },
207
+ 0.7,
208
+ );
209
+ ```
210
+
211
+ **Vary line lengths** (40-80px range) for an organic, hand-drawn feel. Equal lengths look mechanical.
212
+
213
+ ## 4. Scribble Mode
214
+
215
+ Wavy SVG underlines and strikethroughs that draw themselves via `stroke-dashoffset`.
216
+
217
+ ```html
218
+ <span class="mh-scribble-wrap">
219
+ <span class="mh-scribble-text">underlined text</span>
220
+ <svg class="mh-scribble-svg" viewBox="0 0 500 24" preserveAspectRatio="none">
221
+ <path
222
+ id="scribble-1"
223
+ d="M0,12 Q31,0 62,12 Q93,24 125,12 Q156,0 187,12 Q218,24 250,12 Q281,0 312,12 Q343,24 375,12 Q406,0 437,12 Q468,24 500,12"
224
+ fill="none"
225
+ stroke="#FDD835"
226
+ stroke-width="3"
227
+ stroke-linecap="round"
228
+ />
229
+ </svg>
230
+ </div>
231
+ ```
232
+
233
+ ```css
234
+ .mh-scribble-wrap {
235
+ position: relative;
236
+ display: inline;
237
+ }
238
+ .mh-scribble-text {
239
+ position: relative;
240
+ z-index: 1;
241
+ }
242
+ .mh-scribble-svg {
243
+ position: absolute;
244
+ left: 0;
245
+ bottom: -6px;
246
+ width: 100%;
247
+ height: 24px;
248
+ z-index: 0;
249
+ }
250
+ ```
251
+
252
+ ```js
253
+ // Measure path length and set initial dash state
254
+ var path = document.querySelector("#scribble-1");
255
+ var len = path.getTotalLength();
256
+ gsap.set(path, { strokeDasharray: len, strokeDashoffset: len });
257
+
258
+ // Draw the line
259
+ tl.to(
260
+ "#scribble-1",
261
+ {
262
+ strokeDashoffset: 0,
263
+ duration: 0.8,
264
+ ease: "power1.inOut",
265
+ },
266
+ 0.7,
267
+ );
268
+ ```
269
+
270
+ ### Strikethrough Variant
271
+
272
+ Position the SVG at `top: 50%; transform: translateY(-50%)` instead of `bottom: -6px`.
273
+
274
+ ### Wavy Path Generator
275
+
276
+ Scale the path's viewBox width to match text width. The wave pattern `Q x1,y1 x2,y2` alternates between `y=0` and `y=24` for a natural wobble. Adjust the control points for tighter or looser waves:
277
+
278
+ - **Tight waves**: smaller x-increments (25px per half-wave)
279
+ - **Loose waves**: larger x-increments (50px per half-wave)
280
+ - **Amplitude**: change the y range (0-24 for standard, 0-16 for subtle)
281
+
282
+ ## 5. Sketchout Mode
283
+
284
+ Cross-hatch lines over de-emphasized text. Multiple angled lines create a "crossed out" effect.
285
+
286
+ ```html
287
+ <span class="mh-sketchout-wrap">
288
+ <span class="mh-sketchout-text">old price</span>
289
+ <span class="mh-sketchout-lines" id="sketchout-1">
290
+ <span class="mh-sketchout-line mh-sketchout-fwd"></span>
291
+ <span class="mh-sketchout-line mh-sketchout-bwd"></span>
292
+ </span>
293
+ </span>
294
+ ```
295
+
296
+ ```css
297
+ .mh-sketchout-wrap {
298
+ position: relative;
299
+ display: inline;
300
+ }
301
+ .mh-sketchout-text {
302
+ position: relative;
303
+ z-index: 0;
304
+ }
305
+ .mh-sketchout-lines {
306
+ position: absolute;
307
+ top: 0;
308
+ left: -4px;
309
+ right: -4px;
310
+ bottom: 0;
311
+ overflow: hidden;
312
+ z-index: 1;
313
+ }
314
+ .mh-sketchout-line {
315
+ position: absolute;
316
+ display: block;
317
+ top: 50%;
318
+ left: 0;
319
+ width: 100%;
320
+ height: 2px;
321
+ background: #e53935;
322
+ transform-origin: left center;
323
+ transform: scaleX(0);
324
+ }
325
+ .mh-sketchout-fwd {
326
+ transform: scaleX(0) rotate(-12deg);
327
+ }
328
+ .mh-sketchout-bwd {
329
+ transform: scaleX(0) rotate(12deg);
330
+ }
331
+ ```
332
+
333
+ ```js
334
+ // Forward slash draws first
335
+ tl.to(
336
+ "#sketchout-1 .mh-sketchout-fwd",
337
+ {
338
+ scaleX: 1,
339
+ duration: 0.3,
340
+ ease: "power2.out",
341
+ },
342
+ 1.0,
343
+ );
344
+
345
+ // Backward slash follows
346
+ tl.to(
347
+ "#sketchout-1 .mh-sketchout-bwd",
348
+ {
349
+ scaleX: 1,
350
+ duration: 0.3,
351
+ ease: "power2.out",
352
+ },
353
+ 1.15,
354
+ );
355
+ ```
356
+
357
+ ## Combining Modes in Captions
358
+
359
+ Use mode cycling for visual variety across caption groups:
360
+
361
+ ```js
362
+ var MODES = ["highlight", "circle", "burst", "scribble"];
363
+
364
+ GROUPS.forEach(function (group, gi) {
365
+ var mode = MODES[gi % MODES.length];
366
+ // Apply the mode's CSS pattern to emphasis words in this group
367
+ group.emphasisWords.forEach(function (word) {
368
+ applyMode(word.el, mode, tl, word.start);
369
+ });
370
+ });
371
+ ```
372
+
373
+ Cycle every 2-3 groups for high energy, every 3-4 for medium, every 4-5 for low.
@@ -0,0 +1,262 @@
1
+ ---
2
+ name: cursor-click-ripple
3
+ description: Animated mouse cursor moves to target, clicks with scale depression and expanding ripple rings.
4
+ metadata:
5
+ tags: cursor, click, ripple, interaction, mouse, button
6
+ ---
7
+
8
+ # Cursor Click Ripple
9
+
10
+ An animated cursor moves to a target element, performs a click with visual depression, and emits expanding ripple rings from the click point.
11
+
12
+ ## How It Works
13
+
14
+ Three sequential phases driven by a single GSAP timeline:
15
+
16
+ 1. **Move**: eased cursor translation from entry point to the target element's center
17
+ 2. **Click**: scale depression on both cursor and target (yoyo: shrink then return)
18
+ 3. **Ripple**: expanding circles radiate outward from the click point with fade-out. 1–3 staggered rings amplify the click feedback
19
+
20
+ Use a GSAP timeline because the phase ordering (move → settle → click → ripples) is exactly what timelines express cleanly.
21
+
22
+ ## HTML
23
+
24
+ ```html
25
+ <div
26
+ class="scene"
27
+ id="cursor-click-scene"
28
+ data-composition-id="cursor-click-scene"
29
+ data-start="0"
30
+ data-duration="2"
31
+ data-track-index="0"
32
+ >
33
+ <button class="target-button">{ctaLabel}</button>
34
+
35
+ <div class="cursor">
36
+ <svg width="24" height="24" viewBox="0 0 24 24">
37
+ <path
38
+ d="M5 3L19 12L12 13L9 20L5 3Z"
39
+ fill="{cursorFill}"
40
+ stroke="{cursorStroke}"
41
+ stroke-width="1.5"
42
+ />
43
+ </svg>
44
+ </div>
45
+
46
+ <!-- Ripple rings — centered on click target, hidden until trigger -->
47
+ <div class="ripple ripple-1"></div>
48
+ <div class="ripple ripple-2"></div>
49
+ <div class="ripple ripple-3"></div>
50
+ </div>
51
+ ```
52
+
53
+ ## CSS
54
+
55
+ Position cursor at the entry point. Button sits at its final position. Ripples are at the click-target center with `scale: 0` and `opacity: 0` so they hold invisible until the timeline trigger:
56
+
57
+ ```css
58
+ .scene {
59
+ position: relative;
60
+ width: 100%;
61
+ height: 100%;
62
+ }
63
+
64
+ .target-button {
65
+ position: absolute;
66
+ left: 50%;
67
+ top: 50%;
68
+ transform: translate(-50%, -50%);
69
+ /* ...button styling (background, color, font from project tokens) */
70
+ }
71
+
72
+ .cursor {
73
+ position: absolute;
74
+ left: 10%;
75
+ top: 80%; /* entry corner */
76
+ pointer-events: none;
77
+ z-index: 999;
78
+ }
79
+
80
+ .ripple {
81
+ position: absolute;
82
+ left: 50%;
83
+ top: 50%; /* click target center */
84
+ width: 100px;
85
+ height: 100px;
86
+ border-radius: 50%;
87
+ border: 2px solid {rippleColor};
88
+ transform: translate(-50%, -50%) scale(0);
89
+ opacity: 0;
90
+ pointer-events: none;
91
+ }
92
+ ```
93
+
94
+ ## GSAP Timeline
95
+
96
+ Build a paused timeline. Register it on `window.__timelines` with the same key as `data-composition-id` on the scene root. All tuning values are named constants — see How to Choose Values below.
97
+
98
+ ```html
99
+ <script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
100
+ <script>
101
+ window.__timelines = window.__timelines || {};
102
+ const tl = gsap.timeline({ paused: true });
103
+
104
+ // MOVE_DUR, MOVE_EASE, CLICK_AT, PRESS_DUR, CURSOR_PRESS_SCALE, TARGET_PRESS_SCALE,
105
+ // RIPPLE_AT, RIPPLE_DUR, RIPPLE_SCALE, RIPPLE_STAGGER, RIPPLE_EASE
106
+ // — all named; values per How to Choose Values.
107
+
108
+ // Phase 1 — Move cursor to target center (eased, not linear)
109
+ tl.to(
110
+ ".cursor",
111
+ {
112
+ x: TARGET_X,
113
+ y: TARGET_Y,
114
+ duration: MOVE_DUR,
115
+ ease: MOVE_EASE,
116
+ },
117
+ 0,
118
+ );
119
+
120
+ // Phase 2 — Click: cursor + target depress together, then return
121
+ tl.to(
122
+ ".cursor",
123
+ {
124
+ scale: CURSOR_PRESS_SCALE,
125
+ duration: PRESS_DUR,
126
+ ease: "power2.in",
127
+ yoyo: true,
128
+ repeat: 1,
129
+ },
130
+ CLICK_AT,
131
+ );
132
+ tl.to(
133
+ ".target-button",
134
+ {
135
+ scale: TARGET_PRESS_SCALE,
136
+ duration: PRESS_DUR,
137
+ ease: "power2.in",
138
+ yoyo: true,
139
+ repeat: 1,
140
+ },
141
+ CLICK_AT,
142
+ );
143
+
144
+ // Phase 3 — Ripple burst, N rings staggered from the click point
145
+ tl.set([".ripple-1", ".ripple-2", ".ripple-3"], { opacity: 1 }, RIPPLE_AT);
146
+ tl.to(
147
+ [".ripple-1", ".ripple-2", ".ripple-3"],
148
+ {
149
+ scale: RIPPLE_SCALE,
150
+ opacity: 0,
151
+ duration: RIPPLE_DUR,
152
+ ease: RIPPLE_EASE,
153
+ stagger: RIPPLE_STAGGER,
154
+ immediateRender: false,
155
+ },
156
+ RIPPLE_AT,
157
+ );
158
+
159
+ window.__timelines["cursor-click-scene"] = tl;
160
+ </script>
161
+ ```
162
+
163
+ ## How to Choose Values
164
+
165
+ - **MOVE_DUR** — cursor travel time from entry to target, in seconds
166
+ - Range: 0.4–1.0 s
167
+ - Effects: short feels darting; long feels deliberate / "considered click"
168
+ - Constraints: must end before `CLICK_AT` — otherwise the click fires while the cursor is still moving and reads as a misclick
169
+ - Reference: ../../examples/cta-orbit-collapse.html uses 0.5 s
170
+
171
+ - **MOVE_EASE** — easing family for the move tween
172
+ - Discrete choice. Options:
173
+ - `power2.inOut` — symmetric, calm; good for "the user thoughtfully moves the cursor"
174
+ - `back.out(<n>)` — overshoot landing; good when the click target is a button you want the cursor to "settle onto" with a tiny visible recoil. Pair with a low overshoot coefficient (~1.2–1.4) — higher reads as cartoonish
175
+ - `power3.out` — fast start, soft landing; good for a "decisive" move
176
+ - Reference: ../../examples/cta-orbit-collapse.html uses `back.out(1.3)`
177
+
178
+ - **CLICK_AT** — time the click fires, in seconds
179
+ - Range: must be ≥ `MOVE_DUR` (cursor has settled); typically `MOVE_DUR + 0.0–0.3 s` of "decision pause"
180
+ - Effects: zero pause reads as autopilot; >0.3 s of pause reads as hesitation
181
+ - Reference: ../../examples/cta-orbit-collapse.html clicks 0.2 s after the cursor settles
182
+
183
+ - **PRESS_DUR** — half-duration of the depression (the yoyo runs twice this)
184
+ - Range: 0.06–0.12 s
185
+ - Effects: short feels crisp; long feels mushy
186
+ - Constraints: total press = `2 * PRESS_DUR`; must finish before the next scene phase needs the cursor / target back at normal scale
187
+ - Reference: ../../examples/cta-orbit-collapse.html uses 0.08 s
188
+
189
+ - **CURSOR_PRESS_SCALE / TARGET_PRESS_SCALE** — how far each compresses during the click
190
+ - Range: cursor 0.80–0.90; target 0.92–0.97
191
+ - Effects: smaller numbers = stronger "this click counts" feel; values close to 1 read as a gentle tap
192
+ - Constraints: cursor compresses MORE than the target — the cursor is the actor, the target is the recipient
193
+ - Reference: ../../examples/cta-orbit-collapse.html uses cursor 0.85 / target 0.95
194
+
195
+ - **RIPPLE_AT** — when the rings start expanding, in seconds
196
+ - Range: `CLICK_AT + 0.0–0.08 s`
197
+ - Effects: simultaneous with the press feels causal; slight delay feels acoustic ("the click happens, then the wave radiates")
198
+ - Reference: ../../examples/cta-orbit-collapse.html starts the ripple at `CLICK_AT` exactly
199
+
200
+ - **RIPPLE_DUR** — how long each ring takes to fully expand and fade
201
+ - Range: 0.5–1.0 s
202
+ - Effects: short rings feel sharp; long rings feel like a soft sonar
203
+ - Constraints: must complete before any phase that depends on the ring being gone (e.g. a screen wipe)
204
+ - Reference: ../../examples/cta-orbit-collapse.html uses 0.7 s
205
+
206
+ - **RIPPLE_SCALE** — final scale of each ring before it fades
207
+ - Range: 3–6
208
+ - Effects: 3 keeps the ring near the click site; 6 lets it sweep the surrounding area
209
+ - Constraints: if the ring would exit the visible frame before opacity reaches 0, lower the scale or shorten the duration
210
+ - Reference: ../../examples/cta-orbit-collapse.html uses 5
211
+
212
+ - **RIPPLE_STAGGER** — delay between consecutive rings
213
+ - Range: 0.06–0.12 s (or 0 for a single ring; see Variations)
214
+ - Effects: below ~0.06 s reads as one thick ring; above ~0.12 s reads as separate events
215
+ - Reference: ../../examples/cta-orbit-collapse.html uses a single ring (no stagger)
216
+
217
+ - **RIPPLE_EASE** — easing family for the expansion
218
+ - Discrete choice. Options:
219
+ - `power2.out` — fast start, soft tail; the standard "ping" feel
220
+ - `power3.out` — even sharper attack, longer tail
221
+ - `expo.out` — almost-instant expansion with a long quiet fade; reads as a strong, distant pulse
222
+ - Reference: ../../examples/cta-orbit-collapse.html uses `power2.out`
223
+
224
+ - **TARGET_X / TARGET_Y** — pixel offset of the click target from the cursor's CSS-laid origin
225
+ - These are layout-derived, not creative knobs — they must match the visual centroid of the actual click target. A 4 px miss reads as missing the button
226
+ - Reference: ../../examples/cta-orbit-collapse.html targets the white button at `CENTER_X + 130, CENTER_Y + 15`
227
+
228
+ ## Variations
229
+
230
+ - **Single ring** — keep one `.ripple` element, drop the stagger; reads as more elegant when the rest of the scene is busy
231
+ - **Keyframed attack-decay** — replace the simple expand-and-fade with a `keyframes` block that ramps opacity 0 → peak → 0 across the duration; gives a clearer "energy radiates and dissipates" envelope (used in ../../examples/cta-orbit-collapse.html)
232
+ - **Multi-ring expanding pulse** — 3 rings with 0.08 s stagger feels richer when the click is the climactic moment of the scene
233
+
234
+ ## Key Principles
235
+
236
+ - **Move before click**: trigger the click only after the move tween has settled — clicking mid-motion reads as unintentional
237
+ - **Synchronized depression**: cursor + target depress at the same `position` time with the same duration (and both yoyo back)
238
+ - **Ripple from click point**: ripples expand from the exact click location (the button's visual center), not from any element's bounding-box origin
239
+ - **Subtle scale**: cursor compresses more than the target — see `CURSOR_PRESS_SCALE` / `TARGET_PRESS_SCALE`
240
+ - **High z-index cursor**: cursor renders above all content for the entire sequence
241
+
242
+ ## Critical Constraints
243
+
244
+ - **Timeline must be paused**: `gsap.timeline({ paused: true })`. Never call `tl.play()` — HyperFrames seeks the timeline frame-by-frame deterministically
245
+ - **Registry key = `data-composition-id`**: `window.__timelines["<id>"]` must match the `data-composition-id` on the scene root exactly
246
+ - **`immediateRender: false` on the ripple expand**: holds the initial state (`scale: 0`, `opacity: 0`) until the click moment, otherwise the tween pre-renders and the rings appear at the wrong size at t=0
247
+ - **Finite duration**: verify `tl.duration()` matches the scene's `data-duration`
248
+ - **`pointer-events: none` on cursor + ripples**: they're purely visual; never block underlying interactivity (matters for hover-able exports)
249
+ - **No CSS transitions / animations**: all motion lives in the GSAP timeline so seek stays deterministic
250
+
251
+ ## Combinations
252
+
253
+ - [orbit-3d-entry.md](orbit-3d-entry.md) — when the click is the pivot that collapses orbiting elements toward the cursor's target
254
+ - [center-outward-expansion.md](center-outward-expansion.md) — the click can be the trigger for an outward burst from the click point
255
+ - [press-release-spring.md](press-release-spring.md) for stronger physical feel on the target button
256
+ - [scale-swap-transition.md](scale-swap-transition.md) for the button's state change after click (button morphs into success state, next view, etc.)
257
+
258
+ ## Pairs with HF skills
259
+
260
+ - `/hyperframes-animation` — timeline + tween API reference (eases, stagger, `immediateRender`, etc.)
261
+ - `/hyperframes-core` — composition wiring (`data-*` attributes, scene structure, registration contract)
262
+ - `/hyperframes-cli` — `hyperframes lint` to verify the registry key + duration match