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
@@ -0,0 +1,93 @@
1
+ // icon-field-colorize —— 灰阶图标原野错峰浮现(错峰淡入+微弹),停一拍后
2
+ // 蓝色整场极快扫翻,随后橙/绿/红三道色波依次向下扫过,终态四色横带。
3
+ // 对标 bear-app.mp4 0–3s(密帧核实:非同帧硬翻,是极快多道波纹翻色)。
4
+ import React from 'react';
5
+ import { AbsoluteFill, interpolate, useCurrentFrame } from 'remotion';
6
+
7
+ const mulberry32 = (a: number) => () => {
8
+ let t = (a += 0x6d2b79f5);
9
+ t = Math.imul(t ^ (t >>> 15), t | 1);
10
+ t ^= t + Math.imul(t ^ (t >>> 7), t | 61);
11
+ return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
12
+ };
13
+
14
+ // 16 个简笔图标(viewBox 0 0 24 24,纯填充),求可辨认不求精致
15
+ const SHAPES: ((c: string) => React.ReactNode)[] = [
16
+ (c) => <path fill={c} d="M12 21s-7.5-4.7-9.6-9C.9 8.7 2.7 5 6.2 5c2 0 3.3 1 4 2.1h3.6C14.5 6 15.8 5 17.8 5c3.5 0 5.3 3.7 3.8 7-2.1 4.3-9.6 9-9.6 9z" transform="scale(0.92) translate(1,0)" />,
17
+ (c) => <path fill={c} d="M12 2l2.7 6.3 6.8.5-5.2 4.4 1.6 6.6L12 16.2 6.1 19.8l1.6-6.6L2.5 8.8l6.8-.5z" />,
18
+ (c) => <path fill={c} d="M13 2L4 14h6l-1 8 9-12h-6z" />,
19
+ (c) => <circle fill={c} cx="12" cy="12" r="9" />,
20
+ (c) => <path fill={c} d="M9 3v12.3A3.5 3.5 0 1 0 11 18V7h7v6.3A3.5 3.5 0 1 0 20 16V3z" transform="scale(0.85) translate(1.5,1.5)" />,
21
+ (c) => <path fill={c} d="M4 4h16a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H9l-5 4V6a2 2 0 0 1 2-2z" transform="scale(0.85) translate(2,2)" />,
22
+ (c) => <><rect fill={c} x="3" y="6" width="18" height="13" rx="2.5" /><circle fill="#fff" cx="12" cy="12.5" r="3.6" /><rect fill={c} x="8" y="3.5" width="8" height="4" rx="1.5" /></>,
23
+ (c) => <path fill={c} d="M6.5 19a4.5 4.5 0 0 1-.4-9A6 6 0 0 1 17.8 8.7 4.2 4.2 0 0 1 17.5 19z" />,
24
+ (c) => <path fill={c} d="M12 2a7 7 0 0 0-7 7c0 5 7 13 7 13s7-8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5z" transform="scale(0.9) translate(1.2,0.5)" />,
25
+ (c) => <path fill={c} d="M3.5 10L12 3l8.5 7V21h-6v-6h-5v6h-6z" />,
26
+ (c) => <><rect fill={c} x="3" y="8" width="18" height="4" rx="1" /><rect fill={c} x="5" y="12" width="14" height="9" rx="1" /><rect fill="#fff" x="10.9" y="8" width="2.2" height="13" /></>,
27
+ (c) => <path fill={c} d="M9.4 20.6l-1 1.9 7.2-.1 4.9-8.5-2.2.1-2 3.4L13 4.5h-2.1L7.6 17.3z" transform="scale(0.9) translate(1,1)" />,
28
+ (c) => <path fill={c} d="M20.3 6.7L9.6 17.4l-5.9-5.9 2.1-2.1 3.8 3.8 8.6-8.6z" />,
29
+ (c) => <path fill={c} d="M21.5 15.5L14 12V5.5a2 2 0 1 0-4 0V12l-7.5 3.5v2l7.5-2v4l-2.5 2v1.5l4.5-1 4.5 1V21.5l-2.5-2v-4l7.5 2z" transform="scale(0.85) translate(1.8,1.8)" />,
30
+ (c) => <><circle fill={c} cx="12" cy="12" r="4" /><path fill={c} d="M12 1.5l1.4 3.6h-2.8zM12 22.5l-1.4-3.6h2.8zM1.5 12l3.6-1.4v2.8zM22.5 12l-3.6 1.4v-2.8zM4.6 4.6l3.5 1.5-2 2zM19.4 19.4l-3.5-1.5 2-2zM19.4 4.6l-1.5 3.5-2-2zM4.6 19.4l1.5-3.5 2 2z" /></>,
31
+ (c) => <path fill={c} d="M20 4C10 4 4.5 9 4 15.7 3.9 17.5 4 20 4 20s2.7-.2 4.4-.3C15 19.2 20 13.5 20 4zM6.8 17.2C10 11 15 8 15 8s-5.5 1.5-8.8 8z" />,
32
+ ];
33
+
34
+ const COLS = 17, ROWS = 10, CELL = 110, ICON = 44;
35
+ const GRAYS = ['#9a9a9a', '#7c7c7c', '#b0b0b0', '#8b8b8b'];
36
+ // 四道色波:蓝覆盖全场,橙/绿/红依次覆盖更低的行带 → 终态四色横带
37
+ const WAVES = [
38
+ { color: '#5b67e8', fromRow: 0, start: 78 },
39
+ { color: '#e7a03c', fromRow: 3, start: 90 },
40
+ { color: '#34a56f', fromRow: 6, start: 100 },
41
+ { color: '#e2606b', fromRow: 9, start: 110 },
42
+ ];
43
+
44
+ export const IconFieldColorize: React.FC = () => {
45
+ const frame = useCurrentFrame();
46
+ const rand = mulberry32(20260718);
47
+ const icons: React.ReactNode[] = [];
48
+
49
+ for (let r = 0; r < ROWS; r++) {
50
+ for (let c = 0; c < COLS; c++) {
51
+ const r1 = rand(), r2 = rand(), r3 = rand();
52
+ // —— 错峰浮现:分 10 批,批内再抖动
53
+ const batch = Math.floor(r1 * 10);
54
+ const t0 = 4 + batch * 4 + r2 * 3;
55
+ const ap = interpolate(frame, [t0, t0 + 8], [0, 1], {
56
+ extrapolateLeft: 'clamp', extrapolateRight: 'clamp',
57
+ });
58
+ if (ap <= 0) continue;
59
+ // 微弹:0.55 → 1.07 → 1
60
+ const easeOut = 1 - Math.pow(1 - ap, 3);
61
+ const appearScale = ap < 1 ? 0.55 + easeOut * 0.52 - Math.max(0, ap - 0.72) * 0.25 : 1;
62
+
63
+ // —— 色波:每道波从起始行向下快扫(行 1.4 帧 + 列微倾 + 抖动)
64
+ const gray = GRAYS[Math.floor(r2 * GRAYS.length)];
65
+ let color = gray;
66
+ let flipPhase = 0; // 最近一次翻色的进行度,用于 pop
67
+ for (const w of WAVES) {
68
+ if (r < w.fromRow) continue;
69
+ const arrive = w.start + (r - w.fromRow) * 1.4 + c * 0.25 + r3 * 1.5;
70
+ const p = interpolate(frame, [arrive, arrive + 3], [0, 1], {
71
+ extrapolateLeft: 'clamp', extrapolateRight: 'clamp',
72
+ });
73
+ if (p > 0) { color = w.color; flipPhase = p; }
74
+ }
75
+ const flipPop = flipPhase > 0 && flipPhase < 1
76
+ ? 1 + Math.sin(flipPhase * Math.PI) * 0.22 : 1;
77
+
78
+ const shape = SHAPES[Math.floor(r3 * SHAPES.length) % SHAPES.length];
79
+ const x = 48 + c * CELL + (r % 2) * 26;
80
+ const y = 26 + r * CELL;
81
+ icons.push(
82
+ <div key={`${r}-${c}`} style={{
83
+ position: 'absolute', left: x, top: y, width: ICON, height: ICON,
84
+ opacity: ap, transform: `scale(${appearScale * flipPop})`,
85
+ }}>
86
+ <svg viewBox="0 0 24 24" width={ICON} height={ICON}>{shape(color)}</svg>
87
+ </div>,
88
+ );
89
+ }
90
+ }
91
+
92
+ return <AbsoluteFill style={{ background: '#ffffff' }}>{icons}</AbsoluteFill>;
93
+ };
@@ -0,0 +1,193 @@
1
+ // 求关注弹跳(attention-bounce)——macOS Dock 语汇:icon 原地起跳讨拍
2
+ // 半屏 app 图标(圆角方块+铃形符号)在地面线上连跳 4 次且一次比一次高
3
+ // (首跳 0.5 倍 icon 高 → 末跳 1.2 倍);每次落地帧压扁(宽 1.2x 高 0.8x)
4
+ // + 落点尘点 2–3 颗;最高那跳镜头整体向 icon 轻推 8%("被吸引");
5
+ // 落定后 icon 右侧弹开一张功能面板卡收尾。
6
+ // 节拍:0–12 静置 → 12 起跳(4 跳递增,各 16/18/20/24f)→ ~90 落定 →
7
+ // 92–104 面板卡弹出 → 110 后真静止 40f。帧确定,尘点用 sin 散列。
8
+ import React from 'react';
9
+ import { useCurrentFrame, interpolate, Easing } from 'remotion';
10
+ import { G, Card } from '../_fixtures/Fixtures';
11
+
12
+ const AMBER = '#b45309';
13
+ const ICON = 400; // icon 边长(半屏级)
14
+ const GROUND = 940; // 地面线 y(末跳 1.2x 顶点 + 8% 推近后仍贴画面上沿不出框)
15
+ const CX = 760; // icon 中心 x(右侧留面板位)
16
+
17
+ // 4 跳:起跳帧、时长、峰高(相对 icon 高)
18
+ const JUMPS = [
19
+ { start: 12, dur: 16, peak: 0.5 * ICON },
20
+ { start: 30, dur: 18, peak: 0.75 * ICON },
21
+ { start: 50, dur: 20, peak: 0.95 * ICON },
22
+ { start: 72, dur: 24, peak: 1.2 * ICON },
23
+ ];
24
+
25
+ export const AttentionBounce: React.FC = () => {
26
+ const f = useCurrentFrame();
27
+
28
+ // 弹跳高度 + 落地挤压
29
+ let y = 0; // 离地高度
30
+ let squash = 0; // 0–1 落地压扁强度
31
+ let stretch = 0; // 空中拉伸强度(速度感)
32
+ JUMPS.forEach((j) => {
33
+ const t = (f - j.start) / j.dur;
34
+ if (t > 0 && t < 1) {
35
+ y = j.peak * 4 * t * (1 - t); // 抛物线
36
+ stretch = Math.abs(1 - 2 * t) * 0.14; // 起跳/下落速度快时拉长
37
+ }
38
+ // 落地帧后 5f 内压扁回弹
39
+ const land = j.start + j.dur;
40
+ if (f >= land && f < land + 6) {
41
+ squash = Math.max(squash, 1 - (f - land) / 6);
42
+ }
43
+ });
44
+ // 起跳前的预压(第一跳前 3f 蹲一下)
45
+ if (f >= 9 && f < 12) squash = Math.max(squash, (f - 9) / 3 * 0.7);
46
+
47
+ const sx = 1 + squash * 0.2 - stretch * 0.5;
48
+ const sy = 1 - squash * 0.2 + stretch;
49
+
50
+ // 镜头推近:第 4 跳(最高)期间整体 scale 1→1.08,落定后保持
51
+ const zoomT = interpolate(f, [72, 88], [0, 1], {
52
+ extrapolateLeft: 'clamp',
53
+ extrapolateRight: 'clamp',
54
+ easing: Easing.inOut(Easing.quad),
55
+ });
56
+ const zoom = 1 + 0.08 * zoomT;
57
+
58
+ // 尘点:每次落地帧生成 3 颗,向两侧飞散淡出(12f 生命)
59
+ const dusts: Array<{ x: number; y: number; r: number; op: number }> = [];
60
+ JUMPS.forEach((j, ji) => {
61
+ const land = j.start + j.dur;
62
+ const life = (f - land) / 12;
63
+ if (life <= 0 || life >= 1) return;
64
+ for (let k = 0; k < 3; k++) {
65
+ const seed = ji * 3 + k;
66
+ const dir = k === 1 ? 0 : k === 0 ? -1 : 1;
67
+ const spread = (60 + 40 * Math.abs(Math.sin(seed * 5.7))) * (ji + 2) * 0.45;
68
+ const e = Easing.out(Easing.cubic)(life);
69
+ dusts.push({
70
+ x: CX + dir * (ICON * 0.42 + spread * e) + (dir === 0 ? 30 * Math.sin(seed * 3.1) * e : 0),
71
+ y: GROUND - 14 - 46 * e * (0.6 + 0.5 * Math.abs(Math.sin(seed * 2.3))),
72
+ r: 12 + 6 * Math.abs(Math.sin(seed * 4.9)) - 8 * life,
73
+ op: (1 - life) * 0.8,
74
+ });
75
+ }
76
+ });
77
+
78
+ // 功能面板卡:落定后(f=98)从 icon 右侧弹出
79
+ const panelT = interpolate(f, [98, 110], [0, 1], {
80
+ extrapolateLeft: 'clamp',
81
+ extrapolateRight: 'clamp',
82
+ easing: Easing.out(Easing.back(1.8)),
83
+ });
84
+
85
+ const iconTop = GROUND - ICON - y;
86
+
87
+ return (
88
+ <div style={{ width: 1920, height: 1080, background: G.bg, position: 'relative', overflow: 'hidden' }}>
89
+ {/* 镜头层:整体向 icon 轻推 */}
90
+ <div
91
+ style={{
92
+ width: 1920,
93
+ height: 1080,
94
+ transform: `scale(${zoom})`,
95
+ transformOrigin: `${CX}px ${GROUND - ICON / 2}px`,
96
+ position: 'relative',
97
+ }}
98
+ >
99
+ {/* 地面线 */}
100
+ <div style={{ position: 'absolute', left: 120, top: GROUND, width: 1680, height: 8, background: G.bar, borderRadius: 4 }} />
101
+
102
+ {/* 落地尘点 */}
103
+ {dusts.map((d, i) => (
104
+ <div
105
+ key={i}
106
+ style={{
107
+ position: 'absolute',
108
+ left: d.x - d.r,
109
+ top: d.y - d.r,
110
+ width: d.r * 2,
111
+ height: d.r * 2,
112
+ borderRadius: d.r,
113
+ background: G.mid,
114
+ opacity: d.op,
115
+ }}
116
+ />
117
+ ))}
118
+
119
+ {/* 影子:随高度缩小变淡 */}
120
+ <div
121
+ style={{
122
+ position: 'absolute',
123
+ left: CX - ICON * 0.42 * (1 - y / (ICON * 2.4)),
124
+ top: GROUND + 16,
125
+ width: ICON * 0.84 * (1 - y / (ICON * 2.4)),
126
+ height: 30,
127
+ borderRadius: '50%',
128
+ background: 'rgba(0,0,0,0.18)',
129
+ filter: 'blur(6px)',
130
+ opacity: 1 - (y / (ICON * 1.6)) * 0.5,
131
+ }}
132
+ />
133
+
134
+ {/* app icon:圆角方块 + 铃形符号(自绘 SVG,半屏特写) */}
135
+ <svg
136
+ width={ICON}
137
+ height={ICON}
138
+ viewBox="0 0 420 420"
139
+ style={{
140
+ position: 'absolute',
141
+ left: CX - ICON / 2,
142
+ top: iconTop,
143
+ transform: `scale(${sx}, ${sy})`,
144
+ transformOrigin: '50% 100%',
145
+ }}
146
+ >
147
+ <rect x={14} y={14} width={392} height={392} rx={88} fill={G.card} stroke={G.ink} strokeWidth={18} />
148
+ {/* 符号:简洁铃形 */}
149
+ <path
150
+ d="M 210 110 C 160 110 140 155 138 200 C 136 245 118 272 100 290 L 320 290 C 302 272 284 245 282 200 C 280 155 260 110 210 110 Z"
151
+ fill="none"
152
+ stroke={G.ink}
153
+ strokeWidth={22}
154
+ strokeLinejoin="round"
155
+ />
156
+ <circle cx={210} cy={322} r={22} fill={AMBER} />
157
+ </svg>
158
+
159
+ {/* 功能面板卡:落定后弹出 */}
160
+ {panelT > 0 && (
161
+ <div
162
+ style={{
163
+ position: 'absolute',
164
+ left: CX + ICON / 2 + 60,
165
+ top: GROUND - ICON - 40,
166
+ transform: `scale(${panelT})`,
167
+ transformOrigin: 'left bottom',
168
+ opacity: Math.min(1, panelT * 1.5),
169
+ }}
170
+ >
171
+ <Card w={520} h={330} seed={4} />
172
+ <div
173
+ style={{
174
+ position: 'absolute',
175
+ top: -28,
176
+ left: 24,
177
+ padding: '10px 24px',
178
+ borderRadius: 24,
179
+ background: AMBER,
180
+ color: '#fff',
181
+ fontFamily: 'Helvetica, Arial, sans-serif',
182
+ fontWeight: 800,
183
+ fontSize: 26,
184
+ }}
185
+ >
186
+ New
187
+ </div>
188
+ </div>
189
+ )}
190
+ </div>
191
+ </div>
192
+ );
193
+ };
@@ -0,0 +1,162 @@
1
+ // 爆花确认(pop-burst-confirm)——确认时刻的三连爆
2
+ // 半屏大对勾 icon(圆底+勾):先缩 0.6x 蓄力 3f → 弹 1.35x 过冲 → 落回 1x,
3
+ // 释放帧同帧中心射出 10 根短线粒子(径向飞出后消失)+ 一圈描边圆环从
4
+ // icon 边缘扩到 2.5 倍直径淡出;随后 "Deployed" 小标签弹出。
5
+ // 节拍:0–20 静置(空心圆待确认)→ 20–23 缩 0.6x → 23–27 蓄力 3f →
6
+ // 27 释放(勾画出+粒子+圆环)→ 27–44 过冲落回 → 40–50 标签弹出 → 55 后真静止 65f。
7
+ // 帧确定,无随机源(粒子角度抖动用 sin 散列)。
8
+ import React from 'react';
9
+ import { useCurrentFrame, interpolate, Easing } from 'remotion';
10
+ import { G } from '../_fixtures/Fixtures';
11
+
12
+ const AMBER = '#b45309';
13
+ const POP = 27; // 释放帧
14
+ const DUR = 120;
15
+
16
+ export const PopBurstConfirm: React.FC = () => {
17
+ const f = useCurrentFrame();
18
+
19
+ // icon 缩放:蓄力→过冲→落回
20
+ const scale = (() => {
21
+ if (f <= 20) return 1;
22
+ if (f <= 23)
23
+ return interpolate(f, [20, 23], [1, 0.6], { easing: Easing.in(Easing.quad) });
24
+ if (f <= POP) return 0.6;
25
+ if (f <= 33)
26
+ return interpolate(f, [POP, 33], [0.6, 1.35], { easing: Easing.out(Easing.cubic) });
27
+ return interpolate(f, [33, 44], [1.35, 1], {
28
+ extrapolateRight: 'clamp',
29
+ easing: Easing.out(Easing.back(2)),
30
+ });
31
+ })();
32
+
33
+ // 对勾:释放帧起 8f 内画出(dashoffset 滑窗)
34
+ const checkT = interpolate(f, [POP, POP + 8], [0, 1], {
35
+ extrapolateLeft: 'clamp',
36
+ extrapolateRight: 'clamp',
37
+ easing: Easing.out(Easing.cubic),
38
+ });
39
+
40
+ // 粒子:释放帧起 14f 径向飞出(幅度加码到 190px 保半屏可感)
41
+ const pt = interpolate(f, [POP, POP + 14], [0, 1], {
42
+ extrapolateLeft: 'clamp',
43
+ extrapolateRight: 'clamp',
44
+ });
45
+ const pDist = 210 + 190 * Easing.out(Easing.cubic)(pt);
46
+ const pLen = 46 * (1 - pt);
47
+
48
+ // 圆环:释放帧起 20f 从 icon 边缘扩到 2.5 倍直径淡出
49
+ const rt = interpolate(f, [POP, POP + 20], [0, 1], {
50
+ extrapolateLeft: 'clamp',
51
+ extrapolateRight: 'clamp',
52
+ });
53
+ const ringR = 200 + 300 * Easing.out(Easing.cubic)(rt);
54
+ const ringO = 0.85 * (1 - rt);
55
+ const ringW = 16 - 12 * rt;
56
+
57
+ // 标签:40f 弹出(back 超调)
58
+ const tagT = interpolate(f, [40, 50], [0, 1], {
59
+ extrapolateLeft: 'clamp',
60
+ extrapolateRight: 'clamp',
61
+ easing: Easing.out(Easing.back(2.6)),
62
+ });
63
+
64
+ const CX = 960;
65
+ const CY = 470;
66
+
67
+ return (
68
+ <div style={{ width: 1920, height: 1080, background: G.bg, position: 'relative', overflow: 'hidden' }}>
69
+ {/* 扩散圆环(不随 icon 缩放) */}
70
+ {rt > 0 && rt < 1 && (
71
+ <svg
72
+ width={1400}
73
+ height={1400}
74
+ style={{ position: 'absolute', left: CX - 700, top: CY - 700 }}
75
+ >
76
+ <circle cx={700} cy={700} r={ringR} fill="none" stroke={AMBER} strokeWidth={ringW} opacity={ringO} />
77
+ </svg>
78
+ )}
79
+
80
+ {/* 粒子:10 根短线径向飞出,角度带 sin 散列微抖 */}
81
+ {pt > 0 && pt < 1 && (
82
+ <svg
83
+ width={1400}
84
+ height={1400}
85
+ style={{ position: 'absolute', left: CX - 700, top: CY - 700 }}
86
+ >
87
+ {Array.from({ length: 10 }).map((_, i) => {
88
+ const ang = ((i * 36 + 9 * Math.sin(i * 7.31)) * Math.PI) / 180;
89
+ const x1 = 700 + Math.cos(ang) * pDist;
90
+ const y1 = 700 + Math.sin(ang) * pDist;
91
+ const x2 = 700 + Math.cos(ang) * (pDist + pLen);
92
+ const y2 = 700 + Math.sin(ang) * (pDist + pLen);
93
+ return (
94
+ <line
95
+ key={i}
96
+ x1={x1} y1={y1} x2={x2} y2={y2}
97
+ stroke={i % 5 < 2 ? AMBER : G.ink}
98
+ strokeWidth={12}
99
+ strokeLinecap="round"
100
+ opacity={1 - pt}
101
+ />
102
+ );
103
+ })}
104
+ </svg>
105
+ )}
106
+
107
+ {/* 主体 icon:圆底 + 对勾(半屏特写 ~480px) */}
108
+ <svg
109
+ width={480}
110
+ height={480}
111
+ viewBox="0 0 480 480"
112
+ style={{
113
+ position: 'absolute',
114
+ left: CX - 240,
115
+ top: CY - 240,
116
+ transform: `scale(${scale})`,
117
+ transformOrigin: '50% 50%',
118
+ }}
119
+ >
120
+ <circle cx={240} cy={240} r={190} fill={G.card} stroke={G.ink} strokeWidth={22} />
121
+ {checkT > 0 && (
122
+ <path
123
+ d="M 150 245 L 215 310 L 340 175"
124
+ fill="none"
125
+ stroke={AMBER}
126
+ strokeWidth={34}
127
+ strokeLinecap="round"
128
+ strokeLinejoin="round"
129
+ pathLength={1}
130
+ strokeDasharray={1}
131
+ strokeDashoffset={1 - checkT}
132
+ />
133
+ )}
134
+ </svg>
135
+
136
+ {/* Deployed 小标签 */}
137
+ {tagT > 0 && (
138
+ <div
139
+ style={{
140
+ position: 'absolute',
141
+ left: CX - 130,
142
+ top: CY + 300,
143
+ width: 260,
144
+ transform: `scale(${tagT})`,
145
+ transformOrigin: '50% 0%',
146
+ padding: '16px 0',
147
+ borderRadius: 40,
148
+ background: G.ink,
149
+ color: '#ffffff',
150
+ textAlign: 'center',
151
+ fontFamily: 'Helvetica, Arial, sans-serif',
152
+ fontWeight: 800,
153
+ fontSize: 40,
154
+ letterSpacing: 1,
155
+ }}
156
+ >
157
+ Deployed
158
+ </div>
159
+ )}
160
+ </div>
161
+ );
162
+ };
@@ -0,0 +1,149 @@
1
+ import React from 'react';
2
+ import { AbsoluteFill, Easing, interpolate, useCurrentFrame } from 'remotion';
3
+ import { FakeDashboard, Card, TitleBlock, G } from '../_fixtures/Fixtures';
4
+
5
+ // anime-impact 动漫打击帧〔组合〕:crash-zoom 急推撞停在目标卡上的那 3 帧,
6
+ // 整幅画面反转成黑白负片 + 手绘放射集中线 + 红青通道 ±8px 色散——
7
+ // 像素被打了一拳,第 4 帧一切撤掉恢复干净特写 + 6px 震屏衰减。
8
+ // 节拍:0–24 建立全景 hold → 24–30 急推(6f ease-in 到 2.4x) →
9
+ // 30–32 冲击帧(3f 负片/集中线/RGB split,每帧换形态) →
10
+ // 33 起恢复特写 + 震屏衰减 → ~45–120 静止读卡。
11
+
12
+ const ZOOM_START = 24;
13
+ const ZOOM_END = 30; // 撞停帧
14
+ const IMPACT_LEN = 3; // 冲击帧持续 3f(30/31/32)
15
+ const RECOVER = ZOOM_END + IMPACT_LEN; // 33:恢复干净特写
16
+
17
+ // 目标卡:盖在 3x2 网格中排第 2 格上(列 2 行 1)
18
+ const CARD = { x: 808, y: 108, w: 524, h: 454 };
19
+ const CX = CARD.x + CARD.w / 2; // 1070
20
+ const CY = CARD.y + CARD.h / 2; // 335
21
+ const SCALE_END = 2.4;
22
+
23
+ // seed 正弦哈希(禁 Math.random)
24
+ const rnd = (i: number) => {
25
+ const s = Math.sin(i * 127.3) * 43758.5453;
26
+ return s - Math.floor(s);
27
+ };
28
+
29
+ // 手绘放射集中线:30 根从卡片周缘指向画框外的尖楔形,phase 换一次形态
30
+ const SpeedLines: React.FC<{ phase: number }> = ({ phase }) => {
31
+ const cx = 960;
32
+ const cy = 540;
33
+ const R_OUT = 1300; // 超出画框对角(~1101)
34
+ const polys = Array.from({ length: 30 }).map((_, i) => {
35
+ const k = i * 13 + phase * 101;
36
+ const ang = ((i + 0.5) / 30) * Math.PI * 2 + (rnd(k) - 0.5) * 0.22;
37
+ const r0 = 300 + rnd(k + 1) * 220; // 内端长短随机(卡片周缘一带)
38
+ const halfW = (7 + rnd(k + 2) * 16) / R_OUT; // 外端宽 7–23px 的楔形
39
+ const ax = cx + Math.cos(ang) * r0;
40
+ const ay = cy + Math.sin(ang) * r0;
41
+ const b1x = cx + Math.cos(ang - halfW) * R_OUT;
42
+ const b1y = cy + Math.sin(ang - halfW) * R_OUT;
43
+ const b2x = cx + Math.cos(ang + halfW) * R_OUT;
44
+ const b2y = cy + Math.sin(ang + halfW) * R_OUT;
45
+ return `${ax},${ay} ${b1x},${b1y} ${b2x},${b2y}`;
46
+ });
47
+ return (
48
+ <svg
49
+ viewBox="0 0 1920 1080"
50
+ style={{ position: 'absolute', inset: 0, width: '100%', height: '100%' }}
51
+ >
52
+ {polys.map((pts, i) => (
53
+ <polygon key={i} points={pts} fill={i % 4 === 0 ? '#111111' : '#f5f5f5'} />
54
+ ))}
55
+ </svg>
56
+ );
57
+ };
58
+
59
+ // 目标卡叠层 + 全景底
60
+ const Scene: React.FC = () => (
61
+ <>
62
+ <FakeDashboard variant="A" />
63
+ <div style={{ position: 'absolute', left: CARD.x, top: CARD.y }}>
64
+ <Card
65
+ w={CARD.w}
66
+ h={CARD.h}
67
+ seed={9}
68
+ style={{ boxShadow: '0 10px 36px rgba(0,0,0,0.18)', border: `3px solid ${G.ink}` }}
69
+ />
70
+ <div style={{ position: 'absolute', left: 24, bottom: 96 }}>
71
+ <TitleBlock text="IMPACT" size={92} />
72
+ </div>
73
+ </div>
74
+ </>
75
+ );
76
+
77
+ export const AnimeImpact: React.FC = () => {
78
+ const frame = useCurrentFrame();
79
+
80
+ // 急推:6f ease-in 撞到 2.4x,卡心推到画面正中
81
+ const p = interpolate(frame, [ZOOM_START, ZOOM_END], [0, 1], {
82
+ extrapolateLeft: 'clamp',
83
+ extrapolateRight: 'clamp',
84
+ easing: Easing.in(Easing.cubic),
85
+ });
86
+ const scale = 1 + p * (SCALE_END - 1);
87
+ const tx = (960 - CX) * p;
88
+ const ty = (540 - CY) * p;
89
+
90
+ const impact = frame >= ZOOM_END && frame < RECOVER;
91
+ const phase = impact ? frame - ZOOM_END : 0; // 每 1f 换一次集中线形态
92
+
93
+ // 撞停后震屏:6px 起步、指数衰减,~12f 收干后真静止
94
+ const since = frame - RECOVER;
95
+ const env = since >= 0 ? 6 * Math.exp(-since / 2.2) : 0;
96
+ const shakeX = env * Math.sin(since * 3.7);
97
+ const shakeY = env * 0.7 * Math.sin(since * 5.1 + 0.9);
98
+
99
+ const zoomStyle: React.CSSProperties = {
100
+ position: 'absolute',
101
+ inset: 0,
102
+ transform: `translate(${tx}px, ${ty}px) scale(${scale})`,
103
+ transformOrigin: `${CX}px ${CY}px`,
104
+ };
105
+
106
+ return (
107
+ <AbsoluteFill style={{ background: impact ? '#131315' : G.bg, overflow: 'hidden' }}>
108
+ <div style={{ position: 'absolute', inset: 0, transform: `translate(${shakeX}px, ${shakeY}px)` }}>
109
+ {/* 主层:冲击帧期间整幅负片黑白 */}
110
+ <div style={{ ...zoomStyle, filter: impact ? 'invert(1) grayscale(1)' : 'none' }}>
111
+ <Scene />
112
+ </div>
113
+ {/* RGB split:红/青双层负片副本,screen 叠底、±8px 错位(随 phase 抖动) */}
114
+ {impact && (
115
+ <>
116
+ <div
117
+ style={{
118
+ position: 'absolute',
119
+ inset: 0,
120
+ mixBlendMode: 'screen',
121
+ transform: `translate(-8px, ${phase % 2 === 0 ? 4 : -4}px)`,
122
+ }}
123
+ >
124
+ <div style={{ ...zoomStyle, filter: 'invert(1) grayscale(1)' }}>
125
+ <Scene />
126
+ </div>
127
+ <div style={{ position: 'absolute', inset: 0, background: '#ff0033', mixBlendMode: 'multiply' }} />
128
+ </div>
129
+ <div
130
+ style={{
131
+ position: 'absolute',
132
+ inset: 0,
133
+ mixBlendMode: 'screen',
134
+ transform: `translate(8px, ${phase % 2 === 0 ? -4 : 4}px)`,
135
+ }}
136
+ >
137
+ <div style={{ ...zoomStyle, filter: 'invert(1) grayscale(1)' }}>
138
+ <Scene />
139
+ </div>
140
+ <div style={{ position: 'absolute', inset: 0, background: '#00e5ff', mixBlendMode: 'multiply' }} />
141
+ </div>
142
+ {/* 手绘放射集中线:每帧换形态 */}
143
+ <SpeedLines phase={phase} />
144
+ </>
145
+ )}
146
+ </div>
147
+ </AbsoluteFill>
148
+ );
149
+ };