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,3946 @@
1
+ {
2
+ "schema_version": "1.0.0",
3
+ "source_name": "video-shotcraft",
4
+ "source_revision": "bdd94be16d60fa8f",
5
+ "source_license": "Apache-2.0",
6
+ "generated_from_pack": "video_shotcraft_complete_pack_20260725_final",
7
+ "counts": {
8
+ "cards": 106,
9
+ "styles": 164,
10
+ "source_available_cards": 106,
11
+ "spec_only_cards": 0,
12
+ "implemented_styles": 161,
13
+ "reference_only_styles": 2,
14
+ "missing_preview_styles": 1,
15
+ "previews_present": 163
16
+ },
17
+ "cards": [
18
+ {
19
+ "name": "ai-stream-response",
20
+ "summary": "AI 响应面板先落一句可读摘要,再让带状态图标的证据行逐条汇入,最后统一收束成完成态",
21
+ "use": "AI 助手/agent/search/copilot 的结果生成镜头;强调“结论先到、证据随后、任务完成”",
22
+ "duration": "约 4–5s(120–150f,含 ≥15f 完成态静止)",
23
+ "energy": "中高(信息持续增加,但阅读优先于速度炫技)",
24
+ "intention": "把“AI 正在工作”拍成可读的因果链,而不是日志刷屏:观众先看懂答案摘要,\r\n再看到证据/子任务逐条补齐,最后由完成态确认这轮工作结束。",
25
+ "usage_document": "cards/ai-stream-response/README.md",
26
+ "dependencies": [
27
+ "react",
28
+ "remotion"
29
+ ],
30
+ "code_status": "source-available",
31
+ "source_files": [
32
+ "source/demos/ai-stream-response/StreamResponse.tsx"
33
+ ],
34
+ "styles": [
35
+ {
36
+ "key": "ai-stream-response",
37
+ "label": "ai-stream-response",
38
+ "description": "AI 响应面板先落一句可读摘要,再让带状态图标的证据行逐条汇入,最后统一收束成完成态",
39
+ "use": "",
40
+ "implementation_status": "implemented",
41
+ "usage_document": "cards/ai-stream-response/README.md",
42
+ "source_files": [
43
+ "source/demos/ai-stream-response/StreamResponse.tsx"
44
+ ]
45
+ }
46
+ ]
47
+ },
48
+ {
49
+ "name": "autolayout-gap-dial",
50
+ "summary": "间距拨盘驱动布局——一排链接块带框选描边+缝隙间距标注,徽章数字逐格跳动、块被参数实时推开再弹簧回弹归位;\"参数驱动布局\"的可视化",
51
+ "use": "设计工具/低代码产品的\"改一个数、界面跟着动\"卖点镜头;\"用设计工具语义做包装\"的品类语言",
52
+ "duration": "~4s(120f:框选入场 + 拉松 38f + hold + 弹簧回弹)",
53
+ "energy": "中(工具理性型,爽点在数字与位移的锁定同步)",
54
+ "intention": "\"参数改了、UI 变了\"是设计工具的核心承诺,但通常拍成\"点面板→切\r\n结果\"的前后对比,因果被剪掉了。本卡把因果拍成连续镜头:间距徽章\r\n数字逐格跳,链接块**同帧**被推开,测量线实时拉长——数字就是缰绳,\r\n布局就是马。框选描边+8 手柄+间距标注全是设计工具的母语,观众一眼\r\n认出\"这是在工具里调参数\"。回程故意用欠阻尼弹簧过冲(缩到比起点\r\n更紧再回稳),把\"归位\"做成一次有弹性的收尾。与 type-and-filter\r\n分工:那是\"输入内容→列表收敛\"的检索因果,本卡是\"拨数值→几何\r\n重排\"的参数因果。",
55
+ "usage_document": "cards/autolayout-gap-dial/README.md",
56
+ "dependencies": [
57
+ "react",
58
+ "remotion"
59
+ ],
60
+ "code_status": "source-available",
61
+ "source_files": [
62
+ "source/demos/autolayout-gap-dial/AutolayoutGapDial.tsx"
63
+ ],
64
+ "styles": [
65
+ {
66
+ "key": "autolayout-gap-dial",
67
+ "label": "autolayout-gap-dial",
68
+ "description": "间距拨盘驱动布局——一排链接块带框选描边+缝隙间距标注,徽章数字逐格跳动、块被参数实时推开再弹簧回弹归位;\"参数驱动布局\"的可视化",
69
+ "use": "",
70
+ "implementation_status": "implemented",
71
+ "usage_document": "cards/autolayout-gap-dial/README.md",
72
+ "source_files": [
73
+ "source/demos/autolayout-gap-dial/AutolayoutGapDial.tsx"
74
+ ]
75
+ }
76
+ ]
77
+ },
78
+ {
79
+ "name": "beat-cut-moves",
80
+ "summary": "硬切当节拍乐器的两式——递进硬切串(间隔减半加速逼近)与连闪定格(三次白闪各切一个裁切)",
81
+ "use": "高光/冲刺段落把\"切\"本身打成鼓点;A 式预告片式加速逼近,B 式颁奖连拍仪式感",
82
+ "duration": "A 全程 ~4.3s(建立 49f + 五连切 + 定格 hold 35f);B 全程 ~4.3s(活素材 30f + 三闪 + hold 60f)",
83
+ "energy": "高",
84
+ "intention": "库内节奏词汇一直只管\"一条运动内\"的速率(speed-ramp 是同一条 take\r\n里变速)和\"落定后停多久\"(R 系呼吸判例),没有词管**多镜之间切点\r\n怎么排**。本卡补这一块:硬切不做任何过渡,切点间隔本身就是乐谱——\r\n间隔递减读作加速逼近(A),等距三闪读作快门连拍(B)。与 R 系不\r\n冲突:R 管落定后的停,本卡管切点排布,切串结束必须接足量 hold 把\r\n呼吸还回去。注意这是刻意的例外——节奏偏好判例是单向\"放慢\",硬切\r\n串切得越狠,切完的 hold 要比平常更长。",
85
+ "usage_document": "cards/beat-cut-moves/README.md",
86
+ "dependencies": [
87
+ "react",
88
+ "remotion"
89
+ ],
90
+ "code_status": "source-available",
91
+ "source_files": [
92
+ "source/demos/beat-cut-moves/BeatCutAccelerando.tsx",
93
+ "source/demos/beat-cut-moves/PaparazziFlash.tsx"
94
+ ],
95
+ "styles": [
96
+ {
97
+ "key": "beat-cut-accelerando",
98
+ "label": "beat-cut-accelerando 递进硬切串",
99
+ "description": "六视图按 16→12→8→6→4f 间隔减半全屏硬切,加速逼近,末刀戛然定格回主画面轻推收住",
100
+ "use": "冲刺逼近感:预告片式蓄力、功能连打冲向结论",
101
+ "implementation_status": "implemented",
102
+ "usage_document": "cards/beat-cut-moves/README.md",
103
+ "source_files": [
104
+ "source/demos/beat-cut-moves/BeatCutAccelerando.tsx"
105
+ ]
106
+ },
107
+ {
108
+ "key": "paparazzi-flash",
109
+ "label": "paparazzi-flash 连闪定格",
110
+ "description": "三次白闪各硬切同素材不同裁切(全景→卡片特写→数字特写),快门余韵沉降,第三闪停在数字收束",
111
+ "use": "高光时刻仪式感:颁奖连拍、关键数字的加冕",
112
+ "implementation_status": "implemented",
113
+ "usage_document": "cards/beat-cut-moves/README.md",
114
+ "source_files": [
115
+ "source/demos/beat-cut-moves/PaparazziFlash.tsx"
116
+ ]
117
+ }
118
+ ]
119
+ },
120
+ {
121
+ "name": "beat-step-list-theme-cycle",
122
+ "summary": "三通道节拍器——深色场形容词列表逐拍上移一行,视口中央固定胶囊\"接住\"下一个词并换色,整场底色同拍跟换;行、色、场三通道锁死同一拍点",
123
+ "use": "\"同一产品多种气质/多主题展示\"段落(modern/playful/expressive 式形容词连打);全片节奏最密的一段;音乐段对拍",
124
+ "duration": "铺垫 30f + 每拍 18f × 拍数 + 收尾 hold;3 拍约 3.5s(demo 110f)",
125
+ "energy": "高(0.6s 一拍三通道齐跳,密度型高能)",
126
+ "intention": "换一次主题色是功能演示;0.6 秒换一次、连换三次、每次\"选中行+胶囊色\r\n+全场底色\"三件事同帧齐跳——就成了节拍器。用最便宜的变量切换做出\r\n全片最高的节奏密度。命门有二:一是**三通道必须锁同一拍点**,任何\r\n一通道慢半拍,\"齐跳\"退化成三个各自为政的动画;二是**跳与滑的分界**\r\n——跳变只占拍头 6f,其余 12f 完全静置,拍点要\"跳\"不要\"滑\",\r\n匀速滚动的列表就只是列表。",
127
+ "usage_document": "cards/beat-step-list-theme-cycle/README.md",
128
+ "dependencies": [
129
+ "react",
130
+ "remotion"
131
+ ],
132
+ "code_status": "source-available",
133
+ "source_files": [
134
+ "source/demos/beat-step-list-theme-cycle/BeatStepListThemeCycle.tsx"
135
+ ],
136
+ "styles": [
137
+ {
138
+ "key": "beat-step-list-theme-cycle",
139
+ "label": "beat-step-list-theme-cycle",
140
+ "description": "三通道节拍器——深色场形容词列表逐拍上移一行,视口中央固定胶囊\"接住\"下一个词并换色,整场底色同拍跟换;行、色、场三通道锁死同一拍点",
141
+ "use": "",
142
+ "implementation_status": "implemented",
143
+ "usage_document": "cards/beat-step-list-theme-cycle/README.md",
144
+ "source_files": [
145
+ "source/demos/beat-step-list-theme-cycle/BeatStepListThemeCycle.tsx"
146
+ ]
147
+ }
148
+ ]
149
+ },
150
+ {
151
+ "name": "before-after-slider-scrub",
152
+ "summary": "前后对比拉杆——\"处理前/后\"两版叠放,分割杆先猛甩后慢扫,杆过处新版\"显影\"揭出",
153
+ "use": "AI 增强/优化/重构类功能的效果对比段落(\"用前 vs 用后\"一镜讲清)",
154
+ "duration": "4–5s",
155
+ "energy": "中(快甩是打击点,慢扫是阅读期)",
156
+ "intention": "AI 图像产品发布片的标准对比语法:同一画面\"处理前\"(低对比灰蒙)\r\n与\"处理后\"(清晰版)叠放,带圆手柄的竖分割杆先从左端猛甩到 70%\r\n(overshoot 回弹)、停一拍,再以约 1/5 的速度慢扫回来让观众看清\r\n差异——**快甩慢扫的速度对比就是节奏**:快甩宣告\"变了\",\r\n慢扫证明\"变在哪\"。",
157
+ "usage_document": "cards/before-after-slider-scrub/README.md",
158
+ "dependencies": [
159
+ "react",
160
+ "remotion"
161
+ ],
162
+ "code_status": "source-available",
163
+ "source_files": [
164
+ "source/demos/before-after-slider-scrub/BeforeAfterSliderScrub.tsx"
165
+ ],
166
+ "styles": [
167
+ {
168
+ "key": "before-after-slider-scrub",
169
+ "label": "before-after-slider-scrub",
170
+ "description": "前后对比拉杆——\"处理前/后\"两版叠放,分割杆先猛甩后慢扫,杆过处新版\"显影\"揭出",
171
+ "use": "",
172
+ "implementation_status": "implemented",
173
+ "usage_document": "cards/before-after-slider-scrub/README.md",
174
+ "source_files": [
175
+ "source/demos/before-after-slider-scrub/BeforeAfterSliderScrub.tsx"
176
+ ]
177
+ }
178
+ ]
179
+ },
180
+ {
181
+ "name": "bottom-push-stack-wipe",
182
+ "summary": "底边上推换章——新场景连底色整屏从底边向上推入,把旧场景物理顶出画外,连推数章各配一种饱和底色,内容钉死在各自色底坐标系里随底色走",
183
+ "use": "多章节产品片的换章骨架(每章一个卖点一种底色);需要\"翻页节奏感\"贯穿全片的段落切换",
184
+ "duration": "单次推入 30f + 章内 hold ~1s;demo 三连推 140f(~4.7s)",
185
+ "energy": "中",
186
+ "intention": "wipe-transitions 是一条边界扫过、新旧页都不动;page-turn 是立方体\r\n翻转。本卡是第三种物性:**新章把旧章顶出去**——两屏刚性接触、同速\r\n同向位移,像自动售货机压栈。命门是\"连底色整屏走\":底色+窗口卡+装饰\r\n条焊成一块整料从底边推入,观众读到\"换了个世界\"而不是\"换了张卡\"。\r\n重 ease-out(快进慢停)给推入一个\"哐\"的落位感;上缘 40px 接缝阴影\r\n是两屏物理接触的证据。连推三章且底色饱和度拉满,换章本身就成了全片\r\n的节拍器——slack 原片全片就靠这一招做骨架。",
187
+ "usage_document": "cards/bottom-push-stack-wipe/README.md",
188
+ "dependencies": [
189
+ "react",
190
+ "remotion"
191
+ ],
192
+ "code_status": "source-available",
193
+ "source_files": [
194
+ "source/demos/bottom-push-stack-wipe/BottomPushStackWipe.tsx"
195
+ ],
196
+ "styles": [
197
+ {
198
+ "key": "bottom-push-stack-wipe",
199
+ "label": "bottom-push-stack-wipe",
200
+ "description": "底边上推换章——新场景连底色整屏从底边向上推入,把旧场景物理顶出画外,连推数章各配一种饱和底色,内容钉死在各自色底坐标系里随底色走",
201
+ "use": "",
202
+ "implementation_status": "implemented",
203
+ "usage_document": "cards/bottom-push-stack-wipe/README.md",
204
+ "source_files": [
205
+ "source/demos/bottom-push-stack-wipe/BottomPushStackWipe.tsx"
206
+ ]
207
+ }
208
+ ]
209
+ },
210
+ {
211
+ "name": "brand-frame-snap",
212
+ "summary": "品牌色画框语法——一圈粗纯色画框先于内容长出包住全屏,录屏窗口落进框内;模式切换时整圈画框同帧硬翻色+窗内布局同帧换,一个 borderColor 干完章节导航/状态提示/品牌露出三件事",
213
+ "use": "双模式/双章节产品片的全片包装层(蓝=模式A、绿=模式B 颜色编码);真实录屏素材的品牌化包裹",
214
+ "duration": "单次翻色 ~4.3s(130f);画框本身可全片驻场",
215
+ "energy": "中(翻色瞬间高,其余时间是安静的包装层)",
216
+ "intention": "真实录屏直接铺满屏没有品牌存在感,加 logo 水印又廉价。本卡用一圈\r\n粗品牌色画框把录屏\"装裱\"起来:画框**先于内容出现**(先立画框再放\r\n画,仪式感),之后画框颜色成为全片的语义编码——蓝=Design、绿=Dev\r\nMode。章节切换时整圈画框一帧内硬翻色,无渐变,颜色硬切就是\"换挡\"\r\n声效的视觉等价物;窗内布局同帧 A→B、角标与徽标同步换字,三处同帧\r\n共振把\"模式切换\"砸实。与 theme-switch-moves 分工:那换的是 UI 本体\r\n肤色(有扫过边界),本卡换的是\"画框\"这个包装层(同帧无边界),\r\n语义是模式/章节切换不是主题切换。",
217
+ "usage_document": "cards/brand-frame-snap/README.md",
218
+ "dependencies": [
219
+ "react",
220
+ "remotion"
221
+ ],
222
+ "code_status": "source-available",
223
+ "source_files": [
224
+ "source/demos/brand-frame-snap/BrandFrameSnap.tsx"
225
+ ],
226
+ "styles": [
227
+ {
228
+ "key": "brand-frame-snap",
229
+ "label": "brand-frame-snap",
230
+ "description": "品牌色画框语法——一圈粗纯色画框先于内容长出包住全屏,录屏窗口落进框内;模式切换时整圈画框同帧硬翻色+窗内布局同帧换,一个 borderColor 干完章节导航/状态提示/品牌露出三件事",
231
+ "use": "",
232
+ "implementation_status": "implemented",
233
+ "usage_document": "cards/brand-frame-snap/README.md",
234
+ "source_files": [
235
+ "source/demos/brand-frame-snap/BrandFrameSnap.tsx"
236
+ ]
237
+ }
238
+ ]
239
+ },
240
+ {
241
+ "name": "brand-ink-open",
242
+ "summary": "墨线十字准星描画→字标逐字压印→打字机副标→满一秒静止再上浮消散",
243
+ "use": "品牌开场;任何\"先立名号再进产品\"的片头",
244
+ "duration": "约 2.8s(83f)",
245
+ "energy": "低(起步位,为后续镜头留爬升空间)",
246
+ "intention": "第一拍先给品牌记忆点:观众在任何产品画面出现之前,先看清并记住名字。安静、纸墨质感、有一个完整的静止时刻。",
247
+ "usage_document": "cards/brand-ink-open/README.md",
248
+ "dependencies": [
249
+ "remotion"
250
+ ],
251
+ "code_status": "source-available",
252
+ "source_files": [
253
+ "source/template/src/aifl/live/SceneOpen.tsx"
254
+ ],
255
+ "styles": [
256
+ {
257
+ "key": "brand-ink-open",
258
+ "label": "brand-ink-open",
259
+ "description": "墨线十字准星描画→字标逐字压印→打字机副标→满一秒静止再上浮消散",
260
+ "use": "",
261
+ "implementation_status": "implemented",
262
+ "usage_document": "cards/brand-ink-open/README.md",
263
+ "source_files": [
264
+ "source/template/src/aifl/live/SceneOpen.tsx"
265
+ ]
266
+ }
267
+ ]
268
+ },
269
+ {
270
+ "name": "bubble-swarm-takeover",
271
+ "summary": "珠光气泡群幕布转场——大小不一的气泡从画外飘入越涨越大遮满整屏,页面同步\"洗白\",遮蔽峰值处藏切换,气泡向外散开后已是新场景;可混入 i18n 文字胶囊变体",
272
+ "use": "章节级换景且品牌世界里有\"实体装饰物\"可当幕布(气泡/花瓣/图标皆可换皮);转场即品牌露出的段落",
273
+ "duration": "~4.3s(130f:飘入 ~67f + 峰值藏切 + 散开 ~43f)",
274
+ "energy": "中高(持续群体涌动,无瞬时冲击)",
275
+ "intention": "transition-hidden-cut 的前景遮挡式是\"一件东西扫过去的 1–3 帧\",\r\nwipe-transitions 是一条几何边界扫过——都是\"边界\"思维。本卡是\"幕布\"\r\n思维:让一**群**品牌实体花 2 秒飘入前景涨大遮屏,遮蔽峰值藏硬切,\r\n再散开露出新场景。比几何擦除高级的地方在于幕布本身就是品牌资产,\r\n转场时间越长品牌露出越足,反而不嫌慢。命门有二:**峰值必须真遮满**\r\n(6 颗巨型气泡按网格钉落点兜底,随机群只管氛围);**洗白层压在页面\r\n与气泡之间**——页面先被洗掉细节,气泡才接得住全部视线,切换在白纱\r\n后面完成,观众无从对比前后帧。",
276
+ "usage_document": "cards/bubble-swarm-takeover/README.md",
277
+ "dependencies": [
278
+ "react",
279
+ "remotion"
280
+ ],
281
+ "code_status": "source-available",
282
+ "source_files": [
283
+ "source/demos/bubble-swarm-takeover/BubbleSwarmTakeover.tsx"
284
+ ],
285
+ "styles": [
286
+ {
287
+ "key": "bubble-swarm-takeover",
288
+ "label": "bubble-swarm-takeover",
289
+ "description": "珠光气泡群幕布转场——大小不一的气泡从画外飘入越涨越大遮满整屏,页面同步\"洗白\",遮蔽峰值处藏切换,气泡向外散开后已是新场景;可混入 i18n 文字胶囊变体",
290
+ "use": "",
291
+ "implementation_status": "implemented",
292
+ "usage_document": "cards/bubble-swarm-takeover/README.md",
293
+ "source_files": [
294
+ "source/demos/bubble-swarm-takeover/BubbleSwarmTakeover.tsx"
295
+ ]
296
+ }
297
+ ]
298
+ },
299
+ {
300
+ "name": "canvas-materialize-moves",
301
+ "summary": "内容\"物化上画布\"两式——panel-to-canvas 行倒卡(面板表格行沿弧线飞出、跨容器变形成画布卡片)与 diagram-cascade 级联生成树(prompt 打字后节点逐层弹出、连线先于节点生长)",
302
+ "use": "AI/协作工具\"生成结果落到画布上\"的叙事段落;A 式讲\"已有内容换了个存在形态\",B 式讲\"从一句话长出一棵结构\"",
303
+ "duration": "A ~4.3s(130f)/ B ~5.3s(160f)",
304
+ "energy": "中",
305
+ "intention": "库内生成叙事只有\"面板内流式写入\"(ai-stream-response 证据行汇入面板)\r\n和\"图表自己活起来\"(chart-live-moves),没有词管**内容离开容器、在\r\n开放画布上物化成新实体**。本卡补这一块:画布是舞台,生成物是登台的\r\n演员。A 式的命门是跨容器形态迁移——同一条内容从\"行\"变成\"卡\",位置\r\n/宽高/圆角/内容布局在一条 spring 上同步插值,观众读到\"是它飞过去\r\n变的\"而不是\"删一个加一个\";B 式的命门是级联时序——线牵出节点、层\r\n喂出层,结构感来自先后而非同时。",
306
+ "usage_document": "cards/canvas-materialize-moves/README.md",
307
+ "dependencies": [
308
+ "react",
309
+ "remotion"
310
+ ],
311
+ "code_status": "source-available",
312
+ "source_files": [
313
+ "source/demos/canvas-materialize-moves/DiagramCascadeBuild.tsx",
314
+ "source/demos/canvas-materialize-moves/PanelToCanvasMaterialize.tsx"
315
+ ],
316
+ "styles": [
317
+ {
318
+ "key": "panel-to-canvas",
319
+ "label": "panel-to-canvas 行倒卡",
320
+ "description": "复选框逐个自动打勾→按钮按下→三行沿上抛弧线错峰飞出,途中行形态与卡形态交叉淡化,落位带随机倾角;面板行槽塌陷成虚线留白",
321
+ "use": "批量导入/一键上板:内容从列表态迁移为空间态",
322
+ "implementation_status": "implemented",
323
+ "usage_document": "cards/canvas-materialize-moves/README.md",
324
+ "source_files": [
325
+ "source/demos/canvas-materialize-moves/DiagramCascadeBuild.tsx",
326
+ "source/demos/canvas-materialize-moves/PanelToCanvasMaterialize.tsx"
327
+ ]
328
+ },
329
+ {
330
+ "key": "diagram-cascade",
331
+ "label": "diagram-cascade 级联生成树",
332
+ "description": "prompt 逐字敲出(敲完描边变深确认)→根(深色)→2 子→4 孙逐层弹出,折角连线描线先行 8f,成树后整棵呼吸一拍",
333
+ "use": "AI 生成结构图/脑图/ER 图:一句话长出一棵树",
334
+ "implementation_status": "implemented",
335
+ "usage_document": "cards/canvas-materialize-moves/README.md",
336
+ "source_files": [
337
+ "source/demos/canvas-materialize-moves/DiagramCascadeBuild.tsx",
338
+ "source/demos/canvas-materialize-moves/PanelToCanvasMaterialize.tsx"
339
+ ]
340
+ }
341
+ ]
342
+ },
343
+ {
344
+ "name": "card-flip-reveal",
345
+ "summary": "功能卡 3D 翻面揭示——卡片沿 Y 轴翻 180°,正面 UI 翻到侧棱最薄处闪过一道随角度移动的高光带,背面揭出大号结论数字,逐张错峰扫过整排",
346
+ "use": "\"功能→成果\"的成对叙事:一排功能卡逐张翻出各自的指标/结论;元素级转场卡",
347
+ "duration": "单卡翻转 26f,三卡错峰 10f,全程 ~4.9s(含 hold)",
348
+ "energy": "中高",
349
+ "intention": "库内\"翻\"字辈已有 wall-reveal-moves B(整墙波浪翻面,讲入场)和\r\nsplit-flap(字符翻牌,讲文字)。本卡是**语义翻面**:一张卡的正反两面\r\n是一对因果——正面是功能界面,背面是它带来的数字结论。翻面动作本身\r\n就是\"所以呢?\"的回答,Apple bento 段落的标准语法。逐张错峰 10f 扫过\r\n一排,三张卡三个数字节奏读作\"成果连报\"。",
350
+ "usage_document": "cards/card-flip-reveal/README.md",
351
+ "dependencies": [
352
+ "react",
353
+ "remotion"
354
+ ],
355
+ "code_status": "source-available",
356
+ "source_files": [
357
+ "source/demos/card-flip-reveal/CardFlipReveal.tsx"
358
+ ],
359
+ "styles": [
360
+ {
361
+ "key": "card-flip-reveal",
362
+ "label": "card-flip-reveal",
363
+ "description": "功能卡 3D 翻面揭示——卡片沿 Y 轴翻 180°,正面 UI 翻到侧棱最薄处闪过一道随角度移动的高光带,背面揭出大号结论数字,逐张错峰扫过整排",
364
+ "use": "",
365
+ "implementation_status": "implemented",
366
+ "usage_document": "cards/card-flip-reveal/README.md",
367
+ "source_files": [
368
+ "source/demos/card-flip-reveal/CardFlipReveal.tsx"
369
+ ]
370
+ }
371
+ ]
372
+ },
373
+ {
374
+ "name": "card-flock-tumble",
375
+ "summary": "三张 UI 页卡从侧棱薄边 3D 翻飞成阶梯站定(全程清晰、样条连续丝滑),站定后保持慢转不停,快速收束吸入中心,炸出单个湍流烟雾环扩散,巨字横贯收场",
376
+ "use": "能量高潮段(功能页群→品牌口号的爆点转场);霓虹暗场调性;\"多页面能力\"收束成一句话的段落",
377
+ "duration": "翻飞 ~1.5s + 慢转展示 ~0.3s + 收束 0.3s + 烟环+巨字 ~2s;全段 4.5s",
378
+ "energy": "极高(全片能量顶点用)",
379
+ "intention": "三张页卡像被甩出的扑克在 3D 空间翻飞列队,站定亮相后被瞬间\r\n吸入中心,炸出一圈烟雾环,品牌巨字穿环而出——\"能力展示→能量\r\n坍缩→口号爆发\"一气呵成。命门有三:**丝滑**(侧棱→翻飞→站定\r\n一条 Catmull-Rom 样条导数连续,分段插值的顿挫会被读出来)、\r\n**不许停**(站定后保持低角速度慢转到收束,静止段被裁\"不要停住,\r\n保持旋转\"——高潮段没有静帧)、**全程清晰**(motion blur/景深糊\r\n全删,被裁\"不要加模糊效果\")。",
380
+ "usage_document": "cards/card-flock-tumble/README.md",
381
+ "dependencies": [
382
+ "react",
383
+ "remotion"
384
+ ],
385
+ "code_status": "source-available",
386
+ "source_files": [
387
+ "source/demos/card-flock-tumble/CardFlockTumble.tsx"
388
+ ],
389
+ "styles": [
390
+ {
391
+ "key": "card-flock-tumble",
392
+ "label": "card-flock-tumble",
393
+ "description": "三张 UI 页卡从侧棱薄边 3D 翻飞成阶梯站定(全程清晰、样条连续丝滑),站定后保持慢转不停,快速收束吸入中心,炸出单个湍流烟雾环扩散,巨字横贯收场",
394
+ "use": "",
395
+ "implementation_status": "implemented",
396
+ "usage_document": "cards/card-flock-tumble/README.md",
397
+ "source_files": [
398
+ "source/demos/card-flock-tumble/CardFlockTumble.tsx"
399
+ ]
400
+ }
401
+ ]
402
+ },
403
+ {
404
+ "name": "cel-flash-stomp",
405
+ "summary": "底色闪砸字——大词逐拍像图章歪着砸满屏,每词落定瞬间背景层在两个纯色间频闪数帧而文字纹丝不动;动漫必杀技字卡的 UI 翻译",
406
+ "use": "口号/三连词的高能段落(\"SHIP / FASTER / TODAY\"式);文字节奏卡,与 type-rhythm-sync 互补(那是字属性动,这是字砸+底闪)",
407
+ "duration": "每词 ~30f × 词数 + 收尾 ≥45f;三词约 4.8s",
408
+ "energy": "高",
409
+ "intention": "逐词砸字(stomp typography)单用只有重量;背景纯色闪(动漫背景\r\nフラッシュ——必杀技名出现时底色交替闪)单用只是闪。焊在一起互补\r\n成立:词砸下的落定帧正是底闪的起爆帧,**主体稳、背景闪**——观众\r\n盯着字,眼角余光里整个世界在震颤,打击感来自周边视野而不来自主体\r\n抖动。这是与震屏完全相反的路线:震屏晃主体,本卡晃世界。三词逐拍\r\n递进,末词闪加倍+标签条收束,一句口号剪成三记盖章。",
410
+ "usage_document": "cards/cel-flash-stomp/README.md",
411
+ "dependencies": [
412
+ "react",
413
+ "remotion"
414
+ ],
415
+ "code_status": "source-available",
416
+ "source_files": [
417
+ "source/demos/cel-flash-stomp/CelFlashStomp.tsx"
418
+ ],
419
+ "styles": [
420
+ {
421
+ "key": "cel-flash-stomp",
422
+ "label": "cel-flash-stomp",
423
+ "description": "底色闪砸字——大词逐拍像图章歪着砸满屏,每词落定瞬间背景层在两个纯色间频闪数帧而文字纹丝不动;动漫必杀技字卡的 UI 翻译",
424
+ "use": "",
425
+ "implementation_status": "implemented",
426
+ "usage_document": "cards/cel-flash-stomp/README.md",
427
+ "source_files": [
428
+ "source/demos/cel-flash-stomp/CelFlashStomp.tsx"
429
+ ]
430
+ }
431
+ ]
432
+ },
433
+ {
434
+ "name": "chart-live-moves",
435
+ "summary": "活体图表三式——oscilloscope-stream 示波流线(曲线右端实时写入+突发尖峰)、unit-dot-swarm-regroup 点阵重组(点群三幕迁徙聚成数字)、axis-rescale-shock 轴爆表重标(新值冲出画框逼 y 轴重标)",
436
+ "use": "数据叙事段落;分别讲\"实时性\"、\"每个数字是一个人\"、\"增长装不下\"",
437
+ "duration": "各 4–6s",
438
+ "energy": "中高(数据即剧情)",
439
+ "intention": "图表不是插图是剧情。三式共同前提(实测判例):**必须真图表语境**\r\n——真轴标/真数据/真文案,灰阶占位条测不出数据叙事的表达力。\r\nA 示波流线:曲线写入点钉在右端上下起伏,旧数据左流出画,中途一次\r\n突发尖峰(振幅 2.2×、读数跳大变强调色)——\"实时\"不用说出口,还有事件;\r\nB 点阵重组:320 个点(每点≈40 customers)散布→聚三簇(浮 Free/Pro/\r\nEnterprise 真标签)→列队成柱(真轴标)→聚成点阵大数字 \"12,847\"——\r\n同一批点,观众能跟着某一颗看它归队;\r\nC 轴爆表:折线正常爬升,新值顶破图表上沿冲出卡片 220px(强调色粗线\r\n插进标题区),停半拍,y 轴\"哗\"地重标(旧刻度飞出/新刻度滑入/网格\r\n加密/旧线压扁成地平线),新值落回+弹真值标签——用\"坐标轴装不下\"演增长。",
440
+ "usage_document": "cards/chart-live-moves/README.md",
441
+ "dependencies": [
442
+ "react",
443
+ "remotion"
444
+ ],
445
+ "code_status": "source-available",
446
+ "source_files": [
447
+ "source/demos/chart-live-moves/AxisRescaleShockV2.tsx",
448
+ "source/demos/chart-live-moves/OscilloscopeStreamV2.tsx",
449
+ "source/demos/chart-live-moves/UnitDotSwarmRegroupV2.tsx"
450
+ ],
451
+ "styles": [
452
+ {
453
+ "key": "oscilloscope-stream",
454
+ "label": "oscilloscope-stream",
455
+ "description": "采样窗平移 8px/f + 余弦包络尖峰 + 刹停真静止",
456
+ "use": "监控/实时类产品:\"活着\"的系统",
457
+ "implementation_status": "implemented",
458
+ "usage_document": "cards/chart-live-moves/README.md",
459
+ "source_files": [
460
+ "source/demos/chart-live-moves/AxisRescaleShockV2.tsx",
461
+ "source/demos/chart-live-moves/OscilloscopeStreamV2.tsx",
462
+ "source/demos/chart-live-moves/UnitDotSwarmRegroupV2.tsx"
463
+ ]
464
+ },
465
+ {
466
+ "key": "unit-dot-swarm-regroup",
467
+ "label": "unit-dot-swarm-regroup",
468
+ "description": "三幕 spring 错峰迁徙(stiffness 150、错峰 8f),终幕点阵拼数字",
469
+ "use": "用户量/构成叙事:\"每个点是一个人\"",
470
+ "implementation_status": "implemented",
471
+ "usage_document": "cards/chart-live-moves/README.md",
472
+ "source_files": [
473
+ "source/demos/chart-live-moves/AxisRescaleShockV2.tsx",
474
+ "source/demos/chart-live-moves/OscilloscopeStreamV2.tsx",
475
+ "source/demos/chart-live-moves/UnitDotSwarmRegroupV2.tsx"
476
+ ]
477
+ },
478
+ {
479
+ "key": "axis-rescale-shock",
480
+ "label": "axis-rescale-shock",
481
+ "description": "冲出框 220px + 重标三联动(刻度换/网格密/旧线压扁)+ 震 8px",
482
+ "use": "增长曲线高光:\"off the charts\" 字面化",
483
+ "implementation_status": "implemented",
484
+ "usage_document": "cards/chart-live-moves/README.md",
485
+ "source_files": [
486
+ "source/demos/chart-live-moves/AxisRescaleShockV2.tsx",
487
+ "source/demos/chart-live-moves/OscilloscopeStreamV2.tsx",
488
+ "source/demos/chart-live-moves/UnitDotSwarmRegroupV2.tsx"
489
+ ]
490
+ }
491
+ ]
492
+ },
493
+ {
494
+ "name": "circle-match-iris",
495
+ "summary": "圆心匹配光圈切——光圈从页面上圆形元素的圆心炸开,圈内新页的圆形图表接在同一个圆上;匹配剪辑给光圈一个语义锚点",
496
+ "use": "前景有圆形元素(头像/图标/圆钮)、后景有圆形主体(donut 图/圆环进度)的接缝;转场技法卡",
497
+ "duration": "4.7s(锚点脉冲 30f + 光圈扩张 45f + 图表生长 55f + 静止 40f)",
498
+ "energy": "中高",
499
+ "intention": "普通 iris 光圈(词汇表原条目)从任意点开圈,观众只读到\"换页了\"。\r\n本卡把它和 match-cut 焊死:光圈必须从前景一个**真实圆形元素**的圆心\r\n炸开,圈内长出的新页里有个圆形图表恰好接在同一个圆上——观众看到的\r\n是\"头像的圆变成了图表的圆\",圆形本身完成叙事(这个人→这个人的数据)。\r\n这是 match-cut 在 UI 语境里的落地形态:不靠构图巧合,靠语义圆对圆。\r\n与穿越三式同属\"后景在前景里预先在场\",但锚点是抽象形状而非容器。",
500
+ "usage_document": "cards/circle-match-iris/README.md",
501
+ "dependencies": [
502
+ "react",
503
+ "remotion"
504
+ ],
505
+ "code_status": "source-available",
506
+ "source_files": [
507
+ "source/demos/circle-match-iris/CircleMatchIris.tsx"
508
+ ],
509
+ "styles": [
510
+ {
511
+ "key": "circle-match-iris",
512
+ "label": "circle-match-iris",
513
+ "description": "圆心匹配光圈切——光圈从页面上圆形元素的圆心炸开,圈内新页的圆形图表接在同一个圆上;匹配剪辑给光圈一个语义锚点",
514
+ "use": "",
515
+ "implementation_status": "implemented",
516
+ "usage_document": "cards/circle-match-iris/README.md",
517
+ "source_files": [
518
+ "source/demos/circle-match-iris/CircleMatchIris.tsx"
519
+ ]
520
+ }
521
+ ]
522
+ },
523
+ {
524
+ "name": "cloner-depth-echo",
525
+ "summary": "克隆纵队——主卡瞬间\"复印\"出 7 个半透明分身沿斜向纵深排开成队,停一拍后全体加速吸回本体合一+弹跳",
526
+ "use": "多副本/多租户/规模感/批量处理\"卖点;一镜讲完\"一个=很多",
527
+ "duration": "4–5s",
528
+ "energy": "中(陈列-收束型)",
529
+ "intention": "Spline/C4D Cloner 语汇的 UI 翻译:一张主卡\"啪\"地复印出 7 个克隆体\r\n沿 Z 轴向后等距排开(间隔 120px、透明度 100%→20% 递减),错峰弹出\r\n成纵队;停 ~25f 让观众数得清\"有很多个\";然后全体 ease-in 加速吸回\r\n本体合一,合体瞬间本体弹 1.08x 收束。与 depth-layer-moves 视差\r\n(不同内容分层)分工:这是**同一内容**的等距重影阵列,语义是规模\r\n不是空间。",
530
+ "usage_document": "cards/cloner-depth-echo/README.md",
531
+ "dependencies": [
532
+ "react",
533
+ "remotion"
534
+ ],
535
+ "code_status": "source-available",
536
+ "source_files": [
537
+ "source/demos/cloner-depth-echo/ClonerDepthEcho.tsx"
538
+ ],
539
+ "styles": [
540
+ {
541
+ "key": "cloner-depth-echo",
542
+ "label": "cloner-depth-echo",
543
+ "description": "克隆纵队——主卡瞬间\"复印\"出 7 个半透明分身沿斜向纵深排开成队,停一拍后全体加速吸回本体合一+弹跳",
544
+ "use": "",
545
+ "implementation_status": "implemented",
546
+ "usage_document": "cards/cloner-depth-echo/README.md",
547
+ "source_files": [
548
+ "source/demos/cloner-depth-echo/ClonerDepthEcho.tsx"
549
+ ]
550
+ }
551
+ ]
552
+ },
553
+ {
554
+ "name": "collab-cursor-moves",
555
+ "summary": "协作光标当演员的两式——dialogue-duet 双光标暗场对话双人舞(靠近/绕位/灯光交接/放大成转场),与 cast-ensemble 五光标群演氛围层(错峰飞入+正弦漂移+打字 cameo+聚拢围观)",
556
+ "use": "协作/多人/交接主题的叙事段;A 撑起无 UI 的纯叙事拍,B 给画布场景铺\"团队在场\"体温",
557
+ "duration": "A ~4.7s(140f)/ B ~4.7s(140f)",
558
+ "energy": "A 中(叙事密度高)/ B 低中(氛围层,可垫任何时长)",
559
+ "intention": "库内光标一直是\"操作工具\"(input-trigger-moves 的 cursor-performance\r\n是单光标点击表演)。本卡把带身份名牌的协作光标升格成**演员**:\r\nA 式两枚具名光标在纯暗场用位移编排讲\"设计-开发交接\"——没有一个 UI\r\n元素,观众照样看懂了剧情,光标位置关系就是台词;B 式五枚光标错峰\r\n入场后持续漂移当氛围粒子,\"团队在场\"感全靠它,其中一枚还能停下来\r\n打字(cameo 戏份)。SVG 光标+名牌 chip 成本极低、叙事密度极高,\r\n是\"协作\"主题最便宜的视觉论证。",
560
+ "usage_document": "cards/collab-cursor-moves/README.md",
561
+ "dependencies": [
562
+ "react",
563
+ "remotion"
564
+ ],
565
+ "code_status": "source-available",
566
+ "source_files": [
567
+ "source/demos/collab-cursor-moves/CursorCastEnsemble.tsx",
568
+ "source/demos/collab-cursor-moves/CursorDialogueDuet.tsx"
569
+ ],
570
+ "styles": [
571
+ {
572
+ "key": "dialogue-duet",
573
+ "label": "dialogue-duet",
574
+ "description": "蓝/绿两枚具名光标:贝塞尔入场→相互靠近对话(脉冲呼吸)→上下弧线绕位交换→名牌一亮一暗灯光交接→绿光标 easeIn 放大数十倍成巨箭头当转场遮挡",
575
+ "use": "双角色交接叙事(设计→开发、你→AI);需要一段无 UI 的纯叙事呼吸拍",
576
+ "implementation_status": "implemented",
577
+ "usage_document": "cards/collab-cursor-moves/README.md",
578
+ "source_files": [
579
+ "source/demos/collab-cursor-moves/CursorCastEnsemble.tsx",
580
+ "source/demos/collab-cursor-moves/CursorDialogueDuet.tsx"
581
+ ]
582
+ },
583
+ {
584
+ "key": "cast-ensemble",
585
+ "label": "cast-ensemble",
586
+ "description": "5 枚具名彩色光标错峰 spring 飞入灰阶画布→双频正弦漂移驻场→一枚在便签上打字机补全一行→结尾全员 easeInOut 聚拢围观",
587
+ "use": "画布/白板类产品全片氛围层;主内容之外需要\"别人也在\"的背景活性",
588
+ "implementation_status": "implemented",
589
+ "usage_document": "cards/collab-cursor-moves/README.md",
590
+ "source_files": [
591
+ "source/demos/collab-cursor-moves/CursorCastEnsemble.tsx",
592
+ "source/demos/collab-cursor-moves/CursorDialogueDuet.tsx"
593
+ ]
594
+ }
595
+ ]
596
+ },
597
+ {
598
+ "name": "color-block-step-wipe",
599
+ "summary": "离散阶跃色块吞屏两式——A 中央小条按 3–5 步硬跳阶跃扩成全屏(接管后徽章两跳弹出),B 色块从角落斜向 3 步吃屏并携带一张页面卡逐跳前进",
600
+ "use": "品牌色转场/章节交接;\"硬朗无缓动\"的像素游戏手感段落;接管后的纯色场当下一段的舞台",
601
+ "duration": "A ~2.5s(生长 44f + 徽章 + hold)/ B ~1.5–2s(3 跳 30f + hold);demo 合计 150f",
602
+ "energy": "中高(能量来自\"跳变\"的顿挫而非速度)",
603
+ "intention": "库里 wipe 类全是连续扫过——边界匀速或缓动地推过去。本卡反着来:\r\n**全程零插值零缓动**,色块像老式像素游戏的方块生长,每一跳都是硬切,\r\n跳与跳之间完全静止。顿挫本身就是节奏:3–5 声\"咔、咔、咔\"比一次\r\n平滑扫过更有宣告感。变体 B 再加一层:色块推进时携带一张内容卡同拍\r\n离散跳位——卡不做补间,读作\"整块被搬进来\",色块是运货的不是装饰的。",
604
+ "usage_document": "cards/color-block-step-wipe/README.md",
605
+ "dependencies": [
606
+ "react",
607
+ "remotion"
608
+ ],
609
+ "code_status": "source-available",
610
+ "source_files": [
611
+ "source/demos/color-block-step-wipe/ColorBlockStepWipe.tsx"
612
+ ],
613
+ "styles": [
614
+ {
615
+ "key": "color-block-step-wipe",
616
+ "label": "color-block-step-wipe",
617
+ "description": "离散阶跃色块吞屏两式——A 中央小条按 3–5 步硬跳阶跃扩成全屏(接管后徽章两跳弹出),B 色块从角落斜向 3 步吃屏并携带一张页面卡逐跳前进",
618
+ "use": "",
619
+ "implementation_status": "implemented",
620
+ "usage_document": "cards/color-block-step-wipe/README.md",
621
+ "source_files": [
622
+ "source/demos/color-block-step-wipe/ColorBlockStepWipe.tsx"
623
+ ]
624
+ }
625
+ ]
626
+ },
627
+ {
628
+ "name": "command-palette-summon",
629
+ "summary": "命令面板降临——整屏压暗加模糊,⌘K 面板带过冲弹落,候选行错峰浮现,敲字列表实时收窄",
630
+ "use": "效率型产品的\"全产品在一个输入框里\"叙事;命令面板/搜索/快捷键功能的标志性登场",
631
+ "duration": "4–5s",
632
+ "energy": "中(仪式感型,弹落帧与收窄是两个小打击点)",
633
+ "intention": "Raycast/Linear 发布片的标志性仪式:一声轻响,整个 UI 世界压暗\r\n让路,⌘K 面板从中心上方弹落,候选列表错峰浮现;敲两个字母,\r\n列表实时收窄——\"你要的一切都在这个输入框里\"。模拟交互按真人\r\n操作速度走(R3),收窄的\"挤压感\"来自行高塌缩而非淡出。",
634
+ "usage_document": "cards/command-palette-summon/README.md",
635
+ "dependencies": [
636
+ "react",
637
+ "remotion"
638
+ ],
639
+ "code_status": "source-available",
640
+ "source_files": [
641
+ "source/demos/command-palette-summon/CommandPaletteSummon.tsx"
642
+ ],
643
+ "styles": [
644
+ {
645
+ "key": "command-palette-summon",
646
+ "label": "command-palette-summon",
647
+ "description": "命令面板降临——整屏压暗加模糊,⌘K 面板带过冲弹落,候选行错峰浮现,敲字列表实时收窄",
648
+ "use": "",
649
+ "implementation_status": "implemented",
650
+ "usage_document": "cards/command-palette-summon/README.md",
651
+ "source_files": [
652
+ "source/demos/command-palette-summon/CommandPaletteSummon.tsx"
653
+ ]
654
+ }
655
+ ]
656
+ },
657
+ {
658
+ "name": "crane-rise-reveal",
659
+ "summary": "升降臂拉升揭示——开场怼在一行数据特写,相机沿 Y 轴减速升起后拉,行行涌入直到整面 dashboard 铺满全幅",
660
+ "use": "\"从细节到全局\"的开场定场;与 drone-dive-landing(全局→单点俯冲)互为反向",
661
+ "duration": "5s(特写 hold 20f + 拉升 100f + 满幅静止 30f)",
662
+ "energy": "中高(持续单向运动,无冲击拍)",
663
+ "intention": "开场定场库内已有 drone-dive-landing——从上帝视角砸进 hero 特写,\r\n\"全局→焦点\"。本卡是它的镜像:\"焦点→全局\"——先怼在一行真实数据上\r\n让观众看清\"这是什么\",再升降臂式拉升后退,一排排内容涌入画面,\r\n最后整面产品铺满——\"你看到的这一行,只是这一面墙的一格\"。\r\n适合以产品体量/内容丰富度为卖点的开场;两卡同片只用一个方向。",
664
+ "usage_document": "cards/crane-rise-reveal/README.md",
665
+ "dependencies": [
666
+ "react",
667
+ "remotion"
668
+ ],
669
+ "code_status": "source-available",
670
+ "source_files": [
671
+ "source/demos/crane-rise-reveal/CraneRiseReveal.tsx"
672
+ ],
673
+ "styles": [
674
+ {
675
+ "key": "crane-rise-reveal",
676
+ "label": "crane-rise-reveal",
677
+ "description": "升降臂拉升揭示——开场怼在一行数据特写,相机沿 Y 轴减速升起后拉,行行涌入直到整面 dashboard 铺满全幅",
678
+ "use": "",
679
+ "implementation_status": "implemented",
680
+ "usage_document": "cards/crane-rise-reveal/README.md",
681
+ "source_files": [
682
+ "source/demos/crane-rise-reveal/CraneRiseReveal.tsx"
683
+ ]
684
+ }
685
+ ]
686
+ },
687
+ {
688
+ "name": "crash-zoom-punch",
689
+ "summary": "全景一拍急推到目标特写(6f),落位二选一——过冲回弹(弹性)或撞停震屏(重量)",
690
+ "use": "功能段\"点名\"镜头——把观众视线一拍按到目标卡/模块上;强调级用撞停",
691
+ "duration": "约 0.5s 动作 + 前后 hold(动作 6–11f,前 hold ≥30f 建立全景、后 hold ≥45f 读特写)",
692
+ "energy": "高(瞬时冲击,非持续高能)",
693
+ "intention": "慢推近(spotlight-hero-card)是\"请看\",急推是\"看这个!\"——一拍之内\r\n从全景砸到特写,视线没有选择余地。落位质感分两款:回弹是弹性\r\n(\"看这个\"),撞停震屏是重量(\"就是它\"),按强调级选。",
694
+ "usage_document": "cards/crash-zoom-punch/README.md",
695
+ "dependencies": [
696
+ "@remotion/motion-blur",
697
+ "remotion"
698
+ ],
699
+ "code_status": "source-available",
700
+ "source_files": [
701
+ "source/demos/crash-zoom-punch/CrashImpactReal.tsx",
702
+ "source/demos/crash-zoom-punch/CrashZoomReal.tsx"
703
+ ],
704
+ "styles": [
705
+ {
706
+ "key": "crash-zoom-punch",
707
+ "label": "crash-zoom-punch",
708
+ "description": "全景一拍急推到目标特写(6f),落位二选一——过冲回弹(弹性)或撞停震屏(重量)",
709
+ "use": "",
710
+ "implementation_status": "implemented",
711
+ "usage_document": "cards/crash-zoom-punch/README.md",
712
+ "source_files": [
713
+ "source/demos/crash-zoom-punch/CrashImpactReal.tsx",
714
+ "source/demos/crash-zoom-punch/CrashZoomReal.tsx"
715
+ ]
716
+ }
717
+ ]
718
+ },
719
+ {
720
+ "name": "dataviz-landscape-open",
721
+ "summary": "暗场支流线束地景开场——多条流线汇入主干、虚构 ID 标签浮在线上、相机重景深低速飞越",
722
+ "use": "品牌级抽象开场(\"数据宇宙\"隐喻),接亮场产品段或字标;与 glow-flyline-moves 分工:那卡是段落内卡片之间的连线叙事,本卡是开场专用的全画幅地景",
723
+ "duration": "5–8s(开场氛围段,一支片 ≤1 次)",
724
+ "energy": "低开缓升(起步位,为后续爬升留空间)",
725
+ "intention": "Linear Releases 发布片开场实证的品牌级开场品类:把产品背后的数据世界\r\n拍成一片**暗场地景**——支流线束从画面深处汇入一条主干(\"无数工作流\r\n汇成一个产品\"的隐喻),真实感来自三样东西:①虚构 issue/任务 ID 标签\r\n浮在线上(观众认出\"这是我每天看到的那种东西\");②重景深——近景大虚焦\r\n流过、中景标签清晰可读、远景渐隐,三层纵深让平面 SVG 读作空间;\r\n③相机低速匀稳飞越——这是氛围段不是炫技段,速度感交给后面的镜头。\r\n手搓 UI 合规依据:非复刻场景(页面上不存在此画面),按核心理念 1\r\n修订版走质量+表达明确性门槛。",
726
+ "usage_document": "cards/dataviz-landscape-open/README.md",
727
+ "dependencies": [
728
+ "react",
729
+ "remotion"
730
+ ],
731
+ "code_status": "source-available",
732
+ "source_files": [
733
+ "source/demos/dataviz-landscape-open/DatavizLandscapeOpen.tsx"
734
+ ],
735
+ "styles": [
736
+ {
737
+ "key": "dataviz-landscape-open",
738
+ "label": "dataviz-landscape-open",
739
+ "description": "暗场支流线束地景开场——多条流线汇入主干、虚构 ID 标签浮在线上、相机重景深低速飞越",
740
+ "use": "",
741
+ "implementation_status": "implemented",
742
+ "usage_document": "cards/dataviz-landscape-open/README.md",
743
+ "source_files": [
744
+ "source/demos/dataviz-landscape-open/DatavizLandscapeOpen.tsx"
745
+ ]
746
+ }
747
+ ]
748
+ },
749
+ {
750
+ "name": "deck-deal-flyin",
751
+ "summary": "暗场金属背景里的实体牌堆特写环绕开局,拉远交给页面后一摞卡像发牌一样硬加速甩进网格,相机追着滚动、满板停半秒",
752
+ "use": "展示\"内容量大/源源不断汇入\"的列表页与卡片墙;建立信息密度的第一印象",
753
+ "duration": "约 2.6s 发牌段(36–113f),前接约 2s(62f)牌堆特写可选",
754
+ "energy": "高(节奏爬升段主力,不放开场第一镜)",
755
+ "intention": "先给悬念(这一摞是什么?),再给答案(是几十个项目,它们自己飞进页面各就各位)。观众要感受到\"东西源源不断地涌进来\",每张卡带着急迫感砸到位。",
756
+ "usage_document": "cards/deck-deal-flyin/README.md",
757
+ "dependencies": [
758
+ "remotion"
759
+ ],
760
+ "code_status": "source-available",
761
+ "source_files": [
762
+ "source/template/src/aifl/live/SceneFlyIn.tsx"
763
+ ],
764
+ "styles": [
765
+ {
766
+ "key": "deck-deal-flyin",
767
+ "label": "deck-deal-flyin",
768
+ "description": "暗场金属背景里的实体牌堆特写环绕开局,拉远交给页面后一摞卡像发牌一样硬加速甩进网格,相机追着滚动、满板停半秒",
769
+ "use": "",
770
+ "implementation_status": "implemented",
771
+ "usage_document": "cards/deck-deal-flyin/README.md",
772
+ "source_files": [
773
+ "source/template/src/aifl/live/SceneFlyIn.tsx"
774
+ ]
775
+ }
776
+ ]
777
+ },
778
+ {
779
+ "name": "depth-layer-moves",
780
+ "summary": "分层深度两款运镜——多层视差滑轨(3 层速度梯度横移出纵深)与伪 dolly-zoom(主体钉死、背景膨胀压来)",
781
+ "use": "平面截图要\"有厚度\"的段落;戏剧性蓄力时刻用 dolly-zoom(一支片 ≤1 次)",
782
+ "duration": "视差滑轨 4–5s 持续;dolly-zoom 3–4s 单向行程",
783
+ "energy": "视差=中(质感型);dolly-zoom=中高(压迫感渐强)",
784
+ "intention": "整页平移是\"看页面\",分层深度是\"在页面的空间里\"。视差滑轨给横移\r\n加纵深(迪士尼多平面摄影机原理,Linear 片同款质感);伪 dolly-zoom\r\n反过来——主角纹丝不动、全世界压过来,给戏剧性时刻蓄力。",
785
+ "usage_document": "cards/depth-layer-moves/README.md",
786
+ "dependencies": [
787
+ "remotion"
788
+ ],
789
+ "code_status": "source-available",
790
+ "source_files": [
791
+ "source/demos/depth-layer-moves/DollyZoomReal.tsx",
792
+ "source/demos/depth-layer-moves/MultiplaneReal.tsx"
793
+ ],
794
+ "styles": [
795
+ {
796
+ "key": "multiplane",
797
+ "label": "multiplane",
798
+ "description": "分层深度两款运镜--多层视差滑轨(3 层速度梯度横移出纵深)与伪 dolly-zoom(主体钉死、背景膨胀压来)",
799
+ "use": "",
800
+ "implementation_status": "implemented",
801
+ "usage_document": "cards/depth-layer-moves/README.md",
802
+ "source_files": [
803
+ "source/demos/depth-layer-moves/DollyZoomReal.tsx",
804
+ "source/demos/depth-layer-moves/MultiplaneReal.tsx"
805
+ ]
806
+ },
807
+ {
808
+ "key": "dolly-zoom",
809
+ "label": "dolly-zoom",
810
+ "description": "分层深度两款运镜--多层视差滑轨(3 层速度梯度横移出纵深)与伪 dolly-zoom(主体钉死、背景膨胀压来)",
811
+ "use": "",
812
+ "implementation_status": "implemented",
813
+ "usage_document": "cards/depth-layer-moves/README.md",
814
+ "source_files": [
815
+ "source/demos/depth-layer-moves/DollyZoomReal.tsx",
816
+ "source/demos/depth-layer-moves/MultiplaneReal.tsx"
817
+ ]
818
+ }
819
+ ]
820
+ },
821
+ {
822
+ "name": "document-typewriter-reveal",
823
+ "summary": "整页真排版文档在光标后自己\"写\"出来、侧栏跟进、历史条目逐个落入轨道",
824
+ "use": "文档/报告/笔记类功能镜头;信息密度最高的一拍",
825
+ "duration": "约 3.7s(110f,含 history-list-stack 尾段)",
826
+ "energy": "低中(信息密度最高,节奏放稳让观众读字)",
827
+ "intention": "观众会读清屏幕上每个字——这一镜的说服力全在\"文档是真的\"。打字机式写入把静态页面变成\"正在被写出来的文档\",侧栏历史条目落入补上\"持续产出\"的时间纵深。",
828
+ "usage_document": "cards/document-typewriter-reveal/README.md",
829
+ "dependencies": [
830
+ "remotion"
831
+ ],
832
+ "code_status": "source-available",
833
+ "source_files": [
834
+ "source/template/src/aifl/Main.tsx",
835
+ "source/template/src/aifl/live/SceneWbr.tsx"
836
+ ],
837
+ "styles": [
838
+ {
839
+ "key": "document-typewriter-reveal",
840
+ "label": "document-typewriter-reveal",
841
+ "description": "整页真排版文档在光标后自己\"写\"出来、侧栏跟进、历史条目逐个落入轨道",
842
+ "use": "",
843
+ "implementation_status": "implemented",
844
+ "usage_document": "cards/document-typewriter-reveal/README.md",
845
+ "source_files": [
846
+ "source/template/src/aifl/Main.tsx",
847
+ "source/template/src/aifl/live/SceneWbr.tsx"
848
+ ]
849
+ }
850
+ ]
851
+ },
852
+ {
853
+ "name": "draw-svg-trace",
854
+ "summary": "描边生长圈注——一条带笔头的墨线沿元素轮廓跑一圈把它\"画\"出来,闭合瞬间闪黑交棒、内容淡入;同套路可给标题画下划线",
855
+ "use": "单个卡片/图表/标题的被点名入场;元素级手法(整页级蓝图描线归 wall-reveal-moves C 式)",
856
+ "duration": "描边 40f + 闪黑交棒 16f + hold ≥35f,约 3–4s",
857
+ "energy": "中",
858
+ "intention": "\"画出来\"是纸墨审美里最顺手的入场隐喻:元素不是飞进来也不是淡进来,\r\n而是被一支看不见的笔当场描出来。库内 wall-reveal-moves C 式已有整页\r\n蓝图版(全屏线框逐段画+区域点亮),本卡是它的**元素级特写版**——\r\n一条线、一个主体、一次闭合,笔头可见、方向可读,适合\"接下来讲它\"\r\n的点名时刻。第二用法是标题下划线生长:同一套路 18f 短版,给重点词\r\n一笔手绘强调,与马克笔审美 token 天然同族。",
859
+ "usage_document": "cards/draw-svg-trace/README.md",
860
+ "dependencies": [
861
+ "react",
862
+ "remotion"
863
+ ],
864
+ "code_status": "source-available",
865
+ "source_files": [
866
+ "source/demos/draw-svg-trace/DrawSvgTrace.tsx"
867
+ ],
868
+ "styles": [
869
+ {
870
+ "key": "draw-svg-trace",
871
+ "label": "draw-svg-trace",
872
+ "description": "描边生长圈注——一条带笔头的墨线沿元素轮廓跑一圈把它\"画\"出来,闭合瞬间闪黑交棒、内容淡入;同套路可给标题画下划线",
873
+ "use": "",
874
+ "implementation_status": "implemented",
875
+ "usage_document": "cards/draw-svg-trace/README.md",
876
+ "source_files": [
877
+ "source/demos/draw-svg-trace/DrawSvgTrace.tsx"
878
+ ]
879
+ }
880
+ ]
881
+ },
882
+ {
883
+ "name": "edit-hook-moves",
884
+ "summary": "logo-sting-button 片尾钩子——片尾 logo 定住后突插 12f 彩蛋再收,预告片 button ending",
885
+ "use": "片尾收束(全片 ≤1 次)",
886
+ "duration": "~5s",
887
+ "energy": "低→瞬时中→低",
888
+ "intention": "库内声画卡管的都是\"画面上的事\";这一式管**时间线本身的修辞**——\r\n终点的反悔:收黑→logo 淡入定住(观众以为结束)→突然 12f UI 特写\r\n彩蛋硬切插入→切回 logo 收尾,预告片 button ending,留最后一个钩子。\r\n拿观众的\"已经结束了\"的预期开玩笑。",
889
+ "usage_document": "cards/edit-hook-moves/README.md",
890
+ "dependencies": [
891
+ "react",
892
+ "remotion"
893
+ ],
894
+ "code_status": "source-available",
895
+ "source_files": [
896
+ "source/demos/edit-hook-moves/LogoStingButton.tsx"
897
+ ],
898
+ "styles": [
899
+ {
900
+ "key": "logo-sting-button",
901
+ "label": "logo-sting-button",
902
+ "description": "logo-sting-button 片尾钩子——片尾 logo 定住后突插 12f 彩蛋再收,预告片 button ending",
903
+ "use": "片尾;正片收束后再给一记",
904
+ "implementation_status": "implemented",
905
+ "usage_document": "cards/edit-hook-moves/README.md",
906
+ "source_files": [
907
+ "source/demos/edit-hook-moves/LogoStingButton.tsx"
908
+ ]
909
+ }
910
+ ]
911
+ },
912
+ {
913
+ "name": "element-body-moves",
914
+ "summary": "元素身体感两式——axial-stretch 轴向拉伸糖稀拉丝、contact-shadow-lift 接触阴影离面抬升",
915
+ "use": "给\"位置在变\"之外补\"身体在变\":高速飞入给速度肉身(A)、卡片点名给悬浮证据(B);A 配横冲入场,B 配 2.5D 运镜与逐张点名",
916
+ "duration": "A ~4.7s / B ~5.3s",
917
+ "energy": "A 中高 / B 低中",
918
+ "intention": "库内运动卡全在管\"位置在变\"——飞入、滑动、弹跳,元素本身始终是刚体。\r\n这两式管**身体在变**:A 给速度一个可见的肉身——飞得越快沿运动轴拉得\r\n越长,一块糖稀,落点压扁回弹收正,squash & stretch 的 UI 翻译;B 给\r\n悬浮一个可信的证据——卡抬起时正下方阴影同步放大变淡,纸片离桌,\r\nstaging 法则给 2.5D 运镜垫的物理台词。与 smear-multiples 的区别:那是\r\n可数残像(离散鬼影),A 是连续拉伸(糖稀不断丝);与 CameraMotionBlur\r\n的区别:快门拖影是相机的事,拉伸是身体的事,同一元素别叠加。",
919
+ "usage_document": "cards/element-body-moves/README.md",
920
+ "dependencies": [
921
+ "react",
922
+ "remotion"
923
+ ],
924
+ "code_status": "source-available",
925
+ "source_files": [
926
+ "source/demos/element-body-moves/AxialStretch.tsx",
927
+ "source/demos/element-body-moves/ContactShadowLift.tsx"
928
+ ],
929
+ "styles": [
930
+ {
931
+ "key": "axial-stretch",
932
+ "label": "axial-stretch",
933
+ "description": "速度差分驱动轴向 scale:v=\\",
934
+ "use": "p(f)−p(f−1)\\",
935
+ "implementation_status": "implemented",
936
+ "usage_document": "cards/element-body-moves/README.md",
937
+ "source_files": [
938
+ "source/demos/element-body-moves/AxialStretch.tsx"
939
+ ]
940
+ },
941
+ {
942
+ "key": "contact-shadow-lift",
943
+ "label": "contact-shadow-lift",
944
+ "description": "抬起 10f out-cubic:卡 translateY(−28px)+scale(1.08),独立椭圆阴影 scale 1→1.72 / opacity 0.55→0.18 同进度反向;落回 8f in-cubic + 2f 微压卡壳",
945
+ "use": "逐张点名强调;2.5D 段落的离面铺垫",
946
+ "implementation_status": "implemented",
947
+ "usage_document": "cards/element-body-moves/README.md",
948
+ "source_files": [
949
+ "source/demos/element-body-moves/ContactShadowLift.tsx"
950
+ ]
951
+ }
952
+ ]
953
+ },
954
+ {
955
+ "name": "fui-hud-moves",
956
+ "summary": "FUI/HUD 两式——line-unfold-panel 一线展面(线→面 CRT 语法)与 reticle-lock-on 准星咬合(取景框飞入锁定目标)",
957
+ "use": "暗场/科技感段落的面板入退场用 A;任何\"看这里\"的目标点名用 B(替代箭头圈红,画面不冻结)",
958
+ "duration": "A 3–4s(含退场)/ B 2–3s",
959
+ "energy": "A 中 / B 中高(咬合帧是打击点)",
960
+ "intention": "科幻虚构界面(Jarvis/Territory)的两个可中性化母题。A 是面板的\r\n仪式感开关机:1px 细线极快抽出→纵向撑开成面板→内容淡入,退场反向\r\n压线缩点熄灭(老 CRT 关机);灰阶细线即成立,不需要科技蓝。\r\nB 是运动中的捕获:四个 L 形角标从画外冲入、超调回弹、\"咔\"地咬合\r\n到目标元素四角+弹标签——与 freeze-annotate 分工:那卡冻结画面标注,\r\n本卡在流动中点名。",
961
+ "usage_document": "cards/fui-hud-moves/README.md",
962
+ "dependencies": [
963
+ "react",
964
+ "remotion"
965
+ ],
966
+ "code_status": "source-available",
967
+ "source_files": [
968
+ "source/demos/fui-hud-moves/LineUnfoldPanel.tsx",
969
+ "source/demos/fui-hud-moves/ReticleLockOn.tsx"
970
+ ],
971
+ "styles": [
972
+ {
973
+ "key": "line-unfold-panel",
974
+ "label": "line-unfold-panel",
975
+ "description": "scaleX 0→1(out poly4 急抽 5f)接 scaleY 3px→满高(out cubic 9f),内容提前一拍淡入;退场镜像反序",
976
+ "use": "暗场面板入退场;开关机仪式感",
977
+ "implementation_status": "implemented",
978
+ "usage_document": "cards/fui-hud-moves/README.md",
979
+ "source_files": [
980
+ "source/demos/fui-hud-moves/LineUnfoldPanel.tsx"
981
+ ]
982
+ },
983
+ {
984
+ "key": "reticle-lock-on",
985
+ "label": "reticle-lock-on",
986
+ "description": "四 L 角=同一对矩形四份镜像,飞入(10f out cubic)与收缩(2.2×→0.94×→1 超调回弹)解耦;咬合帧目标微亮+标签 back 弹出",
987
+ "use": "目标点名;踩音效重拍",
988
+ "implementation_status": "implemented",
989
+ "usage_document": "cards/fui-hud-moves/README.md",
990
+ "source_files": [
991
+ "source/demos/fui-hud-moves/ReticleLockOn.tsx"
992
+ ]
993
+ }
994
+ ]
995
+ },
996
+ {
997
+ "name": "gauge-readout-moves",
998
+ "summary": "仪表读数两式——needle-sweep-selftest 满弧扫针(点火自检指针甩满全弧再回落真值)与 tape-scroll-fixed-pointer 滚带定针(针不动刻度带滚过+冲刺刹车)",
999
+ "use": "dashboard 开场仪式/性能指标揭晓;A 多表盘开机感,B 单指标大跳变",
1000
+ "duration": "A 4–5s / B 4–5s",
1001
+ "energy": "中高(机械仪式型)",
1002
+ "intention": "把\"报数值\"做成仪表的身体动作:A 是汽车点火自检——表盘指针先\"唰\"地\r\n甩满全弧(270°)再回落定格真实值,多表错峰成波浪,先亮量程再报数,\r\n开场宣誓感;B 是飞机空速带语法——指针/取景窗钉死画面正中,带刻度的\r\n标尺整体从底下滚过,大数值跳变时刻度带 45px/f 冲刺、末尾 spring 刹车\r\n带回摆过冲,\"世界动、针不动\",数值大小变成看得见的位移距离。\r\n与 odometer-digit-roll 分工:那是数字在窗里滚,B 是连刻度格线全在平移。",
1003
+ "usage_document": "cards/gauge-readout-moves/README.md",
1004
+ "dependencies": [
1005
+ "react",
1006
+ "remotion"
1007
+ ],
1008
+ "code_status": "source-available",
1009
+ "source_files": [
1010
+ "source/demos/gauge-readout-moves/NeedleSweepSelftest.tsx",
1011
+ "source/demos/gauge-readout-moves/TapeScrollFixedPointer.tsx"
1012
+ ],
1013
+ "styles": [
1014
+ {
1015
+ "key": "needle-sweep-selftest",
1016
+ "label": "needle-sweep-selftest",
1017
+ "description": "指针去程 ~12f ease-out 甩满弧,回程 ~20f 带 5-8° 过冲回摆落真值;多表错峰 3-5f;落定同帧盘下数值弹出",
1018
+ "use": "dashboard 开场/系统就绪仪式",
1019
+ "implementation_status": "implemented",
1020
+ "usage_document": "cards/gauge-readout-moves/README.md",
1021
+ "source_files": [
1022
+ "source/demos/gauge-readout-moves/NeedleSweepSelftest.tsx"
1023
+ ]
1024
+ },
1025
+ {
1026
+ "key": "tape-scroll-fixed-pointer",
1027
+ "label": "tape-scroll-fixed-pointer",
1028
+ "description": "长刻度带 translate:慢爬段→45px/f 冲刺 ~25f→spring 刹车过冲回摆停位;窗内读数同步刷新",
1029
+ "use": "单指标大跳变(性能翻倍/配额提升)",
1030
+ "implementation_status": "implemented",
1031
+ "usage_document": "cards/gauge-readout-moves/README.md",
1032
+ "source_files": [
1033
+ "source/demos/gauge-readout-moves/TapeScrollFixedPointer.tsx"
1034
+ ]
1035
+ }
1036
+ ]
1037
+ },
1038
+ {
1039
+ "name": "glow-flyline-moves",
1040
+ "summary": "暗场光斑与飞线三式——glow-orb-ambient 光斑底噪、flyline-arc 飞线连接、orb-flyline-relay 同帧共振组合",
1041
+ "use": "全片唯一暗场段落的氛围与数据叙事:铺底噪用 A、讲数据流向用 B、要背景给前景搭腔用 C;Linear 官网味",
1042
+ "duration": "A ~5s / B ~4.7s / C ~5.2s",
1043
+ "energy": "A 低(底噪级)/ B 中 / C 中高",
1044
+ "intention": "这是库内第一张整卡住在**暗场**的卡。白底提亮不可见判例反过来读就是:\r\n要玩光,先去暗场。A 是空间的呼吸——近黑底三团重 blur 光斑有机漂移,\r\n中央深卡边缘随最近光斑靠近而泛光,背景不再是死的;B 是数据的动词——\r\n发光弧线从 A 卡\"打\"到 B 卡,亮点头领跑、渐隐光尾,落点描边脉冲点亮,\r\n指标关联第一次有了方向;C 是 A+B 的焊接——飞线落点帧邻近光斑同帧\r\n涨亮一拍,氛围层与事件层**同帧共振**,互相搭腔而非各演各的(组合命门:\r\n拆开共振帧就退化成两张卡并置)。",
1045
+ "usage_document": "cards/glow-flyline-moves/README.md",
1046
+ "dependencies": [
1047
+ "react",
1048
+ "remotion"
1049
+ ],
1050
+ "code_status": "source-available",
1051
+ "source_files": [
1052
+ "source/demos/glow-flyline-moves/FlylineArc.tsx",
1053
+ "source/demos/glow-flyline-moves/GlowOrbAmbient.tsx",
1054
+ "source/demos/glow-flyline-moves/OrbFlylineRelay.tsx"
1055
+ ],
1056
+ "styles": [
1057
+ {
1058
+ "key": "glow-orb-ambient",
1059
+ "label": "glow-orb-ambient",
1060
+ "description": "三团 500-700px radial 光斑 + blur(100px),双正弦漂移;卡缘辉光按光斑距离 [180,720]px→[1,0] 加权取 max 驱动",
1061
+ "use": "暗场段落铺底;卡呼吸感",
1062
+ "implementation_status": "implemented",
1063
+ "usage_document": "cards/glow-flyline-moves/README.md",
1064
+ "source_files": [
1065
+ "source/demos/glow-flyline-moves/GlowOrbAmbient.tsx"
1066
+ ]
1067
+ },
1068
+ {
1069
+ "key": "flyline-arc",
1070
+ "label": "flyline-arc",
1071
+ "description": "手写 bezier 100 段采样,22f out-cubic 生长;光头条件挂载领跑,段 opacity 按离头距离渐隐;落点描边脉冲,可接力",
1072
+ "use": "数据流向/指标关联;dashboard 叙事",
1073
+ "implementation_status": "implemented",
1074
+ "usage_document": "cards/glow-flyline-moves/README.md",
1075
+ "source_files": [
1076
+ "source/demos/glow-flyline-moves/FlylineArc.tsx"
1077
+ ]
1078
+ },
1079
+ {
1080
+ "key": "orb-flyline-relay",
1081
+ "label": "orb-flyline-relay",
1082
+ "description": "A+B 焊接:光斑 surge 与卡脉冲共用落点帧,涨亮 1+1.6×surge、5f 起升 15f 消散",
1083
+ "use": "暗场高光段;三卡接力收束",
1084
+ "implementation_status": "implemented",
1085
+ "usage_document": "cards/glow-flyline-moves/README.md",
1086
+ "source_files": [
1087
+ "source/demos/glow-flyline-moves/OrbFlylineRelay.tsx"
1088
+ ]
1089
+ }
1090
+ ]
1091
+ },
1092
+ {
1093
+ "name": "gradient-word-sweep",
1094
+ "summary": "黑底标语里关键词被渐变彩光从左到右快速扫过\"充能\"——波前字符辉光最强向后衰减,填满后字符间勾连细紫红闪电、整词稳态泛光呼吸",
1095
+ "use": "标语里给单个动词/卖点词充能(Supercharged/faster/AI…);能量高潮段的文字戏;黑场品牌片的口号帧",
1096
+ "duration": "扫充 ~15–20f(要快)+ 稳态闪电呼吸 1–2s;全段 2.5–3.5s",
1097
+ "energy": "高(一词爆点,前后都该让位)",
1098
+ "intention": "整句白字里只有关键词被\"通电\":渐变彩光从左到右快速扫过字符,\r\n像能量注入——扫过的瞬间最亮(波前尾迹),随后衰减到稳态;\r\n填满后字符之间跳起勾连的细闪电,词保持泛光呼吸。三个命门:\r\n**快**(扫充 15–20f,慢了读作进度条)、**波前最亮**(刚点亮的\r\n字符效果最强,没有这个梯度就是静态渐变裁切)、**辉光克制**\r\n(AE 式多层泛光但别糊成一团,闪电细而稀疏才是点缀)。",
1099
+ "usage_document": "cards/gradient-word-sweep/README.md",
1100
+ "dependencies": [
1101
+ "react",
1102
+ "remotion"
1103
+ ],
1104
+ "code_status": "source-available",
1105
+ "source_files": [
1106
+ "source/demos/gradient-word-sweep/GradientWordSweep.tsx"
1107
+ ],
1108
+ "styles": [
1109
+ {
1110
+ "key": "gradient-word-sweep",
1111
+ "label": "gradient-word-sweep",
1112
+ "description": "黑底标语里关键词被渐变彩光从左到右快速扫过\"充能\"——波前字符辉光最强向后衰减,填满后字符间勾连细紫红闪电、整词稳态泛光呼吸",
1113
+ "use": "",
1114
+ "implementation_status": "implemented",
1115
+ "usage_document": "cards/gradient-word-sweep/README.md",
1116
+ "source_files": [
1117
+ "source/demos/gradient-word-sweep/GradientWordSweep.tsx"
1118
+ ]
1119
+ }
1120
+ ]
1121
+ },
1122
+ {
1123
+ "name": "graze-face-tour",
1124
+ "summary": "大倾角贴面游走特写——镜头贴着 UI 表面低飞掠过(侧栏树/顶栏/列表当地形),页面文字初始悬浮在界面上空带同形软影,随镜头行进先后加速贴落回界面",
1125
+ "use": "功能区巡礼(把 UI 当地景飞掠);配合暗场+霓虹缘光做产品\"内部世界\"段落;界面内容逐区登场",
1126
+ "duration": "单段 4–5s;可多段接力延长",
1127
+ "energy": "中高(运镜持续推进+元素连续落位,信息密度高)",
1128
+ "intention": "把 UI 拍成地形:大倾角特写让侧栏树、导航、列表行变成掠过的地貌,\r\n浅景深强化\"贴面\"。戏眼是**文字空中贴落**:文字/组件不是原地淡入,\r\n而是悬浮在界面上空(3D z 轴抬高),在空中时往界面投同形软影,\r\n随镜头行进先后加速贴落、影子随高度收敛消失——观众看见界面在\r\n镜头经过时\"完成自己\"。影子是可感命门:没有影子,悬浮读作\r\n普通位移入场;有影子,空间关系瞬间成立。",
1129
+ "usage_document": "cards/graze-face-tour/README.md",
1130
+ "dependencies": [
1131
+ "react",
1132
+ "remotion"
1133
+ ],
1134
+ "code_status": "source-available",
1135
+ "source_files": [
1136
+ "source/demos/graze-face-tour/GrazeFaceTour.tsx"
1137
+ ],
1138
+ "styles": [
1139
+ {
1140
+ "key": "graze-face-tour",
1141
+ "label": "graze-face-tour",
1142
+ "description": "大倾角贴面游走特写——镜头贴着 UI 表面低飞掠过(侧栏树/顶栏/列表当地形),页面文字初始悬浮在界面上空带同形软影,随镜头行进先后加速贴落回界面",
1143
+ "use": "",
1144
+ "implementation_status": "implemented",
1145
+ "usage_document": "cards/graze-face-tour/README.md",
1146
+ "source_files": [
1147
+ "source/demos/graze-face-tour/GrazeFaceTour.tsx"
1148
+ ]
1149
+ }
1150
+ ]
1151
+ },
1152
+ {
1153
+ "name": "hashtag-to-pill-materialize",
1154
+ "summary": "话题词打字实体化——居中打出 \"#word\"(红实心光标恒亮),1 帧硬切变成宽大胶囊标签,hold 后缩小左移落到页面标签位,再 1 帧硬切揭示成品页;\"两次硬切一次滑动\"的节奏骨架",
1155
+ "use": "标签/分类/关键词功能的演示段(笔记 app 打 tag、话题聚合);\"输入 → 变成 UI 实体 → 归位到成品\"的三段式叙事",
1156
+ "duration": "打字 ~40f + 硬切胶囊 hold ~18f + 缩移 ~14f + 硬切揭示后静置;全段约 3.5s(原片 18–21.5s)",
1157
+ "energy": "中(干脆利落,靠硬切给劲,不靠弹跳)",
1158
+ "intention": "文字变实体的常规做法是渐变/morph/展开,原片帧级拆解证明 Bear 反着\r\n来:**实体化是 1 帧硬切**——上一帧还是文字+光标,下一帧就是完整\r\n胶囊,无展开无 cross-fade 无回弹。硬切给的是\"啪、成了\"的确定感,\r\n任何渐变都会把\"实体\"软化成\"特效\"。全段骨架是**两次硬切夹一次\r\n滑动**:硬切实体化 → 平滑缩移归位 → 硬切揭示成品页。唯一的连续\r\n运动(缩移)被两记硬切框住,才显得又快又稳。这个节奏骨架是命门,\r\n三段挪动任何一段的性质(把硬切改渐变、把滑动改硬切)整卡就塌。",
1159
+ "usage_document": "cards/hashtag-to-pill-materialize/README.md",
1160
+ "dependencies": [
1161
+ "react",
1162
+ "remotion"
1163
+ ],
1164
+ "code_status": "source-available",
1165
+ "source_files": [
1166
+ "source/demos/hashtag-to-pill-materialize/HashtagToPillMaterialize.tsx"
1167
+ ],
1168
+ "styles": [
1169
+ {
1170
+ "key": "hashtag-to-pill-materialize",
1171
+ "label": "hashtag-to-pill-materialize",
1172
+ "description": "话题词打字实体化——居中打出 \"#word\"(红实心光标恒亮),1 帧硬切变成宽大胶囊标签,hold 后缩小左移落到页面标签位,再 1 帧硬切揭示成品页;\"两次硬切一次滑动\"的节奏骨架",
1173
+ "use": "",
1174
+ "implementation_status": "implemented",
1175
+ "usage_document": "cards/hashtag-to-pill-materialize/README.md",
1176
+ "source_files": [
1177
+ "source/demos/hashtag-to-pill-materialize/HashtagToPillMaterialize.tsx"
1178
+ ]
1179
+ }
1180
+ ]
1181
+ },
1182
+ {
1183
+ "name": "hires-rasterize-3d-text",
1184
+ "summary": "3D 透视下 UI 文字发糊的根治法——高分辨率栅格化 + 布局级 CSS zoom,纹理从高清源向下采样",
1185
+ "use": "一切 2.5D/3D 页面推进、卡片特写镜头(Chromium/Remotion 渲染环境)",
1186
+ "duration": "n/a(技法卡,不占时长)",
1187
+ "energy": "n/a(技法卡,不占时长)",
1188
+ "intention": "这是全库\"最贵的知识\":经历多轮\"文字模糊\"追打、四连击排查才找到根因的技法。凡是把 UI 截图放进 3D 变换再放大的镜头,迟早撞上它。",
1189
+ "usage_document": "cards/hires-rasterize-3d-text/README.md",
1190
+ "dependencies": [
1191
+ "remotion"
1192
+ ],
1193
+ "code_status": "source-available",
1194
+ "source_files": [
1195
+ "source/template/src/aifl/live/PageCam.tsx",
1196
+ "source/template/src/aifl/live/SceneOpen.tsx"
1197
+ ],
1198
+ "styles": [
1199
+ {
1200
+ "key": "hires-rasterize-3d-text",
1201
+ "label": "hires-rasterize-3d-text",
1202
+ "description": "3D 透视下 UI 文字发糊的根治法——高分辨率栅格化 + 布局级 CSS zoom,纹理从高清源向下采样",
1203
+ "use": "",
1204
+ "implementation_status": "implemented",
1205
+ "usage_document": "cards/hires-rasterize-3d-text/README.md",
1206
+ "source_files": [
1207
+ "source/template/src/aifl/live/PageCam.tsx",
1208
+ "source/template/src/aifl/live/SceneOpen.tsx"
1209
+ ]
1210
+ }
1211
+ ]
1212
+ },
1213
+ {
1214
+ "name": "icon-field-colorize",
1215
+ "summary": "灰阶小图标点阵错峰浮现铺满全屏,停一拍后多道品牌色横带波纹极快向下扫翻全场——\"功能全景先摆满,品牌一瞬间点亮\"的开场/收束卡",
1216
+ "use": "开场铺陈产品能力面(图标=功能宇宙)再一举打上品牌色;功能集合页、生态/集成规模展示、片头 logo 前垫场",
1217
+ "duration": "浮现 ~45f 错峰 + 静置 ~10f + 翻色 12–45f + 终态静置;全段 3–4s",
1218
+ "energy": "中(浮现是铺垫,翻色瞬间是唯一爆点)",
1219
+ "intention": "先用灰阶把\"多\"摆足——上百个小图标错峰浮进来铺满画面,灰阶保证\r\n读作背景纹理不抢戏;停一拍让观众意识到\"摆满了\",然后品牌色以\r\n横带波纹形式极快扫过全场,灰世界一瞬间被点亮。命门在**翻色不是\r\n同帧硬翻**:原片实测是 ~0.5s 内多道色波依次向下快扫(蓝先覆盖全场,\r\n橙/绿/红依次覆盖更低行带),终态呈四色横带分层——波纹感让\"点亮\"\r\n有方向和速度,硬翻只读作换了张图。",
1220
+ "usage_document": "cards/icon-field-colorize/README.md",
1221
+ "dependencies": [
1222
+ "react",
1223
+ "remotion"
1224
+ ],
1225
+ "code_status": "source-available",
1226
+ "source_files": [
1227
+ "source/demos/icon-field-colorize/IconFieldColorize.tsx"
1228
+ ],
1229
+ "styles": [
1230
+ {
1231
+ "key": "icon-field-colorize",
1232
+ "label": "icon-field-colorize",
1233
+ "description": "灰阶小图标点阵错峰浮现铺满全屏,停一拍后多道品牌色横带波纹极快向下扫翻全场——\"功能全景先摆满,品牌一瞬间点亮\"的开场/收束卡",
1234
+ "use": "",
1235
+ "implementation_status": "implemented",
1236
+ "usage_document": "cards/icon-field-colorize/README.md",
1237
+ "source_files": [
1238
+ "source/demos/icon-field-colorize/IconFieldColorize.tsx"
1239
+ ]
1240
+ }
1241
+ ]
1242
+ },
1243
+ {
1244
+ "name": "icon-performance-moves",
1245
+ "summary": "图标表演两式——pop-burst-confirm 爆花确认(对勾蓄力弹大+炸粒子+扩散环)与 attention-bounce 求关注弹跳(图标连跳递增+落地压扁+镜头被吸引)",
1246
+ "use": "半屏级 icon 特写段落;A \"完成/成功\"的标点符号,B 新功能引出",
1247
+ "duration": "A 3–4s / B 4–5s",
1248
+ "energy": "A 高潮点缀 / B 蓄势引入",
1249
+ "intention": "库内图标动画品类首批入库:icon 是镜头怼着拍的表演者,不是 UI 角落的\r\n微交互。A 是确认时刻的三连爆——大对勾先缩 0.6x 蓄力 3f、弹 1.35x 过冲\r\n落回,同帧中心射出 10 根短线粒子+一圈描边环从边缘扩到 2.5 倍直径淡出,\r\n\"部署成功\"不是画出来的是炸出来的;B 是 macOS Dock 语汇——app 图标\r\n原地连跳 4 次一次比一次高(0.5→1.2 倍 icon 高),每次落地压扁\r\n(宽 1.2x 高 0.8x)+溅尘点,跳最高那下镜头向它轻推 8%(被吸引),\r\n落定后弹开功能面板——把\"用户注意力\"剪进叙事。",
1250
+ "usage_document": "cards/icon-performance-moves/README.md",
1251
+ "dependencies": [
1252
+ "react",
1253
+ "remotion"
1254
+ ],
1255
+ "code_status": "source-available",
1256
+ "source_files": [
1257
+ "source/demos/icon-performance-moves/AttentionBounce.tsx",
1258
+ "source/demos/icon-performance-moves/PopBurstConfirm.tsx"
1259
+ ],
1260
+ "styles": [
1261
+ {
1262
+ "key": "pop-burst-confirm",
1263
+ "label": "pop-burst-confirm",
1264
+ "description": "scale 蓄力-过冲-落回 spring + N 条径向 line translate + 圆环 scale/opacity,全程 ~20f,随后标签弹出",
1265
+ "use": "任务完成/部署成功/打勾时刻,卡点音效",
1266
+ "implementation_status": "implemented",
1267
+ "usage_document": "cards/icon-performance-moves/README.md",
1268
+ "source_files": [
1269
+ "source/demos/icon-performance-moves/PopBurstConfirm.tsx"
1270
+ ]
1271
+ },
1272
+ {
1273
+ "key": "attention-bounce",
1274
+ "label": "attention-bounce",
1275
+ "description": "translateY 弹跳缓动递增 + 落地帧 scaleX/Y 挤压 + 尘点,峰值帧镜头 scale 1.08 推近,落定触发面板卡弹出",
1276
+ "use": "新功能引出:\"看我\"→镜头看它→它开面板",
1277
+ "implementation_status": "implemented",
1278
+ "usage_document": "cards/icon-performance-moves/README.md",
1279
+ "source_files": [
1280
+ "source/demos/icon-performance-moves/AttentionBounce.tsx"
1281
+ ]
1282
+ }
1283
+ ]
1284
+ },
1285
+ {
1286
+ "name": "impact-feedback",
1287
+ "summary": "命中反馈两式——hit-counter 连招计数(顿帧+伤害数字+combo 跳字)、anime-impact 动漫打击帧(负片+集中线+色散)",
1288
+ "use": "元素落位/撞击的\"命中一瞬\"——给砸入、撞停加游戏级手感;按强度阶梯选式",
1289
+ "duration": "n/a(元素级技法,寄生在落位动作上;各式占用帧数见参数表)",
1290
+ "energy": "高(瞬时冲击)",
1291
+ "intention": "元素砸到位却没有\"砸到了\"的一瞬,落位读作 PPT 飞入。游戏 juice\r\n(Vlambeer screenshake 理论)与动漫演出 impact frames 给了同一答案:\r\n命中的那几帧把时间咬住,冲量才传到观众手上。两式是一条强度阶梯:\r\nB 用局部顿帧叠伤害数字和 combo 跳字,把功能清单剪成一套连招,\r\n叙事感最强;C 是最重的一拳——撞停 3 帧翻负片炸集中线,强调级最高、\r\n最风格化。",
1292
+ "usage_document": "cards/impact-feedback/README.md",
1293
+ "dependencies": [
1294
+ "react",
1295
+ "remotion"
1296
+ ],
1297
+ "code_status": "source-available",
1298
+ "source_files": [
1299
+ "source/demos/impact-feedback/AnimeImpact.tsx",
1300
+ "source/demos/impact-feedback/HitCounter.tsx"
1301
+ ],
1302
+ "styles": [
1303
+ {
1304
+ "key": "hit-counter",
1305
+ "label": "hit-counter 连招计数",
1306
+ "description": "三卡接连砸入,每命中 = 顿帧 2f + 伤害数字上浮 + ×N 计数跳字逐次加码",
1307
+ "use": "功能点连打段--\"功能很多\"用连招讲;游戏化语言浓",
1308
+ "implementation_status": "implemented",
1309
+ "usage_document": "cards/impact-feedback/README.md",
1310
+ "source_files": [
1311
+ "source/demos/impact-feedback/HitCounter.tsx"
1312
+ ]
1313
+ },
1314
+ {
1315
+ "key": "anime-impact",
1316
+ "label": "anime-impact 打击帧",
1317
+ "description": "crash-zoom 撞停的 3f 整幅负片反色 + 放射集中线 + 红青色散,第 4f 全撤",
1318
+ "use": "全片唯一高潮的那一拳;强调级封顶",
1319
+ "implementation_status": "implemented",
1320
+ "usage_document": "cards/impact-feedback/README.md",
1321
+ "source_files": [
1322
+ "source/demos/impact-feedback/AnimeImpact.tsx"
1323
+ ]
1324
+ }
1325
+ ]
1326
+ },
1327
+ {
1328
+ "name": "input-trigger-moves",
1329
+ "summary": "输入触发两式——cursor-performance 光标表演点击推近、keycap-smash-cut 键帽引信引爆猛切",
1330
+ "use": "发布片的第一人称段落:演示核心交互、开场即高潮;观众\"在用\"而不是\"在看\"产品",
1331
+ "duration": "A ~5s / C ~5s",
1332
+ "energy": "A 中 / C 高",
1333
+ "intention": "发布片的第一人称语法——观众不是在\"看\"产品,是在\"用\"产品:光标\r\n是手、键帽是指尖、触发即叙事。两式共同点:**交互动作当扳机,产品\r\n画面当枪响**。A 是慢扳机——放大光标带性格地滑入点击,镜头以点击点\r\n推近再缓退,有去有回(区别 crash-zoom:慢速、锚定光标、会回来);\r\nC 是引信——假 3D 键帽(⌘K)呼吸悬浮,3f 压扁+底部亮环溢出当引信,\r\n按下引爆 30f 满屏轰鸣,最高潮一帧猛切成整齐静止全景,\r\n按下→爆发→定论。选型:演示交互用 A,开场即高潮用 C。",
1334
+ "usage_document": "cards/input-trigger-moves/README.md",
1335
+ "dependencies": [
1336
+ "react",
1337
+ "remotion"
1338
+ ],
1339
+ "code_status": "source-available",
1340
+ "source_files": [
1341
+ "source/demos/input-trigger-moves/CursorPerformancePunchIn.tsx",
1342
+ "source/demos/input-trigger-moves/KeycapSmashCut.tsx"
1343
+ ],
1344
+ "styles": [
1345
+ {
1346
+ "key": "cursor-performance",
1347
+ "label": "cursor-performance",
1348
+ "description": "光标三次贝塞尔弧线滑入+末端甩腕过冲,悬停提亮,点击帧按钮下陷+涟漪+推近 1.4x 停两拍缓退",
1349
+ "use": "核心按钮/交互的演示特写",
1350
+ "implementation_status": "implemented",
1351
+ "usage_document": "cards/input-trigger-moves/README.md",
1352
+ "source_files": [
1353
+ "source/demos/input-trigger-moves/CursorPerformancePunchIn.tsx",
1354
+ "source/demos/input-trigger-moves/KeycapSmashCut.tsx"
1355
+ ]
1356
+ },
1357
+ {
1358
+ "key": "keycap-smash-cut",
1359
+ "label": "keycap-smash-cut",
1360
+ "description": "键帽呼吸悬浮→3f 压扁+亮环引信 + 30f 卡片四面冲镜持续加速轰鸣 + 动势最猛一帧硬切静止全景、键帽嵌顶栏",
1361
+ "use": "全片开场定论;能量最高",
1362
+ "implementation_status": "implemented",
1363
+ "usage_document": "cards/input-trigger-moves/README.md",
1364
+ "source_files": [
1365
+ "source/demos/input-trigger-moves/KeycapSmashCut.tsx"
1366
+ ]
1367
+ }
1368
+ ]
1369
+ },
1370
+ {
1371
+ "name": "integration-hub-map",
1372
+ "summary": "旧页面一次性快翻 180°(侧棱瞬间亮闪)落成新中枢页,五个集成 app 图标同帧弹现、随即五条彩虹光管同帧齐连,光管内输送脉冲持续流动——\"翻开新一页,生态一齐接入\"",
1373
+ "use": "集成/生态能力段(一个产品连一切);版本翻新叙事(旧页翻成新页);暗场霓虹调性的功能高潮",
1374
+ "duration": "前摇 ~0.5s + 快翻 ~1.2s + 图标齐现 → 光管齐连两拍 ~0.7s + 输送呼吸 ≥1.5s;全段 4.5–5s",
1375
+ "energy": "中高(翻面是爆点,输送段是余韵)",
1376
+ "intention": "翻面是\"换时代\":旧文档页整个翻转 180° 得到新中枢页——必须是\r\n完整翻面不是转个角度(判例),翻的动作**快翻+尾段减速**、一口气\r\n完成无分段停顿(\"匀速\"判例:用户说的匀速=无停顿,不是字面\r\nlinear;90° 侧棱停顿版被裁)。侧棱时刻只\"闪一下\"(1–3f 脉冲,\r\n长光晕平台被裁)。接入是**两拍制**:五图标同帧弹现(第一拍)→\r\n五管同帧起画齐连(第二拍)——齐,才读作\"生态一次到位\";错峰\r\n逐个连读作逐个谈判(两轮被裁)。连通后光管内亮脉冲沿图标→中枢\r\n方向持续循环,\"输送感\"是终态的生命。",
1377
+ "usage_document": "cards/integration-hub-map/README.md",
1378
+ "dependencies": [
1379
+ "react",
1380
+ "remotion"
1381
+ ],
1382
+ "code_status": "source-available",
1383
+ "source_files": [
1384
+ "source/demos/integration-hub-map/IntegrationHubMap.tsx"
1385
+ ],
1386
+ "styles": [
1387
+ {
1388
+ "key": "integration-hub-map",
1389
+ "label": "integration-hub-map",
1390
+ "description": "旧页面一次性快翻 180°(侧棱瞬间亮闪)落成新中枢页,五个集成 app 图标同帧弹现、随即五条彩虹光管同帧齐连,光管内输送脉冲持续流动——\"翻开新一页,生态一齐接入\"",
1391
+ "use": "",
1392
+ "implementation_status": "implemented",
1393
+ "usage_document": "cards/integration-hub-map/README.md",
1394
+ "source_files": [
1395
+ "source/demos/integration-hub-map/IntegrationHubMap.tsx"
1396
+ ]
1397
+ }
1398
+ ]
1399
+ },
1400
+ {
1401
+ "name": "letterspace-materialize",
1402
+ "summary": "大字距字标全字符并行连续描画结晶——所有字母同帧起笔、笔画像手写一样连续生长、同帧齐收成词;氛围底景上的品牌字标显影",
1403
+ "use": "片尾/片头品牌字标登场(SUPERHUMAN 式大字距全大写);章节题字;needs 静谧/高级感的收束帧",
1404
+ "duration": "静置 ~15f + 描画 ~50f + 终态静置 ≥30f;全段 3–4s",
1405
+ "energy": "低(静谧仪式感,一次呼吸完成)",
1406
+ "intention": "字标不是淡入也不是打字机,而是\"结晶\":全部字母的笔画同时\r\n开始连续生长,像一只看不见的手同时写所有字母,同一瞬间齐收\r\n成词。两个命门:**连续**(笔画必须是连续画出的过程,不许遮罩\r\n分段——先半截再另半截会被读穿;任何中间帧都该像\"写到一半\");\r\n**同步**(所有字母同帧起笔、同帧完成——逐字错峰是打字机语义,\r\n这里是整词一体的仪式感)。",
1407
+ "usage_document": "cards/letterspace-materialize/README.md",
1408
+ "dependencies": [
1409
+ "react",
1410
+ "remotion"
1411
+ ],
1412
+ "code_status": "source-available",
1413
+ "source_files": [
1414
+ "source/demos/letterspace-materialize/LetterspaceMaterialize.tsx"
1415
+ ],
1416
+ "styles": [
1417
+ {
1418
+ "key": "letterspace-materialize",
1419
+ "label": "letterspace-materialize",
1420
+ "description": "大字距字标全字符并行连续描画结晶——所有字母同帧起笔、笔画像手写一样连续生长、同帧齐收成词;氛围底景上的品牌字标显影",
1421
+ "use": "",
1422
+ "implementation_status": "implemented",
1423
+ "usage_document": "cards/letterspace-materialize/README.md",
1424
+ "source_files": [
1425
+ "source/demos/letterspace-materialize/LetterspaceMaterialize.tsx"
1426
+ ]
1427
+ }
1428
+ ]
1429
+ },
1430
+ {
1431
+ "name": "light-play-moves",
1432
+ "summary": "光效三式——spotlight-sweep 聚光扫字、sheen 单点扫光、halation-bloom 撞停晕染",
1433
+ "use": "把光当第四种笔触(扫/擦/晕):暗场标题揭示(A)、主角卡加冕(B)、撞停帧冲击(D)",
1434
+ "duration": "A ~5.3s / B ~4.7s / D ~4.8s",
1435
+ "energy": "A 中 / B 低 / D 高",
1436
+ "intention": "库内\"光\"一直只有 spotlight-hero-card 一个点射手法;这三式把光做成\r\n体系,三种笔触三种职责:A 是**扫**——暗场里几乎不可见的标题被锥形\r\n光摆动扫亮,光到哪哪亮,与 spotlight-hero-card 的区别是那个打卡片、\r\n这个扫文字;B 是**擦**——深墨主角卡上一道 45° 高光带缓扫一次,被\r\n圆角裁住,无声的加冕;D 是**晕**——白字撞停帧一圈柔晕猛涨炸开再\r\n回落成驻留呼吸光,与 B 的区别是 B 移动扫过、D 驻留在高光边缘。\r\n全部深底或深主角——**白底上提亮不可见**(判例)是这整张卡的地基。",
1437
+ "usage_document": "cards/light-play-moves/README.md",
1438
+ "dependencies": [
1439
+ "react",
1440
+ "remotion"
1441
+ ],
1442
+ "code_status": "source-available",
1443
+ "source_files": [
1444
+ "source/demos/light-play-moves/HalationBloom.tsx",
1445
+ "source/demos/light-play-moves/SheenSweepRetry.tsx",
1446
+ "source/demos/light-play-moves/SpotlightSweepReveal.tsx"
1447
+ ],
1448
+ "styles": [
1449
+ {
1450
+ "key": "spotlight-sweep",
1451
+ "label": "spotlight-sweep",
1452
+ "description": "双层同文本:暗版 0.07 常驻,亮版 radial mask 随光斑走,锥形光摆两个来回后全亮定格",
1453
+ "use": "暗场大标题揭示开场",
1454
+ "implementation_status": "implemented",
1455
+ "usage_document": "cards/light-play-moves/README.md",
1456
+ "source_files": [
1457
+ "source/demos/light-play-moves/HalationBloom.tsx",
1458
+ "source/demos/light-play-moves/SheenSweepRetry.tsx",
1459
+ "source/demos/light-play-moves/SpotlightSweepReveal.tsx"
1460
+ ]
1461
+ },
1462
+ {
1463
+ "key": "sheen-sweep",
1464
+ "label": "sheen-sweep",
1465
+ "description": "深墨卡上 45° 高光带 translateX 扫一次,overflow hidden 圆角裁剪",
1466
+ "use": "主角卡静止段的一次加冕",
1467
+ "implementation_status": "implemented",
1468
+ "usage_document": "cards/light-play-moves/README.md",
1469
+ "source_files": [
1470
+ "source/demos/light-play-moves/HalationBloom.tsx",
1471
+ "source/demos/light-play-moves/SheenSweepRetry.tsx",
1472
+ "source/demos/light-play-moves/SpotlightSweepReveal.tsx"
1473
+ ]
1474
+ },
1475
+ {
1476
+ "key": "halation-bloom",
1477
+ "label": "halation-bloom",
1478
+ "description": "文字复制底层 blur+brightness 当晕层,撞停帧起猛涨一圈回落成稳态柔光",
1479
+ "use": "crash-zoom 撞停帧的冲击加成",
1480
+ "implementation_status": "implemented",
1481
+ "usage_document": "cards/light-play-moves/README.md",
1482
+ "source_files": [
1483
+ "source/demos/light-play-moves/HalationBloom.tsx"
1484
+ ]
1485
+ }
1486
+ ]
1487
+ },
1488
+ {
1489
+ "name": "line-boil",
1490
+ "summary": "线条沸腾——hold 期间文字/描边轮廓每 3 帧轻微扭动一次,像手绘逐帧重描,静止画面保持\"活着\"的呼吸感",
1491
+ "use": "标题字卡/描边元素的长 hold 段(黑场字卡升级首选);质感层手法,寄生在别的镜头上",
1492
+ "duration": "寄生型——沸腾段随宿主 hold 长度,无自身时长",
1493
+ "energy": "低(底噪级)",
1494
+ "intention": "库内 R 系判例要求落定后\"真静止\",但长字卡(3s+ 的黑场字卡、片尾)\r\n完全冻结会读作\"片子卡了\"。本卡给第三种状态:**活着的静止**——轮廓\r\n每 3 帧被\"重描\"一次,位置内容全然不动,只有线条边缘在极轻微地呼吸,\r\n手绘动画 hold 帧的百年惯例。与 noise-drift(被否决)的区别正是可感性:\r\n漂移是整体 1–3px 位移(肉眼读不出),沸腾是轮廓形变+阶梯跳变(每次\r\n换 seed 都是一次可见的\"重描\")。纸墨审美里这是\"手工感\"的直接来源。",
1495
+ "usage_document": "cards/line-boil/README.md",
1496
+ "dependencies": [
1497
+ "react",
1498
+ "remotion"
1499
+ ],
1500
+ "code_status": "source-available",
1501
+ "source_files": [
1502
+ "source/demos/line-boil/LineBoil.tsx"
1503
+ ],
1504
+ "styles": [
1505
+ {
1506
+ "key": "line-boil",
1507
+ "label": "line-boil",
1508
+ "description": "线条沸腾——hold 期间文字/描边轮廓每 3 帧轻微扭动一次,像手绘逐帧重描,静止画面保持\"活着\"的呼吸感",
1509
+ "use": "",
1510
+ "implementation_status": "implemented",
1511
+ "usage_document": "cards/line-boil/README.md",
1512
+ "source_files": [
1513
+ "source/demos/line-boil/LineBoil.tsx"
1514
+ ]
1515
+ }
1516
+ ]
1517
+ },
1518
+ {
1519
+ "name": "line-carry-transition",
1520
+ "summary": "线条接力横移转场——场景 A 的进度条延伸出画,镜头跟线横移,线在移动中拐角围出场景 B 的卡框,全程无剪切",
1521
+ "use": "两个有图形亲缘的场景之间(进度条→卡框、下划线→图表轴);一支片子的招牌转场位,Catch Me If You Can 片头的图形接力",
1522
+ "duration": "~5.3s(进度条走满 + 横移 60f + 围框 + 内容淡入 + 静止 36f)",
1523
+ "energy": "中",
1524
+ "intention": "转场库三大族(穿越/藏切/体块)都在回答\"场景怎么换\";本卡的回答是\r\n**根本不换——一条线牵着你走过去**。进度条走满后末端延伸成长线冲出\r\n卡缘,镜头跟着线横移 1920px 进入新世界,线在移动中拐直角围出 B 场景\r\n的卡框,框闭合、内容淡入,从头到尾观众的眼睛没离开过这条线。图形\r\n连续性本身就是转场。与 match-cut 的区别:那是切点两侧形状对位——\r\n终究还是切;这是连续绘制——**没有切**。线的身份要有叙事逻辑(进度条\r\n\"走完了\"所以延伸出去),无来由的线只是装饰。",
1525
+ "usage_document": "cards/line-carry-transition/README.md",
1526
+ "dependencies": [
1527
+ "react",
1528
+ "remotion"
1529
+ ],
1530
+ "code_status": "source-available",
1531
+ "source_files": [
1532
+ "source/demos/line-carry-transition/LineCarryTransition.tsx"
1533
+ ],
1534
+ "styles": [
1535
+ {
1536
+ "key": "line-carry-transition",
1537
+ "label": "line-carry-transition",
1538
+ "description": "线条接力横移转场——场景 A 的进度条延伸出画,镜头跟线横移,线在移动中拐角围出场景 B 的卡框,全程无剪切",
1539
+ "use": "",
1540
+ "implementation_status": "implemented",
1541
+ "usage_document": "cards/line-carry-transition/README.md",
1542
+ "source_files": [
1543
+ "source/demos/line-carry-transition/LineCarryTransition.tsx"
1544
+ ]
1545
+ }
1546
+ ]
1547
+ },
1548
+ {
1549
+ "name": "list-stack-press",
1550
+ "summary": "列表卡从画面底部逐张飞上摞起,每张落地压弹整摞、计数器同步跳一格",
1551
+ "use": "feed/雷达/收件箱类\"每天有新东西\"的镜头;强调持续积累的资产列表",
1552
+ "duration": "约 3s(18–88f)",
1553
+ "energy": "中",
1554
+ "intention": "\"堆叠有重量\":每张新卡落上来,已落定的整摞被压下再弹回——观众从物理反馈里读出\"这是实打实攒下来的东西\"。计数器同步跳格把数量感钉死。",
1555
+ "usage_document": "cards/list-stack-press/README.md",
1556
+ "dependencies": [
1557
+ "remotion"
1558
+ ],
1559
+ "code_status": "source-available",
1560
+ "source_files": [
1561
+ "source/template/src/aifl/live/ScenePapers.tsx"
1562
+ ],
1563
+ "styles": [
1564
+ {
1565
+ "key": "list-stack-press",
1566
+ "label": "list-stack-press",
1567
+ "description": "列表卡从画面底部逐张飞上摞起,每张落地压弹整摞、计数器同步跳一格",
1568
+ "use": "",
1569
+ "implementation_status": "implemented",
1570
+ "usage_document": "cards/list-stack-press/README.md",
1571
+ "source_files": [
1572
+ "source/template/src/aifl/live/ScenePapers.tsx"
1573
+ ]
1574
+ }
1575
+ ]
1576
+ },
1577
+ {
1578
+ "name": "magician-card-flourish",
1579
+ "summary": "纯黑场上蓝色星芒闪现 0.3s(X 形针状光束旋转 90°+中心辉光放射小光芒),卡片从闪光点弹射而出——极速自旋弧线飞向镜头、自旋随靠近衰减、瞬间硬定格近满幅、定格后 sheen 扫光",
1580
+ "use": "单张卡片/海报/封面的魔术性登场(片头主视觉、产品卡揭晓);纯黑暗场;需要\"变出来\"仪式感的爆点",
1581
+ "duration": "闪光 0.3s + 飞行 ~1.7s + 定格展示+扫光 ~2s;全段 4.2s",
1582
+ "energy": "高(一次性爆点,定格后即静)",
1583
+ "intention": "魔术师甩牌:一道蓝色星芒闪过,卡片仿佛从光里被变出来——从画面\r\n中心极远处(视觉上一个小点)弹射而出,沿弧线极速自旋飞向镜头,\r\n到达中心瞬间硬定格成近满幅展示。三个魔术感命门:**闪光先行**\r\n(光是\"变\"的仪式,0.3s 短促干脆)、**弹射节奏**(起飞慢速蓄力→\r\n急加速踢出→弧线段减速抵达,slow-in→burst→decelerating arc)、\r\n**定格即静**(无减速尾巴无回弹,13 整圈自旋保证定格恰为正面)。",
1584
+ "usage_document": "cards/magician-card-flourish/README.md",
1585
+ "dependencies": [
1586
+ "@remotion/motion-blur",
1587
+ "react",
1588
+ "remotion"
1589
+ ],
1590
+ "code_status": "source-available",
1591
+ "source_files": [
1592
+ "source/demos/magician-card-flourish/MagicianCardFlourish.tsx"
1593
+ ],
1594
+ "styles": [
1595
+ {
1596
+ "key": "magician-card-flourish",
1597
+ "label": "magician-card-flourish",
1598
+ "description": "纯黑场上蓝色星芒闪现 0.3s(X 形针状光束旋转 90°+中心辉光放射小光芒),卡片从闪光点弹射而出——极速自旋弧线飞向镜头、自旋随靠近衰减、瞬间硬定格近满幅、定格后 sheen 扫光",
1599
+ "use": "",
1600
+ "implementation_status": "implemented",
1601
+ "usage_document": "cards/magician-card-flourish/README.md",
1602
+ "source_files": [
1603
+ "source/demos/magician-card-flourish/MagicianCardFlourish.tsx"
1604
+ ]
1605
+ }
1606
+ ]
1607
+ },
1608
+ {
1609
+ "name": "marker-underline-title",
1610
+ "summary": "大标题落定后,关键词下方马克笔下划线从左到右快速描画——变宽笔形、毛糙边缘、微上斜跟随斜体字势,贴着字底",
1611
+ "use": "标题里强调单个关键词(new/free/AI…);手写感/人味的品牌调性;正文标注式强调",
1612
+ "duration": "标题落定 +4~8f 后起笔,划线 8–12f,总 1–1.5s",
1613
+ "energy": "低(一笔点睛,不抢标题的戏)",
1614
+ "intention": "打印体标题里突然出现一笔手绘马克笔,用材质反差把一个词从\r\n排版里拎出来——像人拿笔在海报上圈重点。命门有三:**快**\r\n(8–12f 一笔呵成,慢了读作加载条)、**近**(贴着字底,离远了\r\n读作分隔线不是强调)、**跟字势**(斜体词的划线必须左低右高\r\n微上斜——斜向画反是最容易犯且一眼假的错,判例见已知坑)。",
1615
+ "usage_document": "cards/marker-underline-title/README.md",
1616
+ "dependencies": [
1617
+ "react",
1618
+ "remotion"
1619
+ ],
1620
+ "code_status": "source-available",
1621
+ "source_files": [
1622
+ "source/demos/marker-underline-title/MarkerUnderlineTitle.tsx"
1623
+ ],
1624
+ "styles": [
1625
+ {
1626
+ "key": "marker-underline-title",
1627
+ "label": "marker-underline-title",
1628
+ "description": "大标题落定后,关键词下方马克笔下划线从左到右快速描画——变宽笔形、毛糙边缘、微上斜跟随斜体字势,贴着字底",
1629
+ "use": "",
1630
+ "implementation_status": "implemented",
1631
+ "usage_document": "cards/marker-underline-title/README.md",
1632
+ "source_files": [
1633
+ "source/demos/marker-underline-title/MarkerUnderlineTitle.tsx"
1634
+ ]
1635
+ }
1636
+ ]
1637
+ },
1638
+ {
1639
+ "name": "montage-rhythm-moves",
1640
+ "summary": "蒙太奇节奏三式——drop-blackout-slam 黑场蓄爆、wright-triple-cut 三连咔哒特写、domino-cascade 多米诺连锁入场",
1641
+ "use": "段落级节奏设计:蓄力爆发(A)、流程速写(B)、开场连锁(C);与 beat-cut-moves(切点排布)互补——这三式管\"段落的呼吸形状\"",
1642
+ "duration": "A 4.3s / B 4.3s / C 5s",
1643
+ "energy": "高",
1644
+ "intention": "beat-cut-moves 管切点间隔怎么排,这三式管更大一层的节奏叙事:\r\nA 是\"静默即蓄力\"——drop 前一拍切全黑死寂憋一整拍,爆开才够响\r\n(EDM 演出 blackout 惯例),给全片最高潮的前一秒用;B 是\"流程三连\"\r\n——三个超近特写咔哒咔哒咔哒连打(按下/拨动/翻牌),第三声甩回全景\r\n亮结果,Edgar Wright 式把\"操作很简单\"剪成肌肉记忆;C 是\"动量传递\"\r\n——标题砸落震起卡片、卡片落地撞进侧边栏,每个元素的入场由上一个的\r\n撞击触发,Rube Goldberg 式把一页内容的入场讲成连锁反应。",
1645
+ "usage_document": "cards/montage-rhythm-moves/README.md",
1646
+ "dependencies": [
1647
+ "react",
1648
+ "remotion"
1649
+ ],
1650
+ "code_status": "source-available",
1651
+ "source_files": [
1652
+ "source/demos/montage-rhythm-moves/DominoCascade.tsx",
1653
+ "source/demos/montage-rhythm-moves/DropBlackoutSlam.tsx",
1654
+ "source/demos/montage-rhythm-moves/WrightTripleCut.tsx"
1655
+ ],
1656
+ "styles": [
1657
+ {
1658
+ "key": "drop-blackout-slam",
1659
+ "label": "drop-blackout-slam 黑场蓄爆",
1660
+ "description": "正常播放中一帧切纯黑死寂 12f,然后主视觉带震屏+亮环砸入",
1661
+ "use": "全片唯一最高潮的前一拍;发布口号/大字的登场",
1662
+ "implementation_status": "implemented",
1663
+ "usage_document": "cards/montage-rhythm-moves/README.md",
1664
+ "source_files": [
1665
+ "source/demos/montage-rhythm-moves/DropBlackoutSlam.tsx"
1666
+ ]
1667
+ },
1668
+ {
1669
+ "key": "wright-triple-cut",
1670
+ "label": "wright-triple-cut 三连特写",
1671
+ "description": "三个 10f 超近特写硬切连打(各\"静4-动3-静3\"),第三声甩回全景亮结果",
1672
+ "use": "\"操作流程\"速写:三步设置、一键完成类叙事",
1673
+ "implementation_status": "implemented",
1674
+ "usage_document": "cards/montage-rhythm-moves/README.md",
1675
+ "source_files": [
1676
+ "source/demos/montage-rhythm-moves/WrightTripleCut.tsx"
1677
+ ]
1678
+ },
1679
+ {
1680
+ "key": "domino-cascade",
1681
+ "label": "domino-cascade 连锁入场",
1682
+ "description": "标题砸落→震波弹起卡片列→末卡撞滑侧边栏进场,动量方向逐级传递",
1683
+ "use": "开场整页入场的叙事化版本;替代平铺直叙的逐个 fade-in",
1684
+ "implementation_status": "implemented",
1685
+ "usage_document": "cards/montage-rhythm-moves/README.md",
1686
+ "source_files": [
1687
+ "source/demos/montage-rhythm-moves/DominoCascade.tsx"
1688
+ ]
1689
+ }
1690
+ ]
1691
+ },
1692
+ {
1693
+ "name": "morph-from-primitive",
1694
+ "summary": "原型变形——正圆呼吸一拍(anticipation)后 SVG path 插值 24f 长成圆角卡轮廓,内容淡入",
1695
+ "use": "图形/图标/卡轮廓类主体的入场;logo→UI 容器的经典原语",
1696
+ "duration": "~4.7s(呼吸 20f + 变形 24f + 内容淡入 12f)",
1697
+ "energy": "中低",
1698
+ "intention": "入场库全是\"从外面进来\"——飞入、砸落、翻面,主体都预先存在于画外;\r\n本卡是**就地长出来**:画面中心一个描边正圆先鼓一口气(scale\r\n1→1.12→1),随即轮廓连续变形为圆角矩形卡片,内容再淡入。原型\r\n停留加呼吸这一拍就是预备动作——迪士尼 anticipation 的图形学翻译:\r\n圆先\"吸气\",观众就知道它要变,变形本身因此不需要任何解释。\r\n仅适用图形/图标/卡轮廓类主体——位图截图不能 morph。",
1699
+ "usage_document": "cards/morph-from-primitive/README.md",
1700
+ "dependencies": [
1701
+ "react",
1702
+ "remotion"
1703
+ ],
1704
+ "code_status": "source-available",
1705
+ "source_files": [
1706
+ "source/demos/morph-from-primitive/MorphFromPrimitive.tsx"
1707
+ ],
1708
+ "styles": [
1709
+ {
1710
+ "key": "morph-from-primitive",
1711
+ "label": "morph-from-primitive",
1712
+ "description": "原型变形——正圆呼吸一拍(anticipation)后 SVG path 插值 24f 长成圆角卡轮廓,内容淡入",
1713
+ "use": "",
1714
+ "implementation_status": "implemented",
1715
+ "usage_document": "cards/morph-from-primitive/README.md",
1716
+ "source_files": [
1717
+ "source/demos/morph-from-primitive/MorphFromPrimitive.tsx"
1718
+ ]
1719
+ }
1720
+ ]
1721
+ },
1722
+ {
1723
+ "name": "neon-frame-forerun",
1724
+ "summary": "强透视直角霓虹框自左缘两头奔画先行成型,页面在框内由暗转亮,同时框内组件/文字从 3D 上空带同形软影错峰贴落、随页面点亮同步完成贴合,背景霓虹管群终段熄灭让位",
1725
+ "use": "暗场品牌片里给 UI 面板做\"登场仪式\"(框先到、内容后落);功能区首次亮相;霓虹/赛博调性的段落开场",
1726
+ "duration": "框奔画 ~0.6s + 点亮&贴落 ~2s + 背景熄灭收束 ~0.8s;全段 4–4.5s",
1727
+ "energy": "中高(三层动作叠进,但都服务同一次登场)",
1728
+ "intention": "先立框后填肉:霓虹线框像跑道灯一样两头奔画圈出位置,宣告\r\n\"这里要出现东西\";页面在框内由暗转亮的同时,组件从空中带影\r\n贴落——观众看见界面被\"安放\"进框里。三层动作(框奔画/页面点亮/\r\n组件贴落)必须**同步咬合**:贴落进程与点亮进程同步推进、稍滞后\r\n收尾,框光最终并入面板辉光。背景霓虹管群终段熄灭,把亮度让给\r\n主角完成收束。",
1729
+ "usage_document": "cards/neon-frame-forerun/README.md",
1730
+ "dependencies": [
1731
+ "react",
1732
+ "remotion"
1733
+ ],
1734
+ "code_status": "source-available",
1735
+ "source_files": [
1736
+ "source/demos/neon-frame-forerun/NeonFrameForerun.tsx"
1737
+ ],
1738
+ "styles": [
1739
+ {
1740
+ "key": "neon-frame-forerun",
1741
+ "label": "neon-frame-forerun",
1742
+ "description": "强透视直角霓虹框自左缘两头奔画先行成型,页面在框内由暗转亮,同时框内组件/文字从 3D 上空带同形软影错峰贴落、随页面点亮同步完成贴合,背景霓虹管群终段熄灭让位",
1743
+ "use": "",
1744
+ "implementation_status": "implemented",
1745
+ "usage_document": "cards/neon-frame-forerun/README.md",
1746
+ "source_files": [
1747
+ "source/demos/neon-frame-forerun/NeonFrameForerun.tsx"
1748
+ ]
1749
+ }
1750
+ ]
1751
+ },
1752
+ {
1753
+ "name": "neon-frame-orbit-drop",
1754
+ "summary": "霓虹框先行描框后,镜头绕页面左→右弧线旋转,页面全部组件/文字**同帧**从空中往下贴合(同形软影同步收敛)——整体登场式的框内安放",
1755
+ "use": "单页 UI 的一次性隆重登场(与巡礼/逐区亮相相对);暗场霓虹调性段落的主视觉揭幕;neon-frame-forerun 的姊妹镜",
1756
+ "duration": "描框 ~0.5s + 旋转&同时贴落 ~2.5s + 落定 ~1s;全段 4–4.5s",
1757
+ "energy": "中高(一次性的大动作,落定即静)",
1758
+ "intention": "neon-frame-forerun 的孪生变体:同样框先行、内容后落,但镜头\r\n不是固定的——从页面左侧视角连续弧线旋转到右侧视角,旋转进行\r\n的同时全部组件从空中贴落。命门是**同时贴合**:所有组件和文字\r\n同帧起落、同帧贴合、软影同步消失——这是\"整体登场\"的语法\r\n(判例:错峰版被裁\"应该是所有组件和文字同时从空中往下贴合\")。\r\n错峰贴落属于巡礼镜(graze-face-tour/runway),一页一次性亮相\r\n必须齐落,节奏语义不能混用。",
1759
+ "usage_document": "cards/neon-frame-orbit-drop/README.md",
1760
+ "dependencies": [
1761
+ "react",
1762
+ "remotion"
1763
+ ],
1764
+ "code_status": "source-available",
1765
+ "source_files": [
1766
+ "source/demos/neon-frame-orbit-drop/NeonFrameForerunOrbit.tsx"
1767
+ ],
1768
+ "styles": [
1769
+ {
1770
+ "key": "neon-frame-orbit-drop",
1771
+ "label": "neon-frame-orbit-drop",
1772
+ "description": "霓虹框先行描框后,镜头绕页面左→右弧线旋转,页面全部组件/文字**同帧**从空中往下贴合(同形软影同步收敛)——整体登场式的框内安放",
1773
+ "use": "",
1774
+ "implementation_status": "implemented",
1775
+ "usage_document": "cards/neon-frame-orbit-drop/README.md",
1776
+ "source_files": [
1777
+ "source/demos/neon-frame-orbit-drop/NeonFrameForerunOrbit.tsx"
1778
+ ]
1779
+ }
1780
+ ]
1781
+ },
1782
+ {
1783
+ "name": "neon-triple-marquee",
1784
+ "summary": "三行对向霓虹跑马灯 recap——BETTER/FASTER/STRONGER 空心描边巨字上中下排满全屏,奇偶行反向匀速无限横滚,三行按 1/3 相位轮流亮起,结尾整组淡出",
1785
+ "use": "片尾主题词复读机段落;三连词口号的\"余韵\"拍法(cel-flash-stomp 砸完之后的低一档收尾);音乐段无旁白铺陈",
1786
+ "duration": "4–5s(demo 150f:10f 淡入 + 循环体 + 20f 淡出)",
1787
+ "energy": "中高(持续流动 + 逐行脉冲,无瞬时冲击)",
1788
+ "intention": "一行 marquee 只是网页装饰;三行叠起来、奇偶反向、再让亮度按相位轮流\r\n走,就成了\"主题词在观众眼前列队巡游\"。命门是**明暗轮唱**:任一时刻\r\n只有一行是霓虹主角,其余压暗成细描边背景——三行全亮是灯牌事故,\r\n轮流亮才是 recap。反向对滚制造\"包围感\":上下行向右、中行向左,\r\n视线被夹在中间,词从两侧源源不断流过,读作\"这三个词说不完\"。",
1789
+ "usage_document": "cards/neon-triple-marquee/README.md",
1790
+ "dependencies": [
1791
+ "react",
1792
+ "remotion"
1793
+ ],
1794
+ "code_status": "source-available",
1795
+ "source_files": [
1796
+ "source/demos/neon-triple-marquee/NeonTripleMarquee.tsx"
1797
+ ],
1798
+ "styles": [
1799
+ {
1800
+ "key": "neon-triple-marquee",
1801
+ "label": "neon-triple-marquee",
1802
+ "description": "三行对向霓虹跑马灯 recap——BETTER/FASTER/STRONGER 空心描边巨字上中下排满全屏,奇偶行反向匀速无限横滚,三行按 1/3 相位轮流亮起,结尾整组淡出",
1803
+ "use": "",
1804
+ "implementation_status": "implemented",
1805
+ "usage_document": "cards/neon-triple-marquee/README.md",
1806
+ "source_files": [
1807
+ "source/demos/neon-triple-marquee/NeonTripleMarquee.tsx"
1808
+ ]
1809
+ }
1810
+ ]
1811
+ },
1812
+ {
1813
+ "name": "odometer-digit-roll",
1814
+ "summary": "里程表数字滚动大字报——全屏巨号指标每个数位像老虎机滚轮独立纵向滚动带残影,从左到右逐位过冲停稳,全部锁定瞬间整体加深脉冲",
1815
+ "use": "单个王牌指标的全屏亮相(\"10x\"/\"99.98%\"级);与 impact-feedback B 式(伤害数字弹出)分工——那是元素级配菜,这是全屏级主菜",
1816
+ "duration": "滚动+逐位锁定 ~63f + 脉冲 8f + hold ≥45f,约 5s",
1817
+ "energy": "中高",
1818
+ "intention": "王牌数字的登场库内有\"砸\"(score-slam)和\"弹\"(damage-number),\r\n都是位移系。本卡是**机械系**:数字不是飞进来的,是\"算出来的\"——\r\n每位一条 0–9 滚轮高速转动,从左到右逐位减速、过冲半格、咔哒锁定,\r\nVercel Ship/Stripe Sessions 指标段的标准语法。滚动过程自带悬念\r\n(它会停在几?),逐位锁定自带节奏(哒、哒、哒、哒),比直接显示\r\n终值多一整拍的期待感。与 VerticalTicker(backlog 待选)的区别:\r\n有终值、逐位停稳,不是无限滚动墙。",
1819
+ "usage_document": "cards/odometer-digit-roll/README.md",
1820
+ "dependencies": [
1821
+ "react",
1822
+ "remotion"
1823
+ ],
1824
+ "code_status": "source-available",
1825
+ "source_files": [
1826
+ "source/demos/odometer-digit-roll/OdometerDigitRoll.tsx"
1827
+ ],
1828
+ "styles": [
1829
+ {
1830
+ "key": "odometer-digit-roll",
1831
+ "label": "odometer-digit-roll",
1832
+ "description": "里程表数字滚动大字报——全屏巨号指标每个数位像老虎机滚轮独立纵向滚动带残影,从左到右逐位过冲停稳,全部锁定瞬间整体加深脉冲",
1833
+ "use": "",
1834
+ "implementation_status": "implemented",
1835
+ "usage_document": "cards/odometer-digit-roll/README.md",
1836
+ "source_files": [
1837
+ "source/demos/odometer-digit-roll/OdometerDigitRoll.tsx"
1838
+ ]
1839
+ }
1840
+ ]
1841
+ },
1842
+ {
1843
+ "name": "outro-group-photo-launch",
1844
+ "summary": "全片元素从四面八方飞来围住字标合影,crane 落机位+舞台光+金尘做成发布会收场",
1845
+ "use": "outro/品牌收尾;多功能产品的\"全家福\"式终镜",
1846
+ "duration": "约 4.8s(145f)",
1847
+ "energy": "峰值(全片最高点)",
1848
+ "intention": "把看过的每个功能各抽一个代表元素叫回来合影,字标压轴登场——观众离场前最后记住的是\"这些东西属于同一个产品\"。规格必须是发布会级:能量推到全片最高。",
1849
+ "usage_document": "cards/outro-group-photo-launch/README.md",
1850
+ "dependencies": [
1851
+ "remotion"
1852
+ ],
1853
+ "code_status": "source-available",
1854
+ "source_files": [
1855
+ "source/template/src/aifl/Main.tsx",
1856
+ "source/template/src/aifl/live/SceneOutroLive.tsx"
1857
+ ],
1858
+ "styles": [
1859
+ {
1860
+ "key": "outro-group-photo-launch",
1861
+ "label": "outro-group-photo-launch",
1862
+ "description": "全片元素从四面八方飞来围住字标合影,crane 落机位+舞台光+金尘做成发布会收场",
1863
+ "use": "",
1864
+ "implementation_status": "implemented",
1865
+ "usage_document": "cards/outro-group-photo-launch/README.md",
1866
+ "source_files": [
1867
+ "source/template/src/aifl/Main.tsx",
1868
+ "source/template/src/aifl/live/SceneOutroLive.tsx"
1869
+ ]
1870
+ }
1871
+ ]
1872
+ },
1873
+ {
1874
+ "name": "overhead-camera-moves",
1875
+ "summary": "俯拍揭示两式——tilt-reveal 俯仰抬正揭示、overhead-tabletop-drop 桌面卡阵横滑骤降扎入",
1876
+ "use": "用\"俯仰角\"讲故事的开场/转场:单页 establishing 用 A,多页巡视择一扎入用 B",
1877
+ "duration": "A ~4.8s / B ~4.7s",
1878
+ "energy": "A 中 / B 中高",
1879
+ "intention": "库内俯拍视角一直空缺——crane-rise 是\"平移+缩放\"的升起(俯仰角\r\n不动),space-camera C 式 drone-dive 是俯冲降落一镜到底;这两式让\r\n**俯仰角本身讲故事**:A 是揭示——整页 rotateX 平躺、开场只见上缘\r\n一条透视窄带,机位\"抬头\"回正,内容一排排涌入视野,像掀开桌上的\r\n图纸;B 是选择——三张页面卡平躺成桌面卡阵,相机俯拍横向滑过依次\r\n掠过(韦斯·安德森 tabletop),滑到目标页猛地俯冲扎入、抬正成满屏,\r\n\"巡视一圈,就选这张\"。选型:单页开场用 A,多页转场/开场用 B。",
1880
+ "usage_document": "cards/overhead-camera-moves/README.md",
1881
+ "dependencies": [
1882
+ "react",
1883
+ "remotion"
1884
+ ],
1885
+ "code_status": "source-available",
1886
+ "source_files": [
1887
+ "source/demos/overhead-camera-moves/OverheadTabletopDrop.tsx",
1888
+ "source/demos/overhead-camera-moves/TiltReveal.tsx"
1889
+ ],
1890
+ "styles": [
1891
+ {
1892
+ "key": "tilt-reveal",
1893
+ "label": "tilt-reveal",
1894
+ "description": "perspective 容器内整页 rotateX -80° 平躺,~43f 抬正,rotateX/scale/translateY 共用 out-cubic,末端轻过冲",
1895
+ "use": "开场 establishing;单主体",
1896
+ "implementation_status": "implemented",
1897
+ "usage_document": "cards/overhead-camera-moves/README.md",
1898
+ "source_files": [
1899
+ "source/demos/overhead-camera-moves/TiltReveal.tsx"
1900
+ ]
1901
+ },
1902
+ {
1903
+ "key": "overhead-tabletop-drop",
1904
+ "label": "overhead-tabletop-drop",
1905
+ "description": "卡阵平躺 rotateX 62°,pan 段只动 translateX 横滑掠过,drop 段角度/缩放/位移三通道同跑扎入落版",
1906
+ "use": "多页巡视后择一;转场/开场两用",
1907
+ "implementation_status": "implemented",
1908
+ "usage_document": "cards/overhead-camera-moves/README.md",
1909
+ "source_files": [
1910
+ "source/demos/overhead-camera-moves/OverheadTabletopDrop.tsx"
1911
+ ]
1912
+ }
1913
+ ]
1914
+ },
1915
+ {
1916
+ "name": "page-turn-transitions",
1917
+ "summary": "整页体块转场两式——cube-rotate 立方体翻转(两页贴盒子相邻面转 90°)与 barn-door-split 对开门裂幕(旧页裂两半滑出、新页迎上)",
1918
+ "use": "章节级换页:两个并列大段落之间的\"翻篇\"仪式;与 shot-transitions 系(镜头交棒)分工——那是\"航拍机移过去\",这是\"页面自己是实体\"",
1919
+ "duration": "单式 前态建立 30f + 转场 20–38f + 收尾 ≥40f,约 4.4–4.7s",
1920
+ "energy": "中高",
1921
+ "intention": "shot-transitions 六式和 transition-travel/hidden-cut 都把页面当\"场景\"\r\n——相机在场景间移动。本卡把页面当**实体**:它有厚度、有重量、会翻面\r\n会裂开。体块隐喻的仪式感更强,适合章节级大换页(功能 A 讲完→功能 B)\r\n而非镜头级小交棒。A 立方体是\"空间上并列\"——两页是盒子的两面,\r\n暗示同级关系;B 对开门是\"旧的让位\"——旧页从正中撕开滑走、新页\r\n从底下迎上来,暗示取代关系。按语义选:并列翻篇用 A,新旧交替用 B。",
1922
+ "usage_document": "cards/page-turn-transitions/README.md",
1923
+ "dependencies": [
1924
+ "react",
1925
+ "remotion"
1926
+ ],
1927
+ "code_status": "source-available",
1928
+ "source_files": [
1929
+ "source/demos/page-turn-transitions/BarnDoorSplit.tsx",
1930
+ "source/demos/page-turn-transitions/CubeRotate.tsx"
1931
+ ],
1932
+ "styles": [
1933
+ {
1934
+ "key": "cube-rotate",
1935
+ "label": "cube-rotate",
1936
+ "description": "两页贴立方体相邻面(rotateY 0/90° + translateZ W/2),场景层转 -90°;旧面转出压暗、新面转进变亮,45° 时两面夹一条暗棱",
1937
+ "use": "并列章节翻篇;产品两大功能区切换",
1938
+ "implementation_status": "implemented",
1939
+ "usage_document": "cards/page-turn-transitions/README.md",
1940
+ "source_files": [
1941
+ "source/demos/page-turn-transitions/CubeRotate.tsx"
1942
+ ]
1943
+ },
1944
+ {
1945
+ "key": "barn-door-split",
1946
+ "label": "barn-door-split",
1947
+ "description": "旧页两个 960px overflow 容器对位拼合,同时向外 Easing.in(cubic) 滑出画外;裂缝内边缘亮线+投影,新页底层 scale 1.06→1 迎上",
1948
+ "use": "新旧交替:改版前后、方案 A→方案 B",
1949
+ "implementation_status": "implemented",
1950
+ "usage_document": "cards/page-turn-transitions/README.md",
1951
+ "source_files": [
1952
+ "source/demos/page-turn-transitions/BarnDoorSplit.tsx"
1953
+ ]
1954
+ }
1955
+ ]
1956
+ },
1957
+ {
1958
+ "name": "page-waterfall-wall",
1959
+ "summary": "页面瀑布墙——真实页面截图切成 3–4 列在 3D 后仰墙面上差速反向无限滚动,视差 + 镜头缓推做\"内容多到流不完\"的一览",
1960
+ "use": "\"多页面/多功能/多模板\"体量感段落;montage 中段铺陈或 intro 后的产品广度镜头",
1961
+ "duration": "4–6s(无限循环体,时长由段落需要裁)",
1962
+ "energy": "中(流动陈列型)",
1963
+ "intention": "流动式一览:让观众在几秒内\"看到很多页面流过\",读感是体量而非细节。\r\n与 outro-group-photo-launch 分工:那是**聚拢式**一览(元素飞来围住\r\n字标定格合影,语义\"属于同一产品\"),本卡是**流动式**一览(内容持续\r\n流过不定格,语义\"还有很多没给你看完\")。与 odometer-digit-roll 分工:\r\n那是有终值的机械滚轮(逐位停稳读数字),本卡无终值无限循环。\r\n与 wall-reveal-moves 分工:那是整墙**入场动作**,本卡是墙的**持续状态**,\r\n可用那卡入场后交棒本卡续流。",
1964
+ "usage_document": "cards/page-waterfall-wall/README.md",
1965
+ "dependencies": [
1966
+ "react",
1967
+ "remotion"
1968
+ ],
1969
+ "code_status": "source-available",
1970
+ "source_files": [
1971
+ "source/assets/lib/VerticalTicker.tsx",
1972
+ "source/demos/page-waterfall-wall/PageWaterfallWall.tsx",
1973
+ "source/demos/page-waterfall-wall/VerticalTicker.tsx"
1974
+ ],
1975
+ "styles": [
1976
+ {
1977
+ "key": "page-waterfall-wall",
1978
+ "label": "page-waterfall-wall",
1979
+ "description": "页面瀑布墙——真实页面截图切成 3–4 列在 3D 后仰墙面上差速反向无限滚动,视差 + 镜头缓推做\"内容多到流不完\"的一览",
1980
+ "use": "",
1981
+ "implementation_status": "implemented",
1982
+ "usage_document": "cards/page-waterfall-wall/README.md",
1983
+ "source_files": [
1984
+ "source/demos/page-waterfall-wall/PageWaterfallWall.tsx"
1985
+ ]
1986
+ }
1987
+ ]
1988
+ },
1989
+ {
1990
+ "name": "panel-grid-moves",
1991
+ "summary": "分格节奏三式——grid-flash-mosaic 九宫格闪切填墙吞屏、flip-grid-reflow 网格集体重排、comic-panel-split 漫画斜格三机位并列",
1992
+ "use": "把\"格子\"当节奏器:逐格踩拍亮相(A)、节拍点集体换位(B)、同主体多机位定格并列(C);三式都吃拍点",
1993
+ "duration": "A ~4.7s / B ~4.8s / C ~5s",
1994
+ "energy": "A 高 / B 中 / C 中高",
1995
+ "intention": "与 wall-reveal-moves 的区别是本卡的定位锚:那是\"整墙怎么入场\"\r\n(一次性揭示),这是\"格子怎么当节奏器\"——分格、重排、并列都发生\r\n在节拍上,格变即鼓点。A 是填:3×3 格按十六分音符乱序逐格啪啪硬入,\r\n填满停一拍,中心格放大吞掉全屏——功能矩阵一秒全亮相;B 是移:6 张卡\r\n在节拍点集体直线换位(横排→3×2 网格),半秒落定 + 加深脉冲收束——\r\n布局重排本身当一个鼓点;C 是并:画面咔咔切成 3 个斜线分格,同一产品\r\n三种机位同时定格,停半拍后一格斜边扩张吃掉全屏——Scott Pilgrim 的\r\n分屏语言。按需选:多功能亮相用 A,布局叙事用 B,单品多视角用 C。",
1996
+ "usage_document": "cards/panel-grid-moves/README.md",
1997
+ "dependencies": [
1998
+ "react",
1999
+ "remotion"
2000
+ ],
2001
+ "code_status": "source-available",
2002
+ "source_files": [
2003
+ "source/demos/panel-grid-moves/ComicPanelSplit.tsx",
2004
+ "source/demos/panel-grid-moves/FlipGridReflow.tsx",
2005
+ "source/demos/panel-grid-moves/GridFlashMosaic.tsx"
2006
+ ],
2007
+ "styles": [
2008
+ {
2009
+ "key": "grid-flash-mosaic",
2010
+ "label": "grid-flash-mosaic",
2011
+ "description": "3×3 格每 2f 一格按 h(i) 乱序条件挂载硬入(入格 3f scale 1.18→1 + 2f 加深脉冲),满墙呼吸一拍,中心格 14f Easing.in(cubic) 放大 3.28x 吞屏",
2012
+ "use": "功能矩阵一秒全亮相;高潮前铺排",
2013
+ "implementation_status": "implemented",
2014
+ "usage_document": "cards/panel-grid-moves/README.md",
2015
+ "source_files": [
2016
+ "source/demos/panel-grid-moves/GridFlashMosaic.tsx"
2017
+ ]
2018
+ },
2019
+ {
2020
+ "key": "flip-grid-reflow",
2021
+ "label": "flip-grid-reflow",
2022
+ "description": "预写两套坐标表(横排/3×2 网格),每卡 delay=i×1.5f、16f inOut cubic 直线飞行 + scale 1→1.28 带 1.02 过冲;落定后 6f brightness 0.78 全画面脉冲",
2023
+ "use": "布局叙事:并列→分组的语义换挡",
2024
+ "implementation_status": "implemented",
2025
+ "usage_document": "cards/panel-grid-moves/README.md",
2026
+ "source_files": [
2027
+ "source/demos/panel-grid-moves/FlipGridReflow.tsx"
2028
+ ]
2029
+ },
2030
+ {
2031
+ "key": "comic-panel-split",
2032
+ "label": "comic-panel-split",
2033
+ "description": "三格各一份整页 clip-path 12° 斜边裁切 + translate/scale 摆机位(1x/1.9x/2.6x),逐格 2f 间隔弹入;定格 18f 各格缓推保活,末格斜边 12f out-cubic 扩张吃屏",
2034
+ "use": "同一主体多视角并列;漫画感段落",
2035
+ "implementation_status": "implemented",
2036
+ "usage_document": "cards/panel-grid-moves/README.md",
2037
+ "source_files": [
2038
+ "source/demos/panel-grid-moves/ComicPanelSplit.tsx"
2039
+ ]
2040
+ }
2041
+ ]
2042
+ },
2043
+ {
2044
+ "name": "paper-craft-moves",
2045
+ "summary": "纸艺两式——masking-tape-slap 纸胶带拍定(悬浮微晃被\"啪啪\"按死)与 popup-book-rise 立体书立起(卡片沿底边错峰立墙)",
2046
+ "use": "纸墨主视觉片的实体材料语言:单卡定妆入场用 A、整版 dashboard 开场建立用 B;与纸墨+强调色的主视觉(模板片为纸/墨/琥珀)天然同源",
2047
+ "duration": "A 3–4s / B 4–5.5s",
2048
+ "energy": "A 中(两拍打击)/ B 中高(立墙有纵深冲击)",
2049
+ "intention": "Wes Anderson 手账美术与立体书纸艺的 UI 翻译。A:卡片轻飘入位后\r\n悬着微晃(未固定的纸),两条撕边半透明胶带\"啪、啪\"先后拍在对角,\r\n第二条拍下**同帧**卡片停晃、投影变薄、整卡下沉——\"按死\"的定妆\r\n一瞬是主角,两声\"啪\"是天然音效点。B:整页平躺如摊开书页(俯视),\r\n卡片像贴在页上的纸片沿各自底边错峰立起成墙,立到 95° 回弹 90°\r\n(纸的韧性),根部投影随立起收窄。",
2050
+ "usage_document": "cards/paper-craft-moves/README.md",
2051
+ "dependencies": [
2052
+ "react",
2053
+ "remotion"
2054
+ ],
2055
+ "code_status": "source-available",
2056
+ "source_files": [
2057
+ "source/demos/paper-craft-moves/MaskingTapeSlap.tsx",
2058
+ "source/demos/paper-craft-moves/PopupBookRise.tsx"
2059
+ ],
2060
+ "styles": [
2061
+ {
2062
+ "key": "masking-tape-slap",
2063
+ "label": "masking-tape-slap",
2064
+ "description": "晃动=幅度包络×正弦(rot ±1.5°/bob ±5px);胶带扑入 6f:scale 1.45→1 + rotate 欠 16°→过冲 7°→回正 + 落帧 scaleY 0.72 一帧压扁;撕边 14 点 clipPath 锯齿",
2065
+ "use": "单卡/徽章的定妆入场;文案重音对齐",
2066
+ "implementation_status": "implemented",
2067
+ "usage_document": "cards/paper-craft-moves/README.md",
2068
+ "source_files": [
2069
+ "source/demos/paper-craft-moves/MaskingTapeSlap.tsx"
2070
+ ]
2071
+ },
2072
+ {
2073
+ "key": "popup-book-rise",
2074
+ "label": "popup-book-rise",
2075
+ "description": "双层 3D:场景 rotateX 75° 俯视(persp 2600),每卡 rotateX 0→-90° spring(damping 11 过冲 -95°),origin 底边,preserve-3d 贯通;远排先近排后错峰 7f",
2076
+ "use": "整版 dashboard 开场;\"系统被搭建起来\"",
2077
+ "implementation_status": "implemented",
2078
+ "usage_document": "cards/paper-craft-moves/README.md",
2079
+ "source_files": [
2080
+ "source/demos/paper-craft-moves/PopupBookRise.tsx"
2081
+ ]
2082
+ }
2083
+ ]
2084
+ },
2085
+ {
2086
+ "name": "paper-plane-messenger",
2087
+ "summary": "纸飞机信使转场——点击\"发送\"后镜头拉远脱离窗口 A,折纸飞机沿贝塞尔弧线飞出(俯仰跟随切线),镜头伴飞穿过多层视差道具,飞抵窗口 B 门前落定,B 放大接管全屏",
2088
+ "use": "\"发送/邀请/分享\"动作连接两个人物/场景视角的叙事转场;抽象动作需要一个隐喻实体当转场载具时",
2089
+ "duration": "~5s(150f:点击 12f → 拉远 16–42f → 飞行 34–104f → B 接管 112–146f)",
2090
+ "energy": "中",
2091
+ "intention": "transition-travel 是镜头钻进画面里的既有元素换景;本卡反过来——从\r\n动作里**放出一个语义信使**,让镜头跟着它飞去下一个场景。\"发送\"这个\r\n抽象动作被实体化成折纸飞机,A/B 两窗的空间关系被飞行轨迹真实丈量\r\n过,观众对\"消息去了哪\"有了身体感。命门是 2.5D 相机管线:所有元素\r\n挂在同一世界坐标系上,镜头中心 A→跟飞机→B、变焦拉远再推近,视差\r\n道具按 depth 乘相机位移——重 3D 原片降级成一台\"假三维\",成本掉一个\r\n量级而纵深感保留。飞机俯仰角跟随弧线切线是\"它在飞\"而非\"它在平移\"\r\n的全部区别。",
2092
+ "usage_document": "cards/paper-plane-messenger/README.md",
2093
+ "dependencies": [
2094
+ "react",
2095
+ "remotion"
2096
+ ],
2097
+ "code_status": "source-available",
2098
+ "source_files": [
2099
+ "source/demos/paper-plane-messenger/PaperPlaneMessenger.tsx"
2100
+ ],
2101
+ "styles": [
2102
+ {
2103
+ "key": "paper-plane-messenger",
2104
+ "label": "paper-plane-messenger",
2105
+ "description": "纸飞机信使转场——点击\"发送\"后镜头拉远脱离窗口 A,折纸飞机沿贝塞尔弧线飞出(俯仰跟随切线),镜头伴飞穿过多层视差道具,飞抵窗口 B 门前落定,B 放大接管全屏",
2106
+ "use": "",
2107
+ "implementation_status": "implemented",
2108
+ "usage_document": "cards/paper-plane-messenger/README.md",
2109
+ "source_files": [
2110
+ "source/demos/paper-plane-messenger/PaperPlaneMessenger.tsx"
2111
+ ]
2112
+ }
2113
+ ]
2114
+ },
2115
+ {
2116
+ "name": "paper-title-card",
2117
+ "summary": "一句话逐词压印上纸、一个词标强调色斜体、短划线收束",
2118
+ "use": "章节转场/价值主张字卡;重要功能出场前的引导卡;全片呼吸位",
2119
+ "duration": "1.7–1.8s(50–55f)",
2120
+ "energy": "低(呼吸位,隔开两段高能镜头)",
2121
+ "intention": "在两段产品画面之间给观众一句话的喘息:说清\"接下来看什么、它值什么\"。letterpress 压印质感让字卡与纸墨风格的产品画面同属一个世界。",
2122
+ "usage_document": "cards/paper-title-card/README.md",
2123
+ "dependencies": [
2124
+ "remotion"
2125
+ ],
2126
+ "code_status": "source-available",
2127
+ "source_files": [
2128
+ "source/template/src/aifl/PaperTitleCard.tsx"
2129
+ ],
2130
+ "styles": [
2131
+ {
2132
+ "key": "paper-title-card",
2133
+ "label": "paper-title-card",
2134
+ "description": "一句话逐词压印上纸、一个词标强调色斜体、短划线收束",
2135
+ "use": "",
2136
+ "implementation_status": "implemented",
2137
+ "usage_document": "cards/paper-title-card/README.md",
2138
+ "source_files": [
2139
+ "source/template/src/aifl/PaperTitleCard.tsx"
2140
+ ]
2141
+ }
2142
+ ]
2143
+ },
2144
+ {
2145
+ "name": "particle-celebrate-hits",
2146
+ "summary": "庆祝粒子两式——confetti-crossfire 双侧礼炮(里程碑揭晓帧双炮交叉彩屑弹幕)与 counter-tick-sparks 数字溅火(计数器每破整千顶部迸火星)",
2147
+ "use": "里程碑数字/KPI 揭晓/成就段落;A 一次性大庆祝,B 持续小打点",
2148
+ "duration": "A 3–4s / B 4–5s",
2149
+ "energy": "高潮点缀型(爆发后必须落回纯净静止)",
2150
+ "intention": "给\"数字揭晓\"配可听感的视觉打点:A 是揭晓瞬间的句号——画面左下右下\r\n两门炮同帧开火,上百颗翻转彩屑抛物线交叉飞过全屏再落出画外,纯庆祝\r\n语义;B 是过程中的逗号——计数器每跳过一个整千,数字顶部\"叮\"地溅一撮\r\n小火星坠落熄灭,终值那跳翻倍爆一大撮+数字弹 1.1x。两式都是闭式弹道\r\n(初速+重力+衰减逐帧公式),免物理引擎、帧确定。",
2151
+ "usage_document": "cards/particle-celebrate-hits/README.md",
2152
+ "dependencies": [
2153
+ "react",
2154
+ "remotion"
2155
+ ],
2156
+ "code_status": "source-available",
2157
+ "source_files": [
2158
+ "source/demos/particle-celebrate-hits/ConfettiCrossfire.tsx",
2159
+ "source/demos/particle-celebrate-hits/CounterTickSparks.tsx"
2160
+ ],
2161
+ "styles": [
2162
+ {
2163
+ "key": "confetti-crossfire",
2164
+ "label": "confetti-crossfire",
2165
+ "description": "双炮各 50 颗矩形彩屑:初速 90-150px/f(decay 0.9 下总程 ~900-1500px 才能交叉过中线)、spread 55°、每帧翻转 8-15°;~90f 全部落出画外后条件卸载",
2166
+ "use": "终值揭晓/发布宣言的一次性高潮",
2167
+ "implementation_status": "implemented",
2168
+ "usage_document": "cards/particle-celebrate-hits/README.md",
2169
+ "source_files": [
2170
+ "source/demos/particle-celebrate-hits/ConfettiCrossfire.tsx"
2171
+ ]
2172
+ },
2173
+ {
2174
+ "key": "counter-tick-sparks",
2175
+ "label": "counter-tick-sparks",
2176
+ "description": "tick 帧由计数器同一 interpolate 派生;每 tick 6-10 颗 2px 火星(初速向上 4-6px/f、重力 12-18f 坠灭),终值跳翻倍 20 颗+数字弹 1.1x",
2177
+ "use": "计数爬升过程的节奏打点",
2178
+ "implementation_status": "implemented",
2179
+ "usage_document": "cards/particle-celebrate-hits/README.md",
2180
+ "source_files": [
2181
+ "source/demos/particle-celebrate-hits/CounterTickSparks.tsx"
2182
+ ]
2183
+ }
2184
+ ]
2185
+ },
2186
+ {
2187
+ "name": "particle-sand-fill",
2188
+ "summary": "粒子落斗成柱——柱状图不长高而是\"下雨下出来\":方点粒子逐颗坠落堆积成柱,堆满凝成实体+数值弹出",
2189
+ "use": "柱状图/量级对比入场;讲\"积累/汇聚\"语义的数据段落",
2190
+ "duration": "4–5s",
2191
+ "energy": "中高(构筑感入场)",
2192
+ "intention": "把柱状图入场从\"长高动画\"换成\"落体堆积\":每根柱上方下一场方块雨,\r\n粒子逐颗坠落(重力加速)、触堆积面即停+15% 回弹,一层压一层堆到目标\r\n高度后粒子面淡出换实体柱、顶部数值标签弹出。数据的\"量\"变成看得见的\r\n\"一颗一颗攒出来\"——与 unit-dot-swarm-regroup(点群平面迁徙聚形)\r\n分工:那是同一批点改队形,这是落体材料筑成图形。",
2193
+ "usage_document": "cards/particle-sand-fill/README.md",
2194
+ "dependencies": [
2195
+ "react",
2196
+ "remotion"
2197
+ ],
2198
+ "code_status": "source-available",
2199
+ "source_files": [
2200
+ "source/demos/particle-sand-fill/ParticleSandFill.tsx"
2201
+ ],
2202
+ "styles": [
2203
+ {
2204
+ "key": "particle-sand-fill",
2205
+ "label": "particle-sand-fill",
2206
+ "description": "粒子落斗成柱——柱状图不长高而是\"下雨下出来\":方点粒子逐颗坠落堆积成柱,堆满凝成实体+数值弹出",
2207
+ "use": "",
2208
+ "implementation_status": "implemented",
2209
+ "usage_document": "cards/particle-sand-fill/README.md",
2210
+ "source_files": [
2211
+ "source/demos/particle-sand-fill/ParticleSandFill.tsx"
2212
+ ]
2213
+ }
2214
+ ]
2215
+ },
2216
+ {
2217
+ "name": "pill-slot-cycle",
2218
+ "summary": "句中词槽轮换——固定句干钉死不动,句尾 pill 徽章每 ~0.7s 老虎机滚一格(旧的上飞加速淡出、新的从下带模糊滑入),连换 N 个功能词后落成完整句子收束",
2219
+ "use": "\"功能列举\"类文案的最优雅解法(比逐条列表快、比乱码解码有语义);一句话卖点 + 多个动词短语的段落",
2220
+ "duration": "入场 12f + 每拍 21f × 词数 + 收束 14f + hold;6 词约 5.8s(demo 175f)",
2221
+ "energy": "中(稳定节拍器,无峰值)",
2222
+ "intention": "罗列六个功能,列表要六行、逐条淡入要六拍还占满屏。词槽轮换把它们\r\n塞进**一句话的一个槽位**里:句干 \"One AI tool to ___\" 是承诺,槽里\r\n滚过的每个 pill 是证据,最后 pill 飞走、\"do it all.\" 落位——证据\r\n列举完毕,结论盖章。结构自带三幕:承诺→列举→收束。命门是句干\r\n**纹丝不动**:观众的眼睛全程钉在槽位上,句干一晃列举感就散。",
2223
+ "usage_document": "cards/pill-slot-cycle/README.md",
2224
+ "dependencies": [
2225
+ "react",
2226
+ "remotion"
2227
+ ],
2228
+ "code_status": "source-available",
2229
+ "source_files": [
2230
+ "source/demos/pill-slot-cycle/PillSlotCycle.tsx"
2231
+ ],
2232
+ "styles": [
2233
+ {
2234
+ "key": "pill-slot-cycle",
2235
+ "label": "pill-slot-cycle",
2236
+ "description": "句中词槽轮换——固定句干钉死不动,句尾 pill 徽章每 ~0.7s 老虎机滚一格(旧的上飞加速淡出、新的从下带模糊滑入),连换 N 个功能词后落成完整句子收束",
2237
+ "use": "",
2238
+ "implementation_status": "implemented",
2239
+ "usage_document": "cards/pill-slot-cycle/README.md",
2240
+ "source_files": [
2241
+ "source/demos/pill-slot-cycle/PillSlotCycle.tsx"
2242
+ ]
2243
+ }
2244
+ ]
2245
+ },
2246
+ {
2247
+ "name": "print-texture-transitions",
2248
+ "summary": "印刷质感转场——ink-bleed-reveal 墨渗揭示(须状渗边洇开吃掉旧景)",
2249
+ "use": "换景接缝的纸墨审美款;与交棒六式/穿越三式并列的第三族——\"介质显影\"型转场",
2250
+ "duration": "4–4.5s(洇开段 55–80f + 静止收尾 ≥30f)",
2251
+ "energy": "中(渐进显形,无冲击拍)",
2252
+ "intention": "转场语言已有交棒(shot-transitions 六式)和穿越(transition-travel)\r\n,都是空间/光学隐喻。本式开第三族:**介质隐喻**——新画面不是\"到来\"\r\n而是\"印染\"出来的,直接调用库内纸墨审美的物理想象:像一滴墨落在\r\n宣纸上洇开吃掉旧景,有机、书写感。天然亲和 paper/ink 调性的片子,\r\n是 light-leak-burn(强调色漏光)之外的另一个\"介质系\"接缝选择。",
2253
+ "usage_document": "cards/print-texture-transitions/README.md",
2254
+ "dependencies": [
2255
+ "react",
2256
+ "remotion"
2257
+ ],
2258
+ "code_status": "source-available",
2259
+ "source_files": [
2260
+ "source/demos/print-texture-transitions/InkBleedReveal.tsx"
2261
+ ],
2262
+ "styles": [
2263
+ {
2264
+ "key": "ink-bleed-reveal",
2265
+ "label": "ink-bleed-reveal 墨渗揭示",
2266
+ "description": "印刷质感转场——ink-bleed-reveal 墨渗揭示(须状渗边洇开吃掉旧景)",
2267
+ "use": "旧景→新景替换;书写感、叙事调性",
2268
+ "implementation_status": "implemented",
2269
+ "usage_document": "cards/print-texture-transitions/README.md",
2270
+ "source_files": [
2271
+ "source/demos/print-texture-transitions/InkBleedReveal.tsx"
2272
+ ]
2273
+ }
2274
+ ]
2275
+ },
2276
+ {
2277
+ "name": "rhythm-interrupt-moves",
2278
+ "summary": "打断节奏两式——jump-cut-punch-in 三级跳切推近、strobe-black-frames 频闪黑帧",
2279
+ "use": "用\"打断连续性\"本身当节奏器:顿挫推近(B)、窒息逼近(C);与 beat-cut-moves(切点排布)、montage-rhythm(段落呼吸)互补",
2280
+ "duration": "B ~4.5s / C ~4.5s",
2281
+ "energy": "B 中 / C 高",
2282
+ "intention": "库内节奏卡管的都是\"怎么切、切多密\";这两式管**怎么断**——观众预期\r\n连续,你偏打断,打断方式即表达:B 是空间断——同构图三次无补间跳大\r\n(1x→1.6x→2.6x),戈达尔跳切的顿挫,比连续推近更有\"看这里、再近点、\r\n就是它\"的指令感;C 是存在断——画面与纯黑交替频闪且间隔收紧,\r\n高潮前的窒息倒数。选型:强制聚焦指标用 B,高潮前蓄压用 C。",
2283
+ "usage_document": "cards/rhythm-interrupt-moves/README.md",
2284
+ "dependencies": [
2285
+ "react",
2286
+ "remotion"
2287
+ ],
2288
+ "code_status": "source-available",
2289
+ "source_files": [
2290
+ "source/demos/rhythm-interrupt-moves/JumpCutPunchIn.tsx",
2291
+ "source/demos/rhythm-interrupt-moves/StrobeBlackFrames.tsx"
2292
+ ],
2293
+ "styles": [
2294
+ {
2295
+ "key": "jump-cut-punch-in",
2296
+ "label": "jump-cut-punch-in",
2297
+ "description": "transform-origin 钉目标中心,三档 scale 阶梯跳变(零补间),每跳 2f 加深脉冲当 tick",
2298
+ "use": "逐级逼近核心指标;纪录片式盯住",
2299
+ "implementation_status": "implemented",
2300
+ "usage_document": "cards/rhythm-interrupt-moves/README.md",
2301
+ "source_files": [
2302
+ "source/demos/rhythm-interrupt-moves/JumpCutPunchIn.tsx"
2303
+ ]
2304
+ },
2305
+ {
2306
+ "key": "strobe-black-frames",
2307
+ "label": "strobe-black-frames",
2308
+ "description": "全屏黑帧按写死帧号表闪现(每次 2f,间隔 8f→3f 收敛),末闪掀开即硬切放大落定",
2309
+ "use": "全片最高潮前的倒数蓄压",
2310
+ "implementation_status": "implemented",
2311
+ "usage_document": "cards/rhythm-interrupt-moves/README.md",
2312
+ "source_files": [
2313
+ "source/demos/rhythm-interrupt-moves/StrobeBlackFrames.tsx"
2314
+ ]
2315
+ }
2316
+ ]
2317
+ },
2318
+ {
2319
+ "name": "riso-print-hits",
2320
+ "summary": "套印错位两式——riso-misregistration-hit 单发冲击帧(撞停裂双色版抖两下套准)与 riso-beat-pump 节拍泵(逐拍跳大+错版逐次加码)",
2321
+ "use": "标题/卡片的命中强调,纸墨审美版的\"故障闪\";A 单发高潮、B 节奏段连打",
2322
+ "duration": "A 4s(单发);B 4.7s(四拍)",
2323
+ "energy": "高",
2324
+ "intention": "RGB 色散故障闪(impact-feedback C 式的一部分)是荧光屏语言,与纸墨\r\n调性相克。这两式给出印刷版平替:元素裂成浅灰/深墨两份单色印版\r\n(multiply 油墨感而非 screen 荧光感),像 risograph 没对准版,抖几下\r\n\"啪\"地套准——同样的冲击力,介质想象完全换成纸上油墨。A 是单发:\r\n撞停瞬间裂版、震荡衰减、硬切套准,给一次命中盖章;B 是它的节奏化:\r\n每个鼓点整画面跳大 8% + 标题裂版,错位逐拍加码,越打越狠——\r\n卡点段的视觉低音鼓。同技术根(衰减震荡的双版错位),单发/连打二选一。",
2325
+ "usage_document": "cards/riso-print-hits/README.md",
2326
+ "dependencies": [
2327
+ "react",
2328
+ "remotion"
2329
+ ],
2330
+ "code_status": "source-available",
2331
+ "source_files": [
2332
+ "source/demos/riso-print-hits/RisoBeatPump.tsx",
2333
+ "source/demos/riso-print-hits/RisoMisregistrationHit.tsx"
2334
+ ],
2335
+ "styles": [
2336
+ {
2337
+ "key": "misregistration-hit",
2338
+ "label": "misregistration-hit 单发",
2339
+ "description": "标题 8f 撞入撞停,裂两版反向错 ~32px,44f 衰减震荡后硬切套准 + scale 脉冲",
2340
+ "use": "全片 1-2 次的命中盖章;标题/大字的到位一瞬",
2341
+ "implementation_status": "implemented",
2342
+ "usage_document": "cards/riso-print-hits/README.md",
2343
+ "source_files": [
2344
+ "source/demos/riso-print-hits/RisoBeatPump.tsx",
2345
+ "source/demos/riso-print-hits/RisoMisregistrationHit.tsx"
2346
+ ]
2347
+ },
2348
+ {
2349
+ "key": "beat-pump",
2350
+ "label": "beat-pump 节拍泵",
2351
+ "description": "每 24f 一拍:整画面瞬跳 1.08 指数回落 + 标题错版逐拍 8/14/22/32px 加码套准",
2352
+ "use": "音乐卡点段;\"越打越狠\"的蓄力连打",
2353
+ "implementation_status": "implemented",
2354
+ "usage_document": "cards/riso-print-hits/README.md",
2355
+ "source_files": [
2356
+ "source/demos/riso-print-hits/RisoBeatPump.tsx",
2357
+ "source/demos/riso-print-hits/RisoMisregistrationHit.tsx"
2358
+ ]
2359
+ }
2360
+ ]
2361
+ },
2362
+ {
2363
+ "name": "row-embed",
2364
+ "summary": "内容行像卡片一样从空中降下、rotateX 收平、嵌入瞬间底边亮一道强调色的缝",
2365
+ "use": "\"结构化数据长进页面\"的详情页/列表镜头;行级内容的批量入场",
2366
+ "duration": "约 2s(12–68f)",
2367
+ "energy": "中",
2368
+ "intention": "详情页的行不是\"显示出来\"而是\"长进去\"——每一行从空中降下并严丝合缝嵌入页面布局,嵌入瞬间的强调色缝是\"咔哒\"扣上的视觉拟音。",
2369
+ "usage_document": "cards/row-embed/README.md",
2370
+ "dependencies": [
2371
+ "react",
2372
+ "remotion"
2373
+ ],
2374
+ "code_status": "source-available",
2375
+ "source_files": [
2376
+ "source/template/src/aifl/live/SceneDetail.tsx"
2377
+ ],
2378
+ "styles": [
2379
+ {
2380
+ "key": "row-embed",
2381
+ "label": "row-embed",
2382
+ "description": "内容行像卡片一样从空中降下、rotateX 收平、嵌入瞬间底边亮一道强调色的缝",
2383
+ "use": "",
2384
+ "implementation_status": "implemented",
2385
+ "usage_document": "cards/row-embed/README.md",
2386
+ "source_files": [
2387
+ "source/template/src/aifl/live/SceneDetail.tsx"
2388
+ ]
2389
+ }
2390
+ ]
2391
+ },
2392
+ {
2393
+ "name": "runway-ground-skim",
2394
+ "summary": "低角度掠地机位下 UI 卡片群从空中一阵急雨式快速贴落(起点微错、下落大量重叠并行、着地即停零回弹),落齐后整页立起、视角转正收尾",
2395
+ "use": "仪表盘/卡片流界面的登场(内容\"从天而降完成自己\");低角度炫技段后的收正;clickup 系悬空贴落语言的\"齐落\"重型版",
2396
+ "duration": "悬空展示 ~0.4s + 贴落 ~1.2s + 立起转正 ~1.8s;全段 4s",
2397
+ "energy": "高(掉落感是戏眼,立起转正是收束)",
2398
+ "intention": "把界面拍成跑道:低角度透视里 UI 卡片悬空在不同高度,随后按界面\r\n位置顺序(行优先左→右)一阵急雨式贴落——掉落感=干脆利落。\r\n三个命门:**重叠并行**(起点只错 1.5f、下落 9f ⇒ 空中恒有 5–6 张\r\n同时在落,\"几乎一起但有涟漪感\";串行等待两轮被裁)、**零回弹**\r\n(着地即停,弹起被裁)、**快**(下落 9f,15f 版被裁\"快一点\")。\r\n落齐后页面从躺倒立起(rotateX 66°→0°)、镜头拉远居中,观众从\r\n\"看戏\"回到\"看界面\"。",
2399
+ "usage_document": "cards/runway-ground-skim/README.md",
2400
+ "dependencies": [
2401
+ "react",
2402
+ "remotion"
2403
+ ],
2404
+ "code_status": "source-available",
2405
+ "source_files": [
2406
+ "source/demos/runway-ground-skim/RunwayGroundSkim.tsx"
2407
+ ],
2408
+ "styles": [
2409
+ {
2410
+ "key": "runway-ground-skim",
2411
+ "label": "runway-ground-skim",
2412
+ "description": "低角度掠地机位下 UI 卡片群从空中一阵急雨式快速贴落(起点微错、下落大量重叠并行、着地即停零回弹),落齐后整页立起、视角转正收尾",
2413
+ "use": "",
2414
+ "implementation_status": "implemented",
2415
+ "usage_document": "cards/runway-ground-skim/README.md",
2416
+ "source_files": [
2417
+ "source/demos/runway-ground-skim/RunwayGroundSkim.tsx"
2418
+ ]
2419
+ }
2420
+ ]
2421
+ },
2422
+ {
2423
+ "name": "sakuga-timing-shift",
2424
+ "summary": "一拍三转一拍一——元素先以每 3 帧一步的手翻书顿挫移动,高潮瞬间切成逐帧丝滑冲刺,帧率量化的突变本身就是看点",
2425
+ "use": "单元素的强调性位移(卡片入场、指标冲线);需要\"手工感→高潮爆发\"反差的段落",
2426
+ "duration": "~5s",
2427
+ "energy": "中高",
2428
+ "intention": "库内时间轴操纵已有 speed-ramp 连续变速与 hit-counter 的局部顿帧。\r\n本卡是另一种——**改的不是速度是帧率本身**:\r\n顿挫段驱动帧 q=floor(f/3)*3,元素每 3 帧才动一步(10fps 手翻书),\r\n切换帧起改用原始 f 逐帧驱动,丝滑冲刺。一拍三的钝与一拍一的滑\r\n同屏对切,日式作画的拍数演出(shooting on 3s / on 1s)。顿挫段\r\n不是低级感是手工感,切换点即高潮标记。",
2429
+ "usage_document": "cards/sakuga-timing-shift/README.md",
2430
+ "dependencies": [
2431
+ "react",
2432
+ "remotion"
2433
+ ],
2434
+ "code_status": "source-available",
2435
+ "source_files": [
2436
+ "source/demos/sakuga-timing-shift/SakugaTimingShift.tsx"
2437
+ ],
2438
+ "styles": [
2439
+ {
2440
+ "key": "sakuga-timing-shift",
2441
+ "label": "sakuga-timing-shift",
2442
+ "description": "一拍三转一拍一——元素先以每 3 帧一步的手翻书顿挫移动,高潮瞬间切成逐帧丝滑冲刺,帧率量化的突变本身就是看点",
2443
+ "use": "",
2444
+ "implementation_status": "implemented",
2445
+ "usage_document": "cards/sakuga-timing-shift/README.md",
2446
+ "source_files": [
2447
+ "source/demos/sakuga-timing-shift/SakugaTimingShift.tsx"
2448
+ ]
2449
+ }
2450
+ ]
2451
+ },
2452
+ {
2453
+ "name": "scene-locked-title",
2454
+ "summary": "透视锁定标题——大标题\"钉\"在页面所处的 3D 空间里,相机动字随透视变形,与 UI 共享灭点",
2455
+ "use": "品牌开场/章节标题要\"住进\"产品空间的段落;与 C3 判例(3D 注记同空间)同源的标题级放大版",
2456
+ "duration": "4–5s",
2457
+ "energy": "低中(氛围型开场,字是主角)",
2458
+ "intention": "标题贴在屏幕玻璃上是字幕,钉在场景空间里是实体(《战栗空间》片头判例)。\r\ndashboard 躺倒在 3D 空间,巨大标题悬浮其前方不同深度,只动相机——\r\n字随透视变形、层间视差分离、必要时被画框裁切,观众读到\"字放在\r\n产品世界里\"。C3 判例(3D 镜头注记文字活在同一空间)的开场标题版。",
2459
+ "usage_document": "cards/scene-locked-title/README.md",
2460
+ "dependencies": [
2461
+ "react",
2462
+ "remotion"
2463
+ ],
2464
+ "code_status": "source-available",
2465
+ "source_files": [
2466
+ "source/demos/scene-locked-title/SceneLockedTitle.tsx"
2467
+ ],
2468
+ "styles": [
2469
+ {
2470
+ "key": "scene-locked-title",
2471
+ "label": "scene-locked-title",
2472
+ "description": "透视锁定标题——大标题\"钉\"在页面所处的 3D 空间里,相机动字随透视变形,与 UI 共享灭点",
2473
+ "use": "",
2474
+ "implementation_status": "implemented",
2475
+ "usage_document": "cards/scene-locked-title/README.md",
2476
+ "source_files": [
2477
+ "source/demos/scene-locked-title/SceneLockedTitle.tsx"
2478
+ ]
2479
+ }
2480
+ ]
2481
+ },
2482
+ {
2483
+ "name": "scroll-brake-moves",
2484
+ "summary": "长卷急刹两式——changelog-scroll-brake 基本款(高速长卷指数减速精准停位+目标抬升)与 brake-reticle-lock 组合款(急刹帧同帧准星咬合)",
2485
+ "use": "changelog/发布史/长列表段落:\"一直在发货,今天这条最大\";要给停点更强打击感用 B",
2486
+ "duration": "A 4–5s / B 5s",
2487
+ "energy": "高开中收(速度对比型)",
2488
+ "intention": "Linear changelog 视频语法:一整年的更新日志作为长卷高速掠过\r\n(糊成色带),指数减速精准急刹停在本次发布那条上,该条抬升离面\r\n高亮、其余退暗——密度感讲\"一直在发货\",急停讲\"今天这条最大\"。\r\nB 是组合变异:急刹帧**同帧**四个 L 角标从画外飞入咬合锁定停点\r\n条目——急刹的\"哐\"与咬合的\"咔\"叠在同一帧共振(组合命门:\r\n角标起跳帧=列表首停帧,错开退化成两招并置)。",
2489
+ "usage_document": "cards/scroll-brake-moves/README.md",
2490
+ "dependencies": [
2491
+ "react",
2492
+ "remotion"
2493
+ ],
2494
+ "code_status": "source-available",
2495
+ "source_files": [
2496
+ "source/demos/scroll-brake-moves/BrakeReticleLock.tsx",
2497
+ "source/demos/scroll-brake-moves/ChangelogScrollBrake.tsx"
2498
+ ],
2499
+ "styles": [
2500
+ {
2501
+ "key": "changelog-scroll-brake",
2502
+ "label": "changelog-scroll-brake",
2503
+ "description": "translateY 扫 ~2400px(out exp 指数减速 ~50f),blur 由帧间位移差分驱动(0-6px 自动清零);停点行 scale 1.03 抬升+阴影+3px 描边,其余 opacity 退 0.38",
2504
+ "use": "changelog 段落基本款",
2505
+ "implementation_status": "implemented",
2506
+ "usage_document": "cards/scroll-brake-moves/README.md",
2507
+ "source_files": [
2508
+ "source/demos/scroll-brake-moves/ChangelogScrollBrake.tsx"
2509
+ ]
2510
+ },
2511
+ {
2512
+ "key": "brake-reticle-lock",
2513
+ "label": "brake-reticle-lock",
2514
+ "description": "滚动三段:sin-in 加速→cubic-out 猛减速冲过头 +30px→回弹落定;blur=v×0.12 封顶 24px;角标从 ±620/±320 画外 Easing.back(2.4) 飞入咬合,高亮 6f 内完成、标签 back(2.6) 弹出",
2515
+ "use": "停点需要更强打击感的高光段",
2516
+ "implementation_status": "implemented",
2517
+ "usage_document": "cards/scroll-brake-moves/README.md",
2518
+ "source_files": [
2519
+ "source/demos/scroll-brake-moves/BrakeReticleLock.tsx"
2520
+ ]
2521
+ }
2522
+ ]
2523
+ },
2524
+ {
2525
+ "name": "segmented-thumb-hero",
2526
+ "summary": "分段控件 thumb 位移当主角特写——超大胶囊 segmented control 弹簧浮入,描边箭头光标画外滑入按下,白 thumb 8f ease-out 滑到另一段,到位瞬间新图标 spring 弹出、旧图标收起",
2527
+ "use": "\"模式切换/二选一\"功能的宣告镜头(Ask→Computer、Chat→Agent 式);一个 UI 微交互撑一整镜的特写拍法",
2528
+ "duration": "~3.5s(demo 110f:浮入 18f + 光标 24f + 点击 + 滑动 8f + 图标弹出 + hold)",
2529
+ "energy": "中(微交互特写,精致不轰)",
2530
+ "intention": "产品切到新模式,通常拍法是整个界面换掉。本卡反着来:把 segmented\r\ncontrol 放大到 1080px 宽拍特写,**thumb 那 8 帧位移本身就是叙事**——\r\n\"我们从 A 走到了 B\"。没有任何页面上下文,控件即舞台。因果链完整:\r\n光标滑入(有人来了)→ 按下+涟漪(做了决定)→ thumb 滑动(世界响应)\r\n→ 新图标弹出(新身份确立)。四拍缺一不可,缺了光标就是 UI 自己在动,\r\n缺了图标弹出就是切换没有奖励。",
2531
+ "usage_document": "cards/segmented-thumb-hero/README.md",
2532
+ "dependencies": [
2533
+ "react",
2534
+ "remotion"
2535
+ ],
2536
+ "code_status": "source-available",
2537
+ "source_files": [
2538
+ "source/demos/segmented-thumb-hero/SegmentedThumbHero.tsx"
2539
+ ],
2540
+ "styles": [
2541
+ {
2542
+ "key": "segmented-thumb-hero",
2543
+ "label": "segmented-thumb-hero",
2544
+ "description": "分段控件 thumb 位移当主角特写——超大胶囊 segmented control 弹簧浮入,描边箭头光标画外滑入按下,白 thumb 8f ease-out 滑到另一段,到位瞬间新图标 spring 弹出、旧图标收起",
2545
+ "use": "",
2546
+ "implementation_status": "implemented",
2547
+ "usage_document": "cards/segmented-thumb-hero/README.md",
2548
+ "source_files": [
2549
+ "source/demos/segmented-thumb-hero/SegmentedThumbHero.tsx"
2550
+ ]
2551
+ }
2552
+ ]
2553
+ },
2554
+ {
2555
+ "name": "shot-transitions",
2556
+ "summary": "镜头交棒六式——推进流白、穿暗场直航、虚焦接力、黑场字卡、whip-pan 甩镜、mask-wipe 穿窗(含纵深款),按能量落差选型",
2557
+ "use": "任何两镜衔接处(技法卡,分镜阶段排完镜头后逐个接缝选一式)",
2558
+ "duration": "n/a(技法卡;各式占用帧数见参数表,从相邻镜头预算里划)",
2559
+ "energy": "n/a(技法卡,不占能量位)",
2560
+ "intention": "库内各镜头卡只管自己的入场和收尾,镜与镜\"怎么接\"一直没有词汇——\r\n接缝裸切会把逐镜头攒出的电影感一次漏光。公认优秀的发布片\r\n(Linear Releases/Agent,2026-07-11 抽帧逆向)全程没有一次裸切:\r\n换景要么靠深度旅行、要么靠焦点接力、要么靠黑场字卡蓄力。",
2561
+ "usage_document": "cards/shot-transitions/README.md",
2562
+ "dependencies": [
2563
+ "@remotion/motion-blur",
2564
+ "react",
2565
+ "remotion"
2566
+ ],
2567
+ "code_status": "source-available",
2568
+ "source_files": [
2569
+ "source/demos/shot-transitions/MaskWipeReal.tsx",
2570
+ "source/demos/shot-transitions/PortalWipeV2.tsx",
2571
+ "source/demos/shot-transitions/WhipBrakeReal.tsx",
2572
+ "source/demos/shot-transitions/WhipPanReal.tsx",
2573
+ "source/template/src/aifl/Main.tsx"
2574
+ ],
2575
+ "styles": [
2576
+ {
2577
+ "key": "flash-cut",
2578
+ "label": "推进流白 flash-cut",
2579
+ "description": "前镜相机推进,切点跨骑一层白闪盖住换页",
2580
+ "use": "交互穿透、能量相近的页面→页面(库内已有,收编)",
2581
+ "implementation_status": "implemented",
2582
+ "usage_document": "cards/shot-transitions/README.md",
2583
+ "source_files": [
2584
+ "source/demos/shot-transitions/MaskWipeReal.tsx",
2585
+ "source/demos/shot-transitions/PortalWipeV2.tsx",
2586
+ "source/demos/shot-transitions/WhipBrakeReal.tsx",
2587
+ "source/demos/shot-transitions/WhipPanReal.tsx",
2588
+ "source/template/src/aifl/Main.tsx"
2589
+ ]
2590
+ },
2591
+ {
2592
+ "key": "shot-transitions-4",
2593
+ "label": "穿暗场直航",
2594
+ "description": "相机顺运动方向推出前景→纯暗场滑行几帧→后景从景深迎面放大而来,一条 take 不切",
2595
+ "use": "高能量→高能量的场景跳转;暗色调全片的主力转场",
2596
+ "implementation_status": "implemented",
2597
+ "usage_document": "cards/shot-transitions/README.md",
2598
+ "source_files": [
2599
+ "source/demos/shot-transitions/MaskWipeReal.tsx",
2600
+ "source/demos/shot-transitions/PortalWipeV2.tsx",
2601
+ "source/demos/shot-transitions/WhipBrakeReal.tsx",
2602
+ "source/demos/shot-transitions/WhipPanReal.tsx",
2603
+ "source/template/src/aifl/Main.tsx"
2604
+ ]
2605
+ },
2606
+ {
2607
+ "key": "shot-transitions-5",
2608
+ "label": "虚焦接力",
2609
+ "description": "前景滑出焦平面(blur 渐深)同时后景反向收焦入场,焦点当剪辑点",
2610
+ "use": "同页面内区块→区块;文档/长页游览的分段",
2611
+ "implementation_status": "implemented",
2612
+ "usage_document": "cards/shot-transitions/README.md",
2613
+ "source_files": [
2614
+ "source/demos/shot-transitions/MaskWipeReal.tsx",
2615
+ "source/demos/shot-transitions/PortalWipeV2.tsx",
2616
+ "source/demos/shot-transitions/WhipBrakeReal.tsx",
2617
+ "source/demos/shot-transitions/WhipPanReal.tsx",
2618
+ "source/template/src/aifl/Main.tsx"
2619
+ ]
2620
+ },
2621
+ {
2622
+ "key": "shot-transitions-6",
2623
+ "label": "黑场字卡",
2624
+ "description": "前镜收尾淡入黑场,字卡打字机/压印出现,再交棒后镜",
2625
+ "use": "章节级分段 + 呼吸位二合一(paper-title-card 的暗场变体)",
2626
+ "implementation_status": "implemented",
2627
+ "usage_document": "cards/shot-transitions/README.md",
2628
+ "source_files": [
2629
+ "source/demos/shot-transitions/MaskWipeReal.tsx",
2630
+ "source/demos/shot-transitions/PortalWipeV2.tsx",
2631
+ "source/demos/shot-transitions/WhipBrakeReal.tsx",
2632
+ "source/demos/shot-transitions/WhipPanReal.tsx",
2633
+ "source/template/src/aifl/Main.tsx"
2634
+ ]
2635
+ },
2636
+ {
2637
+ "key": "whip-pan",
2638
+ "label": "whip-pan 甩镜",
2639
+ "description": "机位一拍横甩到下一场景,中段运动模糊糊到不可辨,借糊帧换景",
2640
+ "use": "快节奏功能段连打(高能量→高能量的轻快款,比 B 式省帧提速)",
2641
+ "implementation_status": "implemented",
2642
+ "usage_document": "cards/shot-transitions/README.md",
2643
+ "source_files": [
2644
+ "source/demos/shot-transitions/MaskWipeReal.tsx",
2645
+ "source/demos/shot-transitions/PortalWipeV2.tsx",
2646
+ "source/demos/shot-transitions/WhipBrakeReal.tsx",
2647
+ "source/demos/shot-transitions/WhipPanReal.tsx",
2648
+ "source/template/src/aifl/Main.tsx"
2649
+ ]
2650
+ },
2651
+ {
2652
+ "key": "mask-wipe",
2653
+ "label": "mask-wipe 穿窗",
2654
+ "description": "页面内真实元素(卡片)放大成全屏窗口,新场景从窗内长出接管",
2655
+ "use": "语义化接缝:功能总览→该功能详情(\"点开这张卡进入它的世界\")",
2656
+ "implementation_status": "implemented",
2657
+ "usage_document": "cards/shot-transitions/README.md",
2658
+ "source_files": [
2659
+ "source/demos/shot-transitions/MaskWipeReal.tsx",
2660
+ "source/demos/shot-transitions/PortalWipeV2.tsx",
2661
+ "source/demos/shot-transitions/WhipBrakeReal.tsx",
2662
+ "source/demos/shot-transitions/WhipPanReal.tsx",
2663
+ "source/template/src/aifl/Main.tsx"
2664
+ ]
2665
+ }
2666
+ ]
2667
+ },
2668
+ {
2669
+ "name": "skeleton-reveal",
2670
+ "summary": "草稿→骨架→内容三级显影——手绘涂鸦占位(煮沸抖动)一拍被灰条骨架窗口替换,骨架列表滚入后镜头推近、灰条逐行显影成头像+逐词文字,末词晚半拍落地",
2671
+ "use": "产品 UI 的\"从无到有\"登场叙事;开场后第一次亮产品界面的段落",
2672
+ "duration": "~5.7s(172f:涂鸦 1s + 换真 0.3s + 骨架滚入 1.2s + 推近显影 3s)",
2673
+ "energy": "中(叙事型登场,重点是\"变成真的\"那两次跃迁)",
2674
+ "intention": "UI 登场库全是\"整页一次到位\"(飞入/落位/擦出)。本卡把登场拆成\r\n**三级保真度跃迁**:手绘涂鸦(想法)→ 灰条骨架(结构)→ 真实内容\r\n(产品),每次跃迁都是一拍\"变成真的\"的爽点,观众跟着走完\"从草图\r\n到产品\"的叙事弧。骨架→内容的显影借的是加载态语法——用户天天见\r\nskeleton screen,看到灰条就知道\"内容要来了\",预期免费。与\r\ndocument-typewriter-reveal 分工:那是**一份文档**被逐块写出来(内容是\r\n主角、要读字);本卡是**一个界面**逐级变真(结构是主角、字是最后\r\n一级质感)。与 ai-stream-response 分工:那是证据行逐条\"汇入\"(列表\r\n在生长),本卡是已就位的占位\"显影\"(布局早定,保真度在升级)。",
2675
+ "usage_document": "cards/skeleton-reveal/README.md",
2676
+ "dependencies": [
2677
+ "react",
2678
+ "remotion"
2679
+ ],
2680
+ "code_status": "source-available",
2681
+ "source_files": [
2682
+ "source/demos/skeleton-reveal/SkeletonReveal.tsx"
2683
+ ],
2684
+ "styles": [
2685
+ {
2686
+ "key": "skeleton-reveal",
2687
+ "label": "skeleton-reveal",
2688
+ "description": "草稿→骨架→内容三级显影——手绘涂鸦占位(煮沸抖动)一拍被灰条骨架窗口替换,骨架列表滚入后镜头推近、灰条逐行显影成头像+逐词文字,末词晚半拍落地",
2689
+ "use": "",
2690
+ "implementation_status": "implemented",
2691
+ "usage_document": "cards/skeleton-reveal/README.md",
2692
+ "source_files": [
2693
+ "source/demos/skeleton-reveal/SkeletonReveal.tsx"
2694
+ ]
2695
+ }
2696
+ ]
2697
+ },
2698
+ {
2699
+ "name": "slam-entrance-moves",
2700
+ "summary": "高能砸入三式——kanada-perspective-snap 金田透视急停、score-slam 比分砸落、impact-burst-kit 落点冲击套件(波及邻卡)",
2701
+ "use": "主角卡/KPI 卡的重拳入场;impact-feedback 管落位后的反馈,本卡管入场本身就是冲击",
2702
+ "duration": "单式动作段 6–22f + 冲击余波 ~16f + hold ≥45f",
2703
+ "energy": "高",
2704
+ "intention": "库内入场词汇的力度上限一直是 deck-deal-flyin 的\"发牌\"——快但不重。\r\n本卡补\"砸\"这一档,三种口味:A 是方向感——卡片带鱼眼级夸张透视贴着\r\n镜头甩进来,\"啪\"地弹平,动漫金田流的潇洒;B 是重量感——KPI 卡从\r\n镜头前 2.5 倍大小砸落,圆环+尘点+震屏三件套同帧起爆,体育比分弹窗\r\n的分量;C 是传导感——B 的三件套之上,冲击波前沿扫过左右邻卡时把\r\n它们可见地推开再弹回,\"这一下震到了邻居\",一件事说清力量大小。\r\n选型按叙事需要:告诉观众\"它来了\"用 A,\"它很重\"用 B,\"它震动了\r\n全场\"用 C。",
2705
+ "usage_document": "cards/slam-entrance-moves/README.md",
2706
+ "dependencies": [
2707
+ "react",
2708
+ "remotion"
2709
+ ],
2710
+ "code_status": "source-available",
2711
+ "source_files": [
2712
+ "source/demos/slam-entrance-moves/ImpactBurstKit.tsx",
2713
+ "source/demos/slam-entrance-moves/KanadaPerspectiveSnap.tsx",
2714
+ "source/demos/slam-entrance-moves/ScoreSlam.tsx"
2715
+ ],
2716
+ "styles": [
2717
+ {
2718
+ "key": "kanada-perspective-snap",
2719
+ "label": "kanada-perspective-snap",
2720
+ "description": "perspective 300→1500px + rotate3d 58°→0 + scale 1.7→1 甩入 18f,末 4f 过冲 +5° 弹平,长斜影收正",
2721
+ "use": "单卡潇洒亮相;调性偏动漫/轻快",
2722
+ "implementation_status": "implemented",
2723
+ "usage_document": "cards/slam-entrance-moves/README.md",
2724
+ "source_files": [
2725
+ "source/demos/slam-entrance-moves/KanadaPerspectiveSnap.tsx"
2726
+ ]
2727
+ },
2728
+ {
2729
+ "key": "score-slam",
2730
+ "label": "score-slam",
2731
+ "description": "卡从 scale 2.5/rotate 5° 六帧 Easing.in(quad) 砸落,落点帧圆环扩散+尘点飞散+震屏同帧",
2732
+ "use": "KPI/比分类重磅数字登场",
2733
+ "implementation_status": "implemented",
2734
+ "usage_document": "cards/slam-entrance-moves/README.md",
2735
+ "source_files": [
2736
+ "source/demos/slam-entrance-moves/ScoreSlam.tsx"
2737
+ ]
2738
+ },
2739
+ {
2740
+ "key": "impact-burst-kit",
2741
+ "label": "impact-burst-kit",
2742
+ "description": "B 三件套 + 冲击波前沿按半径-距离精算扫过邻卡帧,邻卡外推 30px + rotate ±3° 阻尼弹回",
2743
+ "use": "页面上已有邻居时的\"全场震动\"",
2744
+ "implementation_status": "implemented",
2745
+ "usage_document": "cards/slam-entrance-moves/README.md",
2746
+ "source_files": [
2747
+ "source/demos/slam-entrance-moves/ImpactBurstKit.tsx"
2748
+ ]
2749
+ }
2750
+ ]
2751
+ },
2752
+ {
2753
+ "name": "smear-multiples",
2754
+ "summary": "残像分身——卡片高速横移时拖 4 个清晰可数的半透明分身副本,落位瞬间收拢合一;motion blur 的动画式平替",
2755
+ "use": "元素高速位移段想要\"漫画式速度感\"而非\"摄影式模糊\"时;与 CameraMotionBlur 二选一",
2756
+ "duration": "元素级技法(移动 12f + 合拢回弹 8f,寄生在位移动作上)",
2757
+ "energy": "中高",
2758
+ "intention": "快速位移的速度感库内标准答案是 CameraMotionBlur(摄影隐喻:快门拖影,\r\n连续的糊)。本卡给第二个答案,动漫演出的 smear frame 传统:残像是\r\n**离散、清晰、可数的**完整副本——观众能数出 4 张卡,读作\"快到留下\r\n分身\"而非\"快到糊掉\"。两者气质完全不同:blur 是实拍级质感,分身是\r\n漫画级趣味;同一次位移二选一,叠用读作渲染错误。分身式还有一个\r\n实用优势:残像里内容仍可辨,适合\"移动的东西本身是信息\"的场景。",
2759
+ "usage_document": "cards/smear-multiples/README.md",
2760
+ "dependencies": [
2761
+ "react",
2762
+ "remotion"
2763
+ ],
2764
+ "code_status": "source-available",
2765
+ "source_files": [
2766
+ "source/demos/smear-multiples/SmearMultiples.tsx"
2767
+ ],
2768
+ "styles": [
2769
+ {
2770
+ "key": "smear-multiples",
2771
+ "label": "smear-multiples",
2772
+ "description": "残像分身——卡片高速横移时拖 4 个清晰可数的半透明分身副本,落位瞬间收拢合一;motion blur 的动画式平替",
2773
+ "use": "",
2774
+ "implementation_status": "implemented",
2775
+ "usage_document": "cards/smear-multiples/README.md",
2776
+ "source_files": [
2777
+ "source/demos/smear-multiples/SmearMultiples.tsx"
2778
+ ]
2779
+ }
2780
+ ]
2781
+ },
2782
+ {
2783
+ "name": "space-camera-moves",
2784
+ "summary": "3D 空间化运镜三式——exploded-view 爆炸分解(构件沿 Z 炸开再合体)、snorricam-lock 主体锁定背景翻滚、drone-dive-landing 无人机俯冲降落",
2785
+ "use": "把平面页面当 3D 实体拍的高光段落;三式都是\"大动作\",一支片合计 ≤2 次",
2786
+ "duration": "A 5s(炸开-悬停-合体全程);B 4.5–5s 单次狂奔;C 3–5s 单向俯冲",
2787
+ "energy": "高",
2788
+ "intention": "depth-layer 卡是给平移加纵深——层在动、页面还是页面。这三式更进一步:\r\n整页被当成一个 3D 实体,相机(或世界)绕着它做实拍级机动。三式叙事\r\n语义各占一格:A 说\"看看它由什么组成\"(拆解展示,Apple 发布片语言);\r\nB 说\"这张卡带你狂奔\"(主角钉死、全世界翻滚掠过,动能全给背景);\r\nC 说\"从全局俯瞰砸到主角\"(上帝视角一头扎进 hero 特写,全景→焦点)。",
2789
+ "usage_document": "cards/space-camera-moves/README.md",
2790
+ "dependencies": [
2791
+ "@remotion/motion-blur",
2792
+ "react",
2793
+ "remotion"
2794
+ ],
2795
+ "code_status": "source-available",
2796
+ "source_files": [
2797
+ "source/demos/space-camera-moves/DroneDiveLanding.tsx",
2798
+ "source/demos/space-camera-moves/ExplodedView.tsx",
2799
+ "source/demos/space-camera-moves/SnorricamLock.tsx"
2800
+ ],
2801
+ "styles": [
2802
+ {
2803
+ "key": "exploded-view",
2804
+ "label": "exploded-view",
2805
+ "description": "整页 3D 倾斜后构件沿 Z 轴错峰炸开悬停,一拍后逆序合体震屏收口",
2806
+ "use": "架构/组成展示:\"这个产品里有什么\";模块总览段",
2807
+ "implementation_status": "implemented",
2808
+ "usage_document": "cards/space-camera-moves/README.md",
2809
+ "source_files": [
2810
+ "source/demos/space-camera-moves/ExplodedView.tsx"
2811
+ ]
2812
+ },
2813
+ {
2814
+ "key": "snorricam-lock",
2815
+ "label": "snorricam-lock",
2816
+ "description": "前景主体焊死画面正中,背景整页四通道复合运动狂奔而过",
2817
+ "use": "单个功能/卡片的高光时刻;速度感、失控感段落",
2818
+ "implementation_status": "implemented",
2819
+ "usage_document": "cards/space-camera-moves/README.md",
2820
+ "source_files": [
2821
+ "source/demos/space-camera-moves/SnorricamLock.tsx"
2822
+ ]
2823
+ },
2824
+ {
2825
+ "key": "drone-dive-landing",
2826
+ "label": "drone-dive-landing",
2827
+ "description": "近垂直俯角悬停 → 猛扎俯冲 → 气垫减速停在 hero 卡特写",
2828
+ "use": "开场定场→入题;全局地图砸进单点的章节启动",
2829
+ "implementation_status": "implemented",
2830
+ "usage_document": "cards/space-camera-moves/README.md",
2831
+ "source_files": [
2832
+ "source/demos/space-camera-moves/DroneDiveLanding.tsx"
2833
+ ]
2834
+ }
2835
+ ]
2836
+ },
2837
+ {
2838
+ "name": "spectrum-morph-ui",
2839
+ "summary": "频谱化 UI——标题下划线裂成一排竖条按频谱跳动两小节,再收拢还原成直线;音乐可视化长在 UI 上",
2840
+ "use": "有音轨片子的声画同步高光段(BGM 副歌起/鼓点密集段);标题字卡、章节页的下划线/分隔线构件",
2841
+ "duration": "~4.7s(裂开 8f + 跳动 64f + 收拢 12f + 静止 39f)",
2842
+ "energy": "中",
2843
+ "intention": "声画同步库内已有 type-rhythm-sync A(字重脉冲)——那是\"文字自己动\";\r\n本卡是\"UI 构件变成均衡器\":下划线这个最不起眼的构件被音乐借用两小节,\r\n裂成 28 根竖条跳出频谱,然后**收拢还原、完璧归赵**。借用-归还结构是\r\n全部优雅所在——观众先认出\"这是下划线\",再看它变成别的东西,最后\r\n看它变回来;若一开始就是频谱条,只是又一个音乐可视化。跳完必须还原\r\n成那条 8px 直线,一像素不差。",
2844
+ "usage_document": "cards/spectrum-morph-ui/README.md",
2845
+ "dependencies": [
2846
+ "react",
2847
+ "remotion"
2848
+ ],
2849
+ "code_status": "source-available",
2850
+ "source_files": [
2851
+ "source/demos/spectrum-morph-ui/SpectrumMorphUi.tsx"
2852
+ ],
2853
+ "styles": [
2854
+ {
2855
+ "key": "spectrum-morph-ui",
2856
+ "label": "spectrum-morph-ui",
2857
+ "description": "频谱化 UI——标题下划线裂成一排竖条按频谱跳动两小节,再收拢还原成直线;音乐可视化长在 UI 上",
2858
+ "use": "",
2859
+ "implementation_status": "implemented",
2860
+ "usage_document": "cards/spectrum-morph-ui/README.md",
2861
+ "source_files": [
2862
+ "source/demos/spectrum-morph-ui/SpectrumMorphUi.tsx"
2863
+ ]
2864
+ }
2865
+ ]
2866
+ },
2867
+ {
2868
+ "name": "speed-ramp-freeze",
2869
+ "summary": "帧号非线性 remap 的两款节奏手法——变速(快→0.2x 凝视→快)与定格标注(流动→定格圈注→解冻)",
2870
+ "use": "卡片流/长横移中把一个重点\"放慢/停下给人看\";教学解说语境用定格标注",
2871
+ "duration": "变速全程 4–5s(慢速窗 ≥40f);定格标注全程 4–5s(定格段 ≥45f)",
2872
+ "energy": "中高(速度反差本身即energy beat)",
2873
+ "intention": "匀速流读作 PPT(R2),全程快流观众抓不住重点(R3)。变速在一条\r\n运动里制造\"冲刺-凝视-冲刺\";定格标注更进一步——干脆停下来,\r\n马克笔圈出重点再走。两款同一技术根(帧号 remap),语义不同:\r\n变速是\"路过时多看一眼\",定格是\"停课划重点\"。",
2874
+ "usage_document": "cards/speed-ramp-freeze/README.md",
2875
+ "dependencies": [
2876
+ "@remotion/motion-blur",
2877
+ "remotion"
2878
+ ],
2879
+ "code_status": "source-available",
2880
+ "source_files": [
2881
+ "source/demos/speed-ramp-freeze/FreezeAnnotateReal.tsx",
2882
+ "source/demos/speed-ramp-freeze/SpeedRampReal.tsx"
2883
+ ],
2884
+ "styles": [
2885
+ {
2886
+ "key": "speed-ramp",
2887
+ "label": "speed-ramp",
2888
+ "description": "帧号非线性 remap 的两款节奏手法--变速(快→0.2x 凝视→快)与定格标注(流动→定格圈注→解冻)",
2889
+ "use": "",
2890
+ "implementation_status": "implemented",
2891
+ "usage_document": "cards/speed-ramp-freeze/README.md",
2892
+ "source_files": [
2893
+ "source/demos/speed-ramp-freeze/FreezeAnnotateReal.tsx",
2894
+ "source/demos/speed-ramp-freeze/SpeedRampReal.tsx"
2895
+ ]
2896
+ },
2897
+ {
2898
+ "key": "freeze-annotate",
2899
+ "label": "freeze-annotate",
2900
+ "description": "帧号非线性 remap 的两款节奏手法--变速(快→0.2x 凝视→快)与定格标注(流动→定格圈注→解冻)",
2901
+ "use": "",
2902
+ "implementation_status": "implemented",
2903
+ "usage_document": "cards/speed-ramp-freeze/README.md",
2904
+ "source_files": [
2905
+ "source/demos/speed-ramp-freeze/FreezeAnnotateReal.tsx",
2906
+ "source/demos/speed-ramp-freeze/SpeedRampReal.tsx"
2907
+ ]
2908
+ }
2909
+ ]
2910
+ },
2911
+ {
2912
+ "name": "split-flap-title",
2913
+ "summary": "机场翻牌屏字标题——每字符上下两半机械翻牌格,翻过 2 个乱码咔哒停在目标字,左→右级联成波",
2914
+ "use": "开场/章节大标题;倒计时、发布日期、数据播报类文案;需要\"机械宣告感\"的一拍",
2915
+ "duration": "约 4.7s(140f:≥20f 乱码静止建立 + 级联翻牌 + ≥15f 停定静止)",
2916
+ "energy": "中(持续的机械动感,非瞬时冲击)",
2917
+ "intention": "文字三式的第三式:压印(paper-title-card)是纸上落墨的\"低语\",打字机\r\n(document-typewriter-reveal)是文档被人写出来的\"叙述\",翻牌是车站大屏的\r\n\"播报\"——带机械宣告腔。选翻牌的语境:倒计时/发车感(版本发布、截止日)、\r\n数据播报感(指标揭晓)、或想给标题一层复古机械质感。它天然是等宽深底\r\n格子,在库内纸墨审美里读作\"纸面上摆了一块机械显示屏\"——异色块本身\r\n就是看点,背景产品画面压暗降饱和给它让位。",
2918
+ "usage_document": "cards/split-flap-title/README.md",
2919
+ "dependencies": [
2920
+ "react",
2921
+ "remotion"
2922
+ ],
2923
+ "code_status": "source-available",
2924
+ "source_files": [
2925
+ "source/demos/split-flap-title/SplitFlapFlip.tsx"
2926
+ ],
2927
+ "styles": [
2928
+ {
2929
+ "key": "split-flap-title",
2930
+ "label": "split-flap-title",
2931
+ "description": "机场翻牌屏字标题——每字符上下两半机械翻牌格,翻过 2 个乱码咔哒停在目标字,左→右级联成波",
2932
+ "use": "",
2933
+ "implementation_status": "implemented",
2934
+ "usage_document": "cards/split-flap-title/README.md",
2935
+ "source_files": [
2936
+ "source/demos/split-flap-title/SplitFlapFlip.tsx"
2937
+ ]
2938
+ }
2939
+ ]
2940
+ },
2941
+ {
2942
+ "name": "spotlight-hero-card",
2943
+ "summary": "聚光灯扫过页面锁定一张卡,斜 45° 推进后卡片弹起悬浮、光束沿轮廓两圈、贴回原位",
2944
+ "use": "\"单一主角\"式产品开场;把一个核心对象(卡片/条目/模块)立成全片主角",
2945
+ "duration": "约 4.6s(82–220f)",
2946
+ "energy": "中(质感最高的一镜,节奏慢而稳)",
2947
+ "intention": "开场只讲一件事:这一张卡就是产品的原子单位。聚光灯替观众做视线引导,弹起悬浮给它体积和重量,轮廓光束是\"扫描/检视\"的隐喻,最后贴回原位表示它属于这个页面。",
2948
+ "usage_document": "cards/spotlight-hero-card/README.md",
2949
+ "dependencies": [
2950
+ "remotion"
2951
+ ],
2952
+ "code_status": "source-available",
2953
+ "source_files": [
2954
+ "source/template/src/aifl/live/SceneOpen.tsx"
2955
+ ],
2956
+ "styles": [
2957
+ {
2958
+ "key": "spotlight-hero-card",
2959
+ "label": "spotlight-hero-card",
2960
+ "description": "聚光灯扫过页面锁定一张卡,斜 45° 推进后卡片弹起悬浮、光束沿轮廓两圈、贴回原位",
2961
+ "use": "",
2962
+ "implementation_status": "implemented",
2963
+ "usage_document": "cards/spotlight-hero-card/README.md",
2964
+ "source_files": [
2965
+ "source/template/src/aifl/live/SceneOpen.tsx"
2966
+ ]
2967
+ }
2968
+ ]
2969
+ },
2970
+ {
2971
+ "name": "spotlight-sweep-moves",
2972
+ "summary": "暗场聚光显影三式——A 醒睡扫过(光到即亮光走即暗)、B 贴边泛光横摇(紫光贴 UI 边缘渗入+聚光匀速右移)、C 角落匀速显影(径向聚光从角落匀速扩张点亮全屏);黑场里\"光即叙事\"的 UI 展示",
2973
+ "use": "暗色调品牌片里逐个介绍 UI 面板/功能区;黑场开场把界面\"点亮\"登场;段落间光转场",
2974
+ "duration": "单式 3.5–4.5s;A/B 可串联成巡礼段",
2975
+ "energy": "中低(克制、神秘感,爆点在\"亮起\"瞬间)",
2976
+ "intention": "黑场里观众只能看见光给看的东西——聚光既是照明也是运镜和剪辑:\r\n光到哪里哪里登场,光走即谢幕。三式共用\"贴边紫色辉光光线\"这个\r\n身份元素(光线贴着 UI 边框/logo/顶边走,辉光要亮要糊,是光在\r\n\"抚摸\"界面而不是描边动画)。命门是**匀速**:聚光的移动/扩张\r\n严格 linear——缓动会让光有\"意图\",匀速才读作探照灯的机械扫掠\r\n(C 式判例:linear 但半径终值过大=前 1/4 就饱和,观感照样不匀速)。",
2977
+ "usage_document": "cards/spotlight-sweep-moves/README.md",
2978
+ "dependencies": [
2979
+ "react",
2980
+ "remotion"
2981
+ ],
2982
+ "code_status": "source-available",
2983
+ "source_files": [
2984
+ "source/demos/spotlight-sweep-moves/CornerSpotlightReveal.tsx",
2985
+ "source/demos/spotlight-sweep-moves/GlowWakeSleepPanel.tsx",
2986
+ "source/demos/spotlight-sweep-moves/SlideSpotlightPan.tsx"
2987
+ ],
2988
+ "styles": [
2989
+ {
2990
+ "key": "glow-wake-sleep-panel",
2991
+ "label": "glow-wake-sleep-panel",
2992
+ "description": "醒睡扫过:radial 显影罩跟随光头从左向右匀速移动,贴顶边紫色光线三层辉光同行,经过 logo 描光、到右缘点亮竖直残光,尾段面板沉回黑暗",
2993
+ "use": "暗色调品牌片里介绍单个 UI 面板——有醒有睡的登场与谢幕",
2994
+ "implementation_status": "implemented",
2995
+ "usage_document": "cards/spotlight-sweep-moves/README.md",
2996
+ "source_files": [
2997
+ "source/demos/spotlight-sweep-moves/GlowWakeSleepPanel.tsx"
2998
+ ]
2999
+ },
3000
+ {
3001
+ "key": "slide-spotlight-pan",
3002
+ "label": "slide-spotlight-pan",
3003
+ "description": "贴边泛光横摇:光线先绕左上角竖缘、转角后沿顶边横走,紫光晕染渗入 UI 顶部内侧;聚光头匀速右移显影 + 面板匀速左滑=相机右摇感",
3004
+ "use": "横向巡礼宽面板/多列看板,逐段点亮功能区",
3005
+ "implementation_status": "implemented",
3006
+ "usage_document": "cards/spotlight-sweep-moves/README.md",
3007
+ "source_files": [
3008
+ "source/demos/spotlight-sweep-moves/SlideSpotlightPan.tsx"
3009
+ ]
3010
+ },
3011
+ {
3012
+ "key": "corner-spotlight-reveal",
3013
+ "label": "corner-spotlight-reveal",
3014
+ "description": "角落匀速显影:左上角径向聚光半径严格 linear 扩张,照到显影照不到沉黑,最终全屏亮起——光即转场",
3015
+ "use": "黑场开场点亮界面登场;段落间光转场",
3016
+ "implementation_status": "implemented",
3017
+ "usage_document": "cards/spotlight-sweep-moves/README.md",
3018
+ "source_files": [
3019
+ "source/demos/spotlight-sweep-moves/CornerSpotlightReveal.tsx"
3020
+ ]
3021
+ }
3022
+ ]
3023
+ },
3024
+ {
3025
+ "name": "steep-tilt-glide",
3026
+ "summary": "固定镜头下直立页面以 60° 强透视侧立(右近左远),页面自身沿其 3D 横面方向滑移掠过镜头(物动镜不动),滑移带速度重影、文字组件悬空贴落、由暗揭亮",
3027
+ "use": "长页面/多区块 UI 的炫技巡览(内容依次滑过固定机位);暗场霓虹调性;与贴面运镜卡互补的\"侧掠\"机位",
3028
+ "duration": "4s(120f)单镜;页面越宽越可拉长",
3029
+ "energy": "中高(透视炫技+持续运动,但节奏是匀的)",
3030
+ "intention": "把页面立成一堵斜墙:镜头钉死不动,60° 强透视让右缘贴脸、左缘\r\n消失在灭点,页面自己沿自身平面横向滑移——内容像列车车厢一样\r\n依次掠过。命门是**物动镜不动**:perspective/origin/rotY 全程常数,\r\n唯一动的量是页面局部 translateX——镜头一动语义就变成运镜炫技,\r\n这里的戏是\"页面在自我展示\"。角度经三轮收敛为精确 60°\r\n(-45°\"不对\"→-53°\"再大一点\"→-60°选中)。",
3031
+ "usage_document": "cards/steep-tilt-glide/README.md",
3032
+ "dependencies": [
3033
+ "react",
3034
+ "remotion"
3035
+ ],
3036
+ "code_status": "source-available",
3037
+ "source_files": [
3038
+ "source/demos/steep-tilt-glide/SteepTiltGlide.tsx"
3039
+ ],
3040
+ "styles": [
3041
+ {
3042
+ "key": "steep-tilt-glide",
3043
+ "label": "steep-tilt-glide",
3044
+ "description": "固定镜头下直立页面以 60° 强透视侧立(右近左远),页面自身沿其 3D 横面方向滑移掠过镜头(物动镜不动),滑移带速度重影、文字组件悬空贴落、由暗揭亮",
3045
+ "use": "",
3046
+ "implementation_status": "implemented",
3047
+ "usage_document": "cards/steep-tilt-glide/README.md",
3048
+ "source_files": [
3049
+ "source/demos/steep-tilt-glide/SteepTiltGlide.tsx"
3050
+ ]
3051
+ }
3052
+ ]
3053
+ },
3054
+ {
3055
+ "name": "stroke-segment-build",
3056
+ "summary": "断笔成字——标题拆成十几段互不相连的笔画乱序逐段点亮,前 70% 不可读,末段落位瞬间语义\"啪\"地成立",
3057
+ "use": "开场吊悬念的产品名/大数字揭晓;一支片 ≤1 次;与 type-assembly/draw-svg-trace 分工:那些是\"看着字被组装/描画\",本卡是\"意义延迟揭晓\"",
3058
+ "duration": "4–5s",
3059
+ "energy": "低起中收(悬念型,落位帧是能量点)",
3060
+ "intention": "《异形》片头判例:标题不是被画出来的,是\"显影\"出来的——拆成离散\r\n笔画段乱序点亮,观众前 70% 时间只看到神秘碎段,最后几段落位的瞬间\r\n突然读出是什么字。\"认出的那一刻\"就是钩子,钩子的强度取决于\r\n不可读期撑多久、钥匙段压多晚。",
3061
+ "usage_document": "cards/stroke-segment-build/README.md",
3062
+ "dependencies": [
3063
+ "react",
3064
+ "remotion"
3065
+ ],
3066
+ "code_status": "source-available",
3067
+ "source_files": [
3068
+ "source/demos/stroke-segment-build/StrokeSegmentBuild.tsx"
3069
+ ],
3070
+ "styles": [
3071
+ {
3072
+ "key": "stroke-segment-build",
3073
+ "label": "stroke-segment-build",
3074
+ "description": "断笔成字——标题拆成十几段互不相连的笔画乱序逐段点亮,前 70% 不可读,末段落位瞬间语义\"啪\"地成立",
3075
+ "use": "",
3076
+ "implementation_status": "implemented",
3077
+ "usage_document": "cards/stroke-segment-build/README.md",
3078
+ "source_files": [
3079
+ "source/demos/stroke-segment-build/StrokeSegmentBuild.tsx"
3080
+ ]
3081
+ }
3082
+ ]
3083
+ },
3084
+ {
3085
+ "name": "tear-streak-transitions",
3086
+ "summary": "撕裂转场——glitch-displace 噪声撕裂(16 横条错位抖动中硬切),数字故障语义的条带级撕裂",
3087
+ "use": "高能换页:数字故障/断裂语义;页面完整性不破、能量拉满的条带级撕裂",
3088
+ "duration": "前态 ≥40f + 撕裂 17–24f + 收尾 ≥40f,约 4.5s(135–140f)",
3089
+ "energy": "高",
3090
+ "intention": "本卡管**条带级撕裂**——页面被切成横条高速运动,但每条内容完整。\r\n这是反复裁决划出的品味分界:碎块系转场三连否(doom-melt 竖条坠落、\r\npixel-dissolve 方块翻黑、facade-block 砖块翻飞全部淘汰),条带系过关。碎块读作\"页面被破坏\",条带读作\"页面在高速\r\n运动\"——完整性不破、能量却拉满。横向撕:条带左右错位抖动 +\r\n明暗重影,数字故障的灰阶降维(RGB split 改明暗双重影)。\r\n适用系统故障/瞬间跳变语义。",
3091
+ "usage_document": "cards/tear-streak-transitions/README.md",
3092
+ "dependencies": [
3093
+ "react",
3094
+ "remotion"
3095
+ ],
3096
+ "code_status": "source-available",
3097
+ "source_files": [
3098
+ "source/demos/tear-streak-transitions/GlitchDisplace.tsx"
3099
+ ],
3100
+ "styles": [
3101
+ {
3102
+ "key": "glitch-displace",
3103
+ "label": "glitch-displace",
3104
+ "description": "撕裂转场——glitch-displace 噪声撕裂(16 横条错位抖动中硬切),数字故障语义的条带级撕裂",
3105
+ "use": "故障/断裂语义;高潮前的暴力换页",
3106
+ "implementation_status": "implemented",
3107
+ "usage_document": "cards/tear-streak-transitions/README.md",
3108
+ "source_files": [
3109
+ "source/demos/tear-streak-transitions/GlitchDisplace.tsx"
3110
+ ]
3111
+ }
3112
+ ]
3113
+ },
3114
+ {
3115
+ "name": "tension-camera-moves",
3116
+ "summary": "情绪运镜四式——bullet-time 冻结环绕、dutch-roll 斜角滚正、slow-push 慢推压迫、pull-back 拉远孤立,相机替观众\"感受\"而非\"看\"",
3117
+ "use": "情绪节点(震撼/纠偏/积压/收束)的运镜语言;与 space-camera-moves 的\"炫技大动作\"互补——这四式动作小、情绪重",
3118
+ "duration": "单式 4–5s;全片合计 ≤2 式(各 ≤1 次)",
3119
+ "energy": "A 高 / B 中 / C 低压升 / D 低收",
3120
+ "intention": "space-camera-moves 三式是\"把页面当 3D 实体拍\"的高光炫技;这四式相反——\r\n动作本身克制,全部劲道在情绪语义上:A 说\"这一刻值得停下时间看\"\r\n(运动中的元素被冻住、相机绕行审视);B 说\"问题解决了,世界被扶正\"\r\n(斜角悬着的难受感在节拍上滚回水平);C 说\"有什么要发生了\"(慢到\r\n不自觉的推近积压张力,顶点硬切释放);D 说\"最后只剩这一件事\"\r\n(后拉中周围逐层熄灭,孤悬一点收束全片)。四式各占一个情绪格,\r\n是分镜阶段\"这一段观众该感到什么\"的直接词汇。",
3121
+ "usage_document": "cards/tension-camera-moves/README.md",
3122
+ "dependencies": [
3123
+ "react",
3124
+ "remotion"
3125
+ ],
3126
+ "code_status": "source-available",
3127
+ "source_files": [
3128
+ "source/demos/tension-camera-moves/BulletTimeFreezeOrbit.tsx",
3129
+ "source/demos/tension-camera-moves/DutchRollToLevel.tsx",
3130
+ "source/demos/tension-camera-moves/PullBackIsolation.tsx",
3131
+ "source/demos/tension-camera-moves/SlowPushIn.tsx"
3132
+ ],
3133
+ "styles": [
3134
+ {
3135
+ "key": "bullet-time-freeze-orbit",
3136
+ "label": "bullet-time-freeze-orbit 冻结环绕",
3137
+ "description": "图表生长到一半全冻住,相机绕悬停的 UI 平面 rotateY 扫 55° 再回,时间恢复接着长完",
3138
+ "use": "核心数据/图表的加冕时刻;\"值得停表看\"的一格",
3139
+ "implementation_status": "implemented",
3140
+ "usage_document": "cards/tension-camera-moves/README.md",
3141
+ "source_files": [
3142
+ "source/demos/tension-camera-moves/BulletTimeFreezeOrbit.tsx"
3143
+ ]
3144
+ },
3145
+ {
3146
+ "key": "dutch-roll-to-level",
3147
+ "label": "dutch-roll-to-level 斜角滚正",
3148
+ "description": "痛点段整帧 -10° 斜角悬着(叠微漂移),解决方案一拍带单次过冲滚回水平",
3149
+ "use": "痛点→方案的翻转节拍;纠偏语义",
3150
+ "implementation_status": "implemented",
3151
+ "usage_document": "cards/tension-camera-moves/README.md",
3152
+ "source_files": [
3153
+ "source/demos/tension-camera-moves/DutchRollToLevel.tsx"
3154
+ ]
3155
+ },
3156
+ {
3157
+ "key": "slow-push-in",
3158
+ "label": "slow-push-in 慢推压迫",
3159
+ "description": "4s 匀加速推近 1.00→1.14 + 暗角渐深,张力顶点无过渡硬切亮场",
3160
+ "use": "大数字/宣言前的蓄力;暗→亮的章节爆点",
3161
+ "implementation_status": "implemented",
3162
+ "usage_document": "cards/tension-camera-moves/README.md",
3163
+ "source_files": [
3164
+ "source/demos/tension-camera-moves/SlowPushIn.tsx"
3165
+ ]
3166
+ },
3167
+ {
3168
+ "key": "pull-back-isolation",
3169
+ "label": "pull-back-isolation 拉远孤立",
3170
+ "description": "从发光主卡特写后拉,兄弟卡按距离错峰熄灭、背景沉黑,孤卡悬在暗场中央",
3171
+ "use": "结尾收束;\"全片只为这一个数字\"的谢幕",
3172
+ "implementation_status": "implemented",
3173
+ "usage_document": "cards/tension-camera-moves/README.md",
3174
+ "source_files": [
3175
+ "source/demos/tension-camera-moves/PullBackIsolation.tsx"
3176
+ ]
3177
+ }
3178
+ ]
3179
+ },
3180
+ {
3181
+ "name": "text-as-mask",
3182
+ "summary": "文字视频遮罩——超粗大标题字内部透出缓慢平移的产品画面,结尾字形放大 26 倍溢出、内部画面接管全屏",
3183
+ "use": "品牌词/口号与产品画面二合一的开场或章节卡;字是门、产品在门里",
3184
+ "duration": "5s(hold 20f + 字内漂移 80f + 放大接管 30f + 静止 20f)",
3185
+ "energy": "中高(漂移段沉稳,接管段一次爆发)",
3186
+ "intention": "标题和产品画面抢屏幕是老问题——先字后画慢,画上压字挤。这一式让\r\n两者同体:字形就是遮罩,产品只透过笔画显形,观众同时读到词和画面\r\n质感;结尾字形胀开溢出画幅,产品自然接管全屏——\"从品牌词走进产品\"\r\n一条镜头说完,兼任章节转场(与 transition-travel C 字腔穿越同族:\r\n那边是镜头钻进字腔,这边是字形自己胀开,前者相机动、后者门动)。",
3187
+ "usage_document": "cards/text-as-mask/README.md",
3188
+ "dependencies": [
3189
+ "react",
3190
+ "remotion"
3191
+ ],
3192
+ "code_status": "source-available",
3193
+ "source_files": [
3194
+ "source/demos/text-as-mask/TextAsMask.tsx"
3195
+ ],
3196
+ "styles": [
3197
+ {
3198
+ "key": "text-as-mask",
3199
+ "label": "text-as-mask",
3200
+ "description": "文字视频遮罩——超粗大标题字内部透出缓慢平移的产品画面,结尾字形放大 26 倍溢出、内部画面接管全屏",
3201
+ "use": "",
3202
+ "implementation_status": "implemented",
3203
+ "usage_document": "cards/text-as-mask/README.md",
3204
+ "source_files": [
3205
+ "source/demos/text-as-mask/TextAsMask.tsx"
3206
+ ]
3207
+ }
3208
+ ]
3209
+ },
3210
+ {
3211
+ "name": "text-column-converge",
3212
+ "summary": "双词对峙合拢——左\"NEW\"右特性词钉死在等屏边距两侧硬切轮换、全程零收缩,换到最后一词才唯一一次 ease-in-out 滑到居中咬合成短语,下方小字近乎硬切浮现;收尾揭晓型文字卡",
3213
+ "use": "特性清单收束到产品名/口号的段落(\"NEW × 一串特性 → NEW <产品名>\"式);发布会式 recap、版本号揭晓",
3214
+ "duration": "轮换 7–16f/词 × 8–9 词 + 合拢 ~36f + 小字后静置;全段约 5–6s",
3215
+ "energy": "中低(机器节奏、小字规格清单气质,不是砸字)",
3216
+ "intention": "两词分踞左右像目录页对峙,观众以为只是轮换字幕;直到最后一词\r\n停稳才发现左右其实是同一句话的两半——唯一一次连续合拢把整段\r\n轮换追认为\"悬念铺垫\"。命门是**钉死**:轮换期两词位置一像素不动、\r\n左右屏边距完全相等(原片实测 412 vs 413@1280),任何渐进收缩都会\r\n提前剧透合拢、把揭晓稀释成进度条。合拢只许发生一次,且必须在\r\n最后一词之后——这是收尾揭晓,不是持续动效。",
3217
+ "usage_document": "cards/text-column-converge/README.md",
3218
+ "dependencies": [
3219
+ "react",
3220
+ "remotion"
3221
+ ],
3222
+ "code_status": "source-available",
3223
+ "source_files": [
3224
+ "source/demos/text-column-converge/TextColumnConverge.tsx"
3225
+ ],
3226
+ "styles": [
3227
+ {
3228
+ "key": "text-column-converge",
3229
+ "label": "text-column-converge",
3230
+ "description": "双词对峙合拢——左\"NEW\"右特性词钉死在等屏边距两侧硬切轮换、全程零收缩,换到最后一词才唯一一次 ease-in-out 滑到居中咬合成短语,下方小字近乎硬切浮现;收尾揭晓型文字卡",
3231
+ "use": "",
3232
+ "implementation_status": "implemented",
3233
+ "usage_document": "cards/text-column-converge/README.md",
3234
+ "source_files": [
3235
+ "source/demos/text-column-converge/TextColumnConverge.tsx"
3236
+ ]
3237
+ }
3238
+ ]
3239
+ },
3240
+ {
3241
+ "name": "theme-switch-moves",
3242
+ "summary": "主题切换两式——theme-sweep 斜向扫场(边界扫过处就地换肤)与 palette-ripple 组合款(⌘K 面板收缩成点、涟漪从点荡开换肤)",
3243
+ "use": "深色模式/主题功能的叙事段落;同一 UI \"在你眼前变色\"而非切到新场景",
3244
+ "duration": "A 3–4s / B 5–6s",
3245
+ "energy": "A 中 / B 中高(组合款有完整因果链)",
3246
+ "intention": "深浅模式切换的两种拍法。A(Notion/Figma/Linear 惯用):15° 斜向\r\n边界带亮线从左上扫到右下,边界经过处浅色**就地**变深色,同布局\r\n双主题共存一瞬——观众看到的是\"同一个 UI 换肤\",不是转场。\r\nB(组合变异):⌘K 面板输入 \"dark\" 回车,面板收缩成一个亮点,\r\n深色涟漪**从该点**荡开扫过全 UI——\"命令引发换肤\"的因果链完整可读。\r\n组合命门:涟漪圆心必须是面板收缩点、起始帧必须是收缩完成帧。",
3247
+ "usage_document": "cards/theme-switch-moves/README.md",
3248
+ "dependencies": [
3249
+ "react",
3250
+ "remotion"
3251
+ ],
3252
+ "code_status": "source-available",
3253
+ "source_files": [
3254
+ "source/demos/theme-switch-moves/PaletteThemeRipple.tsx",
3255
+ "source/demos/theme-switch-moves/ThemeSweepToggle.tsx"
3256
+ ],
3257
+ "styles": [
3258
+ {
3259
+ "key": "theme-sweep-toggle",
3260
+ "label": "theme-sweep-toggle",
3261
+ "description": "深色版 clip-path polygon 15° 斜边扫场(out poly3 先快后缓 ~38f),边界 4px 白亮线+18px 辉光,扫完 2f 淡出;深版 scale 1→0.995→1 坐实",
3262
+ "use": "主题功能直接展示",
3263
+ "implementation_status": "implemented",
3264
+ "usage_document": "cards/theme-switch-moves/README.md",
3265
+ "source_files": [
3266
+ "source/demos/theme-switch-moves/ThemeSweepToggle.tsx"
3267
+ ]
3268
+ },
3269
+ {
3270
+ "key": "palette-theme-ripple",
3271
+ "label": "palette-theme-ripple",
3272
+ "description": "面板 back(1.9) 弹落→逐字输入→回车面板 ease-in 收缩到 0 + 白色高光核钉住位置→圆形 clip 半径 12→1250px cubic-out 荡开,边缘 5px 白环双向辉光",
3273
+ "use": "命令面板+主题联动的高光段",
3274
+ "implementation_status": "implemented",
3275
+ "usage_document": "cards/theme-switch-moves/README.md",
3276
+ "source_files": [
3277
+ "source/demos/theme-switch-moves/PaletteThemeRipple.tsx"
3278
+ ]
3279
+ }
3280
+ ]
3281
+ },
3282
+ {
3283
+ "name": "timeline-travel",
3284
+ "summary": "时间轴横移——镜头沿水平刻度轴加速掠过版本刻度,每过一格卡片弹立短停,末刻度急停推近",
3285
+ "use": "changelog/里程碑/发展史段落(\"我们一直在发货\"的另一种拍法);与 scroll-brake-moves 分工:那卡是纵向列表急刹,本卡是横向时间旅行",
3286
+ "duration": "4–5s",
3287
+ "energy": "中高(加速→急刹的节奏型镜头)",
3288
+ "intention": "把产品的版本史拍成一次沿时间轴的旅行(《反恐王国》片头判例):\r\n镜头缓起→冲刺→急刹三段变速横移,v1.0/v2.0/v3.0 刻度依次掠过,\r\n每过一格对应卡片从刻度线上 spring 弹立——历史在窗外闪过,\r\n急停在\"今天\"并推近。速度本身讲\"发展快\",急停讲\"现在最重要\"。",
3289
+ "usage_document": "cards/timeline-travel/README.md",
3290
+ "dependencies": [
3291
+ "react",
3292
+ "remotion"
3293
+ ],
3294
+ "code_status": "source-available",
3295
+ "source_files": [
3296
+ "source/demos/timeline-travel/TimelineTravel.tsx"
3297
+ ],
3298
+ "styles": [
3299
+ {
3300
+ "key": "timeline-travel",
3301
+ "label": "timeline-travel",
3302
+ "description": "时间轴横移——镜头沿水平刻度轴加速掠过版本刻度,每过一格卡片弹立短停,末刻度急停推近",
3303
+ "use": "",
3304
+ "implementation_status": "implemented",
3305
+ "usage_document": "cards/timeline-travel/README.md",
3306
+ "source_files": [
3307
+ "source/demos/timeline-travel/TimelineTravel.tsx"
3308
+ ]
3309
+ }
3310
+ ]
3311
+ },
3312
+ {
3313
+ "name": "title-demote-to-label",
3314
+ "summary": "大标题降格为节标签两式——A 大标题居中显影站稳一拍后连续缩小 0.3x 平移到左上角落成小节标签、内容区在其下生长;B 同套路但登场时带文本选中态高亮块扫入再撤掉",
3315
+ "use": "章节开场(标题先当主角再让位给内容);教程/功能演示片的小节交接;B 式给\"文字/编辑\"类产品加身份暗示",
3316
+ "duration": "A ~3s(92f)/ B ~3.5s(104f);demo 两式串播 196f",
3317
+ "energy": "低中(版式变换型,氛围镜头)",
3318
+ "intention": "章节标题的常规命运是\"出现→消失→内容登场\",标题和内容互不认识。\r\n本卡让标题**降格而不退场**:居中大字站稳一拍宣告主题,然后一次连续\r\n补间缩到 0.3x 飞到左上角,落成这一节的栏目标签——它还在屏幕上,\r\n只是从主角变成了门牌。观众获得免费的空间记忆:刚才那个大词就是\r\n现在左上角那个小词,本节讲的就是它。内容骨架在降格进行中就开始\r\n生长,交接零空档。",
3319
+ "usage_document": "cards/title-demote-to-label/README.md",
3320
+ "dependencies": [
3321
+ "react",
3322
+ "remotion"
3323
+ ],
3324
+ "code_status": "source-available",
3325
+ "source_files": [
3326
+ "source/demos/title-demote-to-label/TitleDemoteToLabel.tsx"
3327
+ ],
3328
+ "styles": [
3329
+ {
3330
+ "key": "title-demote-to-label",
3331
+ "label": "title-demote-to-label",
3332
+ "description": "大标题降格为节标签两式——A 大标题居中显影站稳一拍后连续缩小 0.3x 平移到左上角落成小节标签、内容区在其下生长;B 同套路但登场时带文本选中态高亮块扫入再撤掉",
3333
+ "use": "",
3334
+ "implementation_status": "implemented",
3335
+ "usage_document": "cards/title-demote-to-label/README.md",
3336
+ "source_files": [
3337
+ "source/demos/title-demote-to-label/TitleDemoteToLabel.tsx"
3338
+ ]
3339
+ }
3340
+ ]
3341
+ },
3342
+ {
3343
+ "name": "trailer-grammar-moves",
3344
+ "summary": "预告片语法三式——trailer-bumper 前置速剪钩子、card-footage-cadence 字卡穿插对话、smash-cut 猛切入定",
3345
+ "use": "预告片的三个结构性时刻:开场怎么钩(A)、中段怎么对话(B)、高潮怎么收(C);三式合用即一支预告片的骨架",
3346
+ "duration": "A ~4.7s / B ~5s / C ~4.5s",
3347
+ "energy": "A 高 / B 中 / C 高",
3348
+ "intention": "库内节奏卡各管一段:beat-cut 管切点排布、montage-rhythm 管段落呼吸、\r\nrhythm-interrupt 管打断。本卡管**预告片的结构性时刻**——不是某个\r\n镜头怎么动,是整片的三个关节怎么接:A 是开场钩——正片前 0.9 秒塞\r\n三个最抓眼镜头速剪 + 黑场静默一拍再开场,预告片的\"预告\";B 是中段\r\n对话——UI 镜头与黑底短语卡互相接拍交替硬切,画面与文字都踩拍点,\r\n第三幕结构;C 是高潮句号——满屏动势轰鸣最高潮一帧硬切成整齐静止\r\n全景死寂,喧闹→死寂。三式合用即一支预告片的骨架。",
3349
+ "usage_document": "cards/trailer-grammar-moves/README.md",
3350
+ "dependencies": [
3351
+ "react",
3352
+ "remotion"
3353
+ ],
3354
+ "code_status": "source-available",
3355
+ "source_files": [
3356
+ "source/demos/trailer-grammar-moves/CardFootageCadence.tsx",
3357
+ "source/demos/trailer-grammar-moves/SmashCut.tsx",
3358
+ "source/demos/trailer-grammar-moves/TrailerBumper.tsx"
3359
+ ],
3360
+ "styles": [
3361
+ {
3362
+ "key": "trailer-bumper",
3363
+ "label": "trailer-bumper",
3364
+ "description": "三镜头各 9f 等长硬切(0/9/18),每镜内部 scale 1→1.04 微推保活;27-33f 纯黑静默,33f 起标题 16f 淡入 + 44px out-cubic 微升",
3365
+ "use": "正片开场前的钩子;cold open",
3366
+ "implementation_status": "implemented",
3367
+ "usage_document": "cards/trailer-grammar-moves/README.md",
3368
+ "source_files": [
3369
+ "source/demos/trailer-grammar-moves/TrailerBumper.tsx"
3370
+ ]
3371
+ },
3372
+ {
3373
+ "key": "card-footage-cadence",
3374
+ "label": "card-footage-cadence",
3375
+ "description": "七段条件挂载分段(14/22/34/42/52/62 切点):UI 段带微动(缓推/裁切横移),字卡段黑底白字 1.05→1 落定微缩",
3376
+ "use": "中段画面与文字对话;卖点三连",
3377
+ "implementation_status": "implemented",
3378
+ "usage_document": "cards/trailer-grammar-moves/README.md",
3379
+ "source_files": [
3380
+ "source/demos/trailer-grammar-moves/CardFootageCadence.tsx"
3381
+ ]
3382
+ },
3383
+ {
3384
+ "key": "smash-cut",
3385
+ "label": "smash-cut",
3386
+ "description": "轰鸣段全 Easing.in(quad):背景推近 1→1.55 + rotate 1.8°、5 张飞卡错峰加速冲脸 + 速度门控模糊;42f 一帧硬切无动画属性的静止全景",
3387
+ "use": "全片最高潮的收束句号",
3388
+ "implementation_status": "implemented",
3389
+ "usage_document": "cards/trailer-grammar-moves/README.md",
3390
+ "source_files": [
3391
+ "source/demos/trailer-grammar-moves/SmashCut.tsx"
3392
+ ]
3393
+ }
3394
+ ]
3395
+ },
3396
+ {
3397
+ "name": "transition-hidden-cut",
3398
+ "summary": "藏切点转场三式——前景遮挡隐形切、对撞开屏、暖色漏光,硬切藏进遮挡/撞击/光峰的 1-3 帧里,观众看不见剪刀",
3399
+ "use": "两镜衔接处需要\"无痕换景\"或\"仪式感开屏\"时(技法卡,与 shot-transitions 六式同层选型)",
3400
+ "duration": "n/a(技法卡;各式占用帧数见参数表,从相邻镜头预算里划)",
3401
+ "energy": "n/a(技法卡,不占能量位)",
3402
+ "intention": "与 shot-transitions A 式 flash-cut 同族:flash-cut 用一层白闪盖住硬切,\r\n这三式换了三种\"障眼物\"——扫过的前景卡片(A)、对撞的撞击帧(B)、\r\n爬到顶峰的漏光(C)。共同原理是魔术误导:观众的眼睛被大动作/强光\r\n吸走的那 1-3 帧里完成硬切,回过神来景已经换了,全程\"看不见剪刀\"。\r\nflash-cut 是最素的一款;要方向感选 A,要仪式感选 B,要温度选 C。",
3403
+ "usage_document": "cards/transition-hidden-cut/README.md",
3404
+ "dependencies": [
3405
+ "@remotion/motion-blur",
3406
+ "react",
3407
+ "remotion"
3408
+ ],
3409
+ "code_status": "source-available",
3410
+ "source_files": [
3411
+ "source/demos/transition-hidden-cut/InvisibleCut.tsx",
3412
+ "source/demos/transition-hidden-cut/LightLeakBurn.tsx",
3413
+ "source/demos/transition-hidden-cut/VersusSlam.tsx"
3414
+ ],
3415
+ "styles": [
3416
+ {
3417
+ "key": "invisible-cut",
3418
+ "label": "invisible-cut 前景遮挡隐形切",
3419
+ "description": "一张超画幅卡片带重运动模糊贴脸横扫,糊满全屏的遮挡帧内背景 A→B 硬切,卡片飞出观众以为还是同一镜",
3420
+ "use": "想让换景完全无痕的页面→页面;伪\"一条 take\"的主力款",
3421
+ "implementation_status": "implemented",
3422
+ "usage_document": "cards/transition-hidden-cut/README.md",
3423
+ "source_files": [
3424
+ "source/demos/transition-hidden-cut/InvisibleCut.tsx"
3425
+ ]
3426
+ },
3427
+ {
3428
+ "key": "versus-slam",
3429
+ "label": "versus-slam 对撞开屏",
3430
+ "description": "左右两半屏带斜切边从画外加速对冲撞合,撞击帧白闪+震屏+VS 盖章,切点就是撞击本身",
3431
+ "use": "对比/对阵语义的开屏或章节头(新旧方案、双产品、before/after)",
3432
+ "implementation_status": "implemented",
3433
+ "usage_document": "cards/transition-hidden-cut/README.md",
3434
+ "source_files": [
3435
+ "source/demos/transition-hidden-cut/VersusSlam.tsx"
3436
+ ]
3437
+ },
3438
+ {
3439
+ "key": "light-leak-burn",
3440
+ "label": "light-leak-burn 琥珀漏光",
3441
+ "description": "三团琥珀柔光沿对角线斜扫,光峰帧吞掉旧页约七成时硬切新页,光退散时新页已就位",
3442
+ "use": "想要暖调/胶片味的章节过渡;比白闪柔、有方向、有温度",
3443
+ "implementation_status": "implemented",
3444
+ "usage_document": "cards/transition-hidden-cut/README.md",
3445
+ "source_files": [
3446
+ "source/demos/transition-hidden-cut/LightLeakBurn.tsx"
3447
+ ]
3448
+ }
3449
+ ]
3450
+ },
3451
+ {
3452
+ "name": "transition-travel",
3453
+ "summary": "穿越式转场两式——共享元素归位、字腔穿越,镜头钻进画面里的真实元素完成换景",
3454
+ "use": "前后两镜存在\"元素/容器\"级空间关系的接缝(技法卡,与 shot-transitions 六式互补选用)",
3455
+ "duration": "n/a(技法卡;各式动作段 25–60f,前后 hold 另计,帧数从相邻镜头预算里划)",
3456
+ "energy": "n/a(技法卡,不占能量位)",
3457
+ "intention": "shot-transitions 六式是\"交棒\"型——前镜收尾、后镜入场,接缝靠白闪/暗场/\r\n焦点/黑场/糊帧/窗口盖住换页瞬间。本卡两式是\"穿越\"型——后景在前景画面里\r\n以真实元素存在(网格槽位/字形洞),镜头一条连续空间运动钻进去,\r\n观众从头到尾跟着同一个物体,没有交棒瞬间。选型口径:后景能在前景里\"预先\r\n在场\"→穿越;两景只是先后关系、无空间嵌套→交棒。两式内部再按语义分——\r\nA 是\"把这张卡放回去\"(详情→总览,F 式穿窗的逆向);C 是\"标题即是门\"\r\n(章节字卡与转场二合一)。",
3458
+ "usage_document": "cards/transition-travel/README.md",
3459
+ "dependencies": [
3460
+ "react",
3461
+ "remotion"
3462
+ ],
3463
+ "code_status": "source-available",
3464
+ "source_files": [
3465
+ "source/demos/transition-travel/LetterformZoom.tsx",
3466
+ "source/demos/transition-travel/SharedElementMorph.tsx"
3467
+ ],
3468
+ "styles": [
3469
+ {
3470
+ "key": "shared-element-morph",
3471
+ "label": "共享元素归位 shared-element-morph",
3472
+ "description": "全屏特写卡收缩+位移+长出圆角,严丝合缝飞落进 dashboard 网格所属槽位,3% 过冲落座",
3473
+ "use": "详情→总览的\"归位\"语义;与 F 式穿窗成对使用(进窗/回位)",
3474
+ "implementation_status": "implemented",
3475
+ "usage_document": "cards/transition-travel/README.md",
3476
+ "source_files": [
3477
+ "source/demos/transition-travel/SharedElementMorph.tsx"
3478
+ ]
3479
+ },
3480
+ {
3481
+ "key": "letterform-zoom",
3482
+ "label": "字腔穿越 letterform-zoom",
3483
+ "description": "巨型标题字腔(SVG mask 挖洞)透出新页,指数推进穿洞,洞撑满瞬间接管、残余笔画甩出画外",
3484
+ "use": "章节标题→正文;替代 D 式黑场字卡的高能量款",
3485
+ "implementation_status": "implemented",
3486
+ "usage_document": "cards/transition-travel/README.md",
3487
+ "source_files": [
3488
+ "source/demos/transition-travel/LetterformZoom.tsx"
3489
+ ]
3490
+ }
3491
+ ]
3492
+ },
3493
+ {
3494
+ "name": "type-and-filter",
3495
+ "summary": "真实 UI 上打字搜索、网格自己收敛成一张卡、点击穿透进详情页",
3496
+ "use": "功能演示的\"操作叙事\"段;搜索/筛选/进入详情的任何交互链路",
3497
+ "duration": "约 2.5s(118–190f)",
3498
+ "energy": "中(发牌高能段之后的从容一拍)",
3499
+ "intention": "让观众\"跟着做一遍\":看清输入了什么、页面怎么响应、点了哪里。这是全片唯一模拟真人操作的镜头,节奏必须像人手,不能像脚本。",
3500
+ "usage_document": "cards/type-and-filter/README.md",
3501
+ "dependencies": [
3502
+ "remotion"
3503
+ ],
3504
+ "code_status": "source-available",
3505
+ "source_files": [
3506
+ "source/template/src/aifl/live/SceneFlyIn.tsx"
3507
+ ],
3508
+ "styles": [
3509
+ {
3510
+ "key": "type-and-filter",
3511
+ "label": "type-and-filter",
3512
+ "description": "真实 UI 上打字搜索、网格自己收敛成一张卡、点击穿透进详情页",
3513
+ "use": "",
3514
+ "implementation_status": "implemented",
3515
+ "usage_document": "cards/type-and-filter/README.md",
3516
+ "source_files": [
3517
+ "source/template/src/aifl/live/SceneFlyIn.tsx"
3518
+ ]
3519
+ }
3520
+ ]
3521
+ },
3522
+ {
3523
+ "name": "type-assembly-moves",
3524
+ "summary": "文字集结四式——split-text-stagger 逐字裂升、letterform-drift-assembly 漂移合拢、tracking-expand-reveal 字距呼吸、text-on-path 沿线流入",
3525
+ "use": "大标题/标语的入场;与 type-entrance-moves 两式、split-flap-title、document-typewriter-reveal 同属标题入场大品类,全片 ≤2 种",
3526
+ "duration": "单式 4–5s(动作段 A ~56f / B ~104f / C ~58f / D ~99f,均含 hold)",
3527
+ "energy": "A 中 / B 中高 / C 低中 / D 中",
3528
+ "intention": "标题入场已有\"原位变形系\"四式(乱码解码/字符坠落/翻牌/打字机——字\r\n在原地换形态)。本卡补\"集结系\":字符从别处**汇聚成**标题,运动轨迹\r\n本身有戏。A 琴键式——每字从看不见的裁切线下滑升,理性利落,通用度\r\n最高;B 片头式——字符四散带模糊漂入、逐个锁定加深,Stranger Things\r\n的仪式感,适合品牌名亮相;C 呼吸式——字母从叠压一团吸一口气展开,\r\n最安静的一式,适合抒情段落;D 语义式——字符沿一条上升曲线鱼贯流入\r\n再摆正,曲线可以正好描着图表增长线走,文字与数据同框叙事。",
3529
+ "usage_document": "cards/type-assembly-moves/README.md",
3530
+ "dependencies": [
3531
+ "react",
3532
+ "remotion"
3533
+ ],
3534
+ "code_status": "source-available",
3535
+ "source_files": [
3536
+ "source/demos/type-assembly-moves/LetterformDriftAssembly.tsx",
3537
+ "source/demos/type-assembly-moves/SplitTextStagger.tsx",
3538
+ "source/demos/type-assembly-moves/TextOnPath.tsx",
3539
+ "source/demos/type-assembly-moves/TrackingExpandReveal.tsx"
3540
+ ],
3541
+ "styles": [
3542
+ {
3543
+ "key": "split-text-stagger",
3544
+ "label": "split-text-stagger 裂升",
3545
+ "description": "每字 overflow 盒内 translateY(115%→0) 带 10% 过冲,delay i×2f,基线同步生长",
3546
+ "use": "通用默认;利落理性",
3547
+ "implementation_status": "implemented",
3548
+ "usage_document": "cards/type-assembly-moves/README.md",
3549
+ "source_files": [
3550
+ "source/demos/type-assembly-moves/SplitTextStagger.tsx"
3551
+ ]
3552
+ },
3553
+ {
3554
+ "key": "drift-assembly",
3555
+ "label": "drift-assembly 漂移合拢",
3556
+ "description": "字符 seed 方向 ±300px + blur 8px 漂入错峰归位,锁定帧加深脉冲,合体后整词呼吸 1.04",
3557
+ "use": "品牌名/片头级亮相",
3558
+ "implementation_status": "implemented",
3559
+ "usage_document": "cards/type-assembly-moves/README.md",
3560
+ "source_files": [
3561
+ "source/demos/type-assembly-moves/LetterformDriftAssembly.tsx",
3562
+ "source/demos/type-assembly-moves/SplitTextStagger.tsx",
3563
+ "source/demos/type-assembly-moves/TextOnPath.tsx",
3564
+ "source/demos/type-assembly-moves/TrackingExpandReveal.tsx"
3565
+ ]
3566
+ },
3567
+ {
3568
+ "key": "tracking-expand",
3569
+ "label": "tracking-expand 字距呼吸",
3570
+ "description": "字母从 −0.42em 叠压展开到 0.14em,blur 10→0 同曲线",
3571
+ "use": "安静抒情段;副标题跟进",
3572
+ "implementation_status": "implemented",
3573
+ "usage_document": "cards/type-assembly-moves/README.md",
3574
+ "source_files": [
3575
+ "source/demos/type-assembly-moves/LetterformDriftAssembly.tsx",
3576
+ "source/demos/type-assembly-moves/SplitTextStagger.tsx",
3577
+ "source/demos/type-assembly-moves/TextOnPath.tsx",
3578
+ "source/demos/type-assembly-moves/TrackingExpandReveal.tsx"
3579
+ ]
3580
+ },
3581
+ {
3582
+ "key": "text-on-path",
3583
+ "label": "text-on-path 沿线流入",
3584
+ "description": "字符沿贝塞尔曲线鱼贯滑入(切线角旋转),到达后 12f 摆正水平",
3585
+ "use": "曲线有语义时(增长线/流程线)",
3586
+ "implementation_status": "implemented",
3587
+ "usage_document": "cards/type-assembly-moves/README.md",
3588
+ "source_files": [
3589
+ "source/demos/type-assembly-moves/TextOnPath.tsx"
3590
+ ]
3591
+ }
3592
+ ]
3593
+ },
3594
+ {
3595
+ "name": "type-entrance-moves",
3596
+ "summary": "标题文字入场两式——scramble-decode 乱码解码(噪声里长出答案)与 letter-drop-physics 字符坠落(重力砸落弹跳归位),按调性二选一",
3597
+ "use": "大标题/章节字卡的入场;与 split-flap-title(机械翻牌)、document-typewriter-reveal(打字机)同品类互斥选用",
3598
+ "duration": "单式 4–5s(含 hold 与静止收尾;动作段 A ~66f / B ~106f)",
3599
+ "energy": "中高(A 偏理性推进,B 偏物理趣味)",
3600
+ "intention": "标题入场库内已有打字机(沉稳文档感)和翻牌屏(机械仪式感),这两式补\r\n另外两种性格:A 是终端黑客感——字符先是一片高速噪声,从左到右逐个\r\n\"解码\"锁定,观众看着答案从乱码里长出来,适合技术产品的自信亮相;\r\nB 是物理喜剧感——字符从天而降、砸地弹跳、歪歪扭扭站定,最后一拍\r\n集体立正归位,适合轻松调性的开场破冰。四种标题入场同片 ≤2 种(P4)。",
3601
+ "usage_document": "cards/type-entrance-moves/README.md",
3602
+ "dependencies": [
3603
+ "react",
3604
+ "remotion"
3605
+ ],
3606
+ "code_status": "source-available",
3607
+ "source_files": [
3608
+ "source/demos/type-entrance-moves/LetterDropPhysics.tsx",
3609
+ "source/demos/type-entrance-moves/ScrambleDecode.tsx"
3610
+ ],
3611
+ "styles": [
3612
+ {
3613
+ "key": "scramble-decode",
3614
+ "label": "scramble-decode 乱码解码",
3615
+ "description": "全员字符高速跳乱码 hold,随后从左到右逐个锁定真字符,锁定瞬间反色闪 2f,底部进度条同步推进",
3616
+ "use": "技术/开发者产品;\"答案浮出\"的理性推进感",
3617
+ "implementation_status": "implemented",
3618
+ "usage_document": "cards/type-entrance-moves/README.md",
3619
+ "source_files": [
3620
+ "source/demos/type-entrance-moves/ScrambleDecode.tsx"
3621
+ ]
3622
+ },
3623
+ {
3624
+ "key": "letter-drop-physics",
3625
+ "label": "letter-drop-physics 字符坠落",
3626
+ "description": "字符错峰从顶砸落,重力加速+两次衰减弹跳+落地歪斜站定,最后一拍全体齐整回正",
3627
+ "use": "轻松调性开场;\"活物感\"的标题破冰",
3628
+ "implementation_status": "implemented",
3629
+ "usage_document": "cards/type-entrance-moves/README.md",
3630
+ "source_files": [
3631
+ "source/demos/type-entrance-moves/LetterDropPhysics.tsx"
3632
+ ]
3633
+ }
3634
+ ]
3635
+ },
3636
+ {
3637
+ "name": "type-rhythm-sync",
3638
+ "summary": "文字随声同步两式——font-weight-pump 字重脉冲(笔画随鼓点变粗弹回)与 karaoke-fill-sync 卡拉OK填色(词随旁白逐个点亮)",
3639
+ "use": "标题/标语与音轨强绑定的段落;A 绑节拍(鼓点),B 绑语音(旁白逐词)",
3640
+ "duration": "单式 4–5s;A 每拍占 10f 衰减窗、B 每词按语速 15–35f",
3641
+ "energy": "A 高(蹦迪感)/ B 中(跟读引导)",
3642
+ "intention": "文字动效库内此前全是\"入场怎么进\",没有词管\"在场的字怎么跟着声音活\"。\r\n这两式补上:A 让标题变成节奏器官——笔画随低音鼓抽动变粗又弹回,\r\n文字在蹦迪,适合高能段落的视觉低音炮;B 让标语变成跟读字幕——\r\n旁白读到哪个词哪个词从左到右填色点亮,视线被牵着走,适合口播/\r\n标语强调段。共同点是**字不动、属性动**:无位移、无入退场,\r\n纯粹是字重/颜色在声音的拍点上呼吸。",
3643
+ "usage_document": "cards/type-rhythm-sync/README.md",
3644
+ "dependencies": [
3645
+ "react",
3646
+ "remotion"
3647
+ ],
3648
+ "code_status": "source-available",
3649
+ "source_files": [
3650
+ "source/demos/type-rhythm-sync/FontWeightPump.tsx",
3651
+ "source/demos/type-rhythm-sync/KaraokeFillSync.tsx"
3652
+ ],
3653
+ "styles": [
3654
+ {
3655
+ "key": "font-weight-pump",
3656
+ "label": "font-weight-pump 字重脉冲",
3657
+ "description": "命中帧笔画瞬间变粗(stroke+字重跳变),~10f 衰减弹回;重音拍额外撑宽 8%",
3658
+ "use": "音乐驱动的高能段;标题当低音炮",
3659
+ "implementation_status": "implemented",
3660
+ "usage_document": "cards/type-rhythm-sync/README.md",
3661
+ "source_files": [
3662
+ "source/demos/type-rhythm-sync/FontWeightPump.tsx"
3663
+ ]
3664
+ },
3665
+ {
3666
+ "key": "karaoke-fill-sync",
3667
+ "label": "karaoke-fill-sync 填色随读",
3668
+ "description": "每词深色从左到右填亮,进度跟语速,读完保持;活跃词下带读指下划线",
3669
+ "use": "旁白/口播强调段;多词标语的视线引导",
3670
+ "implementation_status": "implemented",
3671
+ "usage_document": "cards/type-rhythm-sync/README.md",
3672
+ "source_files": [
3673
+ "source/demos/type-rhythm-sync/KaraokeFillSync.tsx"
3674
+ ]
3675
+ }
3676
+ ]
3677
+ },
3678
+ {
3679
+ "name": "typewriter-moves",
3680
+ "summary": "打字机两式——terminal-typewriter 终端命令敲完即引爆场景切换、error-retype 误删重打的\"改口\"三幕剧",
3681
+ "use": "开发者产品开场(A)、slogan/卖点字卡(B);文字自带时间性的入场",
3682
+ "duration": "A ~5s / B ~5.5s",
3683
+ "energy": "A 中高 / B 中低",
3684
+ "intention": "打字是唯一自带时间性的文字入场——字符一个个到来本身就是节奏,\r\n不需要额外动效。A 把打字当**引信**:暗色终端窗逐字敲出命令、\r\n方块光标方波闪,回车帧镜头急推进命令行硬切产品界面,命令行是\r\n场景的导火索,开发者产品标配;B 把打字当**独白**:逐字打出平庸词\r\n(\"just a dashboard\")→ 停顿犹豫 → 退格删掉 → 更快打出卖点词\r\n(\"your command center\"),犹豫-否定-宣言的三幕剧,戏全在三档\r\n速度差里。与 scramble-decode 的区别:乱码解码是机器在猜,\r\n打字是人在说。",
3685
+ "usage_document": "cards/typewriter-moves/README.md",
3686
+ "dependencies": [
3687
+ "react",
3688
+ "remotion"
3689
+ ],
3690
+ "code_status": "source-available",
3691
+ "source_files": [
3692
+ "source/demos/typewriter-moves/TerminalTypewriter.tsx",
3693
+ "source/demos/typewriter-moves/TypewriterErrorRetype.tsx"
3694
+ ],
3695
+ "styles": [
3696
+ {
3697
+ "key": "terminal-typewriter",
3698
+ "label": "terminal-typewriter",
3699
+ "description": "2f/字符敲出命令,光标 f%12<6 方波闪;回车帧整场景 6f 急推 scale 1→3.2(origin 锁命令行中心)+ 末 2f blur 10px,硬切 dashboard 1.06→1 回稳",
3700
+ "use": "开发者工具开场;CLI 卖点产品",
3701
+ "implementation_status": "implemented",
3702
+ "usage_document": "cards/typewriter-moves/README.md",
3703
+ "source_files": [
3704
+ "source/demos/typewriter-moves/TerminalTypewriter.tsx"
3705
+ ]
3706
+ },
3707
+ {
3708
+ "key": "error-retype",
3709
+ "label": "error-retype",
3710
+ "description": "打 2f/字符 → 停顿 16f 光标闪两下 → 退 1.5f/字符 → 重打 1.5f/字符无犹豫;光标打删常亮、停顿才闪",
3711
+ "use": "slogan 字卡的\"改口\"戏;否定式文案",
3712
+ "implementation_status": "implemented",
3713
+ "usage_document": "cards/typewriter-moves/README.md",
3714
+ "source_files": [
3715
+ "source/demos/typewriter-moves/TerminalTypewriter.tsx",
3716
+ "source/demos/typewriter-moves/TypewriterErrorRetype.tsx"
3717
+ ]
3718
+ }
3719
+ ]
3720
+ },
3721
+ {
3722
+ "name": "ui-strip-away-outro",
3723
+ "summary": "减法式收尾——点击 Publish 后整个编辑器 UI 从外围到中心层层错峰蒸发,黑场上只剩那颗按钮滑到屏心放大,按钮再淡出交棒字标定版",
3724
+ "use": "\"发布/完成\"语义的 outro;想讲\"一键之后一切复杂性消失\"的产品收尾",
3725
+ "duration": "~4.3s(130f:光标就位 34f → 蒸发 ~40f → 按钮独占 → 字标接棒)",
3726
+ "energy": "中(前段安静操作,中段持续退场,无瞬时冲击)",
3727
+ "intention": "库内收尾全是\"加法\":outro-group-photo-launch 元素飞来合影,logo\r\nsting 是定住再彩蛋。本卡是唯一的\"减法\"路线——点击引爆全 UI 退场,\r\n黑场只留语义焦点(那颗被点的按钮),把\"发布 = 复杂性归零\"翻译成\r\n动效叙事。命门有二:**蒸发要有秩序**——从外围到中心每 4f 一层、\r\n每层带方向性位移(各自往画外散),乱序或同帧齐灭读作断电故障;\r\n**按钮是唯一幸存者且必须迁移**——蒸发期间从工具条角落滑到屏心\r\n放大 1.5 倍、白晕随黑场增强,完成从\"UI 控件\"到\"仪式主角\"的升格,\r\n最后淡出把黑场交给字标。",
3728
+ "usage_document": "cards/ui-strip-away-outro/README.md",
3729
+ "dependencies": [
3730
+ "react",
3731
+ "remotion"
3732
+ ],
3733
+ "code_status": "source-available",
3734
+ "source_files": [
3735
+ "source/demos/ui-strip-away-outro/UiStripAwayOutro.tsx"
3736
+ ],
3737
+ "styles": [
3738
+ {
3739
+ "key": "ui-strip-away-outro",
3740
+ "label": "ui-strip-away-outro",
3741
+ "description": "减法式收尾——点击 Publish 后整个编辑器 UI 从外围到中心层层错峰蒸发,黑场上只剩那颗按钮滑到屏心放大,按钮再淡出交棒字标定版",
3742
+ "use": "",
3743
+ "implementation_status": "implemented",
3744
+ "usage_document": "cards/ui-strip-away-outro/README.md",
3745
+ "source_files": [
3746
+ "source/demos/ui-strip-away-outro/UiStripAwayOutro.tsx"
3747
+ ]
3748
+ }
3749
+ ]
3750
+ },
3751
+ {
3752
+ "name": "ui-to-brand-morph",
3753
+ "summary": "UI 变品牌两式——icon-flip-bloom 图标 Y 轴翻扁成竖线绽放成花形 mark + wordmark 逐字落定,与 input-morph-assemble 输入框收缩成胶囊、三粒图元落下集结成 logo 单瓣",
3754
+ "use": "品牌收尾/outro 前最后一拍;\"你每天用的那个 UI 就是这个品牌\"的视觉论证",
3755
+ "duration": "A ~4.3s(130f)/ B ~4.7s(140f)",
3756
+ "energy": "中高(收尾点睛,一次完整变形讲完)",
3757
+ "intention": "品牌收尾库里已有三条路:brand-ink-open 是开场描画压印、\r\nmorph-from-primitive 是图元→UI 容器(方向相反)、\r\noutro-group-photo-launch 是元素围拢合影(聚而不变)。本卡补第四条:\r\n**产品 UI 元素自己变形成品牌符号**——A 式是图标翻一个身变成 logo\r\n(同位实体交换),B 式是全片反复出现的输入框在最后一次发送后集结成\r\nlogo 单瓣(多元素落位拼装)。观众看到的不是\"logo 出现了\",而是\r\n\"刚才用的东西原来就是它\",因果链本身就是品牌论证。",
3758
+ "usage_document": "cards/ui-to-brand-morph/README.md",
3759
+ "dependencies": [
3760
+ "react",
3761
+ "remotion"
3762
+ ],
3763
+ "code_status": "source-available",
3764
+ "source_files": [
3765
+ "source/demos/ui-to-brand-morph/IconFlipBloomLogo.tsx",
3766
+ "source/demos/ui-to-brand-morph/InputMorphsIntoLogo.tsx"
3767
+ ],
3768
+ "styles": [
3769
+ {
3770
+ "key": "icon-flip-bloom",
3771
+ "label": "icon-flip-bloom",
3772
+ "description": "图标 anticipation 晃两下→Y 轴 scaleX 压扁成竖线(双层拖影+blur)→最薄处实体交换、spring 绽放成 5 瓣花形 mark→mark 左移让位、wordmark 逐字落定",
3773
+ "use": "单图标产品;图标与 logo 形态差异大、需要\"翻过去变身\"的魔术感",
3774
+ "implementation_status": "implemented",
3775
+ "usage_document": "cards/ui-to-brand-morph/README.md",
3776
+ "source_files": [
3777
+ "source/demos/ui-to-brand-morph/IconFlipBloomLogo.tsx",
3778
+ "source/demos/ui-to-brand-morph/InputMorphsIntoLogo.tsx"
3779
+ ]
3780
+ },
3781
+ {
3782
+ "key": "input-morph-assemble",
3783
+ "label": "input-morph-assemble",
3784
+ "description": "光标点发送→文字飞走→输入框 x/y/w/h/r 五量 spring 插值成圆角胶囊→三粒图元错峰从画外落下拼成抽象单瓣→整组呼吸",
3785
+ "use": "输入框/卡片等矩形 UI 是全片主角的片子;logo 可拆解为几何图元组合",
3786
+ "implementation_status": "missing-preview",
3787
+ "usage_document": "cards/ui-to-brand-morph/README.md",
3788
+ "source_files": [
3789
+ "source/demos/ui-to-brand-morph/IconFlipBloomLogo.tsx",
3790
+ "source/demos/ui-to-brand-morph/InputMorphsIntoLogo.tsx"
3791
+ ]
3792
+ }
3793
+ ]
3794
+ },
3795
+ {
3796
+ "name": "voice-waveform-live",
3797
+ "summary": "录音胶囊实时声纹——64 根细竖条随\"说话\"起伏,说话时中部高耸、停顿缩成点线,波形从右往左滚动;说→停→说→提交塌缩的完整表演",
3798
+ "use": "语音输入/AI 助手\"正在听你说\"的功能镜头;无 UI 内容可展示但需要持续活性撑画面的段落",
3799
+ "duration": "~5s(150f:入场 12f + 说 1.4s + 停 0.8s + 说 1.4s + 提交塌缩 0.8s)",
3800
+ "energy": "中(功能性活性,不是炫技)",
3801
+ "intention": "库里唯一的波形是 spectrum-morph-ui——那是标题下划线裂成频谱条的\r\n**装饰性**音乐可视化。本卡是**功能性**声纹:\"正在听你说\"的实时\r\n回执。区别在因果:spectrum 跟 BGM 跳、是包装;本卡跟\"用户说话\"\r\n跳、是产品功能本身。说话时波形高耸、停顿时缩成一排点线、历史向左\r\n滚出——观众从波形的起伏读出\"它真的在听\",一段 6s+ 的画面全靠这份\r\n活性撑住,不需要任何别的内容。与 gauge-readout-moves 分工:仪表是\r\n\"报一个数值\"的机械仪式,本卡是\"持续监听\"的生命体征,没有终值。",
3802
+ "usage_document": "cards/voice-waveform-live/README.md",
3803
+ "dependencies": [
3804
+ "react",
3805
+ "remotion"
3806
+ ],
3807
+ "code_status": "source-available",
3808
+ "source_files": [
3809
+ "source/demos/voice-waveform-live/VoiceWaveformLive.tsx"
3810
+ ],
3811
+ "styles": [
3812
+ {
3813
+ "key": "voice-waveform-live",
3814
+ "label": "voice-waveform-live",
3815
+ "description": "录音胶囊实时声纹——64 根细竖条随\"说话\"起伏,说话时中部高耸、停顿缩成点线,波形从右往左滚动;说→停→说→提交塌缩的完整表演",
3816
+ "use": "",
3817
+ "implementation_status": "implemented",
3818
+ "usage_document": "cards/voice-waveform-live/README.md",
3819
+ "source_files": [
3820
+ "source/demos/voice-waveform-live/VoiceWaveformLive.tsx"
3821
+ ]
3822
+ }
3823
+ ]
3824
+ },
3825
+ {
3826
+ "name": "wall-reveal-moves",
3827
+ "summary": "整墙批量入场三式——bento 逐格点亮、网格波浪翻面、蓝图描线成形,全部原位显形不位移,与 deck-deal-flyin 的飞入位移型互补成品类矩阵",
3828
+ "use": "功能墙/卡片墙/整页界面的整体亮相;内容已在原位、要\"显形\"而非\"涌入\"的段落",
3829
+ "duration": "单式约 4.3–5s(A 150f / B 130f / C 150f @30fps,含建立 hold 与静止收尾)",
3830
+ "energy": "中",
3831
+ "intention": "\"一墙内容怎么出场\"库内此前只有 deck-deal-flyin 一个答案——高能量、位移型、\r\n\"东西涌进来\"。但不是每面墙都该涌:品牌段要庄重、功能墙要轻快、\r\n\"从设计到实物\"要讲工序。这三式共同点是**非位移批量入场**——元素原地显形,\r\n版式从第一帧就成立,观众看的是\"状态变化的波前扫过一面墙\"而不是\"物体飞行\"。\r\n选型先问一句:这面墙该\"涌进来\"还是\"亮起来\"?前者去 deck-deal-flyin,后者进本卡。",
3832
+ "usage_document": "cards/wall-reveal-moves/README.md",
3833
+ "dependencies": [
3834
+ "react",
3835
+ "remotion"
3836
+ ],
3837
+ "code_status": "source-available",
3838
+ "source_files": [
3839
+ "source/demos/wall-reveal-moves/BentoLightUp.tsx"
3840
+ ],
3841
+ "styles": [
3842
+ {
3843
+ "key": "bento-light-up",
3844
+ "label": "bento-light-up 逐格点亮",
3845
+ "description": "暗场 3×2 bento 墙压暗待命,琥珀流光逐格描边一圈、内容随即提亮上浮,全亮后镜头缓推收住",
3846
+ "use": "内容庄重/暗场品牌段;节奏沉稳的功能总览",
3847
+ "implementation_status": "implemented",
3848
+ "usage_document": "cards/wall-reveal-moves/README.md",
3849
+ "source_files": [
3850
+ "source/demos/wall-reveal-moves/BentoLightUp.tsx"
3851
+ ]
3852
+ },
3853
+ {
3854
+ "key": "grid-wave-flip",
3855
+ "label": "grid-wave-flip 波浪翻面",
3856
+ "description": "3×3 灰背卡墙沿对角线波前依次 rotateX 原位翻转 180°,翻出正面内容,尾张过冲回弹",
3857
+ "use": "轻快功能墙;一秒扫完全屏的快节奏段",
3858
+ "implementation_status": "reference-only",
3859
+ "usage_document": "cards/wall-reveal-moves/README.md",
3860
+ "source_files": []
3861
+ },
3862
+ {
3863
+ "key": "wireframe-draw-on",
3864
+ "label": "wireframe-draw-on 蓝图描线成形",
3865
+ "description": "界面先以 SVG 细线蓝图分组描画,再一条琥珀发光竖线左→右扫过,扫过处线框实体化成真实界面",
3866
+ "use": "\"从设计到实物/从想法到产品\"叙事;产品首次整体亮相",
3867
+ "implementation_status": "reference-only",
3868
+ "usage_document": "cards/wall-reveal-moves/README.md",
3869
+ "source_files": []
3870
+ }
3871
+ ]
3872
+ },
3873
+ {
3874
+ "name": "wipe-transitions",
3875
+ "summary": "几何擦除转场两式——clock-wipe 时钟扫描(雷达指针扫一圈换页)与 blinds-slice 百叶窗切条(12 竖条错峰翻换成波)",
3876
+ "use": "新旧页都不动、一条几何边界扫过完成交接的通用转场;不依赖构图里有合适元素,哪儿都能用",
3877
+ "duration": "单式 前态 ≥20f + 擦除 32–60f + 收尾 ≥40f,约 5s(150f)",
3878
+ "energy": "中",
3879
+ "intention": "转场库已有三族:穿越系(钻进去)、藏切系(遮住切)、体块系(页面是\r\n实体)。本卡是第四族**几何擦除系**——新旧页都不动,一条几何边界扫过\r\n完成交接,擦除的形状即语义:A 圆扫是\"仪表盘刷新了一屏数据\",B 条扫\r\n是\"百叶窗逐叶翻面换页\"。与 shot-transitions F 元素遮罩擦除的区别:\r\nF 用页面内真实元素当遮罩(依赖构图),本卡是纯几何形——通用性即定位。\r\n按语义选:数据刷新用 A,横向推进翻页用 B。",
3880
+ "usage_document": "cards/wipe-transitions/README.md",
3881
+ "dependencies": [
3882
+ "react",
3883
+ "remotion"
3884
+ ],
3885
+ "code_status": "source-available",
3886
+ "source_files": [
3887
+ "source/demos/wipe-transitions/BlindsSlice.tsx",
3888
+ "source/demos/wipe-transitions/ClockWipe.tsx"
3889
+ ],
3890
+ "styles": [
3891
+ {
3892
+ "key": "clock-wipe",
3893
+ "label": "clock-wipe",
3894
+ "description": "B 页上层套扇形 clip-path polygon,指针从屏心 12 点顺时针匀速扫 360°,扫过处露 B;扫描沿带多层亮线",
3895
+ "use": "数据/状态刷新语义;仪表盘类页面",
3896
+ "implementation_status": "implemented",
3897
+ "usage_document": "cards/wipe-transitions/README.md",
3898
+ "source_files": [
3899
+ "source/demos/wipe-transitions/ClockWipe.tsx"
3900
+ ]
3901
+ },
3902
+ {
3903
+ "key": "blinds-slice",
3904
+ "label": "blinds-slice",
3905
+ "description": "12 根 160px 竖条 overflow hidden + 内层整页负 margin 对位;条内 A scaleX(1-p) 左缘收缩、B scaleX(p) 右缘展开,错峰 delay 成波,缝上亮线随波扫",
3906
+ "use": "翻页/推进语义;横向阅读动线页面",
3907
+ "implementation_status": "implemented",
3908
+ "usage_document": "cards/wipe-transitions/README.md",
3909
+ "source_files": [
3910
+ "source/demos/wipe-transitions/BlindsSlice.tsx"
3911
+ ]
3912
+ }
3913
+ ]
3914
+ },
3915
+ {
3916
+ "name": "word-relay-filmstrip",
3917
+ "summary": "左列黑白相间等高页面卡步进滚动、右侧衬线大词原位接力(名词恒定+动词轮换)——切词瞬间才滚动一格,词块垂直中心与当前页面卡中点精确对齐",
3918
+ "use": "\"一个主体 × 多种能力\"的枚举段(Computer researches/builds/codes…);作品集/案例流展示;产品多场景巡礼",
3919
+ "duration": "每词期 ~1.5–2s × 3–4 词;全段 5–7s",
3920
+ "energy": "中低(编辑部气质,节奏靠切词的\"咔哒\"感)",
3921
+ "intention": "左边是证据(页面截图胶片),右边是论点(大词):动词换一次,\r\n胶片就步进一格给出新证据——文字与画面互为注脚。命门是**步进制**:\r\n左列平时完全静止,只在切词瞬间滚动一格(滚动=换证据的机械动作),\r\n持续滚动会让左列沦为背景装饰、切词失去\"咔哒\"感。第二命门是\r\n**对齐**:大词块垂直中心必须与当前页面卡中点精确对齐(像素级),\r\n歪了整个版式的\"编辑部严谨感\"就塌了。",
3922
+ "usage_document": "cards/word-relay-filmstrip/README.md",
3923
+ "dependencies": [
3924
+ "react",
3925
+ "remotion"
3926
+ ],
3927
+ "code_status": "source-available",
3928
+ "source_files": [
3929
+ "source/demos/word-relay-filmstrip/WordRelayFilmstrip.tsx"
3930
+ ],
3931
+ "styles": [
3932
+ {
3933
+ "key": "word-relay-filmstrip",
3934
+ "label": "word-relay-filmstrip",
3935
+ "description": "左列黑白相间等高页面卡步进滚动、右侧衬线大词原位接力(名词恒定+动词轮换)——切词瞬间才滚动一格,词块垂直中心与当前页面卡中点精确对齐",
3936
+ "use": "",
3937
+ "implementation_status": "implemented",
3938
+ "usage_document": "cards/word-relay-filmstrip/README.md",
3939
+ "source_files": [
3940
+ "source/demos/word-relay-filmstrip/WordRelayFilmstrip.tsx"
3941
+ ]
3942
+ }
3943
+ ]
3944
+ }
3945
+ ]
3946
+ }