hyper-animator-codex 0.7.1 → 0.8.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 (318) hide show
  1. package/README.md +51 -3
  2. package/bin/hyper-animator-codex.mjs +1 -1
  3. package/lib/minimax-config.mjs +3 -3
  4. package/package.json +1 -1
  5. package/skills/hyper-animator-codex/SKILL.md +58 -20
  6. package/skills/hyper-animator-codex/agents/openai.yaml +2 -2
  7. package/skills/hyper-animator-codex/contracts/shot-plan.schema.json +214 -0
  8. package/skills/hyper-animator-codex/contracts/workflow-policy.json +85 -0
  9. package/skills/hyper-animator-codex/references/HyperFrames-AI-Generation-Patterns-codex.md +788 -0
  10. package/skills/hyper-animator-codex/references/beat-sync-workflow.md +7 -0
  11. package/skills/hyper-animator-codex/references/examples/shot-plan-dual-catalog.json +69 -0
  12. package/skills/hyper-animator-codex/references/hyperframes-agent-pseudocode.ts +1 -1
  13. package/skills/hyper-animator-codex/references/hyperframes-catalog-map.json +97 -230
  14. package/skills/hyper-animator-codex/references/hyperframes-intent-workflow.md +23 -7
  15. package/skills/hyper-animator-codex/references/minimax-music-workflow.md +24 -4
  16. package/skills/hyper-animator-codex/references/narration-audio-workflow.md +31 -1
  17. package/skills/hyper-animator-codex/references/shotcraft/LICENSE +202 -0
  18. package/skills/hyper-animator-codex/references/shotcraft/cards/ai-stream-response/README.md +46 -0
  19. package/skills/hyper-animator-codex/references/shotcraft/cards/autolayout-gap-dial/README.md +53 -0
  20. package/skills/hyper-animator-codex/references/shotcraft/cards/beat-cut-moves/README.md +54 -0
  21. package/skills/hyper-animator-codex/references/shotcraft/cards/beat-step-list-theme-cycle/README.md +59 -0
  22. package/skills/hyper-animator-codex/references/shotcraft/cards/before-after-slider-scrub/README.md +47 -0
  23. package/skills/hyper-animator-codex/references/shotcraft/cards/bottom-push-stack-wipe/README.md +58 -0
  24. package/skills/hyper-animator-codex/references/shotcraft/cards/brand-frame-snap/README.md +51 -0
  25. package/skills/hyper-animator-codex/references/shotcraft/cards/brand-ink-open/README.md +35 -0
  26. package/skills/hyper-animator-codex/references/shotcraft/cards/bubble-swarm-takeover/README.md +62 -0
  27. package/skills/hyper-animator-codex/references/shotcraft/cards/canvas-materialize-moves/README.md +55 -0
  28. package/skills/hyper-animator-codex/references/shotcraft/cards/card-flip-reveal/README.md +50 -0
  29. package/skills/hyper-animator-codex/references/shotcraft/cards/card-flock-tumble/README.md +54 -0
  30. package/skills/hyper-animator-codex/references/shotcraft/cards/cel-flash-stomp/README.md +54 -0
  31. package/skills/hyper-animator-codex/references/shotcraft/cards/chart-live-moves/README.md +51 -0
  32. package/skills/hyper-animator-codex/references/shotcraft/cards/circle-match-iris/README.md +53 -0
  33. package/skills/hyper-animator-codex/references/shotcraft/cards/cloner-depth-echo/README.md +38 -0
  34. package/skills/hyper-animator-codex/references/shotcraft/cards/collab-cursor-moves/README.md +48 -0
  35. package/skills/hyper-animator-codex/references/shotcraft/cards/color-block-step-wipe/README.md +54 -0
  36. package/skills/hyper-animator-codex/references/shotcraft/cards/command-palette-summon/README.md +45 -0
  37. package/skills/hyper-animator-codex/references/shotcraft/cards/crane-rise-reveal/README.md +47 -0
  38. package/skills/hyper-animator-codex/references/shotcraft/cards/crash-zoom-punch/README.md +38 -0
  39. package/skills/hyper-animator-codex/references/shotcraft/cards/dataviz-landscape-open/README.md +54 -0
  40. package/skills/hyper-animator-codex/references/shotcraft/cards/deck-deal-flyin/README.md +45 -0
  41. package/skills/hyper-animator-codex/references/shotcraft/cards/depth-layer-moves/README.md +40 -0
  42. package/skills/hyper-animator-codex/references/shotcraft/cards/document-typewriter-reveal/README.md +40 -0
  43. package/skills/hyper-animator-codex/references/shotcraft/cards/draw-svg-trace/README.md +50 -0
  44. package/skills/hyper-animator-codex/references/shotcraft/cards/edit-hook-moves/README.md +38 -0
  45. package/skills/hyper-animator-codex/references/shotcraft/cards/element-body-moves/README.md +49 -0
  46. package/skills/hyper-animator-codex/references/shotcraft/cards/fui-hud-moves/README.md +44 -0
  47. package/skills/hyper-animator-codex/references/shotcraft/cards/gauge-readout-moves/README.md +45 -0
  48. package/skills/hyper-animator-codex/references/shotcraft/cards/glow-flyline-moves/README.md +51 -0
  49. package/skills/hyper-animator-codex/references/shotcraft/cards/gradient-word-sweep/README.md +49 -0
  50. package/skills/hyper-animator-codex/references/shotcraft/cards/graze-face-tour/README.md +56 -0
  51. package/skills/hyper-animator-codex/references/shotcraft/cards/hashtag-to-pill-materialize/README.md +57 -0
  52. package/skills/hyper-animator-codex/references/shotcraft/cards/hires-rasterize-3d-text/README.md +34 -0
  53. package/skills/hyper-animator-codex/references/shotcraft/cards/icon-field-colorize/README.md +53 -0
  54. package/skills/hyper-animator-codex/references/shotcraft/cards/icon-performance-moves/README.md +46 -0
  55. package/skills/hyper-animator-codex/references/shotcraft/cards/impact-feedback/README.md +50 -0
  56. package/skills/hyper-animator-codex/references/shotcraft/cards/input-trigger-moves/README.md +49 -0
  57. package/skills/hyper-animator-codex/references/shotcraft/cards/integration-hub-map/README.md +54 -0
  58. package/skills/hyper-animator-codex/references/shotcraft/cards/letterspace-materialize/README.md +52 -0
  59. package/skills/hyper-animator-codex/references/shotcraft/cards/light-play-moves/README.md +49 -0
  60. package/skills/hyper-animator-codex/references/shotcraft/cards/line-boil/README.md +52 -0
  61. package/skills/hyper-animator-codex/references/shotcraft/cards/line-carry-transition/README.md +52 -0
  62. package/skills/hyper-animator-codex/references/shotcraft/cards/list-stack-press/README.md +43 -0
  63. package/skills/hyper-animator-codex/references/shotcraft/cards/magician-card-flourish/README.md +63 -0
  64. package/skills/hyper-animator-codex/references/shotcraft/cards/marker-underline-title/README.md +48 -0
  65. package/skills/hyper-animator-codex/references/shotcraft/cards/montage-rhythm-moves/README.md +55 -0
  66. package/skills/hyper-animator-codex/references/shotcraft/cards/morph-from-primitive/README.md +51 -0
  67. package/skills/hyper-animator-codex/references/shotcraft/cards/neon-frame-forerun/README.md +50 -0
  68. package/skills/hyper-animator-codex/references/shotcraft/cards/neon-frame-orbit-drop/README.md +50 -0
  69. package/skills/hyper-animator-codex/references/shotcraft/cards/neon-triple-marquee/README.md +55 -0
  70. package/skills/hyper-animator-codex/references/shotcraft/cards/odometer-digit-roll/README.md +54 -0
  71. package/skills/hyper-animator-codex/references/shotcraft/cards/outro-group-photo-launch/README.md +39 -0
  72. package/skills/hyper-animator-codex/references/shotcraft/cards/overhead-camera-moves/README.md +50 -0
  73. package/skills/hyper-animator-codex/references/shotcraft/cards/page-turn-transitions/README.md +48 -0
  74. package/skills/hyper-animator-codex/references/shotcraft/cards/page-waterfall-wall/README.md +52 -0
  75. package/skills/hyper-animator-codex/references/shotcraft/cards/panel-grid-moves/README.md +52 -0
  76. package/skills/hyper-animator-codex/references/shotcraft/cards/paper-craft-moves/README.md +46 -0
  77. package/skills/hyper-animator-codex/references/shotcraft/cards/paper-plane-messenger/README.md +62 -0
  78. package/skills/hyper-animator-codex/references/shotcraft/cards/paper-title-card/README.md +36 -0
  79. package/skills/hyper-animator-codex/references/shotcraft/cards/particle-celebrate-hits/README.md +42 -0
  80. package/skills/hyper-animator-codex/references/shotcraft/cards/particle-sand-fill/README.md +39 -0
  81. package/skills/hyper-animator-codex/references/shotcraft/cards/pill-slot-cycle/README.md +57 -0
  82. package/skills/hyper-animator-codex/references/shotcraft/cards/print-texture-transitions/README.md +40 -0
  83. package/skills/hyper-animator-codex/references/shotcraft/cards/rhythm-interrupt-moves/README.md +44 -0
  84. package/skills/hyper-animator-codex/references/shotcraft/cards/riso-print-hits/README.md +54 -0
  85. package/skills/hyper-animator-codex/references/shotcraft/cards/row-embed/README.md +36 -0
  86. package/skills/hyper-animator-codex/references/shotcraft/cards/runway-ground-skim/README.md +52 -0
  87. package/skills/hyper-animator-codex/references/shotcraft/cards/sakuga-timing-shift/README.md +50 -0
  88. package/skills/hyper-animator-codex/references/shotcraft/cards/scene-locked-title/README.md +43 -0
  89. package/skills/hyper-animator-codex/references/shotcraft/cards/scroll-brake-moves/README.md +45 -0
  90. package/skills/hyper-animator-codex/references/shotcraft/cards/segmented-thumb-hero/README.md +57 -0
  91. package/skills/hyper-animator-codex/references/shotcraft/cards/shot-transitions/README.md +60 -0
  92. package/skills/hyper-animator-codex/references/shotcraft/cards/skeleton-reveal/README.md +54 -0
  93. package/skills/hyper-animator-codex/references/shotcraft/cards/slam-entrance-moves/README.md +53 -0
  94. package/skills/hyper-animator-codex/references/shotcraft/cards/smear-multiples/README.md +49 -0
  95. package/skills/hyper-animator-codex/references/shotcraft/cards/space-camera-moves/README.md +53 -0
  96. package/skills/hyper-animator-codex/references/shotcraft/cards/spectrum-morph-ui/README.md +50 -0
  97. package/skills/hyper-animator-codex/references/shotcraft/cards/speed-ramp-freeze/README.md +42 -0
  98. package/skills/hyper-animator-codex/references/shotcraft/cards/split-flap-title/README.md +52 -0
  99. package/skills/hyper-animator-codex/references/shotcraft/cards/spotlight-hero-card/README.md +39 -0
  100. package/skills/hyper-animator-codex/references/shotcraft/cards/spotlight-sweep-moves/README.md +51 -0
  101. package/skills/hyper-animator-codex/references/shotcraft/cards/steep-tilt-glide/README.md +53 -0
  102. package/skills/hyper-animator-codex/references/shotcraft/cards/stroke-segment-build/README.md +43 -0
  103. package/skills/hyper-animator-codex/references/shotcraft/cards/tear-streak-transitions/README.md +43 -0
  104. package/skills/hyper-animator-codex/references/shotcraft/cards/tension-camera-moves/README.md +55 -0
  105. package/skills/hyper-animator-codex/references/shotcraft/cards/text-as-mask/README.md +50 -0
  106. package/skills/hyper-animator-codex/references/shotcraft/cards/text-column-converge/README.md +55 -0
  107. package/skills/hyper-animator-codex/references/shotcraft/cards/theme-switch-moves/README.md +44 -0
  108. package/skills/hyper-animator-codex/references/shotcraft/cards/timeline-travel/README.md +43 -0
  109. package/skills/hyper-animator-codex/references/shotcraft/cards/title-demote-to-label/README.md +58 -0
  110. package/skills/hyper-animator-codex/references/shotcraft/cards/trailer-grammar-moves/README.md +51 -0
  111. package/skills/hyper-animator-codex/references/shotcraft/cards/transition-hidden-cut/README.md +52 -0
  112. package/skills/hyper-animator-codex/references/shotcraft/cards/transition-travel/README.md +48 -0
  113. package/skills/hyper-animator-codex/references/shotcraft/cards/type-and-filter/README.md +37 -0
  114. package/skills/hyper-animator-codex/references/shotcraft/cards/type-assembly-moves/README.md +50 -0
  115. package/skills/hyper-animator-codex/references/shotcraft/cards/type-entrance-moves/README.md +46 -0
  116. package/skills/hyper-animator-codex/references/shotcraft/cards/type-rhythm-sync/README.md +47 -0
  117. package/skills/hyper-animator-codex/references/shotcraft/cards/typewriter-moves/README.md +50 -0
  118. package/skills/hyper-animator-codex/references/shotcraft/cards/ui-strip-away-outro/README.md +63 -0
  119. package/skills/hyper-animator-codex/references/shotcraft/cards/ui-to-brand-morph/README.md +52 -0
  120. package/skills/hyper-animator-codex/references/shotcraft/cards/voice-waveform-live/README.md +52 -0
  121. package/skills/hyper-animator-codex/references/shotcraft/cards/wall-reveal-moves/README.md +53 -0
  122. package/skills/hyper-animator-codex/references/shotcraft/cards/wipe-transitions/README.md +47 -0
  123. package/skills/hyper-animator-codex/references/shotcraft/cards/word-relay-filmstrip/README.md +50 -0
  124. package/skills/hyper-animator-codex/references/shotcraft/catalog.json +3946 -0
  125. package/skills/hyper-animator-codex/references/shotcraft/references/aesthetic-rules.md +157 -0
  126. package/skills/hyper-animator-codex/references/shotcraft/references/final-review.md +107 -0
  127. package/skills/hyper-animator-codex/references/shotcraft/references/guided-free-creation.md +197 -0
  128. package/skills/hyper-animator-codex/references/shotcraft/references/music-beat-sync.md +125 -0
  129. package/skills/hyper-animator-codex/references/shotcraft/references/pipeline.md +357 -0
  130. package/skills/hyper-animator-codex/references/shotcraft/references/sound-design.md +126 -0
  131. package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/Caption.tsx +50 -0
  132. package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/DigitRoll.tsx +45 -0
  133. package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/FlashCut.tsx +20 -0
  134. package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/FlatPanel.tsx +65 -0
  135. package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/PageCam.tsx +151 -0
  136. package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/VerticalTicker.tsx +129 -0
  137. package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/helpers/camera.tsx +75 -0
  138. package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/helpers/motion.ts +40 -0
  139. package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/helpers/rand.ts +11 -0
  140. package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/helpers/shake.ts +10 -0
  141. package/skills/hyper-animator-codex/references/shotcraft/source/demos/_fixtures/Fixtures.tsx +83 -0
  142. package/skills/hyper-animator-codex/references/shotcraft/source/demos/ai-stream-response/StreamResponse.tsx +146 -0
  143. package/skills/hyper-animator-codex/references/shotcraft/source/demos/autolayout-gap-dial/AutolayoutGapDial.tsx +174 -0
  144. package/skills/hyper-animator-codex/references/shotcraft/source/demos/beat-cut-moves/BeatCutAccelerando.tsx +77 -0
  145. package/skills/hyper-animator-codex/references/shotcraft/source/demos/beat-cut-moves/PaparazziFlash.tsx +115 -0
  146. package/skills/hyper-animator-codex/references/shotcraft/source/demos/beat-step-list-theme-cycle/BeatStepListThemeCycle.tsx +98 -0
  147. package/skills/hyper-animator-codex/references/shotcraft/source/demos/before-after-slider-scrub/BeforeAfterSliderScrub.tsx +99 -0
  148. package/skills/hyper-animator-codex/references/shotcraft/source/demos/bottom-push-stack-wipe/BottomPushStackWipe.tsx +79 -0
  149. package/skills/hyper-animator-codex/references/shotcraft/source/demos/brand-frame-snap/BrandFrameSnap.tsx +110 -0
  150. package/skills/hyper-animator-codex/references/shotcraft/source/demos/bubble-swarm-takeover/BubbleSwarmTakeover.tsx +189 -0
  151. package/skills/hyper-animator-codex/references/shotcraft/source/demos/canvas-materialize-moves/DiagramCascadeBuild.tsx +172 -0
  152. package/skills/hyper-animator-codex/references/shotcraft/source/demos/canvas-materialize-moves/PanelToCanvasMaterialize.tsx +254 -0
  153. package/skills/hyper-animator-codex/references/shotcraft/source/demos/card-flip-reveal/CardFlipReveal.tsx +139 -0
  154. package/skills/hyper-animator-codex/references/shotcraft/source/demos/card-flock-tumble/CardFlockTumble.tsx +382 -0
  155. package/skills/hyper-animator-codex/references/shotcraft/source/demos/cel-flash-stomp/CelFlashStomp.tsx +111 -0
  156. package/skills/hyper-animator-codex/references/shotcraft/source/demos/chart-live-moves/AxisRescaleShockV2.tsx +282 -0
  157. package/skills/hyper-animator-codex/references/shotcraft/source/demos/chart-live-moves/OscilloscopeStreamV2.tsx +227 -0
  158. package/skills/hyper-animator-codex/references/shotcraft/source/demos/chart-live-moves/UnitDotSwarmRegroupV2.tsx +248 -0
  159. package/skills/hyper-animator-codex/references/shotcraft/source/demos/circle-match-iris/CircleMatchIris.tsx +124 -0
  160. package/skills/hyper-animator-codex/references/shotcraft/source/demos/cloner-depth-echo/ClonerDepthEcho.tsx +90 -0
  161. package/skills/hyper-animator-codex/references/shotcraft/source/demos/collab-cursor-moves/CursorCastEnsemble.tsx +136 -0
  162. package/skills/hyper-animator-codex/references/shotcraft/source/demos/collab-cursor-moves/CursorDialogueDuet.tsx +145 -0
  163. package/skills/hyper-animator-codex/references/shotcraft/source/demos/color-block-step-wipe/ColorBlockStepWipe.tsx +157 -0
  164. package/skills/hyper-animator-codex/references/shotcraft/source/demos/command-palette-summon/CommandPaletteSummon.tsx +173 -0
  165. package/skills/hyper-animator-codex/references/shotcraft/source/demos/crane-rise-reveal/CraneRiseReveal.tsx +91 -0
  166. package/skills/hyper-animator-codex/references/shotcraft/source/demos/crash-zoom-punch/CrashImpactReal.tsx +63 -0
  167. package/skills/hyper-animator-codex/references/shotcraft/source/demos/crash-zoom-punch/CrashZoomReal.tsx +60 -0
  168. package/skills/hyper-animator-codex/references/shotcraft/source/demos/dataviz-landscape-open/DatavizLandscapeOpen.tsx +401 -0
  169. package/skills/hyper-animator-codex/references/shotcraft/source/demos/depth-layer-moves/DollyZoomReal.tsx +55 -0
  170. package/skills/hyper-animator-codex/references/shotcraft/source/demos/depth-layer-moves/MultiplaneReal.tsx +45 -0
  171. package/skills/hyper-animator-codex/references/shotcraft/source/demos/draw-svg-trace/DrawSvgTrace.tsx +199 -0
  172. package/skills/hyper-animator-codex/references/shotcraft/source/demos/edit-hook-moves/LogoStingButton.tsx +106 -0
  173. package/skills/hyper-animator-codex/references/shotcraft/source/demos/element-body-moves/AxialStretch.tsx +112 -0
  174. package/skills/hyper-animator-codex/references/shotcraft/source/demos/element-body-moves/ContactShadowLift.tsx +117 -0
  175. package/skills/hyper-animator-codex/references/shotcraft/source/demos/fui-hud-moves/LineUnfoldPanel.tsx +125 -0
  176. package/skills/hyper-animator-codex/references/shotcraft/source/demos/fui-hud-moves/ReticleLockOn.tsx +139 -0
  177. package/skills/hyper-animator-codex/references/shotcraft/source/demos/gauge-readout-moves/NeedleSweepSelftest.tsx +146 -0
  178. package/skills/hyper-animator-codex/references/shotcraft/source/demos/gauge-readout-moves/TapeScrollFixedPointer.tsx +120 -0
  179. package/skills/hyper-animator-codex/references/shotcraft/source/demos/glow-flyline-moves/FlylineArc.tsx +158 -0
  180. package/skills/hyper-animator-codex/references/shotcraft/source/demos/glow-flyline-moves/GlowOrbAmbient.tsx +131 -0
  181. package/skills/hyper-animator-codex/references/shotcraft/source/demos/glow-flyline-moves/OrbFlylineRelay.tsx +268 -0
  182. package/skills/hyper-animator-codex/references/shotcraft/source/demos/gradient-word-sweep/GradientWordSweep.tsx +307 -0
  183. package/skills/hyper-animator-codex/references/shotcraft/source/demos/graze-face-tour/GrazeFaceTour.tsx +469 -0
  184. package/skills/hyper-animator-codex/references/shotcraft/source/demos/hashtag-to-pill-materialize/HashtagToPillMaterialize.tsx +166 -0
  185. package/skills/hyper-animator-codex/references/shotcraft/source/demos/icon-field-colorize/IconFieldColorize.tsx +93 -0
  186. package/skills/hyper-animator-codex/references/shotcraft/source/demos/icon-performance-moves/AttentionBounce.tsx +193 -0
  187. package/skills/hyper-animator-codex/references/shotcraft/source/demos/icon-performance-moves/PopBurstConfirm.tsx +162 -0
  188. package/skills/hyper-animator-codex/references/shotcraft/source/demos/impact-feedback/AnimeImpact.tsx +149 -0
  189. package/skills/hyper-animator-codex/references/shotcraft/source/demos/impact-feedback/HitCounter.tsx +147 -0
  190. package/skills/hyper-animator-codex/references/shotcraft/source/demos/input-trigger-moves/CursorPerformancePunchIn.tsx +154 -0
  191. package/skills/hyper-animator-codex/references/shotcraft/source/demos/input-trigger-moves/KeycapSmashCut.tsx +217 -0
  192. package/skills/hyper-animator-codex/references/shotcraft/source/demos/integration-hub-map/IntegrationHubMap.tsx +554 -0
  193. package/skills/hyper-animator-codex/references/shotcraft/source/demos/letterspace-materialize/LetterspaceMaterialize.tsx +85 -0
  194. package/skills/hyper-animator-codex/references/shotcraft/source/demos/light-play-moves/HalationBloom.tsx +139 -0
  195. package/skills/hyper-animator-codex/references/shotcraft/source/demos/light-play-moves/SheenSweepRetry.tsx +85 -0
  196. package/skills/hyper-animator-codex/references/shotcraft/source/demos/light-play-moves/SpotlightSweepReveal.tsx +102 -0
  197. package/skills/hyper-animator-codex/references/shotcraft/source/demos/line-boil/LineBoil.tsx +140 -0
  198. package/skills/hyper-animator-codex/references/shotcraft/source/demos/line-carry-transition/LineCarryTransition.tsx +151 -0
  199. package/skills/hyper-animator-codex/references/shotcraft/source/demos/magician-card-flourish/MagicianCardFlourish.tsx +294 -0
  200. package/skills/hyper-animator-codex/references/shotcraft/source/demos/marker-underline-title/MarkerUnderlineTitle.tsx +87 -0
  201. package/skills/hyper-animator-codex/references/shotcraft/source/demos/montage-rhythm-moves/DominoCascade.tsx +125 -0
  202. package/skills/hyper-animator-codex/references/shotcraft/source/demos/montage-rhythm-moves/DropBlackoutSlam.tsx +135 -0
  203. package/skills/hyper-animator-codex/references/shotcraft/source/demos/montage-rhythm-moves/WrightTripleCut.tsx +175 -0
  204. package/skills/hyper-animator-codex/references/shotcraft/source/demos/morph-from-primitive/MorphFromPrimitive.tsx +190 -0
  205. package/skills/hyper-animator-codex/references/shotcraft/source/demos/neon-frame-forerun/NeonFrameForerun.tsx +279 -0
  206. package/skills/hyper-animator-codex/references/shotcraft/source/demos/neon-frame-orbit-drop/NeonFrameForerunOrbit.tsx +273 -0
  207. package/skills/hyper-animator-codex/references/shotcraft/source/demos/neon-triple-marquee/NeonTripleMarquee.tsx +111 -0
  208. package/skills/hyper-animator-codex/references/shotcraft/source/demos/odometer-digit-roll/OdometerDigitRoll.tsx +178 -0
  209. package/skills/hyper-animator-codex/references/shotcraft/source/demos/overhead-camera-moves/OverheadTabletopDrop.tsx +129 -0
  210. package/skills/hyper-animator-codex/references/shotcraft/source/demos/overhead-camera-moves/TiltReveal.tsx +55 -0
  211. package/skills/hyper-animator-codex/references/shotcraft/source/demos/page-turn-transitions/BarnDoorSplit.tsx +138 -0
  212. package/skills/hyper-animator-codex/references/shotcraft/source/demos/page-turn-transitions/CubeRotate.tsx +114 -0
  213. package/skills/hyper-animator-codex/references/shotcraft/source/demos/page-waterfall-wall/PageWaterfallWall.tsx +76 -0
  214. package/skills/hyper-animator-codex/references/shotcraft/source/demos/page-waterfall-wall/VerticalTicker.tsx +129 -0
  215. package/skills/hyper-animator-codex/references/shotcraft/source/demos/panel-grid-moves/ComicPanelSplit.tsx +171 -0
  216. package/skills/hyper-animator-codex/references/shotcraft/source/demos/panel-grid-moves/FlipGridReflow.tsx +121 -0
  217. package/skills/hyper-animator-codex/references/shotcraft/source/demos/panel-grid-moves/GridFlashMosaic.tsx +182 -0
  218. package/skills/hyper-animator-codex/references/shotcraft/source/demos/paper-craft-moves/MaskingTapeSlap.tsx +163 -0
  219. package/skills/hyper-animator-codex/references/shotcraft/source/demos/paper-craft-moves/PopupBookRise.tsx +134 -0
  220. package/skills/hyper-animator-codex/references/shotcraft/source/demos/paper-plane-messenger/PaperPlaneMessenger.tsx +183 -0
  221. package/skills/hyper-animator-codex/references/shotcraft/source/demos/particle-celebrate-hits/ConfettiCrossfire.tsx +115 -0
  222. package/skills/hyper-animator-codex/references/shotcraft/source/demos/particle-celebrate-hits/CounterTickSparks.tsx +103 -0
  223. package/skills/hyper-animator-codex/references/shotcraft/source/demos/particle-sand-fill/ParticleSandFill.tsx +119 -0
  224. package/skills/hyper-animator-codex/references/shotcraft/source/demos/pill-slot-cycle/PillSlotCycle.tsx +220 -0
  225. package/skills/hyper-animator-codex/references/shotcraft/source/demos/print-texture-transitions/InkBleedReveal.tsx +81 -0
  226. package/skills/hyper-animator-codex/references/shotcraft/source/demos/rhythm-interrupt-moves/JumpCutPunchIn.tsx +72 -0
  227. package/skills/hyper-animator-codex/references/shotcraft/source/demos/rhythm-interrupt-moves/StrobeBlackFrames.tsx +99 -0
  228. package/skills/hyper-animator-codex/references/shotcraft/source/demos/riso-print-hits/RisoBeatPump.tsx +155 -0
  229. package/skills/hyper-animator-codex/references/shotcraft/source/demos/riso-print-hits/RisoMisregistrationHit.tsx +120 -0
  230. package/skills/hyper-animator-codex/references/shotcraft/source/demos/runway-ground-skim/RunwayGroundSkim.tsx +258 -0
  231. package/skills/hyper-animator-codex/references/shotcraft/source/demos/sakuga-timing-shift/SakugaTimingShift.tsx +178 -0
  232. package/skills/hyper-animator-codex/references/shotcraft/source/demos/scene-locked-title/SceneLockedTitle.tsx +98 -0
  233. package/skills/hyper-animator-codex/references/shotcraft/source/demos/scroll-brake-moves/BrakeReticleLock.tsx +171 -0
  234. package/skills/hyper-animator-codex/references/shotcraft/source/demos/scroll-brake-moves/ChangelogScrollBrake.tsx +117 -0
  235. package/skills/hyper-animator-codex/references/shotcraft/source/demos/segmented-thumb-hero/SegmentedThumbHero.tsx +213 -0
  236. package/skills/hyper-animator-codex/references/shotcraft/source/demos/shot-transitions/MaskWipeReal.tsx +67 -0
  237. package/skills/hyper-animator-codex/references/shotcraft/source/demos/shot-transitions/PortalWipeV2.tsx +128 -0
  238. package/skills/hyper-animator-codex/references/shotcraft/source/demos/shot-transitions/WhipBrakeReal.tsx +60 -0
  239. package/skills/hyper-animator-codex/references/shotcraft/source/demos/shot-transitions/WhipPanReal.tsx +45 -0
  240. package/skills/hyper-animator-codex/references/shotcraft/source/demos/skeleton-reveal/SkeletonReveal.tsx +283 -0
  241. package/skills/hyper-animator-codex/references/shotcraft/source/demos/slam-entrance-moves/ImpactBurstKit.tsx +185 -0
  242. package/skills/hyper-animator-codex/references/shotcraft/source/demos/slam-entrance-moves/KanadaPerspectiveSnap.tsx +91 -0
  243. package/skills/hyper-animator-codex/references/shotcraft/source/demos/slam-entrance-moves/ScoreSlam.tsx +225 -0
  244. package/skills/hyper-animator-codex/references/shotcraft/source/demos/smear-multiples/SmearMultiples.tsx +88 -0
  245. package/skills/hyper-animator-codex/references/shotcraft/source/demos/space-camera-moves/DroneDiveLanding.tsx +91 -0
  246. package/skills/hyper-animator-codex/references/shotcraft/source/demos/space-camera-moves/ExplodedView.tsx +178 -0
  247. package/skills/hyper-animator-codex/references/shotcraft/source/demos/space-camera-moves/SnorricamLock.tsx +130 -0
  248. package/skills/hyper-animator-codex/references/shotcraft/source/demos/spectrum-morph-ui/SpectrumMorphUi.tsx +129 -0
  249. package/skills/hyper-animator-codex/references/shotcraft/source/demos/speed-ramp-freeze/FreezeAnnotateReal.tsx +70 -0
  250. package/skills/hyper-animator-codex/references/shotcraft/source/demos/speed-ramp-freeze/SpeedRampReal.tsx +58 -0
  251. package/skills/hyper-animator-codex/references/shotcraft/source/demos/split-flap-title/SplitFlapFlip.tsx +189 -0
  252. package/skills/hyper-animator-codex/references/shotcraft/source/demos/spotlight-sweep-moves/CornerSpotlightReveal.tsx +121 -0
  253. package/skills/hyper-animator-codex/references/shotcraft/source/demos/spotlight-sweep-moves/GlowWakeSleepPanel.tsx +183 -0
  254. package/skills/hyper-animator-codex/references/shotcraft/source/demos/spotlight-sweep-moves/SlideSpotlightPan.tsx +171 -0
  255. package/skills/hyper-animator-codex/references/shotcraft/source/demos/steep-tilt-glide/SteepTiltGlide.tsx +315 -0
  256. package/skills/hyper-animator-codex/references/shotcraft/source/demos/stroke-segment-build/StrokeSegmentBuild.tsx +126 -0
  257. package/skills/hyper-animator-codex/references/shotcraft/source/demos/tear-streak-transitions/GlitchDisplace.tsx +107 -0
  258. package/skills/hyper-animator-codex/references/shotcraft/source/demos/tension-camera-moves/BulletTimeFreezeOrbit.tsx +219 -0
  259. package/skills/hyper-animator-codex/references/shotcraft/source/demos/tension-camera-moves/DutchRollToLevel.tsx +110 -0
  260. package/skills/hyper-animator-codex/references/shotcraft/source/demos/tension-camera-moves/PullBackIsolation.tsx +120 -0
  261. package/skills/hyper-animator-codex/references/shotcraft/source/demos/tension-camera-moves/SlowPushIn.tsx +96 -0
  262. package/skills/hyper-animator-codex/references/shotcraft/source/demos/text-as-mask/TextAsMask.tsx +94 -0
  263. package/skills/hyper-animator-codex/references/shotcraft/source/demos/text-column-converge/TextColumnConverge.tsx +122 -0
  264. package/skills/hyper-animator-codex/references/shotcraft/source/demos/theme-switch-moves/PaletteThemeRipple.tsx +207 -0
  265. package/skills/hyper-animator-codex/references/shotcraft/source/demos/theme-switch-moves/ThemeSweepToggle.tsx +123 -0
  266. package/skills/hyper-animator-codex/references/shotcraft/source/demos/timeline-travel/TimelineTravel.tsx +123 -0
  267. package/skills/hyper-animator-codex/references/shotcraft/source/demos/title-demote-to-label/TitleDemoteToLabel.tsx +174 -0
  268. package/skills/hyper-animator-codex/references/shotcraft/source/demos/trailer-grammar-moves/CardFootageCadence.tsx +118 -0
  269. package/skills/hyper-animator-codex/references/shotcraft/source/demos/trailer-grammar-moves/SmashCut.tsx +105 -0
  270. package/skills/hyper-animator-codex/references/shotcraft/source/demos/trailer-grammar-moves/TrailerBumper.tsx +103 -0
  271. package/skills/hyper-animator-codex/references/shotcraft/source/demos/transition-hidden-cut/InvisibleCut.tsx +93 -0
  272. package/skills/hyper-animator-codex/references/shotcraft/source/demos/transition-hidden-cut/LightLeakBurn.tsx +122 -0
  273. package/skills/hyper-animator-codex/references/shotcraft/source/demos/transition-hidden-cut/VersusSlam.tsx +104 -0
  274. package/skills/hyper-animator-codex/references/shotcraft/source/demos/transition-travel/LetterformZoom.tsx +141 -0
  275. package/skills/hyper-animator-codex/references/shotcraft/source/demos/transition-travel/SharedElementMorph.tsx +101 -0
  276. package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-assembly-moves/LetterformDriftAssembly.tsx +107 -0
  277. package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-assembly-moves/SplitTextStagger.tsx +101 -0
  278. package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-assembly-moves/TextOnPath.tsx +92 -0
  279. package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-assembly-moves/TrackingExpandReveal.tsx +109 -0
  280. package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-entrance-moves/LetterDropPhysics.tsx +100 -0
  281. package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-entrance-moves/ScrambleDecode.tsx +90 -0
  282. package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-rhythm-sync/FontWeightPump.tsx +124 -0
  283. package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-rhythm-sync/KaraokeFillSync.tsx +93 -0
  284. package/skills/hyper-animator-codex/references/shotcraft/source/demos/typewriter-moves/TerminalTypewriter.tsx +122 -0
  285. package/skills/hyper-animator-codex/references/shotcraft/source/demos/typewriter-moves/TypewriterErrorRetype.tsx +109 -0
  286. package/skills/hyper-animator-codex/references/shotcraft/source/demos/ui-strip-away-outro/UiStripAwayOutro.tsx +218 -0
  287. package/skills/hyper-animator-codex/references/shotcraft/source/demos/ui-to-brand-morph/IconFlipBloomLogo.tsx +199 -0
  288. package/skills/hyper-animator-codex/references/shotcraft/source/demos/ui-to-brand-morph/InputMorphsIntoLogo.tsx +215 -0
  289. package/skills/hyper-animator-codex/references/shotcraft/source/demos/voice-waveform-live/VoiceWaveformLive.tsx +171 -0
  290. package/skills/hyper-animator-codex/references/shotcraft/source/demos/wall-reveal-moves/BentoLightUp.tsx +135 -0
  291. package/skills/hyper-animator-codex/references/shotcraft/source/demos/wipe-transitions/BlindsSlice.tsx +107 -0
  292. package/skills/hyper-animator-codex/references/shotcraft/source/demos/wipe-transitions/ClockWipe.tsx +83 -0
  293. package/skills/hyper-animator-codex/references/shotcraft/source/demos/word-relay-filmstrip/WordRelayFilmstrip.tsx +300 -0
  294. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/Root.tsx +15 -0
  295. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/Caption.tsx +49 -0
  296. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/DigitRoll.tsx +44 -0
  297. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/FlashCut.tsx +19 -0
  298. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/Main.tsx +163 -0
  299. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/PaperTitleCard.tsx +89 -0
  300. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/live/PageCam.tsx +145 -0
  301. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/live/SceneDetail.tsx +146 -0
  302. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/live/SceneFlyIn.tsx +447 -0
  303. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/live/SceneOpen.tsx +532 -0
  304. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/live/SceneOutroLive.tsx +394 -0
  305. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/live/ScenePapers.tsx +185 -0
  306. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/live/SceneWbr.tsx +299 -0
  307. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/index.ts +4 -0
  308. package/skills/hyper-animator-codex/references/shotcraft/source-notes.md +10 -0
  309. package/skills/hyper-animator-codex/scripts/generate_minimax_music.mjs +27 -10
  310. package/skills/hyper-animator-codex/scripts/generate_minimax_tts.mjs +142 -13
  311. package/skills/hyper-animator-codex/scripts/generate_subtitles.mjs +42 -3
  312. package/skills/hyper-animator-codex/scripts/minimax_runtime_config.mjs +3 -3
  313. package/skills/hyper-animator-codex/scripts/query_shotcraft.mjs +140 -0
  314. package/skills/hyper-animator-codex/scripts/validate_hyperframes_html.py +22 -0
  315. package/skills/hyper-animator-codex/scripts/validate_provider_policy.mjs +108 -0
  316. package/skills/hyper-animator-codex/scripts/validate_shot_plan.mjs +193 -0
  317. package/skills/hyper-animator-codex/vendor/music-beat-detector/beat_detector/analyzer.py +3 -1
  318. package/skills/hyper-animator-codex/vendor/music-beat-detector/beat_detector/beat.py +37 -1
@@ -12,16 +12,24 @@
12
12
  1. 接收自然语言需求。
13
13
  2. 抽取初始 `intent_profile`:用途、平台、画幅、内容类型、风格、动效、时长、是否需要字幕/转场/片尾。
14
14
  3. 若用途或画幅缺失,调用 `AskUserQuestion` 第一轮澄清。
15
- 4. 用 `hyperframes-catalog-map.json` catalog items 打分。
16
- 5. 选出候选 plan:主场景 Block、可选 Component、可选 Transition、可选 Outro。
15
+ 4. 用 `hyperframes-catalog-map.json` 对可渲染 catalog items 打分;同时运行
16
+ `scripts/query_shotcraft.mjs`,从 `references/shotcraft/catalog.json`
17
+ 检索镜头语法、节奏、转场和运镜参考。
18
+ 5. 选出 dual-catalog 候选 plan:主场景 Block、可选 Component、可选
19
+ Transition、可选 Outro,以及每个镜头的 ShotCraft 参考。
17
20
  6. 判断 generation mode:组装现有 catalog,还是生成新 HTML。
18
21
  7. 调用 `AskUserQuestion` 第二轮澄清样式、动效、候选取舍,以及 generation mode。
19
22
  8. 若选择 `assemble_existing_catalog_items`,生成 wrapper composition,并解析 component paste 指令为真实 snippet。
20
- 9. 若选择 `generate_new_hyperframes_html`,按 patterns 文档生成完整 block/component HTML。
21
- 10. 运行 pre-render quality gates。
22
- 11. 展示方案摘要和 HTML preview,让用户验证/确认。
23
- 12. 根据反馈修订。
24
- 13. 渲染视频。
23
+ 9. 若选择 `generate_new_hyperframes_html`,按
24
+ `references/HyperFrames-AI-Generation-Patterns-codex.md` 生成完整
25
+ block/component HTML;ShotCraft TSX 只作为动效参考,不引入 Remotion
26
+ 运行时。
27
+ 10. 按 `contracts/shot-plan.schema.json` 写出镜头计划,并运行
28
+ `scripts/validate_shot_plan.mjs shot-plan.json`。
29
+ 11. 运行 pre-render quality gates。
30
+ 12. 展示方案摘要和 HTML preview,让用户验证/确认。
31
+ 13. 根据反馈修订。
32
+ 14. 渲染视频。
25
33
 
26
34
  ## Intent Profile
27
35
 
@@ -166,6 +174,14 @@ score =
166
174
  - 字体、图片、GLTF、WebGL 等 async 资源 ready 后再注册 timeline。
167
175
  - WebGL/Three/shader 必须有 fallback timeline。
168
176
 
177
+ ## Model Routing
178
+
179
+ - `gpt-5.6-sol` 仅用于页面生成和动画编写。
180
+ - 需求抽取、文件检测、catalog 查询、镜头计划、音频提示词、校验和打包
181
+ 使用 `gpt-5.6-terra` 或同级快速经济模型。
182
+ - 不为模型路由自动新增 Agent 或其他实体;在运行环境支持模型选择时才
183
+ 应用路由。
184
+
169
185
  ## Pre-Render Quality Gates
170
186
 
171
187
  渲染前必须检查:
@@ -6,9 +6,20 @@ Use this when the user wants generated background music or asks whether Hyper An
6
6
 
7
7
  Do not hand-assemble MiniMax HTTP requests in agent reasoning or shell commands. Always call `scripts/generate_minimax_music.mjs`. The script owns request validation, retry policy, error normalization, audio writing, metadata writing, and secret redaction.
8
8
 
9
- ## MiniMax Preference
9
+ ## Required Provider
10
10
 
11
- Prefer MiniMax before other background-music sources when `config/minimax.json` exists in the installed skill or `MINIMAX_API_KEY` and `MINIMAX_GROUP_ID` are present in the environment.
11
+ Generated BGM uses MiniMax mainland China (`minimax_cn`) only. Never invoke
12
+ HeyGen, Kokoro, MusicGen, or a generic HyperFrames audio fallback. Never
13
+ install a fallback model/runtime.
14
+
15
+ Before generation, validate the provider and endpoint:
16
+
17
+ ```bash
18
+ node scripts/validate_provider_policy.mjs \
19
+ --kind bgm \
20
+ --provider minimax_cn \
21
+ --endpoint https://api.minimaxi.com/v1/music_generation
22
+ ```
12
23
 
13
24
  The installed config shape is:
14
25
 
@@ -22,6 +33,11 @@ The installed config shape is:
22
33
 
23
34
  Do not print or echo the raw API key. `group_id` is stored because the installer collects it, but the current `/v1/music_generation` API call uses only `Authorization: Bearer <API_key>` and the documented JSON request body.
24
35
 
36
+ The wrapper accepts `music-3.0`, `music-2.6`, and `music-2.6-free`. The stable
37
+ installer default remains `music-2.6` for backward compatibility; choose
38
+ `music-3.0` explicitly when the account has access and the user wants the
39
+ current model.
40
+
25
41
  ## Clarify Music
26
42
 
27
43
  Ask only for missing choices:
@@ -83,6 +99,10 @@ Use the resulting beat map exactly as described in `references/beat-sync-workflo
83
99
 
84
100
  ## Fallbacks
85
101
 
86
- If MiniMax config is missing, ask whether the user wants to provide a local audio file or continue without background music.
102
+ If MiniMax config is missing, ask whether to retry after configuration, use a
103
+ user-provided local audio file, or continue without background music.
87
104
 
88
- If MiniMax generation fails, summarize the provider, model, redacted config source, and error message. Then ask whether to retry with a different prompt/model, use a local audio file, or continue without background music.
105
+ If MiniMax generation fails, summarize the provider, mainland endpoint, model,
106
+ redacted config source, and error message. Then ask whether to retry with a
107
+ different prompt/model, use a local audio file, or continue without background
108
+ music. Do not silently substitute or install another generator.
@@ -21,6 +21,27 @@ Rules:
21
21
 
22
22
  Codex writes or edits outline/narration content. Scripts only validate, convert, call MiniMax, and write artifacts.
23
23
 
24
+ ## Provider Boundary
25
+
26
+ Generated narration and BGM use MiniMax mainland China (`minimax_cn`) only.
27
+ Never run `hyperframes auth login` or `hyperframes tts`; never invoke HeyGen,
28
+ Kokoro, or MusicGen; and never install a fallback runtime/model. Kokoro is a
29
+ local open-weight TTS engine, but it is outside this product contract and is
30
+ not needed.
31
+
32
+ Before a generated-audio call, validate the route:
33
+
34
+ ```bash
35
+ node scripts/validate_provider_policy.mjs \
36
+ --kind narration \
37
+ --provider minimax_cn \
38
+ --endpoint https://api.minimaxi.com/v1/t2a_v2
39
+ ```
40
+
41
+ If MiniMax configuration is missing or a call fails, stop the audio stage and
42
+ ask the user to choose retry MiniMax CN, provide a local file, or skip that
43
+ track. Do not choose another provider implicitly.
44
+
24
45
  ## Narration JSON
25
46
 
26
47
  Use this shape:
@@ -53,7 +74,7 @@ Do not hand-write MiniMax TTS HTTP calls. Use:
53
74
  node scripts/generate_minimax_tts.mjs --list-voices --voice-type all
54
75
  ```
55
76
 
56
- Prefer cloned voices, then generated voices, then system voices. Recommend three candidates by content tone and ask the user to choose. If listing fails, continue with `XiaoR_001` after telling the user.
77
+ Prefer cloned voices, then generated voices, then system voices. Recommend three candidates by content tone and ask the user to choose. If listing fails, use the same explicit MiniMax failure choices; do not switch providers.
57
78
 
58
79
  Emotion labels:
59
80
 
@@ -66,10 +87,16 @@ Generate narration audio:
66
87
  ```bash
67
88
  node scripts/generate_minimax_tts.mjs \
68
89
  --narration-json narration.json \
90
+ --split-scenes \
69
91
  --output-dir hyper-animator-output/voice
70
92
  ```
71
93
 
72
94
  Use `--dry-run` before a real call when checking request shape or credentials.
95
+ For multi-scene narration, `--split-scenes` is required. It writes one audio
96
+ file per scene plus `narration-manifest.json`. Use the returned
97
+ `duration_ms`, `start_seconds`, and `end_seconds` as the source of truth for
98
+ shot timing. Revise the script before regenerating if actual audio duration
99
+ does not fit the target; do not guess by stretching the visual timeline.
73
100
 
74
101
  ## Subtitles
75
102
 
@@ -78,6 +105,7 @@ Generate subtitles only when narration is used and the user wants subtitles:
78
105
  ```bash
79
106
  node scripts/generate_subtitles.mjs \
80
107
  --narration narration.json \
108
+ --timing-manifest hyper-animator-output/voice/narration-manifest.json \
81
109
  --output-dir hyper-animator-output/subtitles \
82
110
  --style clean
83
111
  ```
@@ -88,6 +116,8 @@ Subtitle rules:
88
116
  - no trailing punctuation;
89
117
  - one visible cue at a time;
90
118
  - JSON and SRT outputs include timecodes.
119
+ - when a timing manifest is present, scene boundaries come from actual MiniMax
120
+ audio duration rather than `duration_estimate`.
91
121
 
92
122
  ## BGM, Beat, And Schedule
93
123
 
@@ -0,0 +1,202 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright 2026 Wei Yihao
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: ai-stream-response
3
+ 一句话: AI 响应面板先落一句可读摘要,再让带状态图标的证据行逐条汇入,最后统一收束成完成态
4
+ 适用: AI 助手/agent/search/copilot 的结果生成镜头;强调“结论先到、证据随后、任务完成”
5
+ 时长: 约 4–5s(120–150f,含 ≥15f 完成态静止)
6
+ 能量: 中高(信息持续增加,但阅读优先于速度炫技)
7
+ ---
8
+
9
+ ## 意图
10
+ 把“AI 正在工作”拍成可读的因果链,而不是日志刷屏:观众先看懂答案摘要,
11
+ 再看到证据/子任务逐条补齐,最后由完成态确认这轮工作结束。
12
+
13
+ ## 动效核心
14
+ - 用目标产品真实响应面板截图做 backplate;动态区截图前隐藏,按 layout 坐标重叠回真实槽位(Q1/Q9)
15
+ - 面板进入后摘要句先以短 wipe/淡入落定,落定后至少 12f 才起首条证据
16
+ - 6–8 条证据行自下方 14–24px + 轻微 blur 逐行汇入;间隔逐渐收紧但保留可数节拍
17
+ - 行体先停,状态图标晚 2–4f 由 pending 转 running/done,形成主次拖拽层级
18
+ (模式已沉为 assets/lib/helpers/motion.ts lagged)
19
+ - 末条完成后只做一次面板级完成脉冲,随后全画面静止 ≥15f;不逐行 glint
20
+
21
+ ## 参数表
22
+ | 参数 | 典型值 | 调节手感 |
23
+ |------|--------|----------|
24
+ | 摘要 | cue 18,10–14f reveal;摘要落定后 hold ≥12f,首行 cue ≥42 | 摘要与首行粘连会失去“结论先到”的叙事;正常速度必须能先读到一句完整结论 |
25
+ | 行节拍 | `cue[i]=42+[0,11,21,30,38,45,51,56][i]`,每行 10–14f | 间隔 11→5f 逐渐收紧,表达工作加速;不要密到所有行同时糊成一团(R2) |
26
+ | 行入场 | y 18px→0,blur 6px→0,opacity 0→1,bezier(0.2,0.75,0.25,1) | 位移须过正常速度肉眼阈值;大幅横飞会像通知列表,不像证据归档 |
27
+ | 状态图标 | 比行体 cue 晚 3f;pending 环 → running 缺口环 → done 实心勾,6–8f | 图标是状态回执,不抢行文本;同帧切换全部图标会读作假 loading |
28
+ | 完成收束 | 末图标 done 后 6f,面板边框/摘要底色 opacity 0.25→0.55→0.25 共 10f | 只做面板级一次,不逐行发光(Q4);完成脉冲后留 ≥15f 真静止(R1) |
29
+ | 相机 | 信息密集默认正视,zoom 1.04→1.0 微退;暗场斜拍仅作情绪变体 | Linear 参考片的斜拍不是通用命令;文字读不清时立即回正视(Q6) |
30
+
31
+ ## 声音
32
+ 摘要落定配一发 `transition-soft`;前 3–4 行用短 `pop` 轻声递减
33
+ 0.32→0.20,后半加速密集段合并成一条低音量 `whoosh-fast`,避免逐行机枪感;
34
+ 最终完成态用 `click-camera` 的轻量版本(约 vol 0.3)。声音在画面锁定后钉帧。
35
+
36
+ ## 已知坑
37
+ - 逐字符流式打字会把视线困在字符层;宣传片时长里优先按“语义块”揭示摘要,
38
+ 真正展示输入操作时另用 `type-and-filter`
39
+ - 行体和状态图标若同帧落定,会像静态列表整体切换;保留 2–4f 拖拽层级
40
+ - 行终点必须是截图里真实列表槽位,不在面板上方悬浮;动态内容也必须用虚构数据
41
+ - 此卡借鉴 Linear Agent 发布片 t≈13–17s(进化轮 #3 breakdown #6),非用户判例;
42
+ 参数未经本库实战项目验证,首次使用必须按 P1 在正常速度下看片,不以逐帧 diff 代替体感
43
+
44
+ ## 参考实现
45
+ demos/ai-stream-response/
46
+ (StreamResponse.tsx)
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: autolayout-gap-dial
3
+ 一句话: 间距拨盘驱动布局——一排链接块带框选描边+缝隙间距标注,徽章数字逐格跳动、块被参数实时推开再弹簧回弹归位;"参数驱动布局"的可视化
4
+ 适用: 设计工具/低代码产品的"改一个数、界面跟着动"卖点镜头;"用设计工具语义做包装"的品类语言
5
+ 时长: ~4s(120f:框选入场 + 拉松 38f + hold + 弹簧回弹)
6
+ 能量: 中(工具理性型,爽点在数字与位移的锁定同步)
7
+ ---
8
+
9
+ ## 意图
10
+ "参数改了、UI 变了"是设计工具的核心承诺,但通常拍成"点面板→切
11
+ 结果"的前后对比,因果被剪掉了。本卡把因果拍成连续镜头:间距徽章
12
+ 数字逐格跳,链接块**同帧**被推开,测量线实时拉长——数字就是缰绳,
13
+ 布局就是马。框选描边+8 手柄+间距标注全是设计工具的母语,观众一眼
14
+ 认出"这是在工具里调参数"。回程故意用欠阻尼弹簧过冲(缩到比起点
15
+ 更紧再回稳),把"归位"做成一次有弹性的收尾。与 type-and-filter
16
+ 分工:那是"输入内容→列表收敛"的检索因果,本卡是"拨数值→几何
17
+ 重排"的参数因果。
18
+
19
+ ## 动效核心
20
+ - **gap 一个参数管全部**:块位置由 gap 重算(整排保持居中)、测量
21
+ 线宽=gap、徽章钉缝隙中心——所有元素从同一数值派生,锁定同步
22
+ 是本卡的全部说服力
23
+ - 参数曲线:去程 12→110 走 38f Easing.inOut(cubic);hold 14f;
24
+ 回程 spring(damping 9, stiffness 80, mass 1.1) 故意过冲到起点
25
+ 以下再回稳
26
+ - 徽章数字步进 2 显示(Math.round(gap/2)*2),跳数时 scale 脉冲
27
+ 1+0.10·|sin|;顶部大 GAP 读数块同步
28
+ - 框选描边 spring 入场,8 手柄(四角+四边中点);间距标注 = 竖直
29
+ 延长线 ×2 + 水平测量线 + 跟随徽章,8–16f 淡入
30
+
31
+ ## 参数表
32
+ | 参数 | 典型值 | 调节手感 |
33
+ |------|--------|----------|
34
+ | gap 幅度 | 12→110px(原片 20→24,demo 按裁决加大) | 原片幅度肉眼几乎不可感——可感性判例:看不出就加大做极端版;实战至少 4–5 倍行程 |
35
+ | 去程时长 | 38f inOut cubic | 快了读作抽搐;慢过 60f 数字跳动和位移的绑定感松掉 |
36
+ | 回程弹簧 | damping 9 → 过冲到起点以下再回稳 | 过冲是"松手回弹"的手感来源;damping ≥13 直落可惜 |
37
+ | 数字步进 | 步进 2 + 跳数 scale 脉冲 0.10 | 逐 1 跳太碎读作毫秒表;步进是"拨盘咔哒"的颗粒感 |
38
+ | 标注几何 | 延长线 62px、测量线钉块底 +56px、徽章钉缝隙中心 | 标注必须随 gap 实时重算——任何一处滞后即穿帮 |
39
+ | 块宽 | 不等宽(230/190/265/210/245) | 等宽读作示意图;不等宽才像真导航 |
40
+
41
+ ## 已知坑
42
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
43
+ 首次实战须以真实素材回验
44
+ - 数字与位移必须同源同帧:徽章显示值和块坐标都从同一个 gap 派生,分开动画哪怕差 1f,"参数驱动"的信任即碎
45
+ - demo 顶部大 GAP 读数块是灰阶示意的讲解字幕,实战里若画面已有真实工具面板就删掉,别双重报数
46
+ - 同族扩展:gap 只是一维,radius/padding/rotation 同语法可换参数——但一镜只拨一个参数,两个以上读作乱调
47
+ - 框选描边+手柄是"设计工具语义"借用(figma/framer 母语),非设计工具受众的片子慎用,读不懂框选就只剩块在挪
48
+ - 声音:徽章每跳一格一声极轻 tick(拨盘咔哒),回弹落定一声 pop;tick 密度跟步进走
49
+
50
+ ## 参考实现
51
+ demos/autolayout-gap-dial/
52
+ (AutolayoutGapDial.tsx)
53
+ 原片出处:framer-ai 4.5–5.5s
@@ -0,0 +1,54 @@
1
+ ---
2
+ name: beat-cut-moves
3
+ 一句话: 硬切当节拍乐器的两式——递进硬切串(间隔减半加速逼近)与连闪定格(三次白闪各切一个裁切)
4
+ 适用: 高光/冲刺段落把"切"本身打成鼓点;A 式预告片式加速逼近,B 式颁奖连拍仪式感
5
+ 时长: A 全程 ~4.3s(建立 49f + 五连切 + 定格 hold 35f);B 全程 ~4.3s(活素材 30f + 三闪 + hold 60f)
6
+ 能量: 高
7
+ ---
8
+
9
+ ## 意图
10
+ 库内节奏词汇一直只管"一条运动内"的速率(speed-ramp 是同一条 take
11
+ 里变速)和"落定后停多久"(R 系呼吸判例),没有词管**多镜之间切点
12
+ 怎么排**。本卡补这一块:硬切不做任何过渡,切点间隔本身就是乐谱——
13
+ 间隔递减读作加速逼近(A),等距三闪读作快门连拍(B)。与 R 系不
14
+ 冲突:R 管落定后的停,本卡管切点排布,切串结束必须接足量 hold 把
15
+ 呼吸还回去。注意这是刻意的例外——节奏偏好判例是单向"放慢",硬切
16
+ 串切得越狠,切完的 hold 要比平常更长。
17
+
18
+ ## 两式选型
19
+ | 式 | 做法 | 适用 |
20
+ |----|------|------|
21
+ | A beat-cut-accelerando 递进硬切串 | 六视图按 16→12→8→6→4f 间隔减半全屏硬切,加速逼近,末刀戛然定格回主画面轻推收住 | 冲刺逼近感:预告片式蓄力、功能连打冲向结论 |
22
+ | B paparazzi-flash 连闪定格 | 三次白闪各硬切同素材不同裁切(全景→卡片特写→数字特写),快门余韵沉降,第三闪停在数字收束 | 高光时刻仪式感:颁奖连拍、关键数字的加冕 |
23
+
24
+ ## 参数表
25
+ | 参数 | 典型值 | 调节手感 |
26
+ |------|--------|----------|
27
+ | A 切点帧 | 0/49/65/77/85/91/95(建立 49f,间隔 16→12→8→6→4f) | 间隔按"减半律"缩,等差缩读不出加速;末间隔 <4f 肉眼跟不上 |
28
+ | A 视图池 | 6 个 = 两块 FakeDashboard × scale 1/1.8/2.6 + 对焦点,transformOrigin 钉焦点再平移居中 | 视图必须是同一产品的不同构图(语义连续),六个无关画面读作故障 |
29
+ | A 切帧快门感 | 切帧 1f brightness 1.05 + 叠 6% 不透明度白层 | 只在切帧亮一下,是"咔"不是闪光灯;再厚就抢了 B 式的活 |
30
+ | A 末段收住 | 定格回主画面 hold 35f,scale 1→1.06 ease-out 慢推 20f 后静止 | 戛然而止是这式的句号——末刀后不许再有任何切 |
31
+ | B 三闪切点 | 30/52/70(间隔 22f→18f 渐紧),闪前 30f 慢推"活素材"衬托闪后定格 | 闪前必须是活的,全片死素材三闪读不出"定格" |
32
+ | B 白闪层 | 每闪 opacity 0.95→0 走 4f ease-out 衰减;闪帧 ±2px seed 哈希全屏抖动 | 0.95 起步才有闪光灯的爆点;衰减 >6f 变柔光转场,失去快门感 |
33
+ | B 快门余韵 | 切入视图 scale 1.03→1 走 6f ease-out 回落 + −16px 沉降归零 | 余韵是"被拍到晃了一下";去掉后三闪读作幻灯片翻页 |
34
+ | B 三裁切 | 同一 Footage 换 scale/transformOrigin:1.0 全景 / 2.3 卡片 / 4.0 数字 | 层层逼近有叙事方向;乱序(特写→全景→特写)读作剪错 |
35
+ | B 末段收束 | 第三闪后数字特写 hold 60f 静止 | 三闪是重击,hold 要给足平常两倍以上 |
36
+
37
+ ## 已知坑
38
+ - **demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
39
+ 首次实战须以真实素材回验**
40
+ - 两式都是**声音强依赖**手法:切点必须钉在音轨拍点上,每切一声
41
+ tick(A)/ 快门咔嚓(B),无声版只剩画面乱跳;钉帧走
42
+ sound-design.md §4.5 相对 shot 起点,不钉绝对帧
43
+ - A 式六视图要"同一产品的不同构图"而非六个无关画面——观众要在加速
44
+ 中始终认得这是谁;跨产品/跨场景的素材别用这式
45
+ - 切串全片 ≤1 次(P4 克制原则):这是全片最响的一记,第二次出现
46
+ 第一次就白打了
47
+ - 节奏偏好判例是单向"放慢",本卡是刻意例外——切完的 hold(A 35f /
48
+ B 60f)是底线不是建议,宁多勿少
49
+ - 真硬切 = frame 落区间渲染对应视图,无任何过渡帧;手滑加 2f 交叉
50
+ 淡化就不是硬切了,节拍感立即糊掉
51
+
52
+ ## 参考实现
53
+ demos/beat-cut-moves/
54
+ (BeatCutAccelerando.tsx / PaparazziFlash.tsx)
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: beat-step-list-theme-cycle
3
+ 一句话: 三通道节拍器——深色场形容词列表逐拍上移一行,视口中央固定胶囊"接住"下一个词并换色,整场底色同拍跟换;行、色、场三通道锁死同一拍点
4
+ 适用: "同一产品多种气质/多主题展示"段落(modern/playful/expressive 式形容词连打);全片节奏最密的一段;音乐段对拍
5
+ 时长: 铺垫 30f + 每拍 18f × 拍数 + 收尾 hold;3 拍约 3.5s(demo 110f)
6
+ 能量: 高(0.6s 一拍三通道齐跳,密度型高能)
7
+ ---
8
+
9
+ ## 意图
10
+ 换一次主题色是功能演示;0.6 秒换一次、连换三次、每次"选中行+胶囊色
11
+ +全场底色"三件事同帧齐跳——就成了节拍器。用最便宜的变量切换做出
12
+ 全片最高的节奏密度。命门有二:一是**三通道必须锁同一拍点**,任何
13
+ 一通道慢半拍,"齐跳"退化成三个各自为政的动画;二是**跳与滑的分界**
14
+ ——跳变只占拍头 6f,其余 12f 完全静置,拍点要"跳"不要"滑",
15
+ 匀速滚动的列表就只是列表。
16
+
17
+ ## 动效核心
18
+ - 胶囊固定在视口中央行**不动**,列表 translateY 逐拍步进——视觉上
19
+ 读作"胶囊跳到下一行接住新词",实际动的是世界不是胶囊
20
+ - 拍长 18f(0.6s @30fps ≈ 100BPM),跳变窗仅拍头 6f:
21
+ `snap(t) = 1-(1-x)^3.2`(陡 ease-out),其余帧静置
22
+ - 三通道同源驱动:同一个 tInBeat 同时喂列表位移、胶囊/底色
23
+ rgb 逐通道 cross-mix、胶囊 squash——一个时钟,不许各挂各的曲线
24
+ - 主题表逐拍换对(demo:灰白/深棕→绿→紫→红/深藏青),胶囊色与
25
+ 底色是配好的深浅对,不是独立随机色
26
+ - 胶囊落位 squash:scale 1.12→0.97→1 随拍头 6f 走完
27
+ - 选中词反白、非选中词 34% 白;上下各 300px 底色渐变羽化收视口
28
+ ——羽化色必须跟 bgColor 实时同步,写死颜色换场时穿帮
29
+ - 开拍前 30f 静置铺垫——先让观众看清"这是个列表",再开始打拍
30
+
31
+ ## 参数表
32
+ | 参数 | 典型值 | 调节手感 |
33
+ |------|--------|----------|
34
+ | 拍长 | 18f(BEAT_LEN,改它即改 BPM 对音轨) | <12f 观众来不及读词只见闪色;>26f 拍感散成逐个展示 |
35
+ | 跳变窗 | 拍头 6f,ease-out 指数 3.2 | 窗 >10f 或缓曲线,"跳"变"滑",节拍器塌成滚动列表 |
36
+ | 拍数 | 3–4 拍 | 5+ 拍观众适应了节奏开始走神;1–2 拍立不起"节拍器"人设 |
37
+ | squash | 1.12→0.97→1 | 去掉它胶囊像贴图换色;>1.2 弹跳抢了换色的戏 |
38
+ | 底色跨度 | 相邻主题底色须同明度不同色相(都深色) | 明度跳变(深→浅)会读作闪屏而非换肤 |
39
+ | 铺垫/收尾 | 前 30f 静置;末拍后 hold ≥30f | 没铺垫第一拍读作 bug;末拍即切没有"停在最终色"的确认 |
40
+
41
+ ## 已知坑
42
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
43
+ 首次实战须以真实素材回验
44
+ - 与 theme-switch-moves 分工:那卡是单次换肤的仪式(扫场/涟漪,换一次
45
+ 讲一次故事),本卡是连续多次换肤当节拍用——讲"深色模式功能"用那卡,
46
+ 讲"多气质/多主题体量"用本卡
47
+ - 与 cel-flash-stomp 同为高密度拍点段,同片二选一或隔远——都是
48
+ "每 0.6s 一记"的手法,紧邻观众会拍疲劳
49
+ - **声音强依赖**:拍点对齐鼓点(换 BEAT_LEN 对 BPM),无声版三通道
50
+ 齐跳读作界面抽风
51
+ - 词表长度 ≥ 拍数+2——列表底部要留未选中的词垫着,最后一拍就停在
52
+ 列表末行会露出"下面没了"
53
+ - 反白判定跟 beat 整数走、颜色跟 tInBeat 小数走(demo 即如此)——
54
+ 两者都跟小数会出现半白半灰的中间态词
55
+
56
+ ## 参考实现
57
+ demos/beat-step-list-theme-cycle/
58
+ (BeatStepListThemeCycle.tsx)
59
+ 原片出处:bear-app 22.3–24.6s
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: before-after-slider-scrub
3
+ 一句话: 前后对比拉杆——"处理前/后"两版叠放,分割杆先猛甩后慢扫,杆过处新版"显影"揭出
4
+ 适用: AI 增强/优化/重构类功能的效果对比段落("用前 vs 用后"一镜讲清)
5
+ 时长: 4–5s
6
+ 能量: 中(快甩是打击点,慢扫是阅读期)
7
+ ---
8
+
9
+ ## 意图
10
+ AI 图像产品发布片的标准对比语法:同一画面"处理前"(低对比灰蒙)
11
+ 与"处理后"(清晰版)叠放,带圆手柄的竖分割杆先从左端猛甩到 70%
12
+ (overshoot 回弹)、停一拍,再以约 1/5 的速度慢扫回来让观众看清
13
+ 差异——**快甩慢扫的速度对比就是节奏**:快甩宣告"变了",
14
+ 慢扫证明"变在哪"。
15
+
16
+ ## 动作阶段
17
+ | 阶段 | 帧段参考 | 内容 |
18
+ |------|------|------|
19
+ | 1 静置 | f0–14 | 杆停 8%,画面几乎全是"处理前" |
20
+ | 2 快甩 | 12f | 8%→76%(out cubic)过冲 |
21
+ | 3 回弹 | 12f | 76%→70% |
22
+ | 4 停顿 | ~18f | 让观众看清 after |
23
+ | 5 慢扫 | ~48f | 70%→40% 二次展示差异 |
24
+ | 6 定格 | 末 ≥40f | 真静止 |
25
+
26
+ ## 参数表
27
+ | 参数 | 典型值 | 调节手感 |
28
+ |------|--------|----------|
29
+ | 速度比 | 快甩 12f vs 慢扫 48f,约 5:1 | 比例 <3:1 节奏对比不可感 |
30
+ | 揭示 | after 层 clip-path inset 右边界跟随杆 x | 杆和揭示边界错位即穿帮 |
31
+ | 手柄 | 圆形手柄 + 速度差分驱动 scaleX 微拉伸(峰值 1.18),静止自动归 1 | 拉伸给手柄"被甩"的重量感 |
32
+ | before 处理 | 低对比灰蒙版 | before 太难看是自黑,"差"要可信(真实旧版/未优化态) |
33
+ | 角标 | BEFORE/AFTER 角标放内容区 | demo 判例:初版压住侧栏/头像穿帮 |
34
+
35
+ ## 已知坑
36
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
37
+ 首次实战须以真实素材回验
38
+ - 两版必须同布局同机位——布局不同读作两个页面,对比失效
39
+ (theme-switch-moves 同款约束)
40
+ - 实战 before/after 都用真实截图(Q1):before 是注入旧数据/关闭
41
+ 功能的真实态,不手搓"故意丑"的假 before
42
+ - 慢扫终点停 40% 而非 0%——留一段 after 在画面上定格(结论可见)
43
+ - 声音:快甩一声 whoosh + 回弹轻 tick,慢扫无声或极轻摩擦音(S4)
44
+
45
+ ## 参考实现
46
+ demos/before-after-slider-scrub/
47
+ (BeforeAfterSliderScrub.tsx)