dsh-drawai 0.3.4 → 0.4.1

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 (538) hide show
  1. package/LICENSE +4154 -0
  2. package/README.md +49 -11
  3. package/lib/audio-media.js +150 -0
  4. package/lib/audio-service.js +66 -0
  5. package/lib/canvas-format.js +134 -0
  6. package/lib/client.js +5090 -184
  7. package/lib/comfyui-default-workflow.mjs +1825 -0
  8. package/lib/comfyui-workflow.mjs +426 -0
  9. package/lib/document-commands.js +12 -0
  10. package/lib/document-core.js +29 -0
  11. package/lib/drawing-runner.js +6 -4
  12. package/lib/drawing-tasks.js +26 -0
  13. package/lib/ffmpeg-manager.js +1056 -0
  14. package/lib/imagegen.mjs +596 -0
  15. package/lib/index.js +1762 -129
  16. package/lib/media.js +26 -13
  17. package/lib/mgstyle-core.js +75 -0
  18. package/lib/motion/apply.js +181 -0
  19. package/lib/motion/asset-pack-lock.js +10 -0
  20. package/lib/motion/asset-pack.js +335 -0
  21. package/lib/motion/assets.js +291 -0
  22. package/lib/motion/audio.js +103 -0
  23. package/lib/motion/audiolevel.js +63 -0
  24. package/lib/motion/audiomix.js +144 -0
  25. package/lib/motion/beats.js +338 -0
  26. package/lib/motion/builtin-assets.js +62 -0
  27. package/lib/motion/canvas-spec.js +442 -0
  28. package/lib/motion/capture.js +95 -0
  29. package/lib/motion/cards.js +80 -0
  30. package/lib/motion/collect.js +449 -0
  31. package/lib/motion/delivery.js +140 -0
  32. package/lib/motion/edge-speech.py +90 -0
  33. package/lib/motion/entry.jsx +73 -0
  34. package/lib/motion/export.js +200 -0
  35. package/lib/motion/ffmpeg.js +43 -0
  36. package/lib/motion/fonts.js +71 -0
  37. package/lib/motion/jobs.js +117 -0
  38. package/lib/motion/json.js +4 -0
  39. package/lib/motion/media-catalog.js +59 -0
  40. package/lib/motion/mgstyles/BRIEF-TEMPLATE.md +63 -0
  41. package/lib/motion/mgstyles/briefs/01-flat-vector.md +104 -0
  42. package/lib/motion/mgstyles/briefs/02-line-art.md +97 -0
  43. package/lib/motion/mgstyles/briefs/03-isometric.md +108 -0
  44. package/lib/motion/mgstyles/briefs/05-cel-boil.md +145 -0
  45. package/lib/motion/mgstyles/briefs/06-collage.md +149 -0
  46. package/lib/motion/mgstyles/briefs/07-liquid.md +106 -0
  47. package/lib/motion/mgstyles/briefs/08-morph.md +111 -0
  48. package/lib/motion/mgstyles/briefs/09-bauhaus.md +150 -0
  49. package/lib/motion/mgstyles/briefs/10-synthwave.md +151 -0
  50. package/lib/motion/mgstyles/briefs/12-aurora-glass.md +147 -0
  51. package/lib/motion/mgstyles/briefs/18-hanazi.md +140 -0
  52. package/lib/motion/mgstyles/briefs/19-paperclip.md +156 -0
  53. package/lib/motion/mgstyles/briefs/20-pixel.md +118 -0
  54. package/lib/motion/mgstyles/briefs/22-hud.md +118 -0
  55. package/lib/motion/mgstyles/catalog.d/01-flat-vector.json +34 -0
  56. package/lib/motion/mgstyles/catalog.d/02-line-art.json +34 -0
  57. package/lib/motion/mgstyles/catalog.d/03-isometric.json +35 -0
  58. package/lib/motion/mgstyles/catalog.d/05-cel-boil.json +28 -0
  59. package/lib/motion/mgstyles/catalog.d/06-collage.json +28 -0
  60. package/lib/motion/mgstyles/catalog.d/07-liquid.json +28 -0
  61. package/lib/motion/mgstyles/catalog.d/08-morph.json +28 -0
  62. package/lib/motion/mgstyles/catalog.d/09-bauhaus.json +28 -0
  63. package/lib/motion/mgstyles/catalog.d/10-synthwave.json +28 -0
  64. package/lib/motion/mgstyles/catalog.d/12-aurora-glass.json +28 -0
  65. package/lib/motion/mgstyles/catalog.d/18-hanazi.json +28 -0
  66. package/lib/motion/mgstyles/catalog.d/19-paperclip.json +28 -0
  67. package/lib/motion/mgstyles/catalog.d/20-pixel.json +28 -0
  68. package/lib/motion/mgstyles/catalog.d/22-hud.json +28 -0
  69. package/lib/motion/mgstyles/catalog.json +1356 -0
  70. package/lib/motion/mgstyles/upstream/README.md +147 -0
  71. package/lib/motion/mgstyles/upstream/README.zh-CN.md +147 -0
  72. package/lib/motion/mgstyles/upstream/demos/01-flat-vector/cues.json +1 -0
  73. package/lib/motion/mgstyles/upstream/demos/01-flat-vector/index.html +712 -0
  74. package/lib/motion/mgstyles/upstream/demos/02-line-art/cues.json +331 -0
  75. package/lib/motion/mgstyles/upstream/demos/02-line-art/film.js +676 -0
  76. package/lib/motion/mgstyles/upstream/demos/02-line-art/index.html +18 -0
  77. package/lib/motion/mgstyles/upstream/demos/02-line-art/tools/dump_timing.mjs +26 -0
  78. package/lib/motion/mgstyles/upstream/demos/03-isometric/cues.json +109 -0
  79. package/lib/motion/mgstyles/upstream/demos/03-isometric/index.html +25 -0
  80. package/lib/motion/mgstyles/upstream/demos/03-isometric/js/anim.js +82 -0
  81. package/lib/motion/mgstyles/upstream/demos/03-isometric/js/main.js +219 -0
  82. package/lib/motion/mgstyles/upstream/demos/03-isometric/js/night5.js +180 -0
  83. package/lib/motion/mgstyles/upstream/demos/03-isometric/js/render.js +202 -0
  84. package/lib/motion/mgstyles/upstream/demos/03-isometric/js/title.js +167 -0
  85. package/lib/motion/mgstyles/upstream/demos/03-isometric/js/title5.js +294 -0
  86. package/lib/motion/mgstyles/upstream/demos/03-isometric/js/ui.js +141 -0
  87. package/lib/motion/mgstyles/upstream/demos/03-isometric/js/world.js +1399 -0
  88. package/lib/motion/mgstyles/upstream/demos/05-cel-boil/cues.json +157 -0
  89. package/lib/motion/mgstyles/upstream/demos/05-cel-boil/index.html +34 -0
  90. package/lib/motion/mgstyles/upstream/demos/05-cel-boil/js/engine.js +326 -0
  91. package/lib/motion/mgstyles/upstream/demos/05-cel-boil/js/scene.js +2036 -0
  92. package/lib/motion/mgstyles/upstream/demos/06-collage/assets/gen/layout.json +157 -0
  93. package/lib/motion/mgstyles/upstream/demos/06-collage/cues.json +80 -0
  94. package/lib/motion/mgstyles/upstream/demos/06-collage/index.html +889 -0
  95. package/lib/motion/mgstyles/upstream/demos/07-liquid/cues.json +100 -0
  96. package/lib/motion/mgstyles/upstream/demos/07-liquid/index.html +108 -0
  97. package/lib/motion/mgstyles/upstream/demos/07-liquid/js/engine.js +153 -0
  98. package/lib/motion/mgstyles/upstream/demos/07-liquid/js/links.js +64 -0
  99. package/lib/motion/mgstyles/upstream/demos/07-liquid/js/lookdev.js +46 -0
  100. package/lib/motion/mgstyles/upstream/demos/07-liquid/js/scene.js +963 -0
  101. package/lib/motion/mgstyles/upstream/demos/07-liquid/js/shaders.js +647 -0
  102. package/lib/motion/mgstyles/upstream/demos/07-liquid/js/textsdf.js +114 -0
  103. package/lib/motion/mgstyles/upstream/demos/07-liquid/js/type.js +50 -0
  104. package/lib/motion/mgstyles/upstream/demos/08-morph/cues.json +131 -0
  105. package/lib/motion/mgstyles/upstream/demos/08-morph/glyphs.json +1 -0
  106. package/lib/motion/mgstyles/upstream/demos/08-morph/index.html +901 -0
  107. package/lib/motion/mgstyles/upstream/demos/09-bauhaus/cues.json +270 -0
  108. package/lib/motion/mgstyles/upstream/demos/09-bauhaus/film.js +697 -0
  109. package/lib/motion/mgstyles/upstream/demos/09-bauhaus/index.html +12 -0
  110. package/lib/motion/mgstyles/upstream/demos/10-synthwave/cues.json +44 -0
  111. package/lib/motion/mgstyles/upstream/demos/10-synthwave/index.html +1028 -0
  112. package/lib/motion/mgstyles/upstream/demos/12-aurora-glass/cues.json +67 -0
  113. package/lib/motion/mgstyles/upstream/demos/12-aurora-glass/index.html +16 -0
  114. package/lib/motion/mgstyles/upstream/demos/12-aurora-glass/main.js +967 -0
  115. package/lib/motion/mgstyles/upstream/demos/12-aurora-glass/shaders.js +468 -0
  116. package/lib/motion/mgstyles/upstream/demos/18-hanazi/cues.json +117 -0
  117. package/lib/motion/mgstyles/upstream/demos/18-hanazi/index.html +541 -0
  118. package/lib/motion/mgstyles/upstream/demos/19-paperclip/assets/countries-110m.json +1 -0
  119. package/lib/motion/mgstyles/upstream/demos/19-paperclip/assets/stickers/meta.json +34 -0
  120. package/lib/motion/mgstyles/upstream/demos/19-paperclip/cues.json +285 -0
  121. package/lib/motion/mgstyles/upstream/demos/19-paperclip/index.html +599 -0
  122. package/lib/motion/mgstyles/upstream/demos/20-pixel/cues.json +42 -0
  123. package/lib/motion/mgstyles/upstream/demos/20-pixel/film.js +914 -0
  124. package/lib/motion/mgstyles/upstream/demos/20-pixel/index.html +18 -0
  125. package/lib/motion/mgstyles/upstream/demos/22-hud/cues.json +108 -0
  126. package/lib/motion/mgstyles/upstream/demos/22-hud/index.html +125 -0
  127. package/lib/motion/mgstyles/upstream/demos/22-hud/js/holo.js +275 -0
  128. package/lib/motion/mgstyles/upstream/demos/22-hud/js/hud.js +855 -0
  129. package/lib/motion/mgstyles/upstream/demos/22-hud/js/post.js +150 -0
  130. package/lib/motion/mgstyles/upstream/demos/22-hud/js/util.js +65 -0
  131. package/lib/motion/mgstyles/upstream/demos/22-hud/js/v5.js +142 -0
  132. package/lib/motion/mgstyles/upstream/harness/render.mjs +319 -0
  133. package/lib/motion/mgstyles/upstream/manifest.json +269 -0
  134. package/lib/motion/mgstyles/upstream/prompts/01-flat-vector.md +98 -0
  135. package/lib/motion/mgstyles/upstream/prompts/02-line-art.md +95 -0
  136. package/lib/motion/mgstyles/upstream/prompts/03-isometric.md +97 -0
  137. package/lib/motion/mgstyles/upstream/prompts/05-cel-boil.md +95 -0
  138. package/lib/motion/mgstyles/upstream/prompts/06-collage.md +95 -0
  139. package/lib/motion/mgstyles/upstream/prompts/07-liquid.md +98 -0
  140. package/lib/motion/mgstyles/upstream/prompts/08-morph.md +95 -0
  141. package/lib/motion/mgstyles/upstream/prompts/09-bauhaus.md +96 -0
  142. package/lib/motion/mgstyles/upstream/prompts/10-synthwave.md +95 -0
  143. package/lib/motion/mgstyles/upstream/prompts/12-aurora-glass.md +96 -0
  144. package/lib/motion/mgstyles/upstream/prompts/18-hanazi.md +95 -0
  145. package/lib/motion/mgstyles/upstream/prompts/19-paperclip.md +96 -0
  146. package/lib/motion/mgstyles/upstream/prompts/20-pixel.md +96 -0
  147. package/lib/motion/mgstyles/upstream/prompts/22-hud.md +95 -0
  148. package/lib/motion/mgstyles/upstream/rubric.md +51 -0
  149. package/lib/motion/mgstyles/upstream/template.md +36 -0
  150. package/lib/motion/pixelqa.js +198 -0
  151. package/lib/motion/preview.js +97 -0
  152. package/lib/motion/project.js +395 -0
  153. package/lib/motion/qa.js +290 -0
  154. package/lib/motion/reference-media.jsx +10 -0
  155. package/lib/motion/render-settings.js +112 -0
  156. package/lib/motion/render.js +161 -0
  157. package/lib/motion/runtime/package-lock.json +3058 -0
  158. package/lib/motion/runtime/package.json +16 -0
  159. package/lib/motion/scene-kit.js +183 -0
  160. package/lib/motion/sfx.js +232 -0
  161. package/lib/motion/shotcraft/ClipCard.tsx +204 -0
  162. package/lib/motion/shotcraft/catalog.json +2461 -0
  163. package/lib/motion/shotcraft/upstream/SKILL.md +286 -0
  164. package/lib/motion/shotcraft/upstream/assets/lib/Caption.tsx +54 -0
  165. package/lib/motion/shotcraft/upstream/assets/lib/ClipCard.tsx +200 -0
  166. package/lib/motion/shotcraft/upstream/assets/lib/DigitRoll.tsx +45 -0
  167. package/lib/motion/shotcraft/upstream/assets/lib/FlashCut.tsx +20 -0
  168. package/lib/motion/shotcraft/upstream/assets/lib/FlatPanel.tsx +65 -0
  169. package/lib/motion/shotcraft/upstream/assets/lib/PageCam.tsx +151 -0
  170. package/lib/motion/shotcraft/upstream/assets/lib/VerticalTicker.tsx +129 -0
  171. package/lib/motion/shotcraft/upstream/assets/lib/helpers/camera.tsx +75 -0
  172. package/lib/motion/shotcraft/upstream/assets/lib/helpers/motion.ts +40 -0
  173. package/lib/motion/shotcraft/upstream/assets/lib/helpers/rand.ts +11 -0
  174. package/lib/motion/shotcraft/upstream/assets/lib/helpers/shake.ts +10 -0
  175. package/lib/motion/shotcraft/upstream/assets/scripts/__pycache__/sfx-source.cpython-313.pyc +0 -0
  176. package/lib/motion/shotcraft/upstream/assets/scripts/build-readme-cover.mjs +49 -0
  177. package/lib/motion/shotcraft/upstream/assets/scripts/capture-template.mjs +210 -0
  178. package/lib/motion/shotcraft/upstream/assets/scripts/sfx-source.py +423 -0
  179. package/lib/motion/shotcraft/upstream/assets/scripts/smoke-render-demos.py +170 -0
  180. package/lib/motion/shotcraft/upstream/assets/scripts/test_sfx_source.py +157 -0
  181. package/lib/motion/shotcraft/upstream/demos/README.md +120 -0
  182. package/lib/motion/shotcraft/upstream/demos/_fixtures/Brand.tsx +112 -0
  183. package/lib/motion/shotcraft/upstream/demos/_fixtures/Fixtures.tsx +647 -0
  184. package/lib/motion/shotcraft/upstream/demos/_fixtures/Look.tsx +316 -0
  185. package/lib/motion/shotcraft/upstream/demos/_fixtures/Motion.tsx +82 -0
  186. package/lib/motion/shotcraft/upstream/demos/_fixtures/PageCam2D.tsx +115 -0
  187. package/lib/motion/shotcraft/upstream/demos/_fixtures/Polish.tsx +243 -0
  188. package/lib/motion/shotcraft/upstream/demos/_textures/live-layout.json +389 -0
  189. package/lib/motion/shotcraft/upstream/demos/camera/basic-3d-scene/Basic3DScene.tsx +250 -0
  190. package/lib/motion/shotcraft/upstream/demos/camera/crash-zoom-punch/CrashImpactReal.tsx +305 -0
  191. package/lib/motion/shotcraft/upstream/demos/camera/crash-zoom-punch/CrashZoomReal.tsx +246 -0
  192. package/lib/motion/shotcraft/upstream/demos/camera/cursor-flyover/CursorFlyover.tsx +390 -0
  193. package/lib/motion/shotcraft/upstream/demos/camera/depth-layer-moves/MultiplaneReal.tsx +138 -0
  194. package/lib/motion/shotcraft/upstream/demos/camera/graze-face-tour/GrazeFaceTour.tsx +542 -0
  195. package/lib/motion/shotcraft/upstream/demos/camera/overhead-camera-moves/OverheadTabletopDrop.tsx +315 -0
  196. package/lib/motion/shotcraft/upstream/demos/camera/overhead-camera-moves/TiltReveal.tsx +299 -0
  197. package/lib/motion/shotcraft/upstream/demos/camera/space-camera-moves/DroneDiveLanding.tsx +173 -0
  198. package/lib/motion/shotcraft/upstream/demos/camera/space-camera-moves/ExplodedView.tsx +348 -0
  199. package/lib/motion/shotcraft/upstream/demos/camera/steep-tilt-glide/SteepTiltGlide.tsx +366 -0
  200. package/lib/motion/shotcraft/upstream/demos/camera/tension-camera-moves/BulletTimeFreezeOrbit.tsx +279 -0
  201. package/lib/motion/shotcraft/upstream/demos/camera/tension-camera-moves/PullBackIsolation.tsx +184 -0
  202. package/lib/motion/shotcraft/upstream/demos/camera/terminal-3d/Terminal3D.tsx +390 -0
  203. package/lib/motion/shotcraft/upstream/demos/data/before-after-slider-scrub/BeforeAfterSliderScrub.tsx +155 -0
  204. package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/AxisRescaleShockV2.tsx +303 -0
  205. package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/OscilloscopeStreamV2.tsx +290 -0
  206. package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/UnitDotSwarmRegroupV2.tsx +278 -0
  207. package/lib/motion/shotcraft/upstream/demos/data/gauge-readout-moves/NeedleSweepSelftest.tsx +307 -0
  208. package/lib/motion/shotcraft/upstream/demos/data/gauge-readout-moves/TapeScrollFixedPointer.tsx +215 -0
  209. package/lib/motion/shotcraft/upstream/demos/data/scroll-brake-moves/BrakeReticleLock.tsx +299 -0
  210. package/lib/motion/shotcraft/upstream/demos/data/scroll-brake-moves/ChangelogScrollBrake.tsx +232 -0
  211. package/lib/motion/shotcraft/upstream/demos/data/timeline-travel/TimelineTravel.tsx +290 -0
  212. package/lib/motion/shotcraft/upstream/demos/effects/assemble-then-type-flyin/AssembleThenTypeFlyin.tsx +273 -0
  213. package/lib/motion/shotcraft/upstream/demos/effects/aurora-bloom-bg-flip/AuroraBloomBgFlip.tsx +167 -0
  214. package/lib/motion/shotcraft/upstream/demos/effects/brand-frame-snap/BrandFrameSnap.tsx +536 -0
  215. package/lib/motion/shotcraft/upstream/demos/effects/fui-hud-moves/ReticleLockOn.tsx +164 -0
  216. package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/FlylineArc.tsx +175 -0
  217. package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/GlowOrbAmbient.tsx +197 -0
  218. package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/OrbFlylineRelay.tsx +241 -0
  219. package/lib/motion/shotcraft/upstream/demos/effects/icon-performance-moves/AttentionBounce.tsx +279 -0
  220. package/lib/motion/shotcraft/upstream/demos/effects/impact-feedback/AnimeImpact.tsx +230 -0
  221. package/lib/motion/shotcraft/upstream/demos/effects/impact-feedback/HitCounter.tsx +345 -0
  222. package/lib/motion/shotcraft/upstream/demos/effects/light-play-moves/SheenSweepRetry.tsx +275 -0
  223. package/lib/motion/shotcraft/upstream/demos/effects/light-play-moves/SpotlightSweepReveal.tsx +229 -0
  224. package/lib/motion/shotcraft/upstream/demos/effects/radial-ripple-phone-chips/RadialRipplePhoneChips.tsx +312 -0
  225. package/lib/motion/shotcraft/upstream/demos/effects/riso-print-hits/RisoMisregistrationHit.tsx +222 -0
  226. package/lib/motion/shotcraft/upstream/demos/effects/scan-bracket-sweep/ScanBracketSweep.tsx +295 -0
  227. package/lib/motion/shotcraft/upstream/demos/effects/scanline-annotate-focus/ScanlineAnnotateFocus.tsx +329 -0
  228. package/lib/motion/shotcraft/upstream/demos/effects/scanline-assemble-flyin/ScanlineAssembleFlyin.tsx +315 -0
  229. package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/ImpactBurstKit.tsx +264 -0
  230. package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/KanadaPerspectiveSnap.tsx +260 -0
  231. package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/ScoreSlam.tsx +263 -0
  232. package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/CornerSpotlightReveal.tsx +123 -0
  233. package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/GlowWakeSleepPanel.tsx +187 -0
  234. package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/SlideSpotlightPan.tsx +175 -0
  235. package/lib/motion/shotcraft/upstream/demos/interaction/autolayout-gap-dial/AutolayoutGapDial.tsx +305 -0
  236. package/lib/motion/shotcraft/upstream/demos/interaction/canvas-materialize-moves/DiagramCascadeBuild.tsx +350 -0
  237. package/lib/motion/shotcraft/upstream/demos/interaction/canvas-materialize-moves/PanelToCanvasMaterialize.tsx +352 -0
  238. package/lib/motion/shotcraft/upstream/demos/interaction/chip-grid-single-select-blackout/ChipGridSingleSelectBlackout.tsx +218 -0
  239. package/lib/motion/shotcraft/upstream/demos/interaction/collab-cursor-moves/CursorCastEnsemble.tsx +297 -0
  240. package/lib/motion/shotcraft/upstream/demos/interaction/glass-pill-dictation-typing/GlassPillDictationTyping.tsx +157 -0
  241. package/lib/motion/shotcraft/upstream/demos/interaction/hashtag-to-pill-materialize/HashtagToPillMaterialize.tsx +218 -0
  242. package/lib/motion/shotcraft/upstream/demos/interaction/picker-carousel-feature-cycle/PickerCarouselFeatureCycle.tsx +202 -0
  243. package/lib/motion/shotcraft/upstream/demos/interaction/segmented-thumb-hero/SegmentedThumbHero.tsx +265 -0
  244. package/lib/motion/shotcraft/upstream/demos/interaction/theme-switch-moves/PaletteThemeRipple.tsx +457 -0
  245. package/lib/motion/shotcraft/upstream/demos/interaction/theme-switch-moves/ThemeSweepToggle.tsx +446 -0
  246. package/lib/motion/shotcraft/upstream/demos/interaction/type-and-filter/TypeAndFilter.tsx +249 -0
  247. package/lib/motion/shotcraft/upstream/demos/interaction/voice-waveform-live/VoiceWaveformLive.tsx +278 -0
  248. package/lib/motion/shotcraft/upstream/demos/opening/crane-rise-reveal/CraneRiseReveal.tsx +332 -0
  249. package/lib/motion/shotcraft/upstream/demos/opening/dataviz-landscape-open/DatavizLandscapeOpen.tsx +358 -0
  250. package/lib/motion/shotcraft/upstream/demos/opening/fracture/Fracture.tsx +201 -0
  251. package/lib/motion/shotcraft/upstream/demos/opening/icon-field-colorize/IconFieldColorize.tsx +200 -0
  252. package/lib/motion/shotcraft/upstream/demos/opening/letterspace-materialize/LetterspaceMaterialize.tsx +208 -0
  253. package/lib/motion/shotcraft/upstream/demos/opening/magician-card-flourish/MagicianCardFlourish.tsx +341 -0
  254. package/lib/motion/shotcraft/upstream/demos/opening/orbit-ring-title-open/OrbitRingTitleOpen.tsx +389 -0
  255. package/lib/motion/shotcraft/upstream/demos/opening/spotlight-hero-card/SpotlightHeroCard.tsx +293 -0
  256. package/lib/motion/shotcraft/upstream/demos/opening/stroke-segment-build/StrokeSegmentBuild.tsx +183 -0
  257. package/lib/motion/shotcraft/upstream/demos/opening/text-as-mask/TextAsMask.tsx +245 -0
  258. package/lib/motion/shotcraft/upstream/demos/outro/grain-dissolve/GrainDissolve.tsx +222 -0
  259. package/lib/motion/shotcraft/upstream/demos/outro/logo-shrink-wordmark-lockup/LogoShrinkWordmarkLockup.tsx +223 -0
  260. package/lib/motion/shotcraft/upstream/demos/outro/neon-triple-marquee/NeonTripleMarquee.tsx +217 -0
  261. package/lib/motion/shotcraft/upstream/demos/outro/outro-group-photo-launch/OutroGroupPhotoLaunch.tsx +343 -0
  262. package/lib/motion/shotcraft/upstream/demos/outro/ui-strip-away-outro/UiStripAwayOutro.tsx +357 -0
  263. package/lib/motion/shotcraft/upstream/demos/outro/ui-to-brand-morph/IconFlipBloomLogo.tsx +187 -0
  264. package/lib/motion/shotcraft/upstream/demos/outro/ui-to-brand-morph/InputMorphsIntoLogo.tsx +333 -0
  265. package/lib/motion/shotcraft/upstream/demos/rhythm/beat-cut-moves/PaparazziFlash.tsx +274 -0
  266. package/lib/motion/shotcraft/upstream/demos/rhythm/beat-step-list-theme-cycle/BeatStepListThemeCycle.tsx +270 -0
  267. package/lib/motion/shotcraft/upstream/demos/rhythm/panel-grid-moves/ComicPanelSplit.tsx +430 -0
  268. package/lib/motion/shotcraft/upstream/demos/rhythm/quad-split-parallel-scenes/QuadSplitParallelScenes.tsx +252 -0
  269. package/lib/motion/shotcraft/upstream/demos/rhythm/rhythm-interrupt-moves/JumpCutPunchIn.tsx +106 -0
  270. package/lib/motion/shotcraft/upstream/demos/rhythm/sakuga-timing-shift/SakugaTimingShift.tsx +288 -0
  271. package/lib/motion/shotcraft/upstream/demos/rhythm/speed-ramp-freeze/FreezeAnnotateReal.tsx +362 -0
  272. package/lib/motion/shotcraft/upstream/demos/rhythm/trailer-grammar-moves/TrailerBumper.tsx +168 -0
  273. package/lib/motion/shotcraft/upstream/demos/transition/bottom-push-stack-wipe/BottomPushStackWipe.tsx +310 -0
  274. package/lib/motion/shotcraft/upstream/demos/transition/card-flip-reveal/CardFlipReveal.tsx +261 -0
  275. package/lib/motion/shotcraft/upstream/demos/transition/card-flock-tumble/CardFlockTumble.tsx +459 -0
  276. package/lib/motion/shotcraft/upstream/demos/transition/circle-match-iris/CircleMatchIris.tsx +294 -0
  277. package/lib/motion/shotcraft/upstream/demos/transition/gradient-transition/GradientTransition.tsx +161 -0
  278. package/lib/motion/shotcraft/upstream/demos/transition/line-carry-transition/LineCarryTransition.tsx +248 -0
  279. package/lib/motion/shotcraft/upstream/demos/transition/mosaic-reframe/MosaicReframe.tsx +359 -0
  280. package/lib/motion/shotcraft/upstream/demos/transition/page-turn-transitions/BarnDoorSplit.tsx +227 -0
  281. package/lib/motion/shotcraft/upstream/demos/transition/print-texture-transitions/InkBleedReveal.tsx +162 -0
  282. package/lib/motion/shotcraft/upstream/demos/transition/shot-transitions/PortalWipeV2.tsx +248 -0
  283. package/lib/motion/shotcraft/upstream/demos/transition/shot-transitions/WhipBrakeReal.tsx +186 -0
  284. package/lib/motion/shotcraft/upstream/demos/transition/tear-streak-transitions/GlitchDisplace.tsx +355 -0
  285. package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/InvisibleCut.tsx +272 -0
  286. package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/LightLeakBurn.tsx +262 -0
  287. package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/VersusSlam.tsx +217 -0
  288. package/lib/motion/shotcraft/upstream/demos/transition/transition-travel/LetterformZoom.tsx +285 -0
  289. package/lib/motion/shotcraft/upstream/demos/transition/white-flash-logo-simplify-cut/WhiteFlashLogoSimplifyCut.tsx +205 -0
  290. package/lib/motion/shotcraft/upstream/demos/transition/wipe-transitions/BlindsSlice.tsx +178 -0
  291. package/lib/motion/shotcraft/upstream/demos/typography/blur-slide/BlurSlide.tsx +147 -0
  292. package/lib/motion/shotcraft/upstream/demos/typography/brace-expand/BraceExpand.tsx +143 -0
  293. package/lib/motion/shotcraft/upstream/demos/typography/brand-ink-open/BrandInkOpen.tsx +134 -0
  294. package/lib/motion/shotcraft/upstream/demos/typography/countdown-arc-scatter/CountdownArcScatter.tsx +217 -0
  295. package/lib/motion/shotcraft/upstream/demos/typography/flying-words/FlyingWords.tsx +198 -0
  296. package/lib/motion/shotcraft/upstream/demos/typography/glitch-cycle/GlitchCycle.tsx +221 -0
  297. package/lib/motion/shotcraft/upstream/demos/typography/gradient-word-sweep/GradientWordSweep.tsx +312 -0
  298. package/lib/motion/shotcraft/upstream/demos/typography/lead-word-zoom-assemble/LeadWordZoomAssemble.tsx +261 -0
  299. package/lib/motion/shotcraft/upstream/demos/typography/marker-underline-title/MarkerUnderlineTitle.tsx +121 -0
  300. package/lib/motion/shotcraft/upstream/demos/typography/outline-word-fill/OutlineWordFill.tsx +153 -0
  301. package/lib/motion/shotcraft/upstream/demos/typography/paper-title-card/PaperTitleCard.tsx +179 -0
  302. package/lib/motion/shotcraft/upstream/demos/typography/pill-chip-slot-cycle-handled/PillChipSlotCycleHandled.tsx +140 -0
  303. package/lib/motion/shotcraft/upstream/demos/typography/pill-slot-cycle/PillSlotCycle.tsx +309 -0
  304. package/lib/motion/shotcraft/upstream/demos/typography/text-column-converge/TextColumnConverge.tsx +191 -0
  305. package/lib/motion/shotcraft/upstream/demos/typography/title-demote-to-label/TitleDemoteToLabel.tsx +292 -0
  306. package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/LetterformDriftAssembly.tsx +135 -0
  307. package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/SplitTextStagger.tsx +124 -0
  308. package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/TextOnPath.tsx +255 -0
  309. package/lib/motion/shotcraft/upstream/demos/typography/type-entrance-moves/LetterDropPhysics.tsx +173 -0
  310. package/lib/motion/shotcraft/upstream/demos/typography/type-rhythm-sync/FontWeightPump.tsx +225 -0
  311. package/lib/motion/shotcraft/upstream/demos/typography/type-rhythm-sync/KaraokeFillSync.tsx +141 -0
  312. package/lib/motion/shotcraft/upstream/demos/typography/typewriter-moves/TypewriterErrorRetype.tsx +137 -0
  313. package/lib/motion/shotcraft/upstream/demos/typography/vertical-word-roll-blur-cycle/VerticalWordRollBlurCycle.tsx +147 -0
  314. package/lib/motion/shotcraft/upstream/demos/typography/word-relay-filmstrip/WordRelayFilmstrip.tsx +409 -0
  315. package/lib/motion/shotcraft/upstream/demos/typography/word-relay-geometry/WordRelayGeometry.tsx +280 -0
  316. package/lib/motion/shotcraft/upstream/demos/ui-entrance/avatar-bracket-carousel/AvatarBracketCarousel.tsx +271 -0
  317. package/lib/motion/shotcraft/upstream/demos/ui-entrance/bezier-source-converge-merge/BezierSourceConvergeMerge.tsx +385 -0
  318. package/lib/motion/shotcraft/upstream/demos/ui-entrance/card-stack/CardStack.tsx +312 -0
  319. package/lib/motion/shotcraft/upstream/demos/ui-entrance/carousel-3d/Carousel3D.tsx +303 -0
  320. package/lib/motion/shotcraft/upstream/demos/ui-entrance/clipcard-looping/ClipCardLooping.tsx +77 -0
  321. package/lib/motion/shotcraft/upstream/demos/ui-entrance/cloner-depth-echo/ClonerDepthEcho.tsx +311 -0
  322. package/lib/motion/shotcraft/upstream/demos/ui-entrance/deck-deal-flyin/DeckDealFlyin.tsx +307 -0
  323. package/lib/motion/shotcraft/upstream/demos/ui-entrance/doc-park-left-pill-deal/DocParkLeftPillDeal.tsx +349 -0
  324. package/lib/motion/shotcraft/upstream/demos/ui-entrance/document-typewriter-reveal/DocumentTypewriterReveal.tsx +255 -0
  325. package/lib/motion/shotcraft/upstream/demos/ui-entrance/draw-svg-trace/DrawSvgTrace.tsx +244 -0
  326. package/lib/motion/shotcraft/upstream/demos/ui-entrance/element-body-moves/ContactShadowLift.tsx +217 -0
  327. package/lib/motion/shotcraft/upstream/demos/ui-entrance/integration-hub-map/IntegrationHubMap.tsx +652 -0
  328. package/lib/motion/shotcraft/upstream/demos/ui-entrance/list-reveal/ListReveal.tsx +153 -0
  329. package/lib/motion/shotcraft/upstream/demos/ui-entrance/list-stack-press/ListStackPress.tsx +238 -0
  330. package/lib/motion/shotcraft/upstream/demos/ui-entrance/neon-frame-forerun/NeonFrameForerun.tsx +324 -0
  331. package/lib/motion/shotcraft/upstream/demos/ui-entrance/neon-frame-orbit-drop/NeonFrameForerunOrbit.tsx +354 -0
  332. package/lib/motion/shotcraft/upstream/demos/ui-entrance/page-waterfall-wall/PageWaterfallWall.tsx +101 -0
  333. package/lib/motion/shotcraft/upstream/demos/ui-entrance/page-waterfall-wall/VerticalTicker.tsx +129 -0
  334. package/lib/motion/shotcraft/upstream/demos/ui-entrance/product-card-progressive-assemble/ProductCardProgressiveAssemble.tsx +297 -0
  335. package/lib/motion/shotcraft/upstream/demos/ui-entrance/radial-wave/RadialWave.tsx +57 -0
  336. package/lib/motion/shotcraft/upstream/demos/ui-entrance/research-card-stack-scroll/ResearchCardStackScroll.tsx +155 -0
  337. package/lib/motion/shotcraft/upstream/demos/ui-entrance/row-embed/RowEmbed.tsx +175 -0
  338. package/lib/motion/shotcraft/upstream/demos/ui-entrance/value-stagger-gradient/ValueStaggerGradient.tsx +153 -0
  339. package/lib/motion/shotcraft/upstream/demos/ui-entrance/wall-reveal-moves/BentoLightUp.tsx +146 -0
  340. package/lib/motion/shotcraft/upstream/demos/ui-entrance/wall-reveal-moves/WireframeDrawOn.tsx +226 -0
  341. package/lib/motion/shotcraft/upstream/gallery/api/library.json +1 -0
  342. package/lib/motion/shotcraft/upstream/manifest.json +2715 -0
  343. package/lib/motion/shotcraft/upstream/references/aesthetic-rules.md +193 -0
  344. package/lib/motion/shotcraft/upstream/references/final-review.md +121 -0
  345. package/lib/motion/shotcraft/upstream/references/guided-free-creation.md +199 -0
  346. package/lib/motion/shotcraft/upstream/references/jianying-export.md +183 -0
  347. package/lib/motion/shotcraft/upstream/references/music-beat-sync.md +257 -0
  348. package/lib/motion/shotcraft/upstream/references/pipeline.md +382 -0
  349. package/lib/motion/shotcraft/upstream/references/publish-upload-post.md +111 -0
  350. package/lib/motion/shotcraft/upstream/references/sequences/promo-energy-arc.md +50 -0
  351. package/lib/motion/shotcraft/upstream/references/sfx-sourcing.md +95 -0
  352. package/lib/motion/shotcraft/upstream/references/shots/camera/basic-3d-scene.md +41 -0
  353. package/lib/motion/shotcraft/upstream/references/shots/camera/crash-zoom-punch.md +52 -0
  354. package/lib/motion/shotcraft/upstream/references/shots/camera/cursor-flyover.md +39 -0
  355. package/lib/motion/shotcraft/upstream/references/shots/camera/depth-layer-moves.md +39 -0
  356. package/lib/motion/shotcraft/upstream/references/shots/camera/graze-face-tour.md +57 -0
  357. package/lib/motion/shotcraft/upstream/references/shots/camera/overhead-camera-moves.md +51 -0
  358. package/lib/motion/shotcraft/upstream/references/shots/camera/space-camera-moves.md +46 -0
  359. package/lib/motion/shotcraft/upstream/references/shots/camera/steep-tilt-glide.md +52 -0
  360. package/lib/motion/shotcraft/upstream/references/shots/camera/tension-camera-moves.md +43 -0
  361. package/lib/motion/shotcraft/upstream/references/shots/camera/terminal-3d.md +42 -0
  362. package/lib/motion/shotcraft/upstream/references/shots/data/before-after-slider-scrub.md +48 -0
  363. package/lib/motion/shotcraft/upstream/references/shots/data/chart-live-moves.md +52 -0
  364. package/lib/motion/shotcraft/upstream/references/shots/data/gauge-readout-moves.md +45 -0
  365. package/lib/motion/shotcraft/upstream/references/shots/data/scroll-brake-moves.md +46 -0
  366. package/lib/motion/shotcraft/upstream/references/shots/data/timeline-travel.md +44 -0
  367. package/lib/motion/shotcraft/upstream/references/shots/effects/assemble-then-type-flyin.md +63 -0
  368. package/lib/motion/shotcraft/upstream/references/shots/effects/aurora-bloom-bg-flip.md +54 -0
  369. package/lib/motion/shotcraft/upstream/references/shots/effects/brand-frame-snap.md +58 -0
  370. package/lib/motion/shotcraft/upstream/references/shots/effects/fui-hud-moves.md +35 -0
  371. package/lib/motion/shotcraft/upstream/references/shots/effects/glow-flyline-moves.md +53 -0
  372. package/lib/motion/shotcraft/upstream/references/shots/effects/icon-performance-moves.md +42 -0
  373. package/lib/motion/shotcraft/upstream/references/shots/effects/impact-feedback.md +50 -0
  374. package/lib/motion/shotcraft/upstream/references/shots/effects/light-play-moves.md +46 -0
  375. package/lib/motion/shotcraft/upstream/references/shots/effects/radial-ripple-phone-chips.md +56 -0
  376. package/lib/motion/shotcraft/upstream/references/shots/effects/riso-print-hits.md +49 -0
  377. package/lib/motion/shotcraft/upstream/references/shots/effects/scan-bracket-sweep.md +50 -0
  378. package/lib/motion/shotcraft/upstream/references/shots/effects/scanline-annotate-focus.md +53 -0
  379. package/lib/motion/shotcraft/upstream/references/shots/effects/scanline-assemble-flyin.md +53 -0
  380. package/lib/motion/shotcraft/upstream/references/shots/effects/slam-entrance-moves.md +55 -0
  381. package/lib/motion/shotcraft/upstream/references/shots/effects/spotlight-sweep-moves.md +52 -0
  382. package/lib/motion/shotcraft/upstream/references/shots/interaction/autolayout-gap-dial.md +60 -0
  383. package/lib/motion/shotcraft/upstream/references/shots/interaction/canvas-materialize-moves.md +57 -0
  384. package/lib/motion/shotcraft/upstream/references/shots/interaction/chip-grid-single-select-blackout.md +51 -0
  385. package/lib/motion/shotcraft/upstream/references/shots/interaction/collab-cursor-moves.md +41 -0
  386. package/lib/motion/shotcraft/upstream/references/shots/interaction/glass-pill-dictation-typing.md +53 -0
  387. package/lib/motion/shotcraft/upstream/references/shots/interaction/hashtag-to-pill-materialize.md +60 -0
  388. package/lib/motion/shotcraft/upstream/references/shots/interaction/picker-carousel-feature-cycle.md +55 -0
  389. package/lib/motion/shotcraft/upstream/references/shots/interaction/segmented-thumb-hero.md +57 -0
  390. package/lib/motion/shotcraft/upstream/references/shots/interaction/theme-switch-moves.md +47 -0
  391. package/lib/motion/shotcraft/upstream/references/shots/interaction/type-and-filter.md +37 -0
  392. package/lib/motion/shotcraft/upstream/references/shots/interaction/voice-waveform-live.md +54 -0
  393. package/lib/motion/shotcraft/upstream/references/shots/opening/brand-ink-open.md +36 -0
  394. package/lib/motion/shotcraft/upstream/references/shots/opening/crane-rise-reveal.md +56 -0
  395. package/lib/motion/shotcraft/upstream/references/shots/opening/dataviz-landscape-open.md +56 -0
  396. package/lib/motion/shotcraft/upstream/references/shots/opening/fracture.md +40 -0
  397. package/lib/motion/shotcraft/upstream/references/shots/opening/icon-field-colorize.md +60 -0
  398. package/lib/motion/shotcraft/upstream/references/shots/opening/letterspace-materialize.md +57 -0
  399. package/lib/motion/shotcraft/upstream/references/shots/opening/magician-card-flourish.md +73 -0
  400. package/lib/motion/shotcraft/upstream/references/shots/opening/orbit-ring-title-open.md +87 -0
  401. package/lib/motion/shotcraft/upstream/references/shots/opening/spotlight-hero-card.md +55 -0
  402. package/lib/motion/shotcraft/upstream/references/shots/opening/stroke-segment-build.md +50 -0
  403. package/lib/motion/shotcraft/upstream/references/shots/opening/text-as-mask.md +59 -0
  404. package/lib/motion/shotcraft/upstream/references/shots/outro/grain-dissolve.md +38 -0
  405. package/lib/motion/shotcraft/upstream/references/shots/outro/logo-shrink-wordmark-lockup.md +38 -0
  406. package/lib/motion/shotcraft/upstream/references/shots/outro/neon-triple-marquee.md +59 -0
  407. package/lib/motion/shotcraft/upstream/references/shots/outro/outro-group-photo-launch.md +39 -0
  408. package/lib/motion/shotcraft/upstream/references/shots/outro/ui-strip-away-outro.md +61 -0
  409. package/lib/motion/shotcraft/upstream/references/shots/outro/ui-to-brand-morph.md +52 -0
  410. package/lib/motion/shotcraft/upstream/references/shots/rhythm/beat-cut-moves.md +50 -0
  411. package/lib/motion/shotcraft/upstream/references/shots/rhythm/beat-step-list-theme-cycle.md +66 -0
  412. package/lib/motion/shotcraft/upstream/references/shots/rhythm/panel-grid-moves.md +43 -0
  413. package/lib/motion/shotcraft/upstream/references/shots/rhythm/quad-split-parallel-scenes.md +38 -0
  414. package/lib/motion/shotcraft/upstream/references/shots/rhythm/rhythm-interrupt-moves.md +38 -0
  415. package/lib/motion/shotcraft/upstream/references/shots/rhythm/sakuga-timing-shift.md +56 -0
  416. package/lib/motion/shotcraft/upstream/references/shots/rhythm/speed-ramp-freeze.md +44 -0
  417. package/lib/motion/shotcraft/upstream/references/shots/rhythm/trailer-grammar-moves.md +38 -0
  418. package/lib/motion/shotcraft/upstream/references/shots/transition/bottom-push-stack-wipe.md +63 -0
  419. package/lib/motion/shotcraft/upstream/references/shots/transition/card-flip-reveal.md +57 -0
  420. package/lib/motion/shotcraft/upstream/references/shots/transition/card-flock-tumble.md +63 -0
  421. package/lib/motion/shotcraft/upstream/references/shots/transition/circle-match-iris.md +58 -0
  422. package/lib/motion/shotcraft/upstream/references/shots/transition/gradient-transition.md +45 -0
  423. package/lib/motion/shotcraft/upstream/references/shots/transition/line-carry-transition.md +55 -0
  424. package/lib/motion/shotcraft/upstream/references/shots/transition/mosaic-reframe.md +49 -0
  425. package/lib/motion/shotcraft/upstream/references/shots/transition/page-turn-transitions.md +42 -0
  426. package/lib/motion/shotcraft/upstream/references/shots/transition/print-texture-transitions.md +42 -0
  427. package/lib/motion/shotcraft/upstream/references/shots/transition/shot-transitions.md +45 -0
  428. package/lib/motion/shotcraft/upstream/references/shots/transition/tear-streak-transitions.md +48 -0
  429. package/lib/motion/shotcraft/upstream/references/shots/transition/transition-hidden-cut.md +55 -0
  430. package/lib/motion/shotcraft/upstream/references/shots/transition/transition-travel.md +43 -0
  431. package/lib/motion/shotcraft/upstream/references/shots/transition/white-flash-logo-simplify-cut.md +41 -0
  432. package/lib/motion/shotcraft/upstream/references/shots/transition/wipe-transitions.md +42 -0
  433. package/lib/motion/shotcraft/upstream/references/shots/typography/blur-slide.md +59 -0
  434. package/lib/motion/shotcraft/upstream/references/shots/typography/brace-expand.md +55 -0
  435. package/lib/motion/shotcraft/upstream/references/shots/typography/countdown-arc-scatter.md +65 -0
  436. package/lib/motion/shotcraft/upstream/references/shots/typography/document-typewriter-reveal.md +42 -0
  437. package/lib/motion/shotcraft/upstream/references/shots/typography/flying-words.md +64 -0
  438. package/lib/motion/shotcraft/upstream/references/shots/typography/glitch-cycle.md +64 -0
  439. package/lib/motion/shotcraft/upstream/references/shots/typography/gradient-word-sweep.md +54 -0
  440. package/lib/motion/shotcraft/upstream/references/shots/typography/lead-word-zoom-assemble.md +91 -0
  441. package/lib/motion/shotcraft/upstream/references/shots/typography/marker-underline-title.md +51 -0
  442. package/lib/motion/shotcraft/upstream/references/shots/typography/outline-word-fill.md +66 -0
  443. package/lib/motion/shotcraft/upstream/references/shots/typography/paper-title-card.md +38 -0
  444. package/lib/motion/shotcraft/upstream/references/shots/typography/pill-chip-slot-cycle-handled.md +66 -0
  445. package/lib/motion/shotcraft/upstream/references/shots/typography/pill-slot-cycle.md +58 -0
  446. package/lib/motion/shotcraft/upstream/references/shots/typography/text-column-converge.md +61 -0
  447. package/lib/motion/shotcraft/upstream/references/shots/typography/title-demote-to-label.md +64 -0
  448. package/lib/motion/shotcraft/upstream/references/shots/typography/type-assembly-moves.md +45 -0
  449. package/lib/motion/shotcraft/upstream/references/shots/typography/type-entrance-moves.md +41 -0
  450. package/lib/motion/shotcraft/upstream/references/shots/typography/type-rhythm-sync.md +51 -0
  451. package/lib/motion/shotcraft/upstream/references/shots/typography/typewriter-moves.md +42 -0
  452. package/lib/motion/shotcraft/upstream/references/shots/typography/vertical-word-roll-blur-cycle.md +63 -0
  453. package/lib/motion/shotcraft/upstream/references/shots/typography/word-relay-filmstrip.md +57 -0
  454. package/lib/motion/shotcraft/upstream/references/shots/typography/word-relay-geometry.md +75 -0
  455. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/avatar-bracket-carousel.md +59 -0
  456. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/bezier-source-converge-merge.md +67 -0
  457. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/card-stack.md +60 -0
  458. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/carousel-3d.md +66 -0
  459. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/cloner-depth-echo.md +40 -0
  460. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/deck-deal-flyin.md +45 -0
  461. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/doc-park-left-pill-deal.md +62 -0
  462. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/draw-svg-trace.md +55 -0
  463. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/element-body-moves.md +37 -0
  464. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/integration-hub-map.md +55 -0
  465. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/list-reveal.md +50 -0
  466. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/list-stack-press.md +43 -0
  467. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/neon-frame-forerun.md +55 -0
  468. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/neon-frame-orbit-drop.md +51 -0
  469. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/page-waterfall-wall.md +51 -0
  470. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/product-card-progressive-assemble.md +56 -0
  471. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/radial-wave.md +49 -0
  472. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/research-card-stack-scroll.md +57 -0
  473. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/row-embed.md +36 -0
  474. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/value-stagger-gradient.md +64 -0
  475. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/wall-reveal-moves.md +47 -0
  476. package/lib/motion/shotcraft/upstream/references/sound-design.md +170 -0
  477. package/lib/motion/shotcraft/upstream/references/workbench.md +157 -0
  478. package/lib/motion/shotcraft/upstream/template/TEMPLATE.md +103 -0
  479. package/lib/motion/shotcraft/upstream/template/THEMES.md +44 -0
  480. package/lib/motion/shotcraft/upstream/template/package.json +20 -0
  481. package/lib/motion/shotcraft/upstream/template/remotion.config.ts +6 -0
  482. package/lib/motion/shotcraft/upstream/template/src/Root.tsx +17 -0
  483. package/lib/motion/shotcraft/upstream/template/src/aifl/Caption.tsx +65 -0
  484. package/lib/motion/shotcraft/upstream/template/src/aifl/DigitRoll.tsx +48 -0
  485. package/lib/motion/shotcraft/upstream/template/src/aifl/FlashCut.tsx +24 -0
  486. package/lib/motion/shotcraft/upstream/template/src/aifl/Main.tsx +192 -0
  487. package/lib/motion/shotcraft/upstream/template/src/aifl/PaperTitleCard.tsx +111 -0
  488. package/lib/motion/shotcraft/upstream/template/src/aifl/live/PageCam.tsx +150 -0
  489. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneDetail.tsx +158 -0
  490. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneFlyIn.tsx +468 -0
  491. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneOpen.tsx +552 -0
  492. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneOutroLive.tsx +411 -0
  493. package/lib/motion/shotcraft/upstream/template/src/aifl/live/ScenePapers.tsx +200 -0
  494. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneWbr.tsx +324 -0
  495. package/lib/motion/shotcraft/upstream/template/src/aifl/live-layout.json +389 -0
  496. package/lib/motion/shotcraft/upstream/template/src/index.ts +4 -0
  497. package/lib/motion/shotcraft/upstream/template/src/themes/ThemedFilm.tsx +7 -0
  498. package/lib/motion/shotcraft/upstream/template/src/themes/manifest.tsx +68 -0
  499. package/lib/motion/shotcraft/upstream/template/src/themes/palette-assets.json +1 -0
  500. package/lib/motion/shotcraft/upstream/template/src/themes/palette-assets.ts +24 -0
  501. package/lib/motion/shotcraft/upstream/template/src/themes/palettes.json +74 -0
  502. package/lib/motion/shotcraft/upstream/template/src/themes/visual-theme.tsx +91 -0
  503. package/lib/motion/shotcraft/upstream/template/src/workbench.ts +213 -0
  504. package/lib/motion/shotcraft/upstream/template/tsconfig.json +15 -0
  505. package/lib/motion/spec.js +113 -0
  506. package/lib/motion/style-engine.js +153 -0
  507. package/lib/motion/style-frames.js +271 -0
  508. package/lib/motion/sync.js +214 -0
  509. package/lib/motion/theme.js +121 -0
  510. package/lib/motion/video-runtime.js +192 -0
  511. package/lib/motion/voice.js +417 -0
  512. package/lib/motion-agent-files.js +82 -0
  513. package/lib/motion-agent-protocol.js +66 -0
  514. package/lib/motion-agent-tools.js +196 -0
  515. package/lib/motion-agent.js +171 -0
  516. package/lib/motion-capture.js +93 -0
  517. package/lib/motion-core.js +238 -0
  518. package/lib/motion-film-review.js +71 -0
  519. package/lib/motion-library.js +210 -0
  520. package/lib/motion-planner.js +254 -0
  521. package/lib/motion-project.js +87 -0
  522. package/lib/motion-render-worker.js +153 -0
  523. package/lib/motion-session.js +32 -0
  524. package/lib/motion-source.js +49 -0
  525. package/lib/motion-tasks.js +452 -0
  526. package/lib/motion-vision.js +44 -0
  527. package/lib/mxfile.js +27 -7
  528. package/lib/routing/node-runtime.js +14 -0
  529. package/lib/routing/router.js +211 -0
  530. package/lib/routing/vendor/README.md +96 -0
  531. package/lib/routing/vendor/libavoid-routing.js +753 -0
  532. package/lib/routing/vendor/libavoid.min.js +59 -0
  533. package/lib/shotcard-core.js +39 -0
  534. package/lib/shotcard-reference.js +56 -0
  535. package/lib/style-kernel.js +37 -3
  536. package/lib/task-patches.js +26 -2
  537. package/lib/video-export.js +49 -22
  538. package/package.json +34 -4
@@ -0,0 +1,2715 @@
1
+ {
2
+ "source": "https://github.com/Vincentwei1021/video-shotcraft",
3
+ "commit": "1266a3ec4831289c4d893d42dd5102723658039a",
4
+ "license": "Apache-2.0",
5
+ "cards": [
6
+ {
7
+ "id": "assemble-then-type-flyin",
8
+ "category": "effects",
9
+ "summary": "空的暗底网格上,无文字的组件骨架先从四面八方飞入贴合;随后各处文字逐字从 3D 空间旋转着飞来落位,先大标题后小标注,全部落位后页面成形",
10
+ "use": "页面/海报\"自己长出来\"的开场;排版类产品的能力展示;从骨架到成稿的两段式叙事",
11
+ "duration": "约5.6s(168f@30fps)",
12
+ "energy": "中高(骨架段稀疏、文字段密集,能量单调上升到收尾)",
13
+ "source": "references/shots/effects/assemble-then-type-flyin.md",
14
+ "styles": [
15
+ {
16
+ "key": "assemble-then-type-flyin",
17
+ "label": "assemble-then-type-flyin"
18
+ }
19
+ ],
20
+ "demos": [
21
+ "demos/effects/assemble-then-type-flyin/AssembleThenTypeFlyin.tsx"
22
+ ]
23
+ },
24
+ {
25
+ "id": "aurora-bloom-bg-flip",
26
+ "category": "effects",
27
+ "summary": "浅灰底从底部升起紫橙柔焦 blob,随后整个底色在约 0.36s 内压暗到近黑、blob 压成余晖;文案同步 blur-out 换句 blur-in,换句间留空档不 cross-fade",
28
+ "use": "叙事转折点(\"多年以来…→一切都变了\");品牌片从铺垫拉到重音的那一拍;深浅色系之间的段落切换",
29
+ "duration": "约5.2s(156f@30fps)",
30
+ "energy": "由低到高(前 2/3 是酝酿,压暗那一瞬是全片重音)",
31
+ "source": "references/shots/effects/aurora-bloom-bg-flip.md",
32
+ "styles": [
33
+ {
34
+ "key": "aurora-bloom-bg-flip",
35
+ "label": "aurora-bloom-bg-flip"
36
+ }
37
+ ],
38
+ "demos": [
39
+ "demos/effects/aurora-bloom-bg-flip/AuroraBloomBgFlip.tsx"
40
+ ]
41
+ },
42
+ {
43
+ "id": "autolayout-gap-dial",
44
+ "category": "interaction",
45
+ "summary": "间距拨盘驱动布局——一排链接块带框选描边+缝隙间距标注,徽章数字逐格跳动、块被参数实时推开再弹簧回弹归位;\"参数驱动布局\"的可视化",
46
+ "use": "设计工具/低代码产品的\"改一个数、界面跟着动\"卖点镜头;\"用设计工具语义做包装\"的品类语言",
47
+ "duration": "~5s(150f:框选入场 + 预备回收 10f + 拉松 34f + 屏息 hold 20f + 弹簧回弹 + 落定 hold)",
48
+ "energy": "中(工具理性型,爽点在数字与位移的锁定同步)",
49
+ "source": "references/shots/interaction/autolayout-gap-dial.md",
50
+ "styles": [
51
+ {
52
+ "key": "autolayout-gap-dial",
53
+ "label": "autolayout-gap-dial"
54
+ }
55
+ ],
56
+ "demos": [
57
+ "demos/interaction/autolayout-gap-dial/AutolayoutGapDial.tsx"
58
+ ]
59
+ },
60
+ {
61
+ "id": "avatar-bracket-carousel",
62
+ "category": "ui-entrance",
63
+ "summary": "\"Your ___ agent\" 填空排版,四角对焦框钉在句中不动,头像队列在框内垂直 spring 轮换三次,入框放大清晰、出框按距离缩小淡化模糊,角色标签同步更换,切换瞬间对焦框呼吸 7%",
64
+ "use": "\"一个位置,多种角色\"的能力枚举;团队/身份/预设/人格类产品的核心一句话镜头",
65
+ "duration": "约 5.2s(156f@30fps)",
66
+ "energy": "中(三次等距切换构成稳定节拍器,对焦框脉冲是唯一装饰性动作)",
67
+ "source": "references/shots/ui-entrance/avatar-bracket-carousel.md",
68
+ "styles": [
69
+ {
70
+ "key": "avatar-bracket-carousel",
71
+ "label": "avatar-bracket-carousel"
72
+ }
73
+ ],
74
+ "demos": [
75
+ "demos/ui-entrance/avatar-bracket-carousel/AvatarBracketCarousel.tsx"
76
+ ]
77
+ },
78
+ {
79
+ "id": "basic-3d-scene",
80
+ "category": "camera",
81
+ "summary": "impress.js 式空间演示:卡片以不同位置/旋转/缩放散布 3D 空间,相机取各步姿态之逆依次飞行对齐,末步拉到 OVERVIEW 总览",
82
+ "use": "概念/路线图/三步法的空间化讲述;替代平面 slides 的\"每一步都换个空间视角\"",
83
+ "duration": "约 7.5s(225f@30fps;四站,三段飞行 28/32/32f,每站停留 ≥30f)",
84
+ "energy": "中(每次转场有空间惊喜,停留段安静读卡)",
85
+ "source": "references/shots/camera/basic-3d-scene.md",
86
+ "styles": [
87
+ {
88
+ "key": "basic-3d-scene",
89
+ "label": "basic-3d-scene"
90
+ }
91
+ ],
92
+ "demos": [
93
+ "demos/camera/basic-3d-scene/Basic3DScene.tsx"
94
+ ]
95
+ },
96
+ {
97
+ "id": "beat-cut-moves",
98
+ "category": "rhythm",
99
+ "summary": "硬切当节拍乐器——连闪定格:三次白闪各硬切同一画面的一个裁切(全景→卡片→特写),快门余韵沉降后停在特写收束",
100
+ "use": "高光段落把\"切\"本身打成鼓点;颁奖连拍式的仪式感、关键信息的加冕",
101
+ "duration": "全程 140f ≈4.7s(活素材 30f + 三闪 + hold 70f)",
102
+ "energy": "高",
103
+ "source": "references/shots/rhythm/beat-cut-moves.md",
104
+ "styles": [
105
+ {
106
+ "key": "paparazzi-flash",
107
+ "label": "paparazzi-flash 连闪定格"
108
+ }
109
+ ],
110
+ "demos": [
111
+ "demos/rhythm/beat-cut-moves/PaparazziFlash.tsx"
112
+ ]
113
+ },
114
+ {
115
+ "id": "beat-step-list-theme-cycle",
116
+ "category": "rhythm",
117
+ "summary": "三通道节拍器——深色场形容词列表逐拍上移一行,视口中央固定胶囊\"接住\"下一个词并换色,整场底色同拍跟换;行、色、场三通道锁死同一拍点",
118
+ "use": "\"同一产品多种气质/多主题展示\"段落(modern/playful/expressive 式形容词连打);全片节奏最密的一段;音乐段对拍",
119
+ "duration": "铺垫 30f + 每拍 18f × 拍数 + 收尾 hold;4 拍约 4.7s(demo 140f)",
120
+ "energy": "高(0.6s 一拍三通道齐跳,密度型高能)",
121
+ "source": "references/shots/rhythm/beat-step-list-theme-cycle.md",
122
+ "styles": [
123
+ {
124
+ "key": "beat-step-list-theme-cycle",
125
+ "label": "beat-step-list-theme-cycle"
126
+ }
127
+ ],
128
+ "demos": [
129
+ "demos/rhythm/beat-step-list-theme-cycle/BeatStepListThemeCycle.tsx"
130
+ ]
131
+ },
132
+ {
133
+ "id": "before-after-slider-scrub",
134
+ "category": "data",
135
+ "summary": "前后对比拉杆——\"处理前/后\"两版叠放,分割杆先猛甩后慢扫,杆过处新版\"显影\"揭出",
136
+ "use": "AI 增强/优化/重构类功能的效果对比段落(\"用前 vs 用后\"一镜讲清)",
137
+ "duration": "4–5s",
138
+ "energy": "中(快甩是打击点,慢扫是阅读期)",
139
+ "source": "references/shots/data/before-after-slider-scrub.md",
140
+ "styles": [
141
+ {
142
+ "key": "before-after-slider-scrub",
143
+ "label": "before-after-slider-scrub"
144
+ }
145
+ ],
146
+ "demos": [
147
+ "demos/data/before-after-slider-scrub/BeforeAfterSliderScrub.tsx"
148
+ ]
149
+ },
150
+ {
151
+ "id": "bezier-source-converge-merge",
152
+ "category": "ui-entrance",
153
+ "summary": "左侧四个来源节点各有一条细贝塞尔曲线连向右侧同一汇聚点,曲线先错峰由左向右 draw-on,节点沿自己的曲线滑向汇聚点并三段式加速缩小到消失,强调色数据包全程沿路径滑行,吞并完成后曲线从左端反向擦除只留品牌标志(demo:白瓷圆片托 video-shotcraft 镜刻标志)",
154
+ "use": "\"多源整合/统一接入/数据汇聚\"的核心机制镜头;集成、聚合、单一入口类产品的说明段落",
155
+ "duration": "约 5.6s(168f@30fps)",
156
+ "energy": "中(长镜慢速推进,靠数据包滑行维持活性;吞并瞬间是唯一小高点)",
157
+ "source": "references/shots/ui-entrance/bezier-source-converge-merge.md",
158
+ "styles": [
159
+ {
160
+ "key": "bezier-source-converge-merge",
161
+ "label": "bezier-source-converge-merge"
162
+ }
163
+ ],
164
+ "demos": [
165
+ "demos/ui-entrance/bezier-source-converge-merge/BezierSourceConvergeMerge.tsx"
166
+ ]
167
+ },
168
+ {
169
+ "id": "blur-slide",
170
+ "category": "typography",
171
+ "summary": "标题逐词入场,y 0.38em→0 + blur 18→0 + opacity 0→1 三通道走同一条 ease-out 同步收敛,词间隔约 4f;副标题在标题收完前就错峰跟进",
172
+ "use": "几乎所有标题/副标题成对出现的场合;产品页首屏文案、章节小标题;需要\"专业但不抢戏\"的默认文字 reveal",
173
+ "duration": "约 4.0s(120f@30fps)",
174
+ "energy": "低(一次性收敛,无峰值无循环)",
175
+ "source": "references/shots/typography/blur-slide.md",
176
+ "styles": [
177
+ {
178
+ "key": "blur-slide",
179
+ "label": "blur-slide"
180
+ }
181
+ ],
182
+ "demos": [
183
+ "demos/typography/blur-slide/BlurSlide.tsx"
184
+ ]
185
+ },
186
+ {
187
+ "id": "bottom-push-stack-wipe",
188
+ "category": "transition",
189
+ "summary": "底边上推换章——新场景连底色整屏从底边向上推入,把旧场景物理顶出画外,连推数章各配一种饱和底色,内容钉死在各自色底坐标系里随底色走",
190
+ "use": "多章节产品片的换章骨架(每章一个卖点一种底色);需要\"翻页节奏感\"贯穿全片的段落切换",
191
+ "duration": "demo 三连推 170f(~5.7s);单次推入 26f + 章内 hold ~1.2s",
192
+ "energy": "中",
193
+ "source": "references/shots/transition/bottom-push-stack-wipe.md",
194
+ "styles": [
195
+ {
196
+ "key": "bottom-push-stack-wipe",
197
+ "label": "bottom-push-stack-wipe"
198
+ }
199
+ ],
200
+ "demos": [
201
+ "demos/transition/bottom-push-stack-wipe/BottomPushStackWipe.tsx"
202
+ ]
203
+ },
204
+ {
205
+ "id": "brace-expand",
206
+ "category": "typography",
207
+ "summary": "一对紧贴的小花括号先在正中出现,随即带一次过冲向左右弹开并放大到标题级,文字 clip 宽度严格绑括号内缘、像被拉开幕布般从中间揭示,落定后字距再细微松弛",
208
+ "use": "开发者/技术产品的标题字卡;章节开场;需要\"一个符号完成揭示\"的极简一拍",
209
+ "duration": "约 4s(120f@30fps:光标 0–6f → 6f 小括号硬切 → 14f 弹开 → 40–64f 字距松弛 → 副标 → hold)",
210
+ "energy": "中(单次过冲是唯一峰值,其余静止)",
211
+ "source": "references/shots/typography/brace-expand.md",
212
+ "styles": [
213
+ {
214
+ "key": "brace-expand",
215
+ "label": "brace-expand"
216
+ }
217
+ ],
218
+ "demos": [
219
+ "demos/typography/brace-expand/BraceExpand.tsx"
220
+ ]
221
+ },
222
+ {
223
+ "id": "brand-frame-snap",
224
+ "category": "effects",
225
+ "summary": "品牌色画框语法——一圈粗纯色画框先于内容长出包住全屏,录屏窗口落进框内;模式切换时整圈画框同帧硬翻色+窗内布局同帧换,一个 borderColor 干完章节导航/状态提示/品牌露出三件事",
226
+ "use": "双模式/双章节产品片的全片包装层(蓝=模式A、绿=模式B 颜色编码);真实录屏素材的品牌化包裹",
227
+ "duration": "单次翻色 ~4.7s(140f);画框本身可全片驻场",
228
+ "energy": "中(翻色瞬间高,其余时间是安静的包装层)",
229
+ "source": "references/shots/effects/brand-frame-snap.md",
230
+ "styles": [
231
+ {
232
+ "key": "brand-frame-snap",
233
+ "label": "brand-frame-snap"
234
+ }
235
+ ],
236
+ "demos": [
237
+ "demos/effects/brand-frame-snap/BrandFrameSnap.tsx"
238
+ ]
239
+ },
240
+ {
241
+ "id": "brand-ink-open",
242
+ "category": "opening",
243
+ "summary": "墨线十字准星描画→字标逐字压印→打字机副标→满一秒静止再上浮消散",
244
+ "use": "品牌开场;任何\"先立名号再进产品\"的片头",
245
+ "duration": "约 2.8s(83f)",
246
+ "energy": "低(起步位,为后续镜头留爬升空间)",
247
+ "source": "references/shots/opening/brand-ink-open.md",
248
+ "styles": [
249
+ {
250
+ "key": "brand-ink-open",
251
+ "label": "brand-ink-open"
252
+ }
253
+ ],
254
+ "demos": [
255
+ "demos/typography/brand-ink-open/BrandInkOpen.tsx"
256
+ ]
257
+ },
258
+ {
259
+ "id": "canvas-materialize-moves",
260
+ "category": "interaction",
261
+ "summary": "内容\"物化上画布\"两式——panel-to-canvas 行倒卡(面板表格行沿弧线飞出、跨容器变形成画布卡片)与 diagram-cascade 级联生成树(prompt 打字后节点逐层弹出、连线先于节点生长)",
262
+ "use": "AI/协作工具\"生成结果落到画布上\"的叙事段落;A 式讲\"已有内容换了个存在形态\",B 式讲\"从一句话长出一棵结构\"",
263
+ "duration": "A ~5s(150f)/ B ~6s(180f)",
264
+ "energy": "中",
265
+ "source": "references/shots/interaction/canvas-materialize-moves.md",
266
+ "styles": [
267
+ {
268
+ "key": "panel-to-canvas",
269
+ "label": "panel-to-canvas 行倒卡"
270
+ },
271
+ {
272
+ "key": "diagram-cascade",
273
+ "label": "diagram-cascade 级联生成树"
274
+ }
275
+ ],
276
+ "demos": [
277
+ "demos/interaction/canvas-materialize-moves/DiagramCascadeBuild.tsx",
278
+ "demos/interaction/canvas-materialize-moves/PanelToCanvasMaterialize.tsx"
279
+ ]
280
+ },
281
+ {
282
+ "id": "card-flip-reveal",
283
+ "category": "transition",
284
+ "summary": "功能卡 3D 翻面揭示——卡片沿 Y 轴翻 180°,正面 UI 翻到侧棱最薄处掠过一道随角度移动的受光,背面揭出大号结论数字,逐张错峰扫过整排",
285
+ "use": "\"功能→成果\"的成对叙事:一排功能卡逐张翻出各自的指标/结论;元素级转场卡",
286
+ "duration": "全程 150f(~5s,含 hold);单卡 4f 预备 + 16f 翻 + ~10f 弹簧落定,三卡错峰 12f",
287
+ "energy": "中高",
288
+ "source": "references/shots/transition/card-flip-reveal.md",
289
+ "styles": [
290
+ {
291
+ "key": "card-flip-reveal",
292
+ "label": "card-flip-reveal"
293
+ }
294
+ ],
295
+ "demos": [
296
+ "demos/transition/card-flip-reveal/CardFlipReveal.tsx"
297
+ ]
298
+ },
299
+ {
300
+ "id": "card-flock-tumble",
301
+ "category": "transition",
302
+ "summary": "三张 UI 页卡从侧棱薄边 3D 翻飞成阶梯站定(全程清晰、样条连续丝滑),站定后保持慢转不停,快速收束吸入中心,炸出单个湍流烟雾环扩散,巨字横贯收场",
303
+ "use": "能量高潮段(功能页群→品牌口号的爆点转场);霓虹/极光暗场调性;\"多页面能力\"收束成一句话的段落",
304
+ "duration": "翻飞 ~1.5s + 慢转展示 ~0.3s + 收束 0.3s + 烟环+巨字 ~2s;全段 4.5s",
305
+ "energy": "极高(全片能量顶点用)",
306
+ "source": "references/shots/transition/card-flock-tumble.md",
307
+ "styles": [
308
+ {
309
+ "key": "card-flock-tumble",
310
+ "label": "card-flock-tumble"
311
+ }
312
+ ],
313
+ "demos": [
314
+ "demos/transition/card-flock-tumble/CardFlockTumble.tsx"
315
+ ]
316
+ },
317
+ {
318
+ "id": "card-stack",
319
+ "category": "ui-entrance",
320
+ "summary": "一组模板卡(demo 9 张)从屏幕下方逐张 spring 弹入、越落越快叠成一摞,全员落位后整摞一次性展成扇面——每张按序号偏转 6.5°、横移 138px,最后中心卡被抽出",
321
+ "use": "需要交代\"我们有一组东西\"的产品段落;卡片墙/模板库/方案列表的建立镜头,也能当 logo 前的一拍蓄势",
322
+ "duration": "约 5.0s(150f@30fps)",
323
+ "energy": "中高(入场是连续小爆发,展开段收成一次平滑的整体动作)",
324
+ "source": "references/shots/ui-entrance/card-stack.md",
325
+ "styles": [
326
+ {
327
+ "key": "card-stack",
328
+ "label": "card-stack"
329
+ }
330
+ ],
331
+ "demos": [
332
+ "demos/ui-entrance/card-stack/CardStack.tsx"
333
+ ]
334
+ },
335
+ {
336
+ "id": "carousel-3d",
337
+ "category": "ui-entrance",
338
+ "summary": "8 张卡排成圆环整环自转一圈(匀速底 + 每 45° 一次停靠的分步),每卡只绕 Y 公转、自身 billboard 朝外,正反两层同向贴图配 backface-visibility:hidden 保证任何时刻都正立不倒置,正前方卡被点亮、环下字幕随之换字,相机全程钉在浅俯角",
339
+ "use": "作品集/模板库/集成清单的循环展示;需要无缝 loop 的背景拍或落地页 hero",
340
+ "duration": "约 5.6s(168f@30fps)",
341
+ "energy": "中(可无限循环的稳态运动,每 45° 一次停靠给出节拍)",
342
+ "source": "references/shots/ui-entrance/carousel-3d.md",
343
+ "styles": [
344
+ {
345
+ "key": "carousel-3d",
346
+ "label": "carousel-3d"
347
+ }
348
+ ],
349
+ "demos": [
350
+ "demos/ui-entrance/carousel-3d/Carousel3D.tsx"
351
+ ]
352
+ },
353
+ {
354
+ "id": "chart-live-moves",
355
+ "category": "data",
356
+ "summary": "活体图表三式——oscilloscope-stream 示波流线(曲线右端实时写入+突发尖峰)、unit-dot-swarm-regroup 点阵重组(点群三幕迁徙聚成数字)、axis-rescale-shock 轴爆表重标(新值冲出画框逼 y 轴重标)",
357
+ "use": "数据叙事段落;分别讲\"实时性\"、\"每个数字是一个人\"、\"增长装不下\"",
358
+ "duration": "各 165–192f(5.5–6.4s)",
359
+ "energy": "中高(数据即剧情)",
360
+ "source": "references/shots/data/chart-live-moves.md",
361
+ "styles": [
362
+ {
363
+ "key": "oscilloscope-stream",
364
+ "label": "oscilloscope-stream"
365
+ },
366
+ {
367
+ "key": "unit-dot-swarm-regroup",
368
+ "label": "unit-dot-swarm-regroup"
369
+ },
370
+ {
371
+ "key": "axis-rescale-shock",
372
+ "label": "axis-rescale-shock"
373
+ }
374
+ ],
375
+ "demos": [
376
+ "demos/data/chart-live-moves/AxisRescaleShockV2.tsx",
377
+ "demos/data/chart-live-moves/OscilloscopeStreamV2.tsx",
378
+ "demos/data/chart-live-moves/UnitDotSwarmRegroupV2.tsx"
379
+ ]
380
+ },
381
+ {
382
+ "id": "chip-grid-single-select-blackout",
383
+ "category": "interaction",
384
+ "summary": "五个选项 chip 以 3+2 居中排布逐个淡入;选中帧先插一帧灰色按压块,紧接数帧内底色变墨黑、文字变白并做 1→1.04→1 极轻回弹,其余 chip 淡到 18% 但位置锁死;随后余项归零,黑 chip 上移收窄,下方升起结算价格",
385
+ "use": "单选/套餐/档位选择的交互演示;\"选了它之后会怎样\"的因果镜头;价格/参数结算类链路",
386
+ "duration": "约5.5s(165f@30fps)",
387
+ "energy": "中低(唯一的爆点是那一帧灰闪,其余都在收)",
388
+ "source": "references/shots/interaction/chip-grid-single-select-blackout.md",
389
+ "styles": [
390
+ {
391
+ "key": "chip-grid-single-select-blackout",
392
+ "label": "chip-grid-single-select-blackout"
393
+ }
394
+ ],
395
+ "demos": [
396
+ "demos/interaction/chip-grid-single-select-blackout/ChipGridSingleSelectBlackout.tsx"
397
+ ]
398
+ },
399
+ {
400
+ "id": "circle-match-iris",
401
+ "category": "transition",
402
+ "summary": "圆心匹配光圈切——光圈从页面上圆形元素的圆心炸开,圈内新页的圆形图表接在同一个圆上;匹配剪辑给光圈一个语义锚点",
403
+ "use": "前景有圆形元素(头像/图标/圆钮)、后景有圆形主体(donut 图/圆环进度)的接缝;转场技法卡",
404
+ "duration": "5.5s / 165f(入场+定睛 40f + 蓄力 7f + 接圆开圈 37f + sweep 58f + 静止 47f)",
405
+ "energy": "中高",
406
+ "source": "references/shots/transition/circle-match-iris.md",
407
+ "styles": [
408
+ {
409
+ "key": "circle-match-iris",
410
+ "label": "circle-match-iris"
411
+ }
412
+ ],
413
+ "demos": [
414
+ "demos/transition/circle-match-iris/CircleMatchIris.tsx"
415
+ ]
416
+ },
417
+ {
418
+ "id": "cloner-depth-echo",
419
+ "category": "ui-entrance",
420
+ "summary": "克隆纵队——主卡瞬间\"复印\"出 7 个半透明分身沿斜向纵深排开成队,停一拍后全体加速吸回本体合一+弹跳",
421
+ "use": "\"多副本/多租户/规模感/批量处理\"卖点;一镜讲完\"一个=很多\"",
422
+ "duration": "138f(约 4.6s)",
423
+ "energy": "中(陈列-收束型)",
424
+ "source": "references/shots/ui-entrance/cloner-depth-echo.md",
425
+ "styles": [
426
+ {
427
+ "key": "cloner-depth-echo",
428
+ "label": "cloner-depth-echo"
429
+ }
430
+ ],
431
+ "demos": [
432
+ "demos/ui-entrance/cloner-depth-echo/ClonerDepthEcho.tsx"
433
+ ]
434
+ },
435
+ {
436
+ "id": "collab-cursor-moves",
437
+ "category": "interaction",
438
+ "summary": "协作光标当演员——cast-ensemble 五光标群演氛围层(错峰飞入+正弦漂移+打字 cameo+聚拢围观)",
439
+ "use": "协作/多人主题的画布场景,给画面铺\"团队在场\"体温",
440
+ "duration": "A ~5.2s(156f)",
441
+ "energy": "A 低中(氛围层,可垫任何时长)",
442
+ "source": "references/shots/interaction/collab-cursor-moves.md",
443
+ "styles": [
444
+ {
445
+ "key": "cast-ensemble",
446
+ "label": "cast-ensemble"
447
+ }
448
+ ],
449
+ "demos": [
450
+ "demos/interaction/collab-cursor-moves/CursorCastEnsemble.tsx"
451
+ ]
452
+ },
453
+ {
454
+ "id": "countdown-arc-scatter",
455
+ "category": "typography",
456
+ "summary": "纸面表盘 9 个等大数字沿大弧切向排布,整盘扫过 96° 后减速急停,\"5\" 停在弧顶随即平移落位成标题首字符,其余数字带 blur 原地散去,标题逐词模糊淡入、末词转强调色",
457
+ "use": "倒计时/时长承诺类文案(\"5 min to install\");数据揭晓的一拍;需要\"仪表盘\"语汇的浅底短镜",
458
+ "duration": "约 3.3s(100f@30fps:扫动 ~30f + 落位 20f + 标题成句 + hold 22f;最短可压到 33f 单拍)",
459
+ "energy": "高(96° 大幅扫动压进 ~20 帧,纯冲击)",
460
+ "source": "references/shots/typography/countdown-arc-scatter.md",
461
+ "styles": [
462
+ {
463
+ "key": "countdown-arc-scatter",
464
+ "label": "countdown-arc-scatter"
465
+ }
466
+ ],
467
+ "demos": [
468
+ "demos/typography/countdown-arc-scatter/CountdownArcScatter.tsx"
469
+ ]
470
+ },
471
+ {
472
+ "id": "crane-rise-reveal",
473
+ "category": "opening",
474
+ "summary": "升降臂拉升揭示——开场怼在一行数据特写,相机沿 Y 轴减速升起后拉,行行涌入直到整面 dashboard 铺满全幅",
475
+ "use": "\"从细节到全局\"的开场定场;与 drone-dive-landing(全局→单点俯冲)互为反向",
476
+ "duration": "5.5s(165f:特写 hold 24f + 拉升 102f + 落定/余波/静止 39f)",
477
+ "energy": "中高(持续单向运动,无冲击拍)",
478
+ "source": "references/shots/opening/crane-rise-reveal.md",
479
+ "styles": [
480
+ {
481
+ "key": "crane-rise-reveal",
482
+ "label": "crane-rise-reveal"
483
+ }
484
+ ],
485
+ "demos": [
486
+ "demos/opening/crane-rise-reveal/CraneRiseReveal.tsx"
487
+ ]
488
+ },
489
+ {
490
+ "id": "crash-zoom-punch",
491
+ "category": "camera",
492
+ "summary": "全景一拍急推到目标特写(6f),落位二选一——过冲回弹(弹性)或撞停震屏(重量)",
493
+ "use": "功能段\"点名\"镜头——把观众视线一拍按到目标卡/模块上;强调级用撞停",
494
+ "duration": "约 0.5s 动作 + 前后 hold(动作 6–11f,前 hold ≥30f 建立全景、后 hold ≥45f 读特写)",
495
+ "energy": "高(瞬时冲击,非持续高能)",
496
+ "source": "references/shots/camera/crash-zoom-punch.md",
497
+ "styles": [
498
+ {
499
+ "key": "crash-zoom-punch",
500
+ "label": "crash-zoom-punch"
501
+ }
502
+ ],
503
+ "demos": [
504
+ "demos/camera/crash-zoom-punch/CrashImpactReal.tsx",
505
+ "demos/camera/crash-zoom-punch/CrashZoomReal.tsx"
506
+ ]
507
+ },
508
+ {
509
+ "id": "cursor-flyover",
510
+ "category": "camera",
511
+ "summary": "整页俯瞰后,相机依次飞到四个功能区 zoom-in 特写,SVG 光标先一步到位指点、点击留下涟漪并触发界面响应,最后拉回俯瞰",
512
+ "use": "单页产品的功能巡览:一镜带观众看完四个功能区,光标当\"导游手指\"",
513
+ "duration": "约 8.0s(240f@30fps;俯瞰 22f · 四站各 44f(飞行 20f + 停留 24f)· 拉回 24f · hold 18f)",
514
+ "energy": "中(等距巡航,节奏靠点击涟漪打点)",
515
+ "source": "references/shots/camera/cursor-flyover.md",
516
+ "styles": [
517
+ {
518
+ "key": "cursor-flyover",
519
+ "label": "cursor-flyover"
520
+ }
521
+ ],
522
+ "demos": [
523
+ "demos/camera/cursor-flyover/CursorFlyover.tsx"
524
+ ]
525
+ },
526
+ {
527
+ "id": "dataviz-landscape-open",
528
+ "category": "opening",
529
+ "summary": "暗场支流线束地景开场——多条流线汇入主干、虚构 ID 标签浮在线上、相机重景深低速飞越",
530
+ "use": "品牌级抽象开场(\"数据宇宙\"隐喻),接亮场产品段或字标;与 glow-flyline-moves 分工:那卡是段落内卡片之间的连线叙事,本卡是开场专用的全画幅地景",
531
+ "duration": "5–8s(开场氛围段,一支片 ≤1 次;demo 180f)",
532
+ "energy": "低开缓升(起步位,为后续爬升留空间)",
533
+ "source": "references/shots/opening/dataviz-landscape-open.md",
534
+ "styles": [
535
+ {
536
+ "key": "dataviz-landscape-open",
537
+ "label": "dataviz-landscape-open"
538
+ }
539
+ ],
540
+ "demos": [
541
+ "demos/opening/dataviz-landscape-open/DatavizLandscapeOpen.tsx"
542
+ ]
543
+ },
544
+ {
545
+ "id": "deck-deal-flyin",
546
+ "category": "ui-entrance",
547
+ "summary": "暗色石墨桌面上的实体牌堆特写环绕开局,灯从牌堆亮到旁边的页面板,一摞卡像发牌一样硬加速甩进网格,相机追着发牌升起后仰、落在整块满板的跑道式俯瞰上定格",
548
+ "use": "展示\"内容量大/源源不断汇入\"的列表页与卡片墙;建立信息密度的第一印象",
549
+ "duration": "150f(约 5s:0–36 牌堆特写 + 预备,36–~101 发牌,108–150 满板 hold)",
550
+ "energy": "高(节奏爬升段主力,不放开场第一镜)",
551
+ "source": "references/shots/ui-entrance/deck-deal-flyin.md",
552
+ "styles": [
553
+ {
554
+ "key": "deck-deal-flyin",
555
+ "label": "deck-deal-flyin"
556
+ }
557
+ ],
558
+ "demos": [
559
+ "demos/ui-entrance/deck-deal-flyin/DeckDealFlyin.tsx"
560
+ ]
561
+ },
562
+ {
563
+ "id": "depth-layer-moves",
564
+ "category": "camera",
565
+ "summary": "分层深度运镜——多层视差滑轨:3 层速度梯度横移出纵深,滑轨落定时主角浮起",
566
+ "use": "平面截图要\"有厚度\"的段落:卡组 / 列表 / 整页的横向巡览",
567
+ "duration": "4–5.5s 持续(demo 165f)",
568
+ "energy": "中(质感型)",
569
+ "source": "references/shots/camera/depth-layer-moves.md",
570
+ "styles": [
571
+ {
572
+ "key": "multiplane",
573
+ "label": "multiplane"
574
+ }
575
+ ],
576
+ "demos": [
577
+ "demos/camera/depth-layer-moves/MultiplaneReal.tsx"
578
+ ]
579
+ },
580
+ {
581
+ "id": "doc-park-left-pill-deal",
582
+ "category": "ui-entrance",
583
+ "summary": "文档不淡出而是向左滑出只露约 35% 宽并微缩到 0.92,右侧按旁白节奏慢速发牌三张白底描边药丸(outBack 弹入),每张落定后其下方字幕逐词加深、下一张到来前整句淡出,左侧文档全程极缓慢自动滚动保持\"正在被读\"",
584
+ "use": "旁白驱动的\"分析结论逐条给出\"段落;文档理解、推荐理由、审阅意见类产品的核心说明镜头",
585
+ "duration": "约 5.8s(174f@30fps)",
586
+ "energy": "低(慢发牌节奏,全片无峰值;靠自动滚动维持活性)",
587
+ "source": "references/shots/ui-entrance/doc-park-left-pill-deal.md",
588
+ "styles": [
589
+ {
590
+ "key": "doc-park-left-pill-deal",
591
+ "label": "doc-park-left-pill-deal"
592
+ }
593
+ ],
594
+ "demos": [
595
+ "demos/ui-entrance/doc-park-left-pill-deal/DocParkLeftPillDeal.tsx"
596
+ ]
597
+ },
598
+ {
599
+ "id": "document-typewriter-reveal",
600
+ "category": "typography",
601
+ "summary": "悬浮在暗场里的整页真排版文档窗口在光标后自己\"写\"出来、侧栏跟进、历史条目逐个落入轨道,相机从斜侧标题特写一路后撤到全窗",
602
+ "use": "文档/报告/笔记类功能镜头;信息密度最高的一拍",
603
+ "duration": "150f(约 5s,含 history-list-stack 尾段与标语 hold)",
604
+ "energy": "低中(信息密度最高,节奏放稳让观众读字)",
605
+ "source": "references/shots/typography/document-typewriter-reveal.md",
606
+ "styles": [
607
+ {
608
+ "key": "document-typewriter-reveal",
609
+ "label": "document-typewriter-reveal"
610
+ }
611
+ ],
612
+ "demos": [
613
+ "demos/ui-entrance/document-typewriter-reveal/DocumentTypewriterReveal.tsx"
614
+ ]
615
+ },
616
+ {
617
+ "id": "draw-svg-trace",
618
+ "category": "ui-entrance",
619
+ "summary": "描边生长圈注——一条带笔头的墨线沿元素轮廓跑一圈把它\"画\"出来,闭合瞬间闪黑交棒、内容淡入;同套路可给标题画下划线",
620
+ "use": "单个卡片/图表/标题的被点名入场;元素级手法(整页级蓝图描线归 wall-reveal-moves B 式)",
621
+ "duration": "132f(预告 10f + 描边 40f + 闪黑交棒 16f + 下划线 18f + hold 40f,约 4.4s)",
622
+ "energy": "中",
623
+ "source": "references/shots/ui-entrance/draw-svg-trace.md",
624
+ "styles": [
625
+ {
626
+ "key": "draw-svg-trace",
627
+ "label": "draw-svg-trace"
628
+ }
629
+ ],
630
+ "demos": [
631
+ "demos/ui-entrance/draw-svg-trace/DrawSvgTrace.tsx"
632
+ ]
633
+ },
634
+ {
635
+ "id": "element-body-moves",
636
+ "category": "ui-entrance",
637
+ "summary": "元素身体感——contact-shadow-lift 接触阴影离面抬升:卡抬起时桌上的阴影同步放大变淡,纸片离桌被阴影证明",
638
+ "use": "给\"位置在变\"之外补\"身体在变\":卡片点名给悬浮证据;配 2.5D 运镜与逐张点名",
639
+ "duration": "A 150f 5s",
640
+ "energy": "A 低中",
641
+ "source": "references/shots/ui-entrance/element-body-moves.md",
642
+ "styles": [
643
+ {
644
+ "key": "contact-shadow-lift",
645
+ "label": "contact-shadow-lift"
646
+ }
647
+ ],
648
+ "demos": [
649
+ "demos/ui-entrance/element-body-moves/ContactShadowLift.tsx"
650
+ ]
651
+ },
652
+ {
653
+ "id": "flying-words",
654
+ "category": "typography",
655
+ "summary": "22 个关键词按黄金角铺在扁椭圆截面上,沿 z 轴从远处飞到相机前擦身而过,透明度走 [0,1,0.5,0.2,0] 生命曲线,跑满 2 整圈首尾无缝",
656
+ "use": "关键词云/能力清单的动态背景;片头片尾的\"信息量\"垫底层;需要纵深穿越感的转场",
657
+ "duration": "约 6.0s(180f@30fps,2 个完整循环,可无缝接续)",
658
+ "energy": "高(全屏持续 3D 位移,画面无一刻静止)",
659
+ "source": "references/shots/typography/flying-words.md",
660
+ "styles": [
661
+ {
662
+ "key": "flying-words",
663
+ "label": "flying-words"
664
+ }
665
+ ],
666
+ "demos": [
667
+ "demos/typography/flying-words/FlyingWords.tsx"
668
+ ]
669
+ },
670
+ {
671
+ "id": "fracture",
672
+ "category": "opening",
673
+ "summary": "5×5 瓦片从 3D 碎片态按中心波纹逐圈聚合成整面海报,停一拍亮字,随后全部碎片背离中心加速旋转飞出画面",
674
+ "use": "开场第一镜\"从混沌到成形\"的品牌/海报揭示;倒放或只取后半可作硬转场",
675
+ "duration": "约 5.2s(156f@30fps;聚合 0–2.6s · hold 1s · 飞散 1.5s)",
676
+ "energy": "高(两头高能、中段静止,适合压 BGM 重音起收)",
677
+ "source": "references/shots/opening/fracture.md",
678
+ "styles": [
679
+ {
680
+ "key": "fracture",
681
+ "label": "fracture"
682
+ }
683
+ ],
684
+ "demos": [
685
+ "demos/opening/fracture/Fracture.tsx"
686
+ ]
687
+ },
688
+ {
689
+ "id": "fui-hud-moves",
690
+ "category": "effects",
691
+ "summary": "FUI/HUD 准星咬合——reticle-lock-on 四个 L 形角标组成的取景框从画外飞入、超调回弹后咬合锁定目标",
692
+ "use": "任何\"看这里\"的目标点名(替代箭头圈红,画面不冻结)",
693
+ "duration": "2–3s(demo 90f)",
694
+ "energy": "中高(咬合帧是打击点)",
695
+ "source": "references/shots/effects/fui-hud-moves.md",
696
+ "styles": [
697
+ {
698
+ "key": "reticle-lock-on",
699
+ "label": "reticle-lock-on"
700
+ }
701
+ ],
702
+ "demos": [
703
+ "demos/effects/fui-hud-moves/ReticleLockOn.tsx"
704
+ ]
705
+ },
706
+ {
707
+ "id": "gauge-readout-moves",
708
+ "category": "data",
709
+ "summary": "仪表读数两式——needle-sweep-selftest 满弧扫针(点火自检指针甩满全弧再回落真值)与 tape-scroll-fixed-pointer 滚带定针(针不动刻度带滚过+冲刺刹车)",
710
+ "use": "dashboard 开场仪式/性能指标揭晓;A 多表盘开机感,B 单指标大跳变",
711
+ "duration": "A 140f(4.7s)/ B 150f(5s)",
712
+ "energy": "中高(机械仪式型)",
713
+ "source": "references/shots/data/gauge-readout-moves.md",
714
+ "styles": [
715
+ {
716
+ "key": "needle-sweep-selftest",
717
+ "label": "needle-sweep-selftest"
718
+ },
719
+ {
720
+ "key": "tape-scroll-fixed-pointer",
721
+ "label": "tape-scroll-fixed-pointer"
722
+ }
723
+ ],
724
+ "demos": [
725
+ "demos/data/gauge-readout-moves/NeedleSweepSelftest.tsx",
726
+ "demos/data/gauge-readout-moves/TapeScrollFixedPointer.tsx"
727
+ ]
728
+ },
729
+ {
730
+ "id": "glass-pill-dictation-typing",
731
+ "category": "interaction",
732
+ "summary": "一条定宽玻璃胶囊以约 1.25 倍略大弹出后缓落到位,内部自左淡到右浓铺一层强调色暖光;光标先行、随后匀速打出听写句,光(连同胶囊背后的环境光)随打字进度渐渐退去,收尾成一条中性的磨砂玻璃条",
733
+ "use": "语音/AI 输入框的登场;\"跟它说话\"的交互提示镜头;高能段之间的一个安静过渡拍",
734
+ "duration": "约3.3s(100f@30fps)",
735
+ "energy": "低(全片最安静的一拍,只有光在退)",
736
+ "source": "references/shots/interaction/glass-pill-dictation-typing.md",
737
+ "styles": [
738
+ {
739
+ "key": "glass-pill-dictation-typing",
740
+ "label": "glass-pill-dictation-typing"
741
+ }
742
+ ],
743
+ "demos": [
744
+ "demos/interaction/glass-pill-dictation-typing/GlassPillDictationTyping.tsx"
745
+ ]
746
+ },
747
+ {
748
+ "id": "glitch-cycle",
749
+ "category": "typography",
750
+ "summary": "同一行等宽槽位循环轮播 4 条状态短语,每条头尾按概率关键帧 [1,0,0,0.1,0,0,1] 全乱码、中段偶发单字抖动,切换瞬间叠 RGB 分离与整行位移;末条概率收 0 保证收尾干净",
751
+ "use": "加载/构建/部署过程的状态播报;技术型片头的\"系统自述\";需要机器口吻推进时间的一段垫底",
752
+ "duration": "约 5.6s(168f@30fps;demo 每条短语 38f,末条延续到片尾作收尾 hold)",
753
+ "energy": "中高(持续的高频噪声脉冲,切换点是峰值)",
754
+ "source": "references/shots/typography/glitch-cycle.md",
755
+ "styles": [
756
+ {
757
+ "key": "glitch-cycle",
758
+ "label": "glitch-cycle"
759
+ }
760
+ ],
761
+ "demos": [
762
+ "demos/typography/glitch-cycle/GlitchCycle.tsx"
763
+ ]
764
+ },
765
+ {
766
+ "id": "glow-flyline-moves",
767
+ "category": "effects",
768
+ "summary": "暗场光斑与飞线三式——glow-orb-ambient 光斑底噪、flyline-arc 飞线连接、orb-flyline-relay 同帧共振组合",
769
+ "use": "全片唯一暗场段落的氛围与数据叙事:铺底噪用 A、讲数据流向用 B、要背景给前景搭腔用 C;Linear 官网味",
770
+ "duration": "A 170f(~5.7s)/ B 140f(~4.7s)/ C 165f(5.5s)",
771
+ "energy": "A 低(底噪级)/ B 中 / C 中高",
772
+ "source": "references/shots/effects/glow-flyline-moves.md",
773
+ "styles": [
774
+ {
775
+ "key": "glow-orb-ambient",
776
+ "label": "glow-orb-ambient"
777
+ },
778
+ {
779
+ "key": "flyline-arc",
780
+ "label": "flyline-arc"
781
+ },
782
+ {
783
+ "key": "orb-flyline-relay",
784
+ "label": "orb-flyline-relay"
785
+ }
786
+ ],
787
+ "demos": [
788
+ "demos/effects/glow-flyline-moves/FlylineArc.tsx",
789
+ "demos/effects/glow-flyline-moves/GlowOrbAmbient.tsx",
790
+ "demos/effects/glow-flyline-moves/OrbFlylineRelay.tsx"
791
+ ]
792
+ },
793
+ {
794
+ "id": "gradient-transition",
795
+ "category": "transition",
796
+ "summary": "背景在 linear、radial、conic 三类 CSS 渐变间平滑过渡——角度、色标、中心、半径逐参数插值,段间交叉淡化换类型",
797
+ "use": "氛围底/章节底色的连续变奏;给静态排版段落提供\"活着\"的背景层",
798
+ "duration": "约 6.7s(200f@30fps;linear 0–2.3s · radial 1.9–4.4s · conic 3.9–6.7s)",
799
+ "energy": "低(纯背景运动,为前景内容让路)",
800
+ "source": "references/shots/transition/gradient-transition.md",
801
+ "styles": [
802
+ {
803
+ "key": "gradient-transition",
804
+ "label": "gradient-transition"
805
+ }
806
+ ],
807
+ "demos": [
808
+ "demos/transition/gradient-transition/GradientTransition.tsx"
809
+ ]
810
+ },
811
+ {
812
+ "id": "gradient-word-sweep",
813
+ "category": "typography",
814
+ "summary": "黑底标语里关键词被渐变彩光从左到右快速扫过\"充能\"——波前字符辉光最强向后衰减,填满后字符间勾连细紫红闪电、整词稳态泛光呼吸",
815
+ "use": "标语里给单个动词/卖点词充能(Supercharged/faster/AI…);能量高潮段的文字戏;黑场品牌片的口号帧",
816
+ "duration": "扫充 ~15–20f(要快)+ 稳态闪电呼吸 1–2s;全段 2.5–3.5s",
817
+ "energy": "高(一词爆点,前后都该让位)",
818
+ "source": "references/shots/typography/gradient-word-sweep.md",
819
+ "styles": [
820
+ {
821
+ "key": "gradient-word-sweep",
822
+ "label": "gradient-word-sweep"
823
+ }
824
+ ],
825
+ "demos": [
826
+ "demos/typography/gradient-word-sweep/GradientWordSweep.tsx"
827
+ ]
828
+ },
829
+ {
830
+ "id": "grain-dissolve",
831
+ "category": "outro",
832
+ "summary": "整行字爆裂成沸腾颗粒噪点并浮现斜纹选区框,噪点云急速凝聚成更大号发光短字标,位移衰减归零定格",
833
+ "use": "收尾\"XX. Now Live\"式上线宣告;长句信息压缩成品牌短标的能量聚合拍",
834
+ "duration": "约 2.0s(60f@30fps;砂化 0.26–0.56s · 凝聚 1.2–1.42s · 凝固回落收尾)",
835
+ "energy": "中高(短促、一次性的能量脉冲,天然的 outro 卡点)",
836
+ "source": "references/shots/outro/grain-dissolve.md",
837
+ "styles": [
838
+ {
839
+ "key": "grain-dissolve",
840
+ "label": "grain-dissolve"
841
+ }
842
+ ],
843
+ "demos": [
844
+ "demos/outro/grain-dissolve/GrainDissolve.tsx"
845
+ ]
846
+ },
847
+ {
848
+ "id": "graze-face-tour",
849
+ "category": "camera",
850
+ "summary": "大倾角贴面游走特写——镜头贴着 UI 表面低飞掠过(侧栏树/顶栏/列表当地形),页面文字初始悬浮在界面上空带同形软影,随镜头行进先后加速贴落回界面",
851
+ "use": "功能区巡礼(把 UI 当地景飞掠);配合暗场+霓虹缘光做产品\"内部世界\"段落;界面内容逐区登场",
852
+ "duration": "单段 4–5s;可多段接力延长",
853
+ "energy": "中高(运镜持续推进+元素连续落位,信息密度高)",
854
+ "source": "references/shots/camera/graze-face-tour.md",
855
+ "styles": [
856
+ {
857
+ "key": "graze-face-tour",
858
+ "label": "graze-face-tour"
859
+ }
860
+ ],
861
+ "demos": [
862
+ "demos/camera/graze-face-tour/GrazeFaceTour.tsx"
863
+ ]
864
+ },
865
+ {
866
+ "id": "hashtag-to-pill-materialize",
867
+ "category": "interaction",
868
+ "summary": "话题词打字实体化——居中打出 \"#word\"(红实心光标恒亮),1 帧硬切变成宽大胶囊标签,hold 后缩小左移落到页面标签位,再 1 帧硬切揭示成品页;\"两次硬切一次滑动\"的节奏骨架",
869
+ "use": "标签/分类/关键词功能的演示段(笔记 app 打 tag、话题聚合);\"输入 → 变成 UI 实体 → 归位到成品\"的三段式叙事",
870
+ "duration": "120f(4s)——打字 ~40f + 硬切胶囊 hold ~18f + 缩移 ~14f + 硬切揭示后静置 ~1.2s(原片 18–21.5s)",
871
+ "energy": "中(干脆利落,靠硬切给劲,不靠弹跳)",
872
+ "source": "references/shots/interaction/hashtag-to-pill-materialize.md",
873
+ "styles": [
874
+ {
875
+ "key": "hashtag-to-pill-materialize",
876
+ "label": "hashtag-to-pill-materialize"
877
+ }
878
+ ],
879
+ "demos": [
880
+ "demos/interaction/hashtag-to-pill-materialize/HashtagToPillMaterialize.tsx"
881
+ ]
882
+ },
883
+ {
884
+ "id": "icon-field-colorize",
885
+ "category": "opening",
886
+ "summary": "灰阶小图标点阵错峰浮现铺满全屏,停一拍后多道品牌色横带波纹极快向下扫翻全场——\"功能全景先摆满,品牌一瞬间点亮\"的开场/收束卡",
887
+ "use": "开场铺陈产品能力面(图标=功能宇宙)再一举打上品牌色;功能集合页、生态/集成规模展示、片头 logo 前垫场",
888
+ "duration": "浮现 ~45f 错峰 + 静置 ~10f + 翻色 12–45f + 终态静置;全段 3–6s(demo 170f:翻色走 30f 档 + 标题落版 + 终态 hold 1s)",
889
+ "energy": "中(浮现是铺垫,翻色瞬间是唯一爆点)",
890
+ "source": "references/shots/opening/icon-field-colorize.md",
891
+ "styles": [
892
+ {
893
+ "key": "icon-field-colorize",
894
+ "label": "icon-field-colorize"
895
+ }
896
+ ],
897
+ "demos": [
898
+ "demos/opening/icon-field-colorize/IconFieldColorize.tsx"
899
+ ]
900
+ },
901
+ {
902
+ "id": "icon-performance-moves",
903
+ "category": "effects",
904
+ "summary": "图标表演——attention-bounce 求关注弹跳(图标连跳递增+落地压扁+镜头被吸引)",
905
+ "use": "半屏级 icon 特写段落;新功能引出",
906
+ "duration": "156f(5.2s)",
907
+ "energy": "蓄势引入",
908
+ "source": "references/shots/effects/icon-performance-moves.md",
909
+ "styles": [
910
+ {
911
+ "key": "attention-bounce",
912
+ "label": "attention-bounce"
913
+ }
914
+ ],
915
+ "demos": [
916
+ "demos/effects/icon-performance-moves/AttentionBounce.tsx"
917
+ ]
918
+ },
919
+ {
920
+ "id": "impact-feedback",
921
+ "category": "effects",
922
+ "summary": "命中反馈两式——hit-counter 连招计数(顿帧+伤害数字+combo 跳字)、anime-impact 动漫打击帧(负片+集中线+色散)",
923
+ "use": "元素落位/撞击的\"命中一瞬\"——给砸入、撞停加游戏级手感;按强度阶梯选式",
924
+ "duration": "n/a(元素级技法,寄生在落位动作上;各式占用帧数见参数表)",
925
+ "energy": "高(瞬时冲击)",
926
+ "source": "references/shots/effects/impact-feedback.md",
927
+ "styles": [
928
+ {
929
+ "key": "hit-counter",
930
+ "label": "hit-counter 连招计数"
931
+ },
932
+ {
933
+ "key": "anime-impact",
934
+ "label": "anime-impact 打击帧"
935
+ }
936
+ ],
937
+ "demos": [
938
+ "demos/effects/impact-feedback/AnimeImpact.tsx",
939
+ "demos/effects/impact-feedback/HitCounter.tsx"
940
+ ]
941
+ },
942
+ {
943
+ "id": "integration-hub-map",
944
+ "category": "ui-entrance",
945
+ "summary": "旧页面一次性快翻 180°(侧棱瞬间亮闪)落成新中枢页,五个集成 app 图标同帧弹现、随即五条彩虹光管同帧齐连,光管内输送脉冲持续流动——\"翻开新一页,生态一齐接入\"",
946
+ "use": "集成/生态能力段(一个产品连一切);版本翻新叙事(旧页翻成新页);暗场霓虹调性的功能高潮",
947
+ "duration": "前摇 ~0.5s + 快翻 ~1.2s + 图标齐现 → 光管齐连两拍 ~0.7s + 输送呼吸 ≥1.5s;全段 4.5–5s",
948
+ "energy": "中高(翻面是爆点,输送段是余韵)",
949
+ "source": "references/shots/ui-entrance/integration-hub-map.md",
950
+ "styles": [
951
+ {
952
+ "key": "integration-hub-map",
953
+ "label": "integration-hub-map"
954
+ }
955
+ ],
956
+ "demos": [
957
+ "demos/ui-entrance/integration-hub-map/IntegrationHubMap.tsx"
958
+ ]
959
+ },
960
+ {
961
+ "id": "lead-word-zoom-assemble",
962
+ "category": "typography",
963
+ "summary": "首词以 2.3 倍字号占据画面中央、hold 期间继续推近 6%,随后一条曲线同时完成「缩回终字号」与「整行左滑归位」,后续词各自从槽位右侧 0.5em 被推进来;支点横向钉首词中心、纵向钉基线(挂载时实测),整行上移的同一时窗副行浮出,停一拍后整幕 crash-zoom 推近失焦交棒",
964
+ "use": "品牌名/产品名的 Introducing 字卡;发布会式开场第二镜;一句话主张需要\"先让一个词占满画面、再把整句补齐\"的场合",
965
+ "duration": "约 2.8s(84f@30fps;组句 f36 完成、上移与副行 f32–46、静止 26f、末 12f crash)",
966
+ "energy": "中高(起手就是满画面的大字,但全程只有一次运动,没有二次冲击)",
967
+ "source": "references/shots/typography/lead-word-zoom-assemble.md",
968
+ "styles": [
969
+ {
970
+ "key": "lead-word-zoom-assemble",
971
+ "label": "lead-word-zoom-assemble"
972
+ }
973
+ ],
974
+ "demos": [
975
+ "demos/typography/lead-word-zoom-assemble/LeadWordZoomAssemble.tsx"
976
+ ]
977
+ },
978
+ {
979
+ "id": "letterspace-materialize",
980
+ "category": "opening",
981
+ "summary": "大字距字标全字符并行连续描画结晶——所有字母同帧起笔、笔画像手写一样连续生长、同帧齐收成词;氛围底景上的品牌字标显影",
982
+ "use": "片尾/片头品牌字标登场(大字距细骨架字标;demo 为 video-shotcraft 全小写);章节题字;needs 静谧/高级感的收束帧",
983
+ "duration": "静置 ~15f + 描画 ~50f + 终态静置 ≥30f;全段 3–4s",
984
+ "energy": "低(静谧仪式感,一次呼吸完成)",
985
+ "source": "references/shots/opening/letterspace-materialize.md",
986
+ "styles": [
987
+ {
988
+ "key": "letterspace-materialize",
989
+ "label": "letterspace-materialize"
990
+ }
991
+ ],
992
+ "demos": [
993
+ "demos/opening/letterspace-materialize/LetterspaceMaterialize.tsx"
994
+ ]
995
+ },
996
+ {
997
+ "id": "light-play-moves",
998
+ "category": "effects",
999
+ "summary": "光效两式——spotlight-sweep 聚光扫字、sheen 单点扫光",
1000
+ "use": "把光当另一种笔触(扫/擦):暗场标题揭示(A)、主角卡加冕(B)",
1001
+ "duration": "A 170f ~5.7s / B 150f ~5s",
1002
+ "energy": "A 中 / B 低",
1003
+ "source": "references/shots/effects/light-play-moves.md",
1004
+ "styles": [
1005
+ {
1006
+ "key": "spotlight-sweep",
1007
+ "label": "spotlight-sweep"
1008
+ },
1009
+ {
1010
+ "key": "sheen-sweep",
1011
+ "label": "sheen-sweep"
1012
+ }
1013
+ ],
1014
+ "demos": [
1015
+ "demos/effects/light-play-moves/SheenSweepRetry.tsx",
1016
+ "demos/effects/light-play-moves/SpotlightSweepReveal.tsx"
1017
+ ]
1018
+ },
1019
+ {
1020
+ "id": "line-carry-transition",
1021
+ "category": "transition",
1022
+ "summary": "线条接力横移转场——场景 A 的进度条延伸出画,镜头跟线横移,线在移动中拐角围出场景 B 的卡框,全程无剪切",
1023
+ "use": "两个有图形亲缘的场景之间(进度条→卡框、下划线→图表轴);一支片子的招牌转场位,Catch Me If You Can 片头的图形接力",
1024
+ "duration": "~6.3s / 190f(进度条走满 36f + 冲出 10f + 横移 56f + 收框 24f + 框内海报 30f + 静止 24f)",
1025
+ "energy": "中",
1026
+ "source": "references/shots/transition/line-carry-transition.md",
1027
+ "styles": [
1028
+ {
1029
+ "key": "line-carry-transition",
1030
+ "label": "line-carry-transition"
1031
+ }
1032
+ ],
1033
+ "demos": [
1034
+ "demos/transition/line-carry-transition/LineCarryTransition.tsx"
1035
+ ]
1036
+ },
1037
+ {
1038
+ "id": "list-reveal",
1039
+ "category": "ui-entrance",
1040
+ "summary": "垂直菜单 6 项按 10f 的间隔依次 scale 找位、软 back 轻微过冲落定,同时整个列表容器全程匀速上移——逐项入场与整体漂移是两层不相干的运动",
1041
+ "use": "导航/侧边栏/设置面板的入场;任何\"界面自己长出来\"的 UI 段落,也适合做旁白铺垫时的低能量底",
1042
+ "duration": "约 4s(120f@30fps)",
1043
+ "energy": "低(稳定节拍,无峰值;靠漂移维持画面不死)",
1044
+ "source": "references/shots/ui-entrance/list-reveal.md",
1045
+ "styles": [
1046
+ {
1047
+ "key": "list-reveal",
1048
+ "label": "list-reveal"
1049
+ }
1050
+ ],
1051
+ "demos": [
1052
+ "demos/ui-entrance/list-reveal/ListReveal.tsx"
1053
+ ]
1054
+ },
1055
+ {
1056
+ "id": "list-stack-press",
1057
+ "category": "ui-entrance",
1058
+ "summary": "列表卡从画面底部逐张飞上摞起,每张落地压弹整摞、计数器同步跳一格",
1059
+ "use": "feed/雷达/收件箱类\"每天有新东西\"的镜头;强调持续积累的资产列表",
1060
+ "duration": "约 3s(18–88f)",
1061
+ "energy": "中",
1062
+ "source": "references/shots/ui-entrance/list-stack-press.md",
1063
+ "styles": [
1064
+ {
1065
+ "key": "list-stack-press",
1066
+ "label": "list-stack-press"
1067
+ }
1068
+ ],
1069
+ "demos": [
1070
+ "demos/ui-entrance/list-stack-press/ListStackPress.tsx"
1071
+ ]
1072
+ },
1073
+ {
1074
+ "id": "logo-shrink-wordmark-lockup",
1075
+ "category": "outro",
1076
+ "summary": "霓虹切口大环快速收束成中央实心小白 O、过冲刹车时换成 video-shotcraft 标志,图标左移让位,字标字母逐个滑入完成 lockup,强调色标语收尾",
1077
+ "use": "片尾品牌定妆:从满屏图形能量收束到\"图标+字标+标语\"的标准 lockup",
1078
+ "duration": "约 4.4s(132f@30fps;收束 0.1–1.2s · 让位 1.5–2.1s · 字母 2–2.7s · 标语 3.2–3.7s)",
1079
+ "energy": "中(收束段有冲击力,整体是沉稳的落定节奏)",
1080
+ "source": "references/shots/outro/logo-shrink-wordmark-lockup.md",
1081
+ "styles": [
1082
+ {
1083
+ "key": "logo-shrink-wordmark-lockup",
1084
+ "label": "logo-shrink-wordmark-lockup"
1085
+ }
1086
+ ],
1087
+ "demos": [
1088
+ "demos/outro/logo-shrink-wordmark-lockup/LogoShrinkWordmarkLockup.tsx"
1089
+ ]
1090
+ },
1091
+ {
1092
+ "id": "magician-card-flourish",
1093
+ "category": "opening",
1094
+ "summary": "午夜蓝暗场上蓝色星芒闪现 0.3s(X 形针状光束旋转 90°+中心辉光放射小光芒),卡片从闪光点弹射而出——极速自旋弧线飞向镜头、自旋随靠近衰减、瞬间硬定格(卡高 86% 画高)、光脉冲 + sheen 扫光,右侧文案随后逐行揭示",
1095
+ "use": "单张卡片/海报/封面的魔术性登场(片头主视觉、产品卡揭晓);纯黑暗场;需要\"变出来\"仪式感的爆点",
1096
+ "duration": "156f(闪光 0.3s + 飞行 1.6s + 定格/扫光/文案揭示 + hold 3.3s;全段 5.2s)",
1097
+ "energy": "高(一次性爆点,定格后即静)",
1098
+ "source": "references/shots/opening/magician-card-flourish.md",
1099
+ "styles": [
1100
+ {
1101
+ "key": "magician-card-flourish",
1102
+ "label": "magician-card-flourish"
1103
+ }
1104
+ ],
1105
+ "demos": [
1106
+ "demos/opening/magician-card-flourish/MagicianCardFlourish.tsx"
1107
+ ]
1108
+ },
1109
+ {
1110
+ "id": "marker-underline-title",
1111
+ "category": "typography",
1112
+ "summary": "大标题落定后,关键词下方马克笔下划线从左到右快速描画——变宽笔形、毛糙边缘、微上斜跟随斜体字势,贴着字底",
1113
+ "use": "标题里强调单个关键词(new/free/AI…);手写感/人味的品牌调性;正文标注式强调",
1114
+ "duration": "标题落定 +4~8f 后起笔,划线 8–12f,总 1–1.5s",
1115
+ "energy": "低(一笔点睛,不抢标题的戏)",
1116
+ "source": "references/shots/typography/marker-underline-title.md",
1117
+ "styles": [
1118
+ {
1119
+ "key": "marker-underline-title",
1120
+ "label": "marker-underline-title"
1121
+ }
1122
+ ],
1123
+ "demos": [
1124
+ "demos/typography/marker-underline-title/MarkerUnderlineTitle.tsx"
1125
+ ]
1126
+ },
1127
+ {
1128
+ "id": "mosaic-reframe",
1129
+ "category": "transition",
1130
+ "summary": "12 张瓦片在规则网格、feature mosaic、对角瀑布串三种排版间连续变形,位置宽高各自插值、逐片微错峰,段间留 hold",
1131
+ "use": "\"同一批内容多种看法\"的陈列转场:作品集/模板库/相册产品的布局能力展示",
1132
+ "duration": "约 7.1s(214f@30fps;浮现 0–22f · hold A · A→B 56–92f · hold B · B→C 132–176f · hold C 至 214f)",
1133
+ "energy": "中(连续流动的重排,无爆点,气质从容)",
1134
+ "source": "references/shots/transition/mosaic-reframe.md",
1135
+ "styles": [
1136
+ {
1137
+ "key": "mosaic-reframe",
1138
+ "label": "mosaic-reframe"
1139
+ }
1140
+ ],
1141
+ "demos": [
1142
+ "demos/transition/mosaic-reframe/MosaicReframe.tsx"
1143
+ ]
1144
+ },
1145
+ {
1146
+ "id": "neon-frame-forerun",
1147
+ "category": "ui-entrance",
1148
+ "summary": "强透视直角霓虹框自左缘两头奔画先行成型,页面在框内由暗转亮,同时框内组件/文字从 3D 上空带同形软影错峰贴落、随页面点亮同步完成贴合,背景霓虹群(demo 为同形框纵深回声隧道)终段熄灭让位",
1149
+ "use": "暗场品牌片里给 UI 面板做\"登场仪式\"(框先到、内容后落);功能区首次亮相;霓虹/赛博调性的段落开场",
1150
+ "duration": "框奔画 ~0.7s + 点亮&贴落 ~2.7s + 背景熄灭收束 ~1s;全段 4–4.7s(demo 140f)",
1151
+ "energy": "中高(三层动作叠进,但都服务同一次登场)",
1152
+ "source": "references/shots/ui-entrance/neon-frame-forerun.md",
1153
+ "styles": [
1154
+ {
1155
+ "key": "neon-frame-forerun",
1156
+ "label": "neon-frame-forerun"
1157
+ }
1158
+ ],
1159
+ "demos": [
1160
+ "demos/ui-entrance/neon-frame-forerun/NeonFrameForerun.tsx"
1161
+ ]
1162
+ },
1163
+ {
1164
+ "id": "neon-frame-orbit-drop",
1165
+ "category": "ui-entrance",
1166
+ "summary": "霓虹框先行描框后,镜头绕页面左→右弧线旋转,页面全部组件/文字**同帧**从空中往下贴合(同形软影同步收敛)——整体登场式的框内安放",
1167
+ "use": "单页 UI 的一次性隆重登场(与巡礼/逐区亮相相对);暗场霓虹调性段落的主视觉揭幕;neon-frame-forerun 的姊妹镜",
1168
+ "duration": "描框 ~0.5s + 旋转&同时贴落 ~2.5s + 落定 ~1s;全段 ~4.7s(140f,旋转到 128f 收住后留落定)",
1169
+ "energy": "中高(一次性的大动作,落定即静)",
1170
+ "source": "references/shots/ui-entrance/neon-frame-orbit-drop.md",
1171
+ "styles": [
1172
+ {
1173
+ "key": "neon-frame-orbit-drop",
1174
+ "label": "neon-frame-orbit-drop"
1175
+ }
1176
+ ],
1177
+ "demos": [
1178
+ "demos/ui-entrance/neon-frame-orbit-drop/NeonFrameForerunOrbit.tsx"
1179
+ ]
1180
+ },
1181
+ {
1182
+ "id": "neon-triple-marquee",
1183
+ "category": "outro",
1184
+ "summary": "三行对向霓虹跑马灯 recap——三连词空心霓虹灯管巨字上中下排满一面斜拍的砖墙,奇偶行反向匀速无限横滚,三行按 1/3 相位轮流点亮,结尾逐行断电",
1185
+ "use": "片尾主题词复读机段落;三连词口号的\"余韵\"拍法;音乐段无旁白铺陈",
1186
+ "duration": "4–5s(demo 150f:18f 逐行点火上电 + 循环体 + 18f 逐行断电 + 8f 熄灯 hold)",
1187
+ "energy": "中高(持续流动 + 逐行脉冲,无瞬时冲击)",
1188
+ "source": "references/shots/outro/neon-triple-marquee.md",
1189
+ "styles": [
1190
+ {
1191
+ "key": "neon-triple-marquee",
1192
+ "label": "neon-triple-marquee"
1193
+ }
1194
+ ],
1195
+ "demos": [
1196
+ "demos/outro/neon-triple-marquee/NeonTripleMarquee.tsx"
1197
+ ]
1198
+ },
1199
+ {
1200
+ "id": "orbit-ring-title-open",
1201
+ "category": "opening",
1202
+ "summary": "石墨暗场上八张 16:9 暗色内容卡按 45° 均布在 720×380 椭圆上匀速公转(卡身永不倾斜,纵深只由 sin θ 给出 ±12% 缩放、z 序与远处压暗失焦),环撑开期间卡内容冻结首帧、f24 之后八张一起开播;居中两级标题逐字解糊下沉落定,关键词到位那一刻荧光马克块自左横扫铺满、扫过处字反白为墨,mono 副行随后浮出;可选末段整行失焦淡出、环继续转着交棒下一镜",
1203
+ "use": "开场第一镜 = 「这个产品有一整套东西」;素材库/模板库/功能矩阵/案例集的门面拍;需要用真实运动的产品画面托住一句主张,而不是把截图摆成静态九宫格",
1204
+ "duration": "150f(5s@30fps;马克块 f64 落定后 2.9s 稳态巡回 + 极缓推近;开 HANDOFF_EXIT 时 f118 起退场交棒)",
1205
+ "energy": "中(唯一的持续运动是匀速公转,全片只有马克块横扫一次冲击)",
1206
+ "source": "references/shots/opening/orbit-ring-title-open.md",
1207
+ "styles": [
1208
+ {
1209
+ "key": "orbit-ring-title-open",
1210
+ "label": "orbit-ring-title-open"
1211
+ }
1212
+ ],
1213
+ "demos": [
1214
+ "demos/opening/orbit-ring-title-open/OrbitRingTitleOpen.tsx"
1215
+ ]
1216
+ },
1217
+ {
1218
+ "id": "outline-word-fill",
1219
+ "category": "typography",
1220
+ "summary": "空心词(细暖灰描边、500 字重)从 3.2 倍急缓收缩落位,虚线大圆随后从 2.8 倍收到字周围并缓慢自转,左右水平虚线从画框边缘内伸;描边先微微增亮,实心白热字在一帧内硬切点亮,一闪辉光即定格",
1221
+ "use": "单词式利益点/口号的重锤一拍;节奏卡点上的\"钉子\"镜;深底品牌片的强调帧",
1222
+ "duration": "约 3.0s(90f@30fps,短促单拍 + 36f 落定)",
1223
+ "energy": "高(3.2 倍收缩 + 瞬时点亮,短时高冲击)",
1224
+ "source": "references/shots/typography/outline-word-fill.md",
1225
+ "styles": [
1226
+ {
1227
+ "key": "outline-word-fill",
1228
+ "label": "outline-word-fill"
1229
+ }
1230
+ ],
1231
+ "demos": [
1232
+ "demos/typography/outline-word-fill/OutlineWordFill.tsx"
1233
+ ]
1234
+ },
1235
+ {
1236
+ "id": "outro-group-photo-launch",
1237
+ "category": "outro",
1238
+ "summary": "全片元素从四面八方飞来围住字标合影,crane 落机位+舞台光+金尘做成发布会收场",
1239
+ "use": "outro/品牌收尾;多功能产品的\"全家福\"式终镜",
1240
+ "duration": "约 4.8s(145f)",
1241
+ "energy": "峰值(全片最高点)",
1242
+ "source": "references/shots/outro/outro-group-photo-launch.md",
1243
+ "styles": [
1244
+ {
1245
+ "key": "outro-group-photo-launch",
1246
+ "label": "outro-group-photo-launch"
1247
+ }
1248
+ ],
1249
+ "demos": [
1250
+ "demos/outro/outro-group-photo-launch/OutroGroupPhotoLaunch.tsx"
1251
+ ]
1252
+ },
1253
+ {
1254
+ "id": "overhead-camera-moves",
1255
+ "category": "camera",
1256
+ "summary": "俯拍揭示两式——tilt-reveal 俯仰抬正揭示、overhead-tabletop-drop 桌面卡阵横滑骤降扎入",
1257
+ "use": "用\"俯仰角\"讲故事的开场/转场:单页 establishing 用 A,多页巡视择一扎入用 B",
1258
+ "duration": "A 120f(4s)/ B 140f(4.7s)",
1259
+ "energy": "A 中 / B 中高",
1260
+ "source": "references/shots/camera/overhead-camera-moves.md",
1261
+ "styles": [
1262
+ {
1263
+ "key": "tilt-reveal",
1264
+ "label": "tilt-reveal"
1265
+ },
1266
+ {
1267
+ "key": "overhead-tabletop-drop",
1268
+ "label": "overhead-tabletop-drop"
1269
+ }
1270
+ ],
1271
+ "demos": [
1272
+ "demos/camera/overhead-camera-moves/OverheadTabletopDrop.tsx",
1273
+ "demos/camera/overhead-camera-moves/TiltReveal.tsx"
1274
+ ]
1275
+ },
1276
+ {
1277
+ "id": "page-turn-transitions",
1278
+ "category": "transition",
1279
+ "summary": "整页体块转场——barn-door-split 对开门裂幕(旧页裂两半滑出、新页迎上)",
1280
+ "use": "章节级换页:新旧交替的两个大段落之间的\"翻篇\"仪式;与 shot-transitions 系(镜头交棒)分工——那是\"航拍机移过去\",这是\"页面自己是实体\"",
1281
+ "duration": "单式 150f(前态建立 30–40f + 转场 24–40f + 跟随与收尾 ≥70f),约 5.0s",
1282
+ "energy": "中高",
1283
+ "source": "references/shots/transition/page-turn-transitions.md",
1284
+ "styles": [
1285
+ {
1286
+ "key": "barn-door-split",
1287
+ "label": "barn-door-split"
1288
+ }
1289
+ ],
1290
+ "demos": [
1291
+ "demos/transition/page-turn-transitions/BarnDoorSplit.tsx"
1292
+ ]
1293
+ },
1294
+ {
1295
+ "id": "page-waterfall-wall",
1296
+ "category": "ui-entrance",
1297
+ "summary": "页面瀑布墙——真实页面截图切成 3–4 列在 3D 后仰墙面上差速反向无限滚动,视差 + 镜头缓推做\"内容多到流不完\"的一览",
1298
+ "use": "\"多页面/多功能/多模板\"体量感段落;montage 中段铺陈或 intro 后的产品广度镜头",
1299
+ "duration": "4–6s(无限循环体,时长由段落需要裁)",
1300
+ "energy": "中(流动陈列型)",
1301
+ "source": "references/shots/ui-entrance/page-waterfall-wall.md",
1302
+ "styles": [
1303
+ {
1304
+ "key": "page-waterfall-wall",
1305
+ "label": "page-waterfall-wall"
1306
+ }
1307
+ ],
1308
+ "demos": [
1309
+ "demos/ui-entrance/page-waterfall-wall/PageWaterfallWall.tsx",
1310
+ "demos/ui-entrance/page-waterfall-wall/VerticalTicker.tsx"
1311
+ ]
1312
+ },
1313
+ {
1314
+ "id": "panel-grid-moves",
1315
+ "category": "rhythm",
1316
+ "summary": "分格节奏——comic-panel-split 漫画斜格劈出同一主体的三个机位,咔咔咔三格定格后末格斜边吃屏成海报",
1317
+ "use": "把\"格子\"当节奏器:同主体多机位定格并列,逐格踩拍劈出;吃拍点",
1318
+ "duration": "156f ≈5.2s(全屏侧拍 20f + 三刀分格定格 + 吃屏 + 海报 hold)",
1319
+ "energy": "中高",
1320
+ "source": "references/shots/rhythm/panel-grid-moves.md",
1321
+ "styles": [
1322
+ {
1323
+ "key": "comic-panel-split",
1324
+ "label": "comic-panel-split"
1325
+ }
1326
+ ],
1327
+ "demos": [
1328
+ "demos/rhythm/panel-grid-moves/ComicPanelSplit.tsx"
1329
+ ]
1330
+ },
1331
+ {
1332
+ "id": "paper-title-card",
1333
+ "category": "typography",
1334
+ "summary": "一句话逐词压印上纸、一个词标强调色斜体、短划线收束",
1335
+ "use": "章节转场/价值主张字卡;重要功能出场前的引导卡;全片呼吸位",
1336
+ "duration": "1.7–1.8s(50–55f)",
1337
+ "energy": "低(呼吸位,隔开两段高能镜头)",
1338
+ "source": "references/shots/typography/paper-title-card.md",
1339
+ "styles": [
1340
+ {
1341
+ "key": "paper-title-card",
1342
+ "label": "paper-title-card"
1343
+ }
1344
+ ],
1345
+ "demos": [
1346
+ "demos/typography/paper-title-card/PaperTitleCard.tsx"
1347
+ ]
1348
+ },
1349
+ {
1350
+ "id": "picker-carousel-feature-cycle",
1351
+ "category": "interaction",
1352
+ "summary": "移动端风竖向选择器——焦点药丸不动、内容穿过它,每项带明显 outQuint 减速吸附后完全静止,按到中心距离分层控制透明度/字号/灰度,落定时药丸做 scaleY 极轻呼吸",
1353
+ "use": "逐个念出功能名/场景名的列表镜头;\"选一个\"的交互演示;移动端产品的 picker 类控件展示",
1354
+ "duration": "约3.6s(108f@30fps)",
1355
+ "energy": "中(每一次吸附都是一个节拍点,5 拍匀速推进)",
1356
+ "source": "references/shots/interaction/picker-carousel-feature-cycle.md",
1357
+ "styles": [
1358
+ {
1359
+ "key": "picker-carousel-feature-cycle",
1360
+ "label": "picker-carousel-feature-cycle"
1361
+ }
1362
+ ],
1363
+ "demos": [
1364
+ "demos/interaction/picker-carousel-feature-cycle/PickerCarouselFeatureCycle.tsx"
1365
+ ]
1366
+ },
1367
+ {
1368
+ "id": "pill-chip-slot-cycle-handled",
1369
+ "category": "typography",
1370
+ "summary": "白底句式 \"Your `chip` Handled\" 里深色胶囊内词竖向滚轮轮换,胶囊宽度按预量文本宽插值平滑伸缩、两侧文字被自然挤开收拢,胶囊上下露出 13% 透明度的灰色幽灵项",
1371
+ "use": "\"我们替你搞定 ___\" 这类句式卖点;SaaS 功能列举的一句话收口;浅底品牌片主视觉一拍",
1372
+ "duration": "约 5.0s(150f@30fps:静置 → 3 次切换(0.25/0.47/0.69)→ 尾部静置)",
1373
+ "energy": "中(三拍稳定节拍,宽度伸缩是唯一的连续运动)",
1374
+ "source": "references/shots/typography/pill-chip-slot-cycle-handled.md",
1375
+ "styles": [
1376
+ {
1377
+ "key": "pill-chip-slot-cycle-handled",
1378
+ "label": "pill-chip-slot-cycle-handled"
1379
+ }
1380
+ ],
1381
+ "demos": [
1382
+ "demos/typography/pill-chip-slot-cycle-handled/PillChipSlotCycleHandled.tsx"
1383
+ ]
1384
+ },
1385
+ {
1386
+ "id": "pill-slot-cycle",
1387
+ "category": "typography",
1388
+ "summary": "句中词槽轮换——固定句干钉死不动,句尾 pill 徽章每 ~0.7s 老虎机滚一格(旧的上飞加速淡出、新的从下带模糊滑入),连换 N 个功能词后落成完整句子收束",
1389
+ "use": "\"功能列举\"类文案的最优雅解法(比逐条列表快、比字符级滚动有语义);一句话卖点 + 多个动词短语的段落",
1390
+ "duration": "入场 12f + 每拍 21f × 词数 + 收束 14f + hold;6 词约 6.7s(demo 200f,含 48f 完整句 hold)",
1391
+ "energy": "中(稳定节拍器,无峰值)",
1392
+ "source": "references/shots/typography/pill-slot-cycle.md",
1393
+ "styles": [
1394
+ {
1395
+ "key": "pill-slot-cycle",
1396
+ "label": "pill-slot-cycle"
1397
+ }
1398
+ ],
1399
+ "demos": [
1400
+ "demos/typography/pill-slot-cycle/PillSlotCycle.tsx"
1401
+ ]
1402
+ },
1403
+ {
1404
+ "id": "print-texture-transitions",
1405
+ "category": "transition",
1406
+ "summary": "印刷质感转场——ink-bleed-reveal 墨渗揭示(须状渗边洇开吃掉旧景)",
1407
+ "use": "换景接缝的纸墨审美款;与交棒三式/穿越式并列的第三族——\"介质显影\"型转场",
1408
+ "duration": "4–4.5s(洇开段 55–80f + 静止收尾 ≥30f)",
1409
+ "energy": "中(渐进显形,无冲击拍)",
1410
+ "source": "references/shots/transition/print-texture-transitions.md",
1411
+ "styles": [
1412
+ {
1413
+ "key": "ink-bleed-reveal",
1414
+ "label": "ink-bleed-reveal 墨渗揭示"
1415
+ }
1416
+ ],
1417
+ "demos": [
1418
+ "demos/transition/print-texture-transitions/InkBleedReveal.tsx"
1419
+ ]
1420
+ },
1421
+ {
1422
+ "id": "product-card-progressive-assemble",
1423
+ "category": "ui-entrance",
1424
+ "summary": "详情卡像被逐字段抓取般自建——一枚\"填充光标\"领先跳格,图→标题→分类 pill 依次 pop→原价出现后被划线降级、强调色新价 spring 跳出→正文逐行揭示且高亮块由左向右刷过→色卡点亮→按钮填满,整卡全程极慢 scale 前推",
1425
+ "use": "商品/条目详情页的能力展示;\"结构化抽取\"\"自动填充\"\"数据自己长出来\"类叙事的主镜头",
1426
+ "duration": "约 5.7s(172f@30fps)",
1427
+ "energy": "中(连续小事件密集排布,无单点爆发;靠前推保持推进感)",
1428
+ "source": "references/shots/ui-entrance/product-card-progressive-assemble.md",
1429
+ "styles": [
1430
+ {
1431
+ "key": "product-card-progressive-assemble",
1432
+ "label": "product-card-progressive-assemble"
1433
+ }
1434
+ ],
1435
+ "demos": [
1436
+ "demos/ui-entrance/product-card-progressive-assemble/ProductCardProgressiveAssemble.tsx"
1437
+ ]
1438
+ },
1439
+ {
1440
+ "id": "quad-split-parallel-scenes",
1441
+ "category": "rhythm",
1442
+ "summary": "画面硬切 2×2 四宫格,四个象限并行跑各自的微场景(打字、急推、逐词、交互链),关键节拍错开 3–6 帧制造信息轰炸",
1443
+ "use": "节奏段\"功能很多、同时发生\"的蒙太奇拍;预告片中段的密度峰值",
1444
+ "duration": "90f(3s@30fps:0–62f 并行轰炸 + 28f 终态 hold,全程无转场)",
1445
+ "energy": "高(四线并行 + 错拍冲击,标准的 BGM 副歌位)",
1446
+ "source": "references/shots/rhythm/quad-split-parallel-scenes.md",
1447
+ "styles": [
1448
+ {
1449
+ "key": "quad-split-parallel-scenes",
1450
+ "label": "quad-split-parallel-scenes"
1451
+ }
1452
+ ],
1453
+ "demos": [
1454
+ "demos/rhythm/quad-split-parallel-scenes/QuadSplitParallelScenes.tsx"
1455
+ ]
1456
+ },
1457
+ {
1458
+ "id": "radial-ripple-phone-chips",
1459
+ "category": "effects",
1460
+ "summary": "暖沙底四层同心圆错相呼吸如水波,中央手机 mockup 屏内 feed 自动缓滚,两侧白色 chip 先后 spring pop 入场并悬浮",
1461
+ "use": "移动端产品的\"这就是它\"定格镜头;功能点分列两侧的介绍段;片头/片尾的产品全景",
1462
+ "duration": "约5.6s(168f@30fps)",
1463
+ "energy": "低(安静、有呼吸感,靠同心圆的持续起伏撑住不冷场)",
1464
+ "source": "references/shots/effects/radial-ripple-phone-chips.md",
1465
+ "styles": [
1466
+ {
1467
+ "key": "radial-ripple-phone-chips",
1468
+ "label": "radial-ripple-phone-chips"
1469
+ }
1470
+ ],
1471
+ "demos": [
1472
+ "demos/effects/radial-ripple-phone-chips/RadialRipplePhoneChips.tsx"
1473
+ ]
1474
+ },
1475
+ {
1476
+ "id": "radial-wave",
1477
+ "category": "ui-entrance",
1478
+ "summary": "17×9 圆点阵列按到波源的欧氏距离错峰点亮,每点 scale 过冲到 1.5 再落回常亮,第一道波扫完后第二道亮蓝脉冲从外圈反向收拢回中心",
1479
+ "use": "产品/品牌开场的\"系统上电\"一拍;也用作数据网格、节点地图、覆盖范围类叙事的建立镜头",
1480
+ "duration": "约 3.8s(114f@30fps)",
1481
+ "energy": "中高(起手爆发一次,波前过后转为常亮低能量底子)",
1482
+ "source": "references/shots/ui-entrance/radial-wave.md",
1483
+ "styles": [
1484
+ {
1485
+ "key": "radial-wave",
1486
+ "label": "radial-wave"
1487
+ }
1488
+ ],
1489
+ "demos": [
1490
+ "demos/ui-entrance/radial-wave/RadialWave.tsx"
1491
+ ]
1492
+ },
1493
+ {
1494
+ "id": "research-card-stack-scroll",
1495
+ "category": "ui-entrance",
1496
+ "summary": "深色论文卡每 12 帧一张沿右下轴线飞入中心叠压,落位带 1 帧压缩,只有最上一张全清晰渲染标题+作者+摘要,下方卡按堆积深度递增模糊变暗只露标题条,背景横向 grid 同步下移做速度参照",
1497
+ "use": "\"读了大量资料/处理了海量文档\"的量级交代;研究类、检索类、批处理类产品的能力镜头",
1498
+ "duration": "约 4.8s(144f@30fps)",
1499
+ "energy": "中高(匀速高频,无爆发但持续压迫)",
1500
+ "source": "references/shots/ui-entrance/research-card-stack-scroll.md",
1501
+ "styles": [
1502
+ {
1503
+ "key": "research-card-stack-scroll",
1504
+ "label": "research-card-stack-scroll"
1505
+ }
1506
+ ],
1507
+ "demos": [
1508
+ "demos/ui-entrance/research-card-stack-scroll/ResearchCardStackScroll.tsx"
1509
+ ]
1510
+ },
1511
+ {
1512
+ "id": "rhythm-interrupt-moves",
1513
+ "category": "rhythm",
1514
+ "summary": "打断节奏——jump-cut-punch-in 三级跳切推近:同构图三次无补间硬跳放大,逐级逼近目标",
1515
+ "use": "用\"打断连续性\"本身当节奏器:顿挫推近(A);与 beat-cut-moves(切点排布)互补",
1516
+ "duration": "A 135f ≈4.5s",
1517
+ "energy": "A 中",
1518
+ "source": "references/shots/rhythm/rhythm-interrupt-moves.md",
1519
+ "styles": [
1520
+ {
1521
+ "key": "jump-cut-punch-in",
1522
+ "label": "jump-cut-punch-in"
1523
+ }
1524
+ ],
1525
+ "demos": [
1526
+ "demos/rhythm/rhythm-interrupt-moves/JumpCutPunchIn.tsx"
1527
+ ]
1528
+ },
1529
+ {
1530
+ "id": "riso-print-hits",
1531
+ "category": "effects",
1532
+ "summary": "套印错位冲击帧——riso-misregistration-hit 单发:标题撞停瞬间裂成双色 riso 印版,抖两下\"啪\"地套准",
1533
+ "use": "标题/卡片的命中强调,纸墨审美版的\"故障闪\";全片 1–2 次的单发高潮",
1534
+ "duration": "4s(120f,单发)",
1535
+ "energy": "高",
1536
+ "source": "references/shots/effects/riso-print-hits.md",
1537
+ "styles": [
1538
+ {
1539
+ "key": "misregistration-hit",
1540
+ "label": "misregistration-hit 单发"
1541
+ }
1542
+ ],
1543
+ "demos": [
1544
+ "demos/effects/riso-print-hits/RisoMisregistrationHit.tsx"
1545
+ ]
1546
+ },
1547
+ {
1548
+ "id": "row-embed",
1549
+ "category": "ui-entrance",
1550
+ "summary": "内容行像卡片一样从空中降下、rotateX 收平、嵌入瞬间底边亮一道强调色的缝",
1551
+ "use": "\"结构化数据长进页面\"的详情页/列表镜头;行级内容的批量入场",
1552
+ "duration": "约 2s(12–68f)",
1553
+ "energy": "中",
1554
+ "source": "references/shots/ui-entrance/row-embed.md",
1555
+ "styles": [
1556
+ {
1557
+ "key": "row-embed",
1558
+ "label": "row-embed"
1559
+ }
1560
+ ],
1561
+ "demos": [
1562
+ "demos/ui-entrance/row-embed/RowEmbed.tsx"
1563
+ ]
1564
+ },
1565
+ {
1566
+ "id": "sakuga-timing-shift",
1567
+ "category": "rhythm",
1568
+ "summary": "一拍三转一拍一——元素先以每 3 帧一步的手翻书顿挫移动,高潮瞬间切成逐帧丝滑冲刺,帧率量化的突变本身就是看点",
1569
+ "use": "单元素的强调性位移(卡片入场、指标冲线);需要\"手工感→高潮爆发\"反差的段落",
1570
+ "duration": "150f(5s)",
1571
+ "energy": "中高",
1572
+ "source": "references/shots/rhythm/sakuga-timing-shift.md",
1573
+ "styles": [
1574
+ {
1575
+ "key": "sakuga-timing-shift",
1576
+ "label": "sakuga-timing-shift"
1577
+ }
1578
+ ],
1579
+ "demos": [
1580
+ "demos/rhythm/sakuga-timing-shift/SakugaTimingShift.tsx"
1581
+ ]
1582
+ },
1583
+ {
1584
+ "id": "scan-bracket-sweep",
1585
+ "category": "effects",
1586
+ "summary": "文档弹到中央,四角落下 L 形取景括号,一条扫描光带拖着渐变尾迹在文档上往复扫 5 趟——文档全程静止,只有光在读它",
1587
+ "use": "\"正在解析/校验这份内容\"的过程镜头;文档类产品的能力演示;上传→分析链路的中段",
1588
+ "duration": "约5.0s(150f@30fps)",
1589
+ "energy": "中低(机械、克制,节奏全在往复扫掠的呼吸上)",
1590
+ "source": "references/shots/effects/scan-bracket-sweep.md",
1591
+ "styles": [
1592
+ {
1593
+ "key": "scan-bracket-sweep",
1594
+ "label": "scan-bracket-sweep"
1595
+ }
1596
+ ],
1597
+ "demos": [
1598
+ "demos/effects/scan-bracket-sweep/ScanBracketSweep.tsx"
1599
+ ]
1600
+ },
1601
+ {
1602
+ "id": "scanline-annotate-focus",
1603
+ "category": "effects",
1604
+ "summary": "一条扫描线自上而下匀速掠过已存在的页面,越过哪块区块的下缘,哪块就被四角取景框从外扩处弹簧收拢对准(一次过冲),随后贴出一枚逐字打出的机器标签,顶部状态行同步计数 00/06→06/06",
1605
+ "use": "\"AI 正在读你的页面/品牌\"的分析镜头;设计系统/品牌规范的拆解介绍;产品能力的自我说明段",
1606
+ "duration": "约5s(150f@30fps)",
1607
+ "energy": "中(机械冷静,节奏由扫描线匀速推动,标注是节拍点)",
1608
+ "source": "references/shots/effects/scanline-annotate-focus.md",
1609
+ "styles": [
1610
+ {
1611
+ "key": "scanline-annotate-focus",
1612
+ "label": "scanline-annotate-focus"
1613
+ }
1614
+ ],
1615
+ "demos": [
1616
+ "demos/effects/scanline-annotate-focus/ScanlineAnnotateFocus.tsx"
1617
+ ]
1618
+ },
1619
+ {
1620
+ "id": "scanline-assemble-flyin",
1621
+ "category": "effects",
1622
+ "summary": "页面开场是一张只有网格与虚线槽位的蓝图画板,一条亮扫描线自上而下掠过;扫到每个槽位,该处组件就从画外飞入过冲贴合,带方向性残影模糊与落位咬合角标——扫完整页恰好装配完成",
1623
+ "use": "\"页面自己生成\"的开场;AI 建站/自动排版类产品的核心演示;从空白到成品的能力叙事",
1624
+ "duration": "约5.2s(156f@30fps)",
1625
+ "energy": "中高(扫描线是稳的,但每次组件飞入都是一个爆点,密度递进)",
1626
+ "source": "references/shots/effects/scanline-assemble-flyin.md",
1627
+ "styles": [
1628
+ {
1629
+ "key": "scanline-assemble-flyin",
1630
+ "label": "scanline-assemble-flyin"
1631
+ }
1632
+ ],
1633
+ "demos": [
1634
+ "demos/effects/scanline-assemble-flyin/ScanlineAssembleFlyin.tsx"
1635
+ ]
1636
+ },
1637
+ {
1638
+ "id": "scroll-brake-moves",
1639
+ "category": "data",
1640
+ "summary": "长卷急刹两式——changelog-scroll-brake 基本款(高速长卷指数减速精准停位+目标抬升)与 brake-reticle-lock 组合款(急刹帧同帧准星咬合)",
1641
+ "use": "changelog/发布史/长列表段落:\"一直在发货,今天这条最大\";要给停点更强打击感用 B",
1642
+ "duration": "A 4–5s / B 5s",
1643
+ "energy": "高开中收(速度对比型)",
1644
+ "source": "references/shots/data/scroll-brake-moves.md",
1645
+ "styles": [
1646
+ {
1647
+ "key": "changelog-scroll-brake",
1648
+ "label": "changelog-scroll-brake"
1649
+ },
1650
+ {
1651
+ "key": "brake-reticle-lock",
1652
+ "label": "brake-reticle-lock"
1653
+ }
1654
+ ],
1655
+ "demos": [
1656
+ "demos/data/scroll-brake-moves/BrakeReticleLock.tsx",
1657
+ "demos/data/scroll-brake-moves/ChangelogScrollBrake.tsx"
1658
+ ]
1659
+ },
1660
+ {
1661
+ "id": "segmented-thumb-hero",
1662
+ "category": "interaction",
1663
+ "summary": "分段控件 thumb 位移当主角特写——超大胶囊 segmented control 弹簧浮入,描边箭头光标画外滑入按下,白 thumb 8f ease-out 滑到另一段,到位瞬间新图标 spring 弹出、旧图标收起",
1664
+ "use": "\"模式切换/二选一\"功能的宣告镜头(demo 的 video-shotcraft Prompt→Film、Chat→Agent 式);一个 UI 微交互撑一整镜的特写拍法",
1665
+ "duration": "~3.5s(demo 110f:浮入 18f + 光标 24f + 点击 + 滑动 8f + 图标弹出 + hold)",
1666
+ "energy": "中(微交互特写,精致不轰)",
1667
+ "source": "references/shots/interaction/segmented-thumb-hero.md",
1668
+ "styles": [
1669
+ {
1670
+ "key": "segmented-thumb-hero",
1671
+ "label": "segmented-thumb-hero"
1672
+ }
1673
+ ],
1674
+ "demos": [
1675
+ "demos/interaction/segmented-thumb-hero/SegmentedThumbHero.tsx"
1676
+ ]
1677
+ },
1678
+ {
1679
+ "id": "shot-transitions",
1680
+ "category": "transition",
1681
+ "summary": "镜头交棒三式——推进流白、whip-pan 甩镜(急刹款)、mask-wipe 穿窗(纵深款),按能量落差与接缝语义选型",
1682
+ "use": "任何两镜衔接处(技法卡,分镜阶段排完镜头后逐个接缝选一式)",
1683
+ "duration": "n/a(技法卡;各式占用帧数见参数表,从相邻镜头预算里划)",
1684
+ "energy": "n/a(技法卡,不占能量位)",
1685
+ "source": "references/shots/transition/shot-transitions.md",
1686
+ "styles": [
1687
+ {
1688
+ "key": "flash-cut",
1689
+ "label": "推进流白 flash-cut"
1690
+ },
1691
+ {
1692
+ "key": "whip-pan",
1693
+ "label": "whip-pan 甩镜"
1694
+ },
1695
+ {
1696
+ "key": "mask-wipe",
1697
+ "label": "mask-wipe 穿窗"
1698
+ }
1699
+ ],
1700
+ "demos": [
1701
+ "demos/transition/shot-transitions/PortalWipeV2.tsx",
1702
+ "demos/transition/shot-transitions/WhipBrakeReal.tsx"
1703
+ ]
1704
+ },
1705
+ {
1706
+ "id": "slam-entrance-moves",
1707
+ "category": "effects",
1708
+ "summary": "高能砸入三式——kanada-perspective-snap 金田透视急停、score-slam 比分砸落、impact-burst-kit 落点冲击套件(波及邻卡)",
1709
+ "use": "主角卡/KPI 卡的重拳入场;impact-feedback 管落位后的反馈,本卡管入场本身就是冲击",
1710
+ "duration": "单式动作段 6–22f + 冲击余波 ~16f + hold ≥45f(demo:A 120f / B 135f / C 140f)",
1711
+ "energy": "高",
1712
+ "source": "references/shots/effects/slam-entrance-moves.md",
1713
+ "styles": [
1714
+ {
1715
+ "key": "kanada-perspective-snap",
1716
+ "label": "kanada-perspective-snap"
1717
+ },
1718
+ {
1719
+ "key": "score-slam",
1720
+ "label": "score-slam"
1721
+ },
1722
+ {
1723
+ "key": "impact-burst-kit",
1724
+ "label": "impact-burst-kit"
1725
+ }
1726
+ ],
1727
+ "demos": [
1728
+ "demos/effects/slam-entrance-moves/ImpactBurstKit.tsx",
1729
+ "demos/effects/slam-entrance-moves/KanadaPerspectiveSnap.tsx",
1730
+ "demos/effects/slam-entrance-moves/ScoreSlam.tsx"
1731
+ ]
1732
+ },
1733
+ {
1734
+ "id": "space-camera-moves",
1735
+ "category": "camera",
1736
+ "summary": "3D 空间化运镜两式——exploded-view 爆炸分解(构件沿 Z 炸开再合体)、drone-dive-landing 无人机俯冲降落",
1737
+ "use": "把平面页面当 3D 实体拍的高光段落;两式都是\"大动作\",一支片合计 ≤2 次",
1738
+ "duration": "A 170f(5.7s,炸开-悬停-合体-收尾标题全程);C 105f(3.5s,俯冲 69f + 落定 hold 36f)单向俯冲",
1739
+ "energy": "高",
1740
+ "source": "references/shots/camera/space-camera-moves.md",
1741
+ "styles": [
1742
+ {
1743
+ "key": "exploded-view",
1744
+ "label": "exploded-view"
1745
+ },
1746
+ {
1747
+ "key": "drone-dive-landing",
1748
+ "label": "drone-dive-landing"
1749
+ }
1750
+ ],
1751
+ "demos": [
1752
+ "demos/camera/space-camera-moves/DroneDiveLanding.tsx",
1753
+ "demos/camera/space-camera-moves/ExplodedView.tsx"
1754
+ ]
1755
+ },
1756
+ {
1757
+ "id": "speed-ramp-freeze",
1758
+ "category": "rhythm",
1759
+ "summary": "帧号非线性 remap 的节奏手法——定格标注(流动→定格圈注→解冻)",
1760
+ "use": "卡片流/长横移中把一个重点\"停下给人看\";教学解说、评审语境",
1761
+ "duration": "定格标注全程 158f(≈5.3s,定格段 67f ≥45f)",
1762
+ "energy": "中高(速度反差本身即energy beat)",
1763
+ "source": "references/shots/rhythm/speed-ramp-freeze.md",
1764
+ "styles": [
1765
+ {
1766
+ "key": "freeze-annotate",
1767
+ "label": "freeze-annotate"
1768
+ }
1769
+ ],
1770
+ "demos": [
1771
+ "demos/rhythm/speed-ramp-freeze/FreezeAnnotateReal.tsx"
1772
+ ]
1773
+ },
1774
+ {
1775
+ "id": "spotlight-hero-card",
1776
+ "category": "opening",
1777
+ "summary": "关灯的剧场里一束钨丝聚光(带体积光柱)扫过页面锁定一张卡,斜侧推进后卡片弹起悬浮、香槟色光束沿轮廓两圈、连同 3D 注记一起贴回原位",
1778
+ "use": "\"单一主角\"式产品开场;把一个核心对象(卡片/条目/模块)立成全片主角",
1779
+ "duration": "172f(约 5.7s;锁定 f34 → 触地 f142 → 30f 真静止 hold)",
1780
+ "energy": "中(质感最高的一镜,节奏慢而稳)",
1781
+ "source": "references/shots/opening/spotlight-hero-card.md",
1782
+ "styles": [
1783
+ {
1784
+ "key": "spotlight-hero-card",
1785
+ "label": "spotlight-hero-card"
1786
+ }
1787
+ ],
1788
+ "demos": [
1789
+ "demos/opening/spotlight-hero-card/SpotlightHeroCard.tsx"
1790
+ ]
1791
+ },
1792
+ {
1793
+ "id": "spotlight-sweep-moves",
1794
+ "category": "effects",
1795
+ "summary": "暗场聚光显影三式——A 醒睡扫过(光到即亮光走即暗)、B 贴边泛光横摇(紫光贴 UI 边缘渗入+聚光匀速右移)、C 角落匀速显影(径向聚光从角落匀速扩张点亮全屏);黑场里\"光即叙事\"的 UI 展示",
1796
+ "use": "暗色调品牌片里逐个介绍 UI 面板/功能区;黑场开场把界面\"点亮\"登场;段落间光转场",
1797
+ "duration": "单式 3.5–4.5s;A/B 可串联成巡礼段",
1798
+ "energy": "中低(克制、神秘感,爆点在\"亮起\"瞬间)",
1799
+ "source": "references/shots/effects/spotlight-sweep-moves.md",
1800
+ "styles": [
1801
+ {
1802
+ "key": "glow-wake-sleep-panel",
1803
+ "label": "glow-wake-sleep-panel"
1804
+ },
1805
+ {
1806
+ "key": "slide-spotlight-pan",
1807
+ "label": "slide-spotlight-pan"
1808
+ },
1809
+ {
1810
+ "key": "corner-spotlight-reveal",
1811
+ "label": "corner-spotlight-reveal"
1812
+ }
1813
+ ],
1814
+ "demos": [
1815
+ "demos/effects/spotlight-sweep-moves/CornerSpotlightReveal.tsx",
1816
+ "demos/effects/spotlight-sweep-moves/GlowWakeSleepPanel.tsx",
1817
+ "demos/effects/spotlight-sweep-moves/SlideSpotlightPan.tsx"
1818
+ ]
1819
+ },
1820
+ {
1821
+ "id": "steep-tilt-glide",
1822
+ "category": "camera",
1823
+ "summary": "固定镜头下直立页面以 60° 强透视侧立(右近左远),页面自身沿其 3D 横面方向滑移掠过镜头(物动镜不动),滑移带速度重影、文字组件悬空贴落、由暗揭亮",
1824
+ "use": "长页面/多区块 UI 的炫技巡览(内容依次滑过固定机位);暗场霓虹调性;与贴面运镜卡互补的\"侧掠\"机位",
1825
+ "duration": "4s(120f)单镜;页面越宽越可拉长",
1826
+ "energy": "中高(透视炫技+持续运动,但节奏是匀的)",
1827
+ "source": "references/shots/camera/steep-tilt-glide.md",
1828
+ "styles": [
1829
+ {
1830
+ "key": "steep-tilt-glide",
1831
+ "label": "steep-tilt-glide"
1832
+ }
1833
+ ],
1834
+ "demos": [
1835
+ "demos/camera/steep-tilt-glide/SteepTiltGlide.tsx"
1836
+ ]
1837
+ },
1838
+ {
1839
+ "id": "stroke-segment-build",
1840
+ "category": "opening",
1841
+ "summary": "断笔成字——标题拆成十几段互不相连的笔画乱序逐段点亮,前 70% 不可读,末段落位瞬间语义\"啪\"地成立",
1842
+ "use": "开场吊悬念的产品名/大数字揭晓;一支片 ≤1 次;与 type-assembly/draw-svg-trace 分工:那些是\"看着字被组装/描画\",本卡是\"意义延迟揭晓\"",
1843
+ "duration": "165f(5.5s;揭晓 f105 后 hold 2s)",
1844
+ "energy": "低起中收(悬念型,落位帧是能量点)",
1845
+ "source": "references/shots/opening/stroke-segment-build.md",
1846
+ "styles": [
1847
+ {
1848
+ "key": "stroke-segment-build",
1849
+ "label": "stroke-segment-build"
1850
+ }
1851
+ ],
1852
+ "demos": [
1853
+ "demos/opening/stroke-segment-build/StrokeSegmentBuild.tsx"
1854
+ ]
1855
+ },
1856
+ {
1857
+ "id": "tear-streak-transitions",
1858
+ "category": "transition",
1859
+ "summary": "撕裂转场——glitch-displace 噪声撕裂(16 横条错位抖动中硬切),数字故障语义的条带级撕裂",
1860
+ "use": "高能换页:数字故障/断裂语义;页面完整性不破、能量拉满的条带级撕裂",
1861
+ "duration": "前态 ≥40f + 撕裂 16–24f + 收尾 ≥40f,约 4.5s(135f)",
1862
+ "energy": "高",
1863
+ "source": "references/shots/transition/tear-streak-transitions.md",
1864
+ "styles": [
1865
+ {
1866
+ "key": "glitch-displace",
1867
+ "label": "glitch-displace"
1868
+ }
1869
+ ],
1870
+ "demos": [
1871
+ "demos/transition/tear-streak-transitions/GlitchDisplace.tsx"
1872
+ ]
1873
+ },
1874
+ {
1875
+ "id": "tension-camera-moves",
1876
+ "category": "camera",
1877
+ "summary": "情绪运镜两式——bullet-time 冻结环绕、pull-back 拉远孤立,相机替观众\"感受\"而非\"看\"",
1878
+ "use": "情绪节点(震撼/收束)的运镜语言;与 space-camera-moves 的\"炫技大动作\"互补——这两式动作小、情绪重",
1879
+ "duration": "单式 5–6s(150–170f);全片合计 ≤2 式(各 ≤1 次)",
1880
+ "energy": "A 高 / B 低收",
1881
+ "source": "references/shots/camera/tension-camera-moves.md",
1882
+ "styles": [
1883
+ {
1884
+ "key": "bullet-time-freeze-orbit",
1885
+ "label": "bullet-time-freeze-orbit 冻结环绕"
1886
+ },
1887
+ {
1888
+ "key": "pull-back-isolation",
1889
+ "label": "pull-back-isolation 拉远孤立"
1890
+ }
1891
+ ],
1892
+ "demos": [
1893
+ "demos/camera/tension-camera-moves/BulletTimeFreezeOrbit.tsx",
1894
+ "demos/camera/tension-camera-moves/PullBackIsolation.tsx"
1895
+ ]
1896
+ },
1897
+ {
1898
+ "id": "terminal-3d",
1899
+ "category": "camera",
1900
+ "summary": "三个终端窗散布 3D 空间,相机窗间飞行、途中正弦拉远,每到一窗打字机敲命令、结果逐行滑出——命令执行的空间叙事流",
1901
+ "use": "开发者产品的 CLI/工作流演示:把\"三步命令\"拍成三站空间旅程",
1902
+ "duration": "约 8.2s(246f@30fps;三站各约 2–3s 停留 + 两段 30f 飞行)",
1903
+ "energy": "中(飞行给动感、打字给节奏,整体是沉稳的技术叙事;收在 ● READY 一记亮点)",
1904
+ "source": "references/shots/camera/terminal-3d.md",
1905
+ "styles": [
1906
+ {
1907
+ "key": "terminal-3d",
1908
+ "label": "terminal-3d"
1909
+ }
1910
+ ],
1911
+ "demos": [
1912
+ "demos/camera/terminal-3d/Terminal3D.tsx"
1913
+ ]
1914
+ },
1915
+ {
1916
+ "id": "text-as-mask",
1917
+ "category": "opening",
1918
+ "summary": "文字视频遮罩——瓷白舞台上切出超粗大标题字,字内部透出缓慢平移的暗色实时产品面板,结尾吸一口气后字形指数冲入放大 46 倍溢出、内部画面接管全屏",
1919
+ "use": "品牌词/口号与产品画面二合一的开场或章节卡;字是门、产品在门里",
1920
+ "duration": "165f(入场 18f + 字内漂移 78f + 吸气 8f + 冲入接管 24f + 落定/hold 37f)",
1921
+ "energy": "中高(漂移段沉稳,接管段一次爆发)",
1922
+ "source": "references/shots/opening/text-as-mask.md",
1923
+ "styles": [
1924
+ {
1925
+ "key": "text-as-mask",
1926
+ "label": "text-as-mask"
1927
+ }
1928
+ ],
1929
+ "demos": [
1930
+ "demos/opening/text-as-mask/TextAsMask.tsx"
1931
+ ]
1932
+ },
1933
+ {
1934
+ "id": "text-column-converge",
1935
+ "category": "typography",
1936
+ "summary": "双词对峙合拢——左\"NEW\"右特性词钉死在等屏边距两侧硬切轮换、全程零收缩,换到最后一词才唯一一次 ease-in-out 滑到居中咬合成短语,下方小字近乎硬切浮现;收尾揭晓型文字卡",
1937
+ "use": "特性清单收束到产品名/口号的段落(\"NEW × 一串特性 → NEW <产品名>\"式);发布会式 recap、版本号揭晓",
1938
+ "duration": "轮换 7–16f/词 × 8–9 词 + 合拢 ~36f + 小字后静置;全段约 5–6s",
1939
+ "energy": "中低(机器节奏、小字规格清单气质,不是砸字)",
1940
+ "source": "references/shots/typography/text-column-converge.md",
1941
+ "styles": [
1942
+ {
1943
+ "key": "text-column-converge",
1944
+ "label": "text-column-converge"
1945
+ }
1946
+ ],
1947
+ "demos": [
1948
+ "demos/typography/text-column-converge/TextColumnConverge.tsx"
1949
+ ]
1950
+ },
1951
+ {
1952
+ "id": "theme-switch-moves",
1953
+ "category": "interaction",
1954
+ "summary": "主题切换两式——theme-sweep 斜向扫场(边界扫过处就地换肤)与 palette-ripple 组合款(⌘K 面板收缩成点、涟漪从点荡开换肤)",
1955
+ "use": "深色模式/主题功能的叙事段落;同一 UI \"在你眼前变色\"而非切到新场景",
1956
+ "duration": "A 140f(4.7s)/ B 156f(5.2s)",
1957
+ "energy": "A 中 / B 中高(组合款有完整因果链)",
1958
+ "source": "references/shots/interaction/theme-switch-moves.md",
1959
+ "styles": [
1960
+ {
1961
+ "key": "theme-sweep-toggle",
1962
+ "label": "theme-sweep-toggle"
1963
+ },
1964
+ {
1965
+ "key": "palette-theme-ripple",
1966
+ "label": "palette-theme-ripple"
1967
+ }
1968
+ ],
1969
+ "demos": [
1970
+ "demos/interaction/theme-switch-moves/PaletteThemeRipple.tsx",
1971
+ "demos/interaction/theme-switch-moves/ThemeSweepToggle.tsx"
1972
+ ]
1973
+ },
1974
+ {
1975
+ "id": "timeline-travel",
1976
+ "category": "data",
1977
+ "summary": "时间轴横移——镜头沿水平刻度轴加速掠过版本刻度,每过一格卡片弹立短停,末刻度急停推近",
1978
+ "use": "changelog/里程碑/发展史段落(\"我们一直在发货\"的另一种拍法);与 scroll-brake-moves 分工:那卡是纵向列表急刹,本卡是横向时间旅行",
1979
+ "duration": "4–5s",
1980
+ "energy": "中高(加速→急刹的节奏型镜头)",
1981
+ "source": "references/shots/data/timeline-travel.md",
1982
+ "styles": [
1983
+ {
1984
+ "key": "timeline-travel",
1985
+ "label": "timeline-travel"
1986
+ }
1987
+ ],
1988
+ "demos": [
1989
+ "demos/data/timeline-travel/TimelineTravel.tsx"
1990
+ ]
1991
+ },
1992
+ {
1993
+ "id": "title-demote-to-label",
1994
+ "category": "typography",
1995
+ "summary": "大标题降格为节标签两式——A 大标题居中显影站稳一拍后连续缩小 0.3x 平移到左上角落成小节标签、内容区在其下生长;B 同套路但登场时带文本选中态高亮块扫入再撤掉",
1996
+ "use": "章节开场(标题先当主角再让位给内容);教程/功能演示片的小节交接;B 式给\"文字/编辑\"类产品加身份暗示",
1997
+ "duration": "A ~3.7s(112f)/ B ~4.5s(134f);demo 两式串播 246f",
1998
+ "energy": "低中(版式变换型,氛围镜头)",
1999
+ "source": "references/shots/typography/title-demote-to-label.md",
2000
+ "styles": [
2001
+ {
2002
+ "key": "title-demote-to-label",
2003
+ "label": "title-demote-to-label"
2004
+ }
2005
+ ],
2006
+ "demos": [
2007
+ "demos/typography/title-demote-to-label/TitleDemoteToLabel.tsx"
2008
+ ]
2009
+ },
2010
+ {
2011
+ "id": "trailer-grammar-moves",
2012
+ "category": "rhythm",
2013
+ "summary": "预告片语法一式——trailer-bumper 前置速剪钩子:三镜 9f 速剪 + 黑场静默一拍,再开场标题",
2014
+ "use": "预告片的开场钩子(cold open):正片前先塞三个最抓眼的镜头,再静默一拍正式开场",
2015
+ "duration": "A ~4.7s(140f)",
2016
+ "energy": "A 高",
2017
+ "source": "references/shots/rhythm/trailer-grammar-moves.md",
2018
+ "styles": [
2019
+ {
2020
+ "key": "trailer-bumper",
2021
+ "label": "trailer-bumper"
2022
+ }
2023
+ ],
2024
+ "demos": [
2025
+ "demos/rhythm/trailer-grammar-moves/TrailerBumper.tsx"
2026
+ ]
2027
+ },
2028
+ {
2029
+ "id": "transition-hidden-cut",
2030
+ "category": "transition",
2031
+ "summary": "藏切点转场三式——前景遮挡隐形切、对撞开屏、暖色漏光,硬切藏进遮挡/撞击/光峰的 1-3 帧里,观众看不见剪刀",
2032
+ "use": "两镜衔接处需要\"无痕换景\"或\"仪式感开屏\"时(技法卡,与 shot-transitions 三式同层选型)",
2033
+ "duration": "n/a(技法卡;各式占用帧数见参数表,从相邻镜头预算里划)",
2034
+ "energy": "n/a(技法卡,不占能量位)",
2035
+ "source": "references/shots/transition/transition-hidden-cut.md",
2036
+ "styles": [
2037
+ {
2038
+ "key": "invisible-cut",
2039
+ "label": "invisible-cut 前景遮挡隐形切"
2040
+ },
2041
+ {
2042
+ "key": "versus-slam",
2043
+ "label": "versus-slam 对撞开屏"
2044
+ },
2045
+ {
2046
+ "key": "light-leak-burn",
2047
+ "label": "light-leak-burn 琥珀漏光"
2048
+ }
2049
+ ],
2050
+ "demos": [
2051
+ "demos/transition/transition-hidden-cut/InvisibleCut.tsx",
2052
+ "demos/transition/transition-hidden-cut/LightLeakBurn.tsx",
2053
+ "demos/transition/transition-hidden-cut/VersusSlam.tsx"
2054
+ ]
2055
+ },
2056
+ {
2057
+ "id": "transition-travel",
2058
+ "category": "transition",
2059
+ "summary": "穿越式转场——字腔穿越:巨型章节标题的字形就是一扇窗,镜头钻进字形笔画完成换景",
2060
+ "use": "前后两镜存在\"元素/容器\"级空间关系的接缝(技法卡,与 shot-transitions 三式互补选用)",
2061
+ "duration": "n/a(技法卡;demo 150f,主推动作段 52f,前后 hold 另计,帧数从相邻镜头预算里划)",
2062
+ "energy": "n/a(技法卡,不占能量位)",
2063
+ "source": "references/shots/transition/transition-travel.md",
2064
+ "styles": [
2065
+ {
2066
+ "key": "letterform-zoom",
2067
+ "label": "字腔穿越 letterform-zoom"
2068
+ }
2069
+ ],
2070
+ "demos": [
2071
+ "demos/transition/transition-travel/LetterformZoom.tsx"
2072
+ ]
2073
+ },
2074
+ {
2075
+ "id": "type-and-filter",
2076
+ "category": "interaction",
2077
+ "summary": "真实 UI 上打字搜索、网格自己收敛成一张卡、点击穿透进详情页",
2078
+ "use": "功能演示的\"操作叙事\"段;搜索/筛选/进入详情的任何交互链路",
2079
+ "duration": "约 2.5s(118–190f)",
2080
+ "energy": "中(发牌高能段之后的从容一拍)",
2081
+ "source": "references/shots/interaction/type-and-filter.md",
2082
+ "styles": [
2083
+ {
2084
+ "key": "type-and-filter",
2085
+ "label": "type-and-filter"
2086
+ }
2087
+ ],
2088
+ "demos": [
2089
+ "demos/interaction/type-and-filter/TypeAndFilter.tsx"
2090
+ ]
2091
+ },
2092
+ {
2093
+ "id": "type-assembly-moves",
2094
+ "category": "typography",
2095
+ "summary": "文字集结三式——split-text-stagger 逐字裂升、letterform-drift-assembly 漂移合拢、text-on-path 沿线流入",
2096
+ "use": "大标题/标语的入场;与 type-entrance-moves、document-typewriter-reveal 同属标题入场大品类,全片 ≤2 种",
2097
+ "duration": "单式 4–5.5s(动作段 A ~56f / B ~104f / C ~110f;demo 全长含 hold:A 130f / B 150f / C 160f,各自导出 `*_DURATION`)",
2098
+ "energy": "A 中 / B 中高 / C 中",
2099
+ "source": "references/shots/typography/type-assembly-moves.md",
2100
+ "styles": [
2101
+ {
2102
+ "key": "split-text-stagger",
2103
+ "label": "split-text-stagger 裂升"
2104
+ },
2105
+ {
2106
+ "key": "drift-assembly",
2107
+ "label": "drift-assembly 漂移合拢"
2108
+ },
2109
+ {
2110
+ "key": "text-on-path",
2111
+ "label": "text-on-path 沿线流入"
2112
+ }
2113
+ ],
2114
+ "demos": [
2115
+ "demos/typography/type-assembly-moves/LetterformDriftAssembly.tsx",
2116
+ "demos/typography/type-assembly-moves/SplitTextStagger.tsx",
2117
+ "demos/typography/type-assembly-moves/TextOnPath.tsx"
2118
+ ]
2119
+ },
2120
+ {
2121
+ "id": "type-entrance-moves",
2122
+ "category": "typography",
2123
+ "summary": "标题文字入场一式——letter-drop-physics 字符坠落(重力砸落、弹跳、歪斜站定,最后一拍集体立正归位)",
2124
+ "use": "大标题/章节字卡的入场;与 type-assembly-moves(集结系)、document-typewriter-reveal(打字机)同品类互斥选用",
2125
+ "duration": "单式 5s(含 hold 与静止收尾;动作段 ~116f,demo 150f)",
2126
+ "energy": "中高(物理趣味)",
2127
+ "source": "references/shots/typography/type-entrance-moves.md",
2128
+ "styles": [
2129
+ {
2130
+ "key": "letter-drop-physics",
2131
+ "label": "letter-drop-physics 字符坠落"
2132
+ }
2133
+ ],
2134
+ "demos": [
2135
+ "demos/typography/type-entrance-moves/LetterDropPhysics.tsx"
2136
+ ]
2137
+ },
2138
+ {
2139
+ "id": "type-rhythm-sync",
2140
+ "category": "typography",
2141
+ "summary": "文字随声同步两式——font-weight-pump 字重脉冲(笔画随鼓点变粗弹回)与 karaoke-fill-sync 卡拉OK填色(词随旁白逐个点亮)",
2142
+ "use": "标题/标语与音轨强绑定的段落;A 绑节拍(鼓点),B 绑语音(旁白逐词)",
2143
+ "duration": "A FontWeightPump 165f / B KaraokeFillSync 150f;A 128 BPM 每拍 14f、衰减窗 9–13f,B 每词按语速 18–33f",
2144
+ "energy": "A 高(蹦迪感)/ B 中(跟读引导)",
2145
+ "source": "references/shots/typography/type-rhythm-sync.md",
2146
+ "styles": [
2147
+ {
2148
+ "key": "font-weight-pump",
2149
+ "label": "font-weight-pump 字重脉冲"
2150
+ },
2151
+ {
2152
+ "key": "karaoke-fill-sync",
2153
+ "label": "karaoke-fill-sync 填色随读"
2154
+ }
2155
+ ],
2156
+ "demos": [
2157
+ "demos/typography/type-rhythm-sync/FontWeightPump.tsx",
2158
+ "demos/typography/type-rhythm-sync/KaraokeFillSync.tsx"
2159
+ ]
2160
+ },
2161
+ {
2162
+ "id": "typewriter-moves",
2163
+ "category": "typography",
2164
+ "summary": "打字机 error-retype——误删重打的\"改口\"三幕剧:打出平庸词 → 犹豫 → 退格删掉 → 更快打出卖点词",
2165
+ "use": "slogan/卖点字卡、否定式文案;文字自带时间性的入场",
2166
+ "duration": "~5.3s(160f)",
2167
+ "energy": "中低",
2168
+ "source": "references/shots/typography/typewriter-moves.md",
2169
+ "styles": [
2170
+ {
2171
+ "key": "error-retype",
2172
+ "label": "error-retype"
2173
+ }
2174
+ ],
2175
+ "demos": [
2176
+ "demos/typography/typewriter-moves/TypewriterErrorRetype.tsx"
2177
+ ]
2178
+ },
2179
+ {
2180
+ "id": "ui-strip-away-outro",
2181
+ "category": "outro",
2182
+ "summary": "减法式收尾——点击 Publish 后整个编辑器 UI 从外围到中心层层错峰蒸发,黑场上只剩那颗按钮滑到屏心放大,按钮再淡出交棒字标定版",
2183
+ "use": "\"发布/完成\"语义的 outro;想讲\"一键之后一切复杂性消失\"的产品收尾",
2184
+ "duration": "~4.8s(144f:光标就位 34f → 蒸发 ~40f → 按钮独占 → 字标接棒 → 字标 hold ≥1s)",
2185
+ "energy": "中(前段安静操作,中段持续退场,无瞬时冲击)",
2186
+ "source": "references/shots/outro/ui-strip-away-outro.md",
2187
+ "styles": [
2188
+ {
2189
+ "key": "ui-strip-away-outro",
2190
+ "label": "ui-strip-away-outro"
2191
+ }
2192
+ ],
2193
+ "demos": [
2194
+ "demos/outro/ui-strip-away-outro/UiStripAwayOutro.tsx"
2195
+ ]
2196
+ },
2197
+ {
2198
+ "id": "ui-to-brand-morph",
2199
+ "category": "outro",
2200
+ "summary": "UI 变品牌两式——icon-flip-bloom 图标 Y 轴翻扁成竖线、从竖线撑开成品牌标志(琥珀斜切随后划入)+ wordmark 逐字落定,与 input-morph-assemble 输入框收缩成取景框竖笔、三块图元落进构造槽位拼成完整标志",
2201
+ "use": "品牌收尾/outro 前最后一拍;\"你每天用的那个 UI 就是这个品牌\"的视觉论证",
2202
+ "duration": "A ~4.3s(130f)/ B ~5.6s(168f)",
2203
+ "energy": "中高(收尾点睛,一次完整变形讲完)",
2204
+ "source": "references/shots/outro/ui-to-brand-morph.md",
2205
+ "styles": [
2206
+ {
2207
+ "key": "icon-flip-bloom",
2208
+ "label": "icon-flip-bloom"
2209
+ },
2210
+ {
2211
+ "key": "input-morph-assemble",
2212
+ "label": "input-morph-assemble"
2213
+ }
2214
+ ],
2215
+ "demos": [
2216
+ "demos/outro/ui-to-brand-morph/IconFlipBloomLogo.tsx",
2217
+ "demos/outro/ui-to-brand-morph/InputMorphsIntoLogo.tsx"
2218
+ ]
2219
+ },
2220
+ {
2221
+ "id": "value-stagger-gradient",
2222
+ "category": "ui-entrance",
2223
+ "summary": "16 根柱入场时 delay 是时间错峰,同时高度/色相/位移/模糊四个属性各自铺成从首到末的数值梯度;第二拍把错峰原点换成中心,脉冲幅度以中心为最大重新铺开",
2224
+ "use": "技法演示与参数化能力的展示镜头;也可直接当数据/频谱/均衡器类界面的入场",
2225
+ "duration": "约 5.0s(150f@30fps)",
2226
+ "energy": "中高(第一拍是连续铺开,第二拍中心脉冲是明确的一次峰值)",
2227
+ "source": "references/shots/ui-entrance/value-stagger-gradient.md",
2228
+ "styles": [
2229
+ {
2230
+ "key": "value-stagger-gradient",
2231
+ "label": "value-stagger-gradient"
2232
+ }
2233
+ ],
2234
+ "demos": [
2235
+ "demos/ui-entrance/value-stagger-gradient/ValueStaggerGradient.tsx"
2236
+ ]
2237
+ },
2238
+ {
2239
+ "id": "vertical-word-roll-blur-cycle",
2240
+ "category": "typography",
2241
+ "summary": "句尾词换成竖向滚轮,3 次换词各 0.55s(outQuint 七成 + outBack 三成,前快后极慢带微过冲),相邻行按距离上垂直 blur 与灰度,中心词落定瞬间从灰染成强调色",
2242
+ "use": "\"Crafted for ___\" / \"Built for ___\" 这类句干 + 受众/对象列举的一句话卖点;浅底品牌片的干净一拍",
2243
+ "duration": "约 5.0s(150f@30fps:静置 → 3 次换词 → 尾部整组淡出)",
2244
+ "energy": "中(稳定三拍,无峰值)",
2245
+ "source": "references/shots/typography/vertical-word-roll-blur-cycle.md",
2246
+ "styles": [
2247
+ {
2248
+ "key": "vertical-word-roll-blur-cycle",
2249
+ "label": "vertical-word-roll-blur-cycle"
2250
+ }
2251
+ ],
2252
+ "demos": [
2253
+ "demos/typography/vertical-word-roll-blur-cycle/VerticalWordRollBlurCycle.tsx"
2254
+ ]
2255
+ },
2256
+ {
2257
+ "id": "voice-waveform-live",
2258
+ "category": "interaction",
2259
+ "summary": "录音胶囊实时声纹——64 根细竖条随\"说话\"起伏,说话时中部高耸、停顿缩成点线,波形从右往左滚动;说→停→说→提交塌缩的完整表演",
2260
+ "use": "语音输入/AI 助手\"正在听你说\"的功能镜头;无 UI 内容可展示但需要持续活性撑画面的段落",
2261
+ "duration": "172f(~5.7s:入场 14f + 说 1.4s + 停 0.8s + 说 1.4s + 提交塌缩 / 收进气泡 0.8s + hold 0.7s)",
2262
+ "energy": "中(功能性活性,不是炫技)",
2263
+ "source": "references/shots/interaction/voice-waveform-live.md",
2264
+ "styles": [
2265
+ {
2266
+ "key": "voice-waveform-live",
2267
+ "label": "voice-waveform-live"
2268
+ }
2269
+ ],
2270
+ "demos": [
2271
+ "demos/interaction/voice-waveform-live/VoiceWaveformLive.tsx"
2272
+ ]
2273
+ },
2274
+ {
2275
+ "id": "wall-reveal-moves",
2276
+ "category": "ui-entrance",
2277
+ "summary": "整墙批量入场两式——bento 逐格点亮、蓝图描线成形,全部原位显形不位移,与 deck-deal-flyin 的飞入位移型互补成品类矩阵",
2278
+ "use": "功能墙/卡片墙/整页界面的整体亮相;内容已在原位、要\"显形\"而非\"涌入\"的段落",
2279
+ "duration": "单式约 5s(A 150f / B 150f @30fps,含建立 hold 与静止收尾)",
2280
+ "energy": "中",
2281
+ "source": "references/shots/ui-entrance/wall-reveal-moves.md",
2282
+ "styles": [
2283
+ {
2284
+ "key": "bento-light-up",
2285
+ "label": "bento-light-up 逐格点亮"
2286
+ },
2287
+ {
2288
+ "key": "wireframe-draw-on",
2289
+ "label": "wireframe-draw-on 蓝图描线成形"
2290
+ }
2291
+ ],
2292
+ "demos": [
2293
+ "demos/ui-entrance/wall-reveal-moves/BentoLightUp.tsx",
2294
+ "demos/ui-entrance/wall-reveal-moves/WireframeDrawOn.tsx"
2295
+ ]
2296
+ },
2297
+ {
2298
+ "id": "white-flash-logo-simplify-cut",
2299
+ "category": "transition",
2300
+ "summary": "液态金属质感的彩色词标静置流光,蓄力后从字心炸出一记白闪过曝,曝光回落时同一位置已是扁平版字标——一次闪白完成质感降维",
2301
+ "use": "品牌段落收束(华丽演绎→干净定妆);情绪从炫技切换到正式宣告的转场拍",
2302
+ "duration": "约 4s(120f@30fps;演出 0–34f · 蓄力 34–46f · 冲白 44–54f · 曝光回落 54–76f · 锁定 72–96f · hold 至 120f)",
2303
+ "energy": "中高(一次脉冲式重音,前后都是静场)",
2304
+ "source": "references/shots/transition/white-flash-logo-simplify-cut.md",
2305
+ "styles": [
2306
+ {
2307
+ "key": "white-flash-logo-simplify-cut",
2308
+ "label": "white-flash-logo-simplify-cut"
2309
+ }
2310
+ ],
2311
+ "demos": [
2312
+ "demos/transition/white-flash-logo-simplify-cut/WhiteFlashLogoSimplifyCut.tsx"
2313
+ ]
2314
+ },
2315
+ {
2316
+ "id": "wipe-transitions",
2317
+ "category": "transition",
2318
+ "summary": "几何擦除转场——blinds-slice 百叶窗切条(12 根 3D 叶片错峰翻面成波,波扫过后整页由 A 换成 B)",
2319
+ "use": "新旧页都不动、一条几何边界扫过完成交接的通用转场;不依赖构图里有合适元素,哪儿都能用",
2320
+ "duration": "前态 ≥20f + 擦除 ~56f + 收尾 ≥40f,约 4.4s(132f)",
2321
+ "energy": "中",
2322
+ "source": "references/shots/transition/wipe-transitions.md",
2323
+ "styles": [
2324
+ {
2325
+ "key": "blinds-slice",
2326
+ "label": "blinds-slice"
2327
+ }
2328
+ ],
2329
+ "demos": [
2330
+ "demos/transition/wipe-transitions/BlindsSlice.tsx"
2331
+ ]
2332
+ },
2333
+ {
2334
+ "id": "word-relay-filmstrip",
2335
+ "category": "typography",
2336
+ "summary": "左列黑白相间等高页面卡步进滚动(焦点卡全亮、邻卡离焦压暗)、右侧衬线大词原位接力(名词恒定+动词轮换)——切词瞬间才滚动一格,词块垂直中心与当前页面卡中点精确对齐",
2337
+ "use": "\"一个主体 × 多种能力\"的枚举段(Shotcraft frames/builds/ships…);作品集/案例流展示;产品多场景巡礼",
2338
+ "duration": "每词期 ~1.5–2s × 3–4 词;demo 180f(6s)",
2339
+ "energy": "中低(编辑部气质,节奏靠切词的\"咔哒\"感)",
2340
+ "source": "references/shots/typography/word-relay-filmstrip.md",
2341
+ "styles": [
2342
+ {
2343
+ "key": "word-relay-filmstrip",
2344
+ "label": "word-relay-filmstrip"
2345
+ }
2346
+ ],
2347
+ "demos": [
2348
+ "demos/typography/word-relay-filmstrip/WordRelayFilmstrip.tsx"
2349
+ ]
2350
+ },
2351
+ {
2352
+ "id": "word-relay-geometry",
2353
+ "category": "typography",
2354
+ "summary": "三个利益词各带一套专属几何接力——虚线大圆减速自转 + 彗星弧飞跑 → 三实线圆 trim 依次生长后收拢咬紧 → 镀铬金属 sheen 扫过后一拍收成纯白;旧词缩到 0.86 淡出,新词描边→填充揭示",
2355
+ "use": "三点式利益陈述(更快/更好/更强);品牌价值观段落;需要\"一词一世界\"的中段推进",
2356
+ "duration": "约 6.0s(180f@30fps:三段各 ≈60f,段间重叠 6f)",
2357
+ "energy": "中高(三拍推进 + 全程几何运动 + 背景粒子,无静止帧)",
2358
+ "source": "references/shots/typography/word-relay-geometry.md",
2359
+ "styles": [
2360
+ {
2361
+ "key": "word-relay-geometry",
2362
+ "label": "word-relay-geometry"
2363
+ }
2364
+ ],
2365
+ "demos": [
2366
+ "demos/typography/word-relay-geometry/WordRelayGeometry.tsx"
2367
+ ]
2368
+ }
2369
+ ],
2370
+ "files": {
2371
+ "LICENSE": "02da8ccd8ddb6946940ccc99494c04992a8cf4b9835bcc32f70ae985ef160f59",
2372
+ "SKILL.md": "e5046d8cd9d95d42ff6f6d942089512ef947c435f8c2a9e4e22330a6f5592533",
2373
+ "assets/lib/Caption.tsx": "7539ceb9456cb2fe693872bd77f976db9c703addb8eb569633666df9050f99bd",
2374
+ "assets/lib/ClipCard.tsx": "709c0d15faf96662998d8677ed833f4ecf19dfda8313fd0efbdf19cb2b39fe2b",
2375
+ "assets/lib/DigitRoll.tsx": "9b4e3b269a9d053ed22469b5f49c09f30aae0d18a2df46e1d4449b38b86f50bf",
2376
+ "assets/lib/FlashCut.tsx": "c21d48223ed5d99cfafca77836c7055976e83a6589e73a4b0d0bdd8f1ed29e79",
2377
+ "assets/lib/FlatPanel.tsx": "d3bad4d49521b834fdc3b13f8a89d30176ffdc81f07fce1ee86306cb2ee69d76",
2378
+ "assets/lib/PageCam.tsx": "1b82a9d612894d1a4d6daf8700b39cb50fc71715ae7b6f0897a0bd66ab3411c8",
2379
+ "assets/lib/VerticalTicker.tsx": "1de3a6ee447eb5afc5cd7339bf32aa82b78a6e0b8e6850f0cf7d4efa3bad7791",
2380
+ "assets/lib/helpers/camera.tsx": "f35b9814457e12970f35cdd601f44e88721333699cf3d6dd0ca80ec15b1faf1e",
2381
+ "assets/lib/helpers/motion.ts": "95fac010e48eb7d49dcad68b0f855dca57bfd5ea3d5b197a27b7597f51e7fad8",
2382
+ "assets/lib/helpers/rand.ts": "383aa73d830fd81bab495199b07d9626ea6c2a710ed6081c2341f2b57b762d41",
2383
+ "assets/lib/helpers/shake.ts": "962aff832d17410c050c9cb374c2991033eac470e99bb0c3e7ce037776448368",
2384
+ "assets/scripts/build-readme-cover.mjs": "b9bb23be730e53fbee1524af4f330d89e2aebf9c8ec7962d39301c1b6787e046",
2385
+ "assets/scripts/capture-template.mjs": "8e3efa941e0c297ed2d17e5e72af28ba5f9101d6137919bd8d0eb36baf855c77",
2386
+ "assets/scripts/sfx-source.py": "4b7fc77203cf5e76017cf37017ff516cb98f0bf925ace3d0f50a34cf4786ceb8",
2387
+ "assets/scripts/smoke-render-demos.py": "7e0e4d9a4e20d7d28297060b2a2fac5047e4398106f2583155be88165f85bdc8",
2388
+ "assets/scripts/test_sfx_source.py": "9a2a9f4c0cdd4517a0231d626185a700c9288f19062d5543a885b2cc6dcee5be",
2389
+ "demos/README.md": "f593440524eb82c6ce4fe0bee7abe63a111eef6bb4bacf258538d7b76bd62e20",
2390
+ "demos/_fixtures/Brand.tsx": "8034fa987c0f8ed37fd6422a0b8a2fcf1f6e2c73abe373aba5fb83007af250e2",
2391
+ "demos/_fixtures/Fixtures.tsx": "bd45fa10c22d6c4645e74fe5e106f2a91841716962b9be198c545e9ab34cd987",
2392
+ "demos/_fixtures/Look.tsx": "d3dba47b91841648a9ee7d827f86fbb1224f11acce2036fa5b2270fbe4e19bf6",
2393
+ "demos/_fixtures/Motion.tsx": "81daa150aded61c21f4e8fe4b80a7efb87f9a767d28b69b274bc50705f07485e",
2394
+ "demos/_fixtures/PageCam2D.tsx": "97e687ac30adc8e96bd1f71107de9d0e417cc35f405b72c7c6db98a8687cf154",
2395
+ "demos/_fixtures/Polish.tsx": "85d26e13593f38b403bb66945c05dbc2631c23437ac5b0242f9d96b53cc54e54",
2396
+ "demos/_textures/live-layout.json": "e8d2e6a76fbc1e1fa0cd56a9acc341279683cd2452a1a667d420c31931b520fd",
2397
+ "demos/camera/basic-3d-scene/Basic3DScene.tsx": "5c06728fca57abb7d6416ce6dd7ff92642ebedbe590e5459e63d5a0082691016",
2398
+ "demos/camera/crash-zoom-punch/CrashImpactReal.tsx": "e44839c7d1e43a25978bededa58573478aeb95e94f2b1b830542fd55f693bc49",
2399
+ "demos/camera/crash-zoom-punch/CrashZoomReal.tsx": "f226b81b8f970b7d0a38ae3fb0d86cefc27a2ab1aa0334cf3cbf30b172563f45",
2400
+ "demos/camera/cursor-flyover/CursorFlyover.tsx": "f234775365ecb93f9576db4715c66bb21513bfb158e71112c1efa63b121ab826",
2401
+ "demos/camera/depth-layer-moves/MultiplaneReal.tsx": "4566d05a98022ce52d09b2292bf0d81e04f0ea5d40f5cfe71455e3266fb19bd7",
2402
+ "demos/camera/graze-face-tour/GrazeFaceTour.tsx": "27e816d7b33051f677e5472276fcdcf9fe8832aeef8780cb16644724c4377db4",
2403
+ "demos/camera/overhead-camera-moves/OverheadTabletopDrop.tsx": "2a8e3d5241d68d2a4b77eb2bc51d69cfe644baf51d673564871600eeaac872e7",
2404
+ "demos/camera/overhead-camera-moves/TiltReveal.tsx": "2621fbf6a60d2c89175156c9e6b6c28c2c741b011f9c6dffcd4d267714ae5568",
2405
+ "demos/camera/space-camera-moves/DroneDiveLanding.tsx": "8cafe8fc6011a5ced57765916e4f1be7bbfffbf83973a94f2eda34292ccc91af",
2406
+ "demos/camera/space-camera-moves/ExplodedView.tsx": "5127dc596bd5557b3cd093ed5fb983f6d00ff3a05bae9344702a69215783aec4",
2407
+ "demos/camera/steep-tilt-glide/SteepTiltGlide.tsx": "a99a4f838a0f33bb963e5de0845597973b4712ccb7f4ffab955be3bcd141f67d",
2408
+ "demos/camera/tension-camera-moves/BulletTimeFreezeOrbit.tsx": "87e2ae1248a724cebbc6642bbea013fb000a1bd9841a51221129af7b9026d273",
2409
+ "demos/camera/tension-camera-moves/PullBackIsolation.tsx": "f6e909d64453b9da0b484bd34d3c7d03cee0fabd407286aad6b4ff0681c9de39",
2410
+ "demos/camera/terminal-3d/Terminal3D.tsx": "74a96bcb19e4e65a9822703f5907b3e7357f39ee15e69d5867a23ef86f220300",
2411
+ "demos/data/before-after-slider-scrub/BeforeAfterSliderScrub.tsx": "924435426b3e0f3378ab05ca5a04e66b8b1a7ab198410b8bc2ee1ddb69458359",
2412
+ "demos/data/chart-live-moves/AxisRescaleShockV2.tsx": "7f6003c967329cc7d9bd5e9c78cd4924ca2ffec84aedc1d6537b865b0a529c94",
2413
+ "demos/data/chart-live-moves/OscilloscopeStreamV2.tsx": "00548471ea812de87e3e010cb45a2c0722dd0ca4eaa3146eb7e8ad6d82b3b30a",
2414
+ "demos/data/chart-live-moves/UnitDotSwarmRegroupV2.tsx": "9898bae674ed759eb9d888dcae1ec2a556463d9854dbbf870e44cd324945f496",
2415
+ "demos/data/gauge-readout-moves/NeedleSweepSelftest.tsx": "7d869f984b89fe0d6c2b339737990faceb3556ff0489bf03404fe72042f3e577",
2416
+ "demos/data/gauge-readout-moves/TapeScrollFixedPointer.tsx": "0fd3fd8cf726f75852ac3d6d02509252e8d806bf82e96b502d81207f0d7f4204",
2417
+ "demos/data/scroll-brake-moves/BrakeReticleLock.tsx": "d7a835169382d630a6a0c76922a75eee7ff7d66d78fa0b47e9c8a7580eb3f63b",
2418
+ "demos/data/scroll-brake-moves/ChangelogScrollBrake.tsx": "624034efec290edb04c789f5b96c1c6aac5cdffa18417fc5f2ff6f547c68f75c",
2419
+ "demos/data/timeline-travel/TimelineTravel.tsx": "d93d1b33db8ad29f69a913b15662670121031f5be2df90188c5680527b8eccf7",
2420
+ "demos/effects/assemble-then-type-flyin/AssembleThenTypeFlyin.tsx": "ddf865a26f5309e00ae13d64428341f36c4f44054027b2fdd86fbe5679fe6519",
2421
+ "demos/effects/aurora-bloom-bg-flip/AuroraBloomBgFlip.tsx": "2c663caf82bfbb2b564c897bb205ba8e8b65d09ac827e590f62357f08195893f",
2422
+ "demos/effects/brand-frame-snap/BrandFrameSnap.tsx": "52247e0eafc647a86b1ef7cd7408ddf6fcfe6d02b4d5057907a69e02005fc2d4",
2423
+ "demos/effects/fui-hud-moves/ReticleLockOn.tsx": "f24845551c2a68a9393bd527c065acf9062ac2d2b125e97079d6392ec56b013d",
2424
+ "demos/effects/glow-flyline-moves/FlylineArc.tsx": "325b9e9e4b946b0750e1ea45a6049b245cf6bda21a046908647a5065c5e50a00",
2425
+ "demos/effects/glow-flyline-moves/GlowOrbAmbient.tsx": "c7d1b04d7587a96bfd348dd60589424a0b3311aa92b470b0be0dccaa51e9908f",
2426
+ "demos/effects/glow-flyline-moves/OrbFlylineRelay.tsx": "bb05cd2c495585fc1635cdf7a09cf55fb372eda77c9210edd105aa646e7bb974",
2427
+ "demos/effects/icon-performance-moves/AttentionBounce.tsx": "8fbb1fab7c2165dc3e68b9d012425687b1d1285ea314fdd9138491e3ca45db56",
2428
+ "demos/effects/impact-feedback/AnimeImpact.tsx": "8552991a4632b1df974b25898cd3299d2f06f85e5b9a132dce2058cb5f917bd9",
2429
+ "demos/effects/impact-feedback/HitCounter.tsx": "ccb3a3234faa19b366a3468fbd3e4a9a0d7d3b881f28e47f3db18edbaaf17dce",
2430
+ "demos/effects/light-play-moves/SheenSweepRetry.tsx": "5067474b225197224ed0a95fc38e71228fd96de5faee1436501e7d53a798c1df",
2431
+ "demos/effects/light-play-moves/SpotlightSweepReveal.tsx": "48095a947ebea7c7dafc4e50a77064cd26afe29092aaf2660789f9d51f6d98f3",
2432
+ "demos/effects/radial-ripple-phone-chips/RadialRipplePhoneChips.tsx": "2ca99b1ccb2431bf4b2050a32f60f52d764e72839f5594c1f6e58f751116d0ee",
2433
+ "demos/effects/riso-print-hits/RisoMisregistrationHit.tsx": "913226ac62d954206dad1f107626d9eca1a09e1ef8acd1c1ed4476e30738be77",
2434
+ "demos/effects/scan-bracket-sweep/ScanBracketSweep.tsx": "64900312007e27b0e7e7ea02b225c86934a07523b093dfedca3d026ffd6a4f3b",
2435
+ "demos/effects/scanline-annotate-focus/ScanlineAnnotateFocus.tsx": "da414a1e1ba71dfe59221dafb35a98836d54e79b0aa0ef00e080a1cb7bba4bc9",
2436
+ "demos/effects/scanline-assemble-flyin/ScanlineAssembleFlyin.tsx": "899214f8b124d489d8cd033f2c3ea61c91de21650527e3e8ab30145b44467778",
2437
+ "demos/effects/slam-entrance-moves/ImpactBurstKit.tsx": "88d8c85161612d7e5c55c8698b7fdd86577303080356c558d6ff1a85e59a7461",
2438
+ "demos/effects/slam-entrance-moves/KanadaPerspectiveSnap.tsx": "05327068ad0dc691c1cadd1b64ff029d6fbe77a7897779106a549b1342dfffae",
2439
+ "demos/effects/slam-entrance-moves/ScoreSlam.tsx": "3809e6e77a381b486fe94461e968f5138d196d80fcc12d1eba10a25ea99f4bad",
2440
+ "demos/effects/spotlight-sweep-moves/CornerSpotlightReveal.tsx": "8cbc0e970a19d439e45799f1a0efd0a5a95139fb4ba331f2a772945deff9a461",
2441
+ "demos/effects/spotlight-sweep-moves/GlowWakeSleepPanel.tsx": "b99e33200908716c8c451c4b23845099331cafd4ffb558c578c25c5d39b2f188",
2442
+ "demos/effects/spotlight-sweep-moves/SlideSpotlightPan.tsx": "38b59eedab291378ea42b867220ddb2b8e7d08d0eebf3a26b2c8324e1808c446",
2443
+ "demos/interaction/autolayout-gap-dial/AutolayoutGapDial.tsx": "72378447c389fa250361344a29c4fc74ba62002e962b9b05a8466477c7273d89",
2444
+ "demos/interaction/canvas-materialize-moves/DiagramCascadeBuild.tsx": "ffe489f7c357aec64769da9944452479e4f9b5014a9bab6d487d981a878e3a8e",
2445
+ "demos/interaction/canvas-materialize-moves/PanelToCanvasMaterialize.tsx": "3013fedfaaa05cd540235a1d7ca11d19b391959c7d6d3d519b6c8abab8d62aa4",
2446
+ "demos/interaction/chip-grid-single-select-blackout/ChipGridSingleSelectBlackout.tsx": "b3333477dce8f7b0541b96e8783b0ac74b6fdfd269f866b312a2015cffcb80d3",
2447
+ "demos/interaction/collab-cursor-moves/CursorCastEnsemble.tsx": "292d966103221e31fecaaffc53777807970546e1d36f5931167147eee84c4103",
2448
+ "demos/interaction/glass-pill-dictation-typing/GlassPillDictationTyping.tsx": "a9690f5bd857ceafad5146ae61a3d8ca9c03f2ae32e9db620e29c057ff050284",
2449
+ "demos/interaction/hashtag-to-pill-materialize/HashtagToPillMaterialize.tsx": "80185c9ce559fe2b2f99064e56b7d2c84f5e6f58619523ab70f9d7cb8f7e2e0f",
2450
+ "demos/interaction/picker-carousel-feature-cycle/PickerCarouselFeatureCycle.tsx": "2106dfe5f69329e5580825db5f3bd41f46cfd6b455667bc5632556886a3a71fa",
2451
+ "demos/interaction/segmented-thumb-hero/SegmentedThumbHero.tsx": "8426ee1879c2e30105579668f8cbbd9421da902fce6ecb391a8b04a24590aa5a",
2452
+ "demos/interaction/theme-switch-moves/PaletteThemeRipple.tsx": "5999463f193470d83f0d89c3ffe96efeabb0c624b0b984e58ede7ab61ce5963c",
2453
+ "demos/interaction/theme-switch-moves/ThemeSweepToggle.tsx": "44898999ea91bb2be4e27ea12514d0ad055e37336ddd002c0b9ad1f63bc073f5",
2454
+ "demos/interaction/type-and-filter/TypeAndFilter.tsx": "6669feb5a5b71d6dd11b194c385bbf7c0ef78c5f89c05e14aae94b8f84ac5e11",
2455
+ "demos/interaction/voice-waveform-live/VoiceWaveformLive.tsx": "57167645eb3846e6c9055c901261911c03ef75207fff3212b9ebb57463b8891f",
2456
+ "demos/opening/crane-rise-reveal/CraneRiseReveal.tsx": "53b084c01bc32f70a570396b8fad6babb637128527dbb53829ecbf9269441baa",
2457
+ "demos/opening/dataviz-landscape-open/DatavizLandscapeOpen.tsx": "fb8105f2f0772193bb5a051409070a6693ee433a38f3ef15efc7b6d22da1c724",
2458
+ "demos/opening/fracture/Fracture.tsx": "4c97ecb444364c4ece38747d3677662eed906c14d2914c6c3cfcd510b59b0084",
2459
+ "demos/opening/icon-field-colorize/IconFieldColorize.tsx": "5df1ee5bb62e58ec64cfb9a44d398ecb88ae45c5ad03677a84296ac4398bd452",
2460
+ "demos/opening/letterspace-materialize/LetterspaceMaterialize.tsx": "f78ad285592bc7f641c80a701ad3c1dc4afe34a66ce8eec576d91b304fb338b4",
2461
+ "demos/opening/magician-card-flourish/MagicianCardFlourish.tsx": "a4747bd1b2d851cc6e13f0aeffe701175948dca499fc5880200062166d6ad769",
2462
+ "demos/opening/orbit-ring-title-open/OrbitRingTitleOpen.tsx": "03ddc9b013139a35cb147242f4c9398aab860bc5faf0b97aa476109bc364908d",
2463
+ "demos/opening/spotlight-hero-card/SpotlightHeroCard.tsx": "84191de88c8ed3518ab1605fd4773d19446bf1fd07c912f93a0cfa3424e8490c",
2464
+ "demos/opening/stroke-segment-build/StrokeSegmentBuild.tsx": "22b98c0579012cb90ad36d2e9eef9f229b84bce11573bb45e3956e57e8d37499",
2465
+ "demos/opening/text-as-mask/TextAsMask.tsx": "6f743450fce0437d2aa2f7797d7d62dbb6e0d4b63fac94e05bb6bb0660ab63f2",
2466
+ "demos/outro/grain-dissolve/GrainDissolve.tsx": "7e06c6de29f7c860b884a2befe4f905541e1446d784ece6539a108fb287092e6",
2467
+ "demos/outro/logo-shrink-wordmark-lockup/LogoShrinkWordmarkLockup.tsx": "f32087814fa84d1d51b53a82840cf35a6d25e055445c9a615691ba68903eff85",
2468
+ "demos/outro/neon-triple-marquee/NeonTripleMarquee.tsx": "da5df96cdbd6e13f7789a44525ea9215ee7c8f03549c5efe0c08c94cb9bfe561",
2469
+ "demos/outro/outro-group-photo-launch/OutroGroupPhotoLaunch.tsx": "bdfa8d1a3262b3e7d1fda66627cd4eba386c04258d47bb7eb16bfbe79480a527",
2470
+ "demos/outro/ui-strip-away-outro/UiStripAwayOutro.tsx": "dccfd1580a18c5fa126830f47f22e10f2d7f97f59ac607812edbbf59512a18ee",
2471
+ "demos/outro/ui-to-brand-morph/IconFlipBloomLogo.tsx": "29cfa27f8663cc6eb32e80d37529771c05d5d146f11b91ce1e31cd6244ee933a",
2472
+ "demos/outro/ui-to-brand-morph/InputMorphsIntoLogo.tsx": "024131a8cfb5ed46f3096767727708714da4fa500593a9257d10ca0d64befd23",
2473
+ "demos/rhythm/beat-cut-moves/PaparazziFlash.tsx": "a3a8b637ad57f1815dc77c725dc64349b09627c7b6be24b61a5f4ba04a7610e4",
2474
+ "demos/rhythm/beat-step-list-theme-cycle/BeatStepListThemeCycle.tsx": "191ac2d5081ac0ba3d04da19cc9af00ce5caf82178c2fddc56f9576f38348b18",
2475
+ "demos/rhythm/panel-grid-moves/ComicPanelSplit.tsx": "ebca2dde478a1a0e2b80cf0105c1c33ee97eaf673e6ace9dfb687d8d255e7c53",
2476
+ "demos/rhythm/quad-split-parallel-scenes/QuadSplitParallelScenes.tsx": "e16fd0689c64625264ec1faa10edd10a18efec3fa2cb822c6ac4c08c1a50c025",
2477
+ "demos/rhythm/rhythm-interrupt-moves/JumpCutPunchIn.tsx": "861708d44cc69d06ea57d93302ea6e24a15a67f518b83dae66658382c8f1fb25",
2478
+ "demos/rhythm/sakuga-timing-shift/SakugaTimingShift.tsx": "d7137c703e302b42ac9e6fd4c11f4f894110b6a67d4c889aab0d94051c70ca4e",
2479
+ "demos/rhythm/speed-ramp-freeze/FreezeAnnotateReal.tsx": "2998edc6c8009cb329e9e66dad1a26d26d55b11baea1212029f0912014b2a282",
2480
+ "demos/rhythm/trailer-grammar-moves/TrailerBumper.tsx": "7fc3f3e622830076d80f3b5d271b292ce145428d7dc79e4b0d552ca04d5ca267",
2481
+ "demos/transition/bottom-push-stack-wipe/BottomPushStackWipe.tsx": "2e5502f1ea0a72674b791ce4d7478426ee502b81927b211ec9b5f92fd6d0a571",
2482
+ "demos/transition/card-flip-reveal/CardFlipReveal.tsx": "8f865de560e44f96e950340099dc240c5a351168f9b5ca861ecb88c434a5e5ed",
2483
+ "demos/transition/card-flock-tumble/CardFlockTumble.tsx": "d5f7c6f39a24866fb05fb3011cd514449fd3906105a05b822746f0f4d09a1aeb",
2484
+ "demos/transition/circle-match-iris/CircleMatchIris.tsx": "4ea5457af4a57589edee36239824e78de7ec8cc792c9a3430af3acdb04b3d17c",
2485
+ "demos/transition/gradient-transition/GradientTransition.tsx": "0481d8ef6d0e7fdcb1dd4890721b7631b7fb5b1b7ff2cf768f054861db36a6a4",
2486
+ "demos/transition/line-carry-transition/LineCarryTransition.tsx": "bc4c0135279070f08061d236cab03e7716d1c89d7d295e76ea5c848850a50640",
2487
+ "demos/transition/mosaic-reframe/MosaicReframe.tsx": "bb0bc5a847754500f5f2a7a5c4681f93f5013f017cacc8c65cb33c88385fc227",
2488
+ "demos/transition/page-turn-transitions/BarnDoorSplit.tsx": "b042f3ab98c81ff2b1067952ad4e747466caad1e2a0176b51aaa6d4b7a1e2ee9",
2489
+ "demos/transition/print-texture-transitions/InkBleedReveal.tsx": "a77edfadac12bbb1c02f726f056e62364d0d84c1aced13a644571490a0c4babd",
2490
+ "demos/transition/shot-transitions/PortalWipeV2.tsx": "cde13bd5cbb445985dbc97c537a3f81c13d4a69d400b2d8e46fa7a1f6576fdef",
2491
+ "demos/transition/shot-transitions/WhipBrakeReal.tsx": "9544f3decc2402e90b7992a7f99c3ddf999bce7d9faf87a15f14d08644a33123",
2492
+ "demos/transition/tear-streak-transitions/GlitchDisplace.tsx": "b3b21babba48440ecb5b113857e3564572bb4b2130d4a8ed814c6b82d2b886c3",
2493
+ "demos/transition/transition-hidden-cut/InvisibleCut.tsx": "f87a3b32c1d279891a739ba24f873380947f8e63036c200230b0b308104bcb4c",
2494
+ "demos/transition/transition-hidden-cut/LightLeakBurn.tsx": "fe1d3dcbcf0be3dbbe2a1f7fee628219d5533dcb3da6ff7e5a16d78365297af4",
2495
+ "demos/transition/transition-hidden-cut/VersusSlam.tsx": "70cbdded004034ab63408de5b7b70d642067fe4a7f1fe5b1151a0081d57b1249",
2496
+ "demos/transition/transition-travel/LetterformZoom.tsx": "6aeade1667107bc2ee15c77dd2d5c7bf4377dc54e1816012806ceebfc4166a19",
2497
+ "demos/transition/white-flash-logo-simplify-cut/WhiteFlashLogoSimplifyCut.tsx": "d128b08190ab8ea2cc91f8d1a8801556ca3cff5232eee7717fa54b5744be4521",
2498
+ "demos/transition/wipe-transitions/BlindsSlice.tsx": "88683b602f5d149024b5231da5b8e28df33fb7b325d7409fbd5a8ad4bec2afb3",
2499
+ "demos/typography/blur-slide/BlurSlide.tsx": "c7bc3640f882a05755b5c41989a7a10eb9306b8cf598629a3027997d17296ae1",
2500
+ "demos/typography/brace-expand/BraceExpand.tsx": "f1a6fcdc389f844c0370ed18a7b40acb8f9e766b4fcbce53ca5f9085430b2b9c",
2501
+ "demos/typography/brand-ink-open/BrandInkOpen.tsx": "9a1b82feadfdf20b1c4b7b59ec9b1ca34d5d8d190eb4669209a5de0b4dadcb4d",
2502
+ "demos/typography/countdown-arc-scatter/CountdownArcScatter.tsx": "b990c81d4e93890f0113d9a80351eef782d38d6994da2073cf9ba8f88c069843",
2503
+ "demos/typography/flying-words/FlyingWords.tsx": "28b5bd14044e8af6b4488715012a627d9354245bbb4ead5cc40c21fa47c2d572",
2504
+ "demos/typography/glitch-cycle/GlitchCycle.tsx": "43a37b5c7cd6d8d475884acffcb1dd1d3db1ec1e9b42a8824ba5333a7230448f",
2505
+ "demos/typography/gradient-word-sweep/GradientWordSweep.tsx": "44d0f358dbdfe6489ceb923ae0431f7a8e64d8ad59152399f99bc6ed8c3c879a",
2506
+ "demos/typography/lead-word-zoom-assemble/LeadWordZoomAssemble.tsx": "4da4b0d0310e38100cb1166985af54fb43136f1a26a18f8b5d1d07c18b73b8e7",
2507
+ "demos/typography/marker-underline-title/MarkerUnderlineTitle.tsx": "7b098cd880837603ceadd434b8a280b6bf1671ef5b37e8643ab09cfc166d9305",
2508
+ "demos/typography/outline-word-fill/OutlineWordFill.tsx": "784e01369effad879abb99fbac3ae2cc12d6c2d99dc012b18e4140c86046c44b",
2509
+ "demos/typography/paper-title-card/PaperTitleCard.tsx": "0a6f6a16e377e71e14e46956284f039f42707a066cd70352dcf201f0c1587c1a",
2510
+ "demos/typography/pill-chip-slot-cycle-handled/PillChipSlotCycleHandled.tsx": "408f6d1eeebfe0eb8057a761e4e615e9b145a96497b8bc1e12410931cfaad127",
2511
+ "demos/typography/pill-slot-cycle/PillSlotCycle.tsx": "70239ba5505e79dd1d2b9d27ccc6afa68482f1631949fd0f192f7f7b52e73490",
2512
+ "demos/typography/text-column-converge/TextColumnConverge.tsx": "d9f8d7235c0fa6f87f32ae654f77ea72aa9f0b4a3638bdc85f55563185f5aab1",
2513
+ "demos/typography/title-demote-to-label/TitleDemoteToLabel.tsx": "8ac70ad306246e2638fb66ef57a8bff37b8c2b2d7d7db2211509fc30e01fb0cf",
2514
+ "demos/typography/type-assembly-moves/LetterformDriftAssembly.tsx": "485730a498141df7e0498ff8460c0a1c5115ff1f47433ebb0722642aa7d9a37f",
2515
+ "demos/typography/type-assembly-moves/SplitTextStagger.tsx": "d1eab61db0ccc06071acf599f0557c86927db829b0caf85a4505571c7749a618",
2516
+ "demos/typography/type-assembly-moves/TextOnPath.tsx": "1db95ca24c4d7428728ebbc640e2ac799d5756badc34b3f296468761324c8ed3",
2517
+ "demos/typography/type-entrance-moves/LetterDropPhysics.tsx": "9c8402993e4bfdb909a74eec5962ae91ffb1928aad4e6d5d055eb7b2f40fc4fa",
2518
+ "demos/typography/type-rhythm-sync/FontWeightPump.tsx": "8e5f12b05844599109a6e567c4e730146e96396e91b9cb2535befbd1571710c1",
2519
+ "demos/typography/type-rhythm-sync/KaraokeFillSync.tsx": "c2725c7aa3ce92df8dd09306f7af4765ae90035129f99130e95b0839720bf29d",
2520
+ "demos/typography/typewriter-moves/TypewriterErrorRetype.tsx": "dd96cc07d19af6884e5d2034d63a8ba46e065a03874fe32cc35c856b6289ef2b",
2521
+ "demos/typography/vertical-word-roll-blur-cycle/VerticalWordRollBlurCycle.tsx": "a39720c6bdde7c88f5aea1e5d7a109f5efa1fe89f655849981ce67451d7c52df",
2522
+ "demos/typography/word-relay-filmstrip/WordRelayFilmstrip.tsx": "3f8a10adccf6ded4bda050aecd04da0fc749821b4d0566d31405521a4eabebc7",
2523
+ "demos/typography/word-relay-geometry/WordRelayGeometry.tsx": "ea418e0ca9f78fe491e086728587c5795b55b1a106d39f12d3d9a21c96c5b725",
2524
+ "demos/ui-entrance/avatar-bracket-carousel/AvatarBracketCarousel.tsx": "b22ce4f7d1d57f78ec367ea88a0a10780579c4e93c9f7142fbef0a01fb9eb000",
2525
+ "demos/ui-entrance/bezier-source-converge-merge/BezierSourceConvergeMerge.tsx": "016d60301b2592aab161e1fbd22ee536653c1ef63bd06a12e27357226771434c",
2526
+ "demos/ui-entrance/card-stack/CardStack.tsx": "e3d720d6990ca04183906d78c19df7ec5f8f8284021aee50307131457c15df56",
2527
+ "demos/ui-entrance/carousel-3d/Carousel3D.tsx": "64bcd4d730abd63abff1906223f2b858965c395f95f04f794a2e612021ee338e",
2528
+ "demos/ui-entrance/clipcard-looping/ClipCardLooping.tsx": "9578968f8d16736113ad124cdf84be2dca28511811172eccec5f4ecf0c10bd8c",
2529
+ "demos/ui-entrance/cloner-depth-echo/ClonerDepthEcho.tsx": "6ebdff4cb7174a3f0874746945c4e822665d827d37af9678dc3d34be2589b495",
2530
+ "demos/ui-entrance/deck-deal-flyin/DeckDealFlyin.tsx": "162a502aa7b7ec6ad39d12c6c6574f918e95e710686289e643ca0bba84326fdd",
2531
+ "demos/ui-entrance/doc-park-left-pill-deal/DocParkLeftPillDeal.tsx": "e1b1277d9f594c89e39af47a7482bf9e84fc9a462bd78db0c05ef79a566009b8",
2532
+ "demos/ui-entrance/document-typewriter-reveal/DocumentTypewriterReveal.tsx": "8399fe6b10f948c21415737b3380b4b445739b6825c3cabba00197ae0a0b2047",
2533
+ "demos/ui-entrance/draw-svg-trace/DrawSvgTrace.tsx": "c963b464b302069604e98ce2fb13d03239a6b41d6085ff764e6c48144c2121bd",
2534
+ "demos/ui-entrance/element-body-moves/ContactShadowLift.tsx": "06e2c7e4d12915a3c0aecc55031078f428a50dc15ca92bf134ccf68cd6b52be1",
2535
+ "demos/ui-entrance/integration-hub-map/IntegrationHubMap.tsx": "ccc7c43fafae77e2edf9ab21aef5abfd0b860f71f6587ac57fdb5472a3ca001b",
2536
+ "demos/ui-entrance/list-reveal/ListReveal.tsx": "5efe5fa7fc9332f573b56cf7c2946a4fc4644ad3513653205e982ff4b0ef66a9",
2537
+ "demos/ui-entrance/list-stack-press/ListStackPress.tsx": "20fa86e51a1a47354dd43e6a2b6b5217a5aa818805e9ffcd50d6588be6566d25",
2538
+ "demos/ui-entrance/neon-frame-forerun/NeonFrameForerun.tsx": "d4f3e76bcba8dc7c7d0a50bef96db92018728fc56684d41e11d9c3653957a4c3",
2539
+ "demos/ui-entrance/neon-frame-orbit-drop/NeonFrameForerunOrbit.tsx": "11e9a6225e98be88011dcd9cd6d42748e97da7fa010d9dbd05a9cc4f9613d9c1",
2540
+ "demos/ui-entrance/page-waterfall-wall/PageWaterfallWall.tsx": "c1cc793244dd55c3746ce67e60080e61970426f5ec8845809255d89a443cf989",
2541
+ "demos/ui-entrance/page-waterfall-wall/VerticalTicker.tsx": "1de3a6ee447eb5afc5cd7339bf32aa82b78a6e0b8e6850f0cf7d4efa3bad7791",
2542
+ "demos/ui-entrance/product-card-progressive-assemble/ProductCardProgressiveAssemble.tsx": "f72cab79cf90e6efd1ef46c3713839302970371eb6852ad38089c4d3238d7e6e",
2543
+ "demos/ui-entrance/radial-wave/RadialWave.tsx": "c4d372a60355be61148d9a84cd8bfa125f59163bbfe00856639ff172c24a0a64",
2544
+ "demos/ui-entrance/research-card-stack-scroll/ResearchCardStackScroll.tsx": "7fb916c96b9fc759d97797e6eba15328ceb5bffa08e5af103f8a3ae9c9343c50",
2545
+ "demos/ui-entrance/row-embed/RowEmbed.tsx": "bf075225041ee750b9859215b4aa13f3b700da923a94bbd8fb7780b8a5d7fd6f",
2546
+ "demos/ui-entrance/value-stagger-gradient/ValueStaggerGradient.tsx": "e8aaa1aadbe9ac05712baf3965f9b95281c5149ee86e3576d69b5d6c787ae4cb",
2547
+ "demos/ui-entrance/wall-reveal-moves/BentoLightUp.tsx": "088ca4e82490e88206f4595dec9274a354e1d1da2b1ad925aa287e0561d63cf5",
2548
+ "demos/ui-entrance/wall-reveal-moves/WireframeDrawOn.tsx": "d8e6607d0fe5629fb3130d34804595b4335039cc8ceb0e9f47f905a1b9a26f31",
2549
+ "gallery/api/library.json": "0f2164bf52ada0d33e1e0571288f8afcc105b0de5f6a4d2558a35048f205a9a0",
2550
+ "references/aesthetic-rules.md": "ed46f4d1780a72e2d8d3634714359e6a8464bc1bd15c929d8854b481d2e84bc2",
2551
+ "references/final-review.md": "8ff374bff38f807246aec575aba52f1f7862aade356a65a2c872dd17d7cb4bff",
2552
+ "references/guided-free-creation.md": "3bce289d8e82c4bd74d6e246fcd0ca0e32ab6f14b04aaa4729d0a528be7d05e2",
2553
+ "references/jianying-export.md": "cd01b49ad84cbc6f6ab629b0f9340ab649f24a6fb57b480b7b7aed6e1e21cdd6",
2554
+ "references/music-beat-sync.md": "7bcb12a309f8e855f4698936e842dec91c2cd24421b8003a4a36721c2c6b8ba9",
2555
+ "references/pipeline.md": "7593dd38ca5255febfc2778b0ed78b158edee8519e9070328480dd4be15c871e",
2556
+ "references/publish-upload-post.md": "15ac196da74b25c6237f06411a9c624f1030bc3d9ae04bd1a3375aaaededbd31",
2557
+ "references/sequences/promo-energy-arc.md": "023ac5741cd5367f6c19f1561fd114cad38e1c0523a2a77f2159442f37d755c1",
2558
+ "references/sfx-sourcing.md": "1e173914127b38198975133162b699abe003d328bcfa0505a2980a5c4e05d0cd",
2559
+ "references/shots/ATTRIBUTION.md": "f595aacb7563d793bf3c73d0fbceed8001a24c006b23df38771903d7195260e1",
2560
+ "references/shots/camera/basic-3d-scene.md": "83c7cacdac78b4db949ccf0c0f842a8676016aeeea9f5d2c67c25b8f4475be13",
2561
+ "references/shots/camera/crash-zoom-punch.md": "b683d6bb83546680b0381e999adfd0c38d39a167b9bad8b28a19f9652454344b",
2562
+ "references/shots/camera/cursor-flyover.md": "dbda78e0054ca4ca9e83c09bea4e23fbbb68c2331ab40da765eb77ca8c73d1cb",
2563
+ "references/shots/camera/depth-layer-moves.md": "54cfc27b32b008c121e4bb2f26d626f503547c6c1fb91f1d286446feee7998d1",
2564
+ "references/shots/camera/graze-face-tour.md": "7247d4c1f19ab50204536a98af2e42b39da8023e2881c58d75ec8d8e774559c7",
2565
+ "references/shots/camera/overhead-camera-moves.md": "ad56813514c854f0289ba5a7e6f8c68ead34de190bc7ebd594c42c6a6dd58d5b",
2566
+ "references/shots/camera/space-camera-moves.md": "41225e87d157bb11e89c4cfea8cebded3258ef0a208ba940573df3be369ac04d",
2567
+ "references/shots/camera/steep-tilt-glide.md": "c0e8f5efd8658042b1722d408fa79e664c141c129cb3053120597acdef907a2c",
2568
+ "references/shots/camera/tension-camera-moves.md": "a9058e6c280eae8d567b18259fc375346376a058a24bd83d3545d44b27eeb3c3",
2569
+ "references/shots/camera/terminal-3d.md": "57812e6bf786498afbe4c3771dd3b70208b6bd4182d26423fd67e233e06e63c1",
2570
+ "references/shots/data/before-after-slider-scrub.md": "5c585d6a4d1df4c43bcc3cc501b3e1141d87ab8977c273ec136c67e56d897d9f",
2571
+ "references/shots/data/chart-live-moves.md": "f1641e2daee76148f6ebb0019620d500fbb25c0518b963c87b4f56289ce68b17",
2572
+ "references/shots/data/gauge-readout-moves.md": "f6eb9c44389dad9704863cd64cb2e104ba0c14d4fba7fbe0b932e51e3a348ca0",
2573
+ "references/shots/data/scroll-brake-moves.md": "da8381402f9528a0b5a2063be6ea5aaac0b41574554351cc5d0f4cdd5cba527d",
2574
+ "references/shots/data/timeline-travel.md": "c5f7ceceaf74cb9b88368e9a89d7006afdf53734ec5919ea6d79f4a0ca77fe14",
2575
+ "references/shots/effects/assemble-then-type-flyin.md": "e33b01043347d8d4aa2156a3895e692b868afa351ac59480d7ad327cf162ecd8",
2576
+ "references/shots/effects/aurora-bloom-bg-flip.md": "dba493d8aca20bf45ad2dd41998f0d5dc856559e367212843fe44768b80029fc",
2577
+ "references/shots/effects/brand-frame-snap.md": "e057f60567fc5f696a65fe8b7a3c1bd14b9d205ffa7ba972520f3c169a2471f7",
2578
+ "references/shots/effects/fui-hud-moves.md": "014baed764a43a5eee27bcb760ea9e9b815bb3e004bda7fcd755c8876b2c62fa",
2579
+ "references/shots/effects/glow-flyline-moves.md": "27a769378a5523df1cfb8a24502982ff8d288663916c97d1aa31f0d28cf937b7",
2580
+ "references/shots/effects/icon-performance-moves.md": "626e4833a2d994a572ad71214e74ef1f8d95d294ad9b13075be2da595405b293",
2581
+ "references/shots/effects/impact-feedback.md": "ce76e43e1f90b252601d5af8afea995a6f760e1a12b3a26315f6a252800c1c98",
2582
+ "references/shots/effects/light-play-moves.md": "cb89525d47fe9c7450ae8b80264f5fa625ac99b8f8c78dabd6a7bcc5bd9eb343",
2583
+ "references/shots/effects/radial-ripple-phone-chips.md": "51acf92b06f92c9aa9dfdea12af0efcc5e75347689e07c123c749d423a57e3e5",
2584
+ "references/shots/effects/riso-print-hits.md": "00c69e305c984f56eb2080d53fd0123c88120ef1b93d93092e21b6a8d8dcff16",
2585
+ "references/shots/effects/scan-bracket-sweep.md": "ba3464faafc3ada5a64c4e29e8bcbc4ebe5f4ffb8ef3567f488be5121385a06f",
2586
+ "references/shots/effects/scanline-annotate-focus.md": "4b20f8d91d999cd3f9a0a7922f0fc6b118691ba083bbcd5582dfebe65e75d8e4",
2587
+ "references/shots/effects/scanline-assemble-flyin.md": "b634451c0c997974e99bf6149362015b103f8b8be0ea6c0b00d02cceb1098fb0",
2588
+ "references/shots/effects/slam-entrance-moves.md": "40f656e15b47270a5ef82f8a8319d500402357ea468869626a9cb688903e2409",
2589
+ "references/shots/effects/spotlight-sweep-moves.md": "39657d09b90009f4a18190664820b6cfd28d6808cbd65d47f5f5e4a1b43cdf7d",
2590
+ "references/shots/interaction/autolayout-gap-dial.md": "3d7488afd21ccc6a73013ecc1ea9d31e1b189905808e3f0fa2a0086ae60ea233",
2591
+ "references/shots/interaction/canvas-materialize-moves.md": "075d26cb0c4d5b9413a1b63dabc8a42699ba6e63e23529e3a66962a6a4f21770",
2592
+ "references/shots/interaction/chip-grid-single-select-blackout.md": "3a72dccb3c29a3c39a32cfeb4078cfba6023e1d3975e677bb200307aff8dc90a",
2593
+ "references/shots/interaction/collab-cursor-moves.md": "76854683f4888afc309317833b837a43b4fce0963598f20d2c999369b6fa2628",
2594
+ "references/shots/interaction/glass-pill-dictation-typing.md": "27b85011e4c19df5f5dc96ae382fd5fb1be7f9b12a1eed7279f06869ff04cc5d",
2595
+ "references/shots/interaction/hashtag-to-pill-materialize.md": "1d770cd02ca835027d14099140239efe037963a7d0528845cae787e5b486d7ed",
2596
+ "references/shots/interaction/picker-carousel-feature-cycle.md": "e21ed5876c49e23f2bbeb5ff5caff53efd82070fb184c9cd60c61baa2db37a86",
2597
+ "references/shots/interaction/segmented-thumb-hero.md": "5ac8152358e7dc151473f4881b05497cc5aeea821343e369fedd5b640b84598e",
2598
+ "references/shots/interaction/theme-switch-moves.md": "982c7d1127e3db56b518eff645662c195c84d983881d11fa11f932e5e0054618",
2599
+ "references/shots/interaction/type-and-filter.md": "a3dcc73f8cf96271e971bad2377295a7856d1903885bbcc6c47401311aa193de",
2600
+ "references/shots/interaction/voice-waveform-live.md": "062a71b8e70b65a5b41084de65a56b8c572cef8a67bb3ff250c6925c83b7f8eb",
2601
+ "references/shots/opening/brand-ink-open.md": "b9f5402c5afb47607fcd6324835d95215a901b2adfb0293c828c2eae6104e2cf",
2602
+ "references/shots/opening/crane-rise-reveal.md": "081a20d3cee54456108185a1b3aa3fcf718fbf60d1a97f25165ce76fee1d46ec",
2603
+ "references/shots/opening/dataviz-landscape-open.md": "55d6a9ffc368801d1d30b3aee964a26270657a733a4c61f93c062662028f9aea",
2604
+ "references/shots/opening/fracture.md": "62de428e8d982569ab095ab0b3289bab4c6773fb85065676118b9f10b124ee09",
2605
+ "references/shots/opening/icon-field-colorize.md": "cfd3373a3014b029281838e906ae75cf8d9bb4706bd8e6d3ec42637afb0816c3",
2606
+ "references/shots/opening/letterspace-materialize.md": "910d848c6e925a7287f17905e94c109962353bbc4120d752b8fb327d431d59b8",
2607
+ "references/shots/opening/magician-card-flourish.md": "92def0c771f360b4feaa9bb08c954df2a6fa9102b4273f5a60af20d23f45925f",
2608
+ "references/shots/opening/orbit-ring-title-open.md": "54025976b3e66d500591af9b1f7e3dfb512f3622ce99ca6aeddff482c0e4cf64",
2609
+ "references/shots/opening/spotlight-hero-card.md": "85e698e973dea676b529ce627842c0b3715a82ae68deff4a774fc48db113e4b6",
2610
+ "references/shots/opening/stroke-segment-build.md": "82575a4e988a95503539a05ecc1e681d763fbda1f7a8dff1099ac60c878824f3",
2611
+ "references/shots/opening/text-as-mask.md": "fc5b2fe1b703667e7267352493a9992a953b9058676c6ee3168efadc7b05d33e",
2612
+ "references/shots/outro/grain-dissolve.md": "67e66e904e1ee5b6e848fe66aba1d4919a75cf947988e4f817080107d3c3c1a7",
2613
+ "references/shots/outro/logo-shrink-wordmark-lockup.md": "c0909921a97b4db59145161dfad725875a0137aa7d38835ce94774c8cbf8953f",
2614
+ "references/shots/outro/neon-triple-marquee.md": "435d95881b7d0b54119153f08efe7c9f05f33a46606db97501a37a49d555f21f",
2615
+ "references/shots/outro/outro-group-photo-launch.md": "99a1f4231965a01dc653e7fe869d778f87a9210028230d76743cd16d599e5146",
2616
+ "references/shots/outro/ui-strip-away-outro.md": "ce7471ee2db9baa32b90754ad470cc04f4ec5e3e59bb9594b435d815a7f9762f",
2617
+ "references/shots/outro/ui-to-brand-morph.md": "365d75cdc0f2ca564fa599580825eeec5c454222986fec65f037dc5897e96bb4",
2618
+ "references/shots/rhythm/beat-cut-moves.md": "76a8ab1be31d4aeb7c4456a7c069f9a5fe697a6c6fc08fe0eff49bcc7a8ed0cd",
2619
+ "references/shots/rhythm/beat-step-list-theme-cycle.md": "2c6d48ddeafd6514a2809be9c94dadb9823df97913df9d3ceee3c3d19ac538e6",
2620
+ "references/shots/rhythm/panel-grid-moves.md": "230ceb38ca2c4c157b28c5fbc129cd5e68b03e24f9ce8534f6e980f6f6886d7e",
2621
+ "references/shots/rhythm/quad-split-parallel-scenes.md": "1424d5692906ceaee7bc9626b92c1f6c0a0203346c1103745fdba3fcaf7c3606",
2622
+ "references/shots/rhythm/rhythm-interrupt-moves.md": "b16bb150d0d4ec69c513dc783b787ed42cf17aa2460bf0a5d6585c387ab087ff",
2623
+ "references/shots/rhythm/sakuga-timing-shift.md": "a35518f88b06db937d87529a1906be2d224a314c4cc8ba4d3a90edbe3e00a935",
2624
+ "references/shots/rhythm/speed-ramp-freeze.md": "e0256a63e0f96b798a60171ac53a319ba87eacc552925fd117d4578ee9b69b7b",
2625
+ "references/shots/rhythm/trailer-grammar-moves.md": "92a1be277b568298708c7a0c0d09c7f5c405038db48b78995cf023f0fffae67a",
2626
+ "references/shots/transition/bottom-push-stack-wipe.md": "070ed6e3f804786579d0d6e1a80fa5ad407824f053c1d327857ccb4a3f2626c8",
2627
+ "references/shots/transition/card-flip-reveal.md": "34ab2b0d738881dd51f34c96f94a82d153f7176e119a3a6f0a0d1fd954df5f5f",
2628
+ "references/shots/transition/card-flock-tumble.md": "85f7e09b5102406dbe7b395435424edaabea6193b98d5359b15360dc956fae09",
2629
+ "references/shots/transition/circle-match-iris.md": "ca2ac559d8d0359f8067696524dff1cf216fb3d1dfa00e5668faf86943516293",
2630
+ "references/shots/transition/gradient-transition.md": "80cbaf73406e51ef49dd5bb0dabffe6df0df4824a38c23953da7684743bdcc00",
2631
+ "references/shots/transition/line-carry-transition.md": "83c7e8a7638cf4cb179a82c0b387849c9fe95981c751af017c18391cf16bbe5a",
2632
+ "references/shots/transition/mosaic-reframe.md": "110cd5871844c173d519d3730c85757e0e13e8a31232ac15c8647c103da5826f",
2633
+ "references/shots/transition/page-turn-transitions.md": "389653bbf110a629c5da62af52af6aec8929880765b589df3dbedfe0edd78eb4",
2634
+ "references/shots/transition/print-texture-transitions.md": "a805d29ad25b142d28c4cf0041947c8f17ff4f27300c48abe9fd7bd57adf2c62",
2635
+ "references/shots/transition/shot-transitions.md": "8d5b79d8d20ab09ab76b25a75ba08c80bae41486728807d440bf5de3b765e314",
2636
+ "references/shots/transition/tear-streak-transitions.md": "bf6f373e543935fb8145936a8bbaeb928f7d795175e412d78870eb1449a831d4",
2637
+ "references/shots/transition/transition-hidden-cut.md": "5ba4e973caa1fcf657cd9b65b23960fe93d952f100511ec5f05eaa7256479249",
2638
+ "references/shots/transition/transition-travel.md": "0ee4fedf950bbda436a9491bcfe581233cac333dc29e68655edaba52c6b3eabe",
2639
+ "references/shots/transition/white-flash-logo-simplify-cut.md": "a5f8a0aadfd16006e6109bfbff48025319f423c4c66ea5473833609d88819ba9",
2640
+ "references/shots/transition/wipe-transitions.md": "ec0338aaff0208789495ba72b2f70e6031092b8bb47c2d3061f742cfe99e1702",
2641
+ "references/shots/typography/blur-slide.md": "ef244292adea7d2f4a284a5599fb2f01893d3c50197b3a1f8ade9d3a4cc9ea7d",
2642
+ "references/shots/typography/brace-expand.md": "7540d542a5ccd573fec946e1757ba4b5f5d1fa3e3bf909301176dcc05aae637f",
2643
+ "references/shots/typography/countdown-arc-scatter.md": "220d28834fb78a7fd09cfebf3a7ad134e0d2158f46ebd0448692fcf3df03f1dc",
2644
+ "references/shots/typography/document-typewriter-reveal.md": "bbaf22b6a62066b478818a47f316aeaf93886abb550e65bcbe6ce40c748f8cbd",
2645
+ "references/shots/typography/flying-words.md": "13a625386e65d9d548d09a582e467b898f4600050c710d13a17ce54dd27739a3",
2646
+ "references/shots/typography/glitch-cycle.md": "dadc9b4663bdb6955e5f838d6ff886d1238683cd05bb526d993fafea1b2b4e68",
2647
+ "references/shots/typography/gradient-word-sweep.md": "7a29e0fbcd3c3207b050ca1d33c0c38647d46641c9d5201d04fa449ad9717b6b",
2648
+ "references/shots/typography/lead-word-zoom-assemble.md": "6d3854a15d2311176b2fc87e98b9baffa45f9e7c54ea6405c992b8bf90da4c27",
2649
+ "references/shots/typography/marker-underline-title.md": "7d42483e006ecd6bb6bb0e983b3815e21726a1428792df5ad3974b44b8754b2e",
2650
+ "references/shots/typography/outline-word-fill.md": "062ffd426dfb518a6c0fa926e4b73e5f4355e4fd706b59f576ed31a977c76206",
2651
+ "references/shots/typography/paper-title-card.md": "b64de54f010f46da6f2ab0da484b05c0121672f71a0dea344ffeba23ad4479b0",
2652
+ "references/shots/typography/pill-chip-slot-cycle-handled.md": "4fa55f4633c4d194001382a8a8448df713b913bff2f92a380ac09b36e29af628",
2653
+ "references/shots/typography/pill-slot-cycle.md": "d521b8436f383ab5eed6fcd6c1eab2ee099cd8d9785bb7c304253e7d1a76ce6c",
2654
+ "references/shots/typography/text-column-converge.md": "1805ed635b77fa6686c1101e507bb5e7a3f1856d1dea8f7961ece1cb6786d247",
2655
+ "references/shots/typography/title-demote-to-label.md": "544097b9f7a00ac0addb680a9ec1bdbc320536e6cf45208a0b1cbefa334f59f5",
2656
+ "references/shots/typography/type-assembly-moves.md": "acb3bb884c49bb19288df1b4b00afc673f92d55e579d08d5194a4f02778afc20",
2657
+ "references/shots/typography/type-entrance-moves.md": "fe757ae9b42fb5e251da58104766adfdc4aa2b170b0c40a38ea30f6da54310d2",
2658
+ "references/shots/typography/type-rhythm-sync.md": "c2d729fb8e8f491e5cdc83171b0896e862b9ec25b1f5e93a923572f5c52f3a08",
2659
+ "references/shots/typography/typewriter-moves.md": "b635864059f247034261a38bb436e664ff938c89b17a15868a7ba73a06d7e998",
2660
+ "references/shots/typography/vertical-word-roll-blur-cycle.md": "e36192eb94946cf498c984f7876e623f0dc71d454281457671017b5a1f73f989",
2661
+ "references/shots/typography/word-relay-filmstrip.md": "e6fa5bfe5c207fe84fc984b4c95a42bf7e22def2abf8c3bf139d0535cf12e35c",
2662
+ "references/shots/typography/word-relay-geometry.md": "e88b51c807feecc87a959aa35913a32871c4719265e82df96fe1d604fa4b45ec",
2663
+ "references/shots/ui-entrance/avatar-bracket-carousel.md": "410c66547ca1a7d69f87786d241e89208e289f0d11edb34f1fec462026814a9d",
2664
+ "references/shots/ui-entrance/bezier-source-converge-merge.md": "2ab3e1993b49803c3089018c0802bae413b479f26d26c11cae542a8efe252e85",
2665
+ "references/shots/ui-entrance/card-stack.md": "c656aafdd705ce2cad029e6a8a26f997837bc84a6f36dba077a304ebebf10095",
2666
+ "references/shots/ui-entrance/carousel-3d.md": "30346eb0d0521e64f61d7b1c8d371a61d94a6c3e7f8942bed1718748a1ed47a6",
2667
+ "references/shots/ui-entrance/cloner-depth-echo.md": "13f4a98c6a0816e55693c5644351616500e8b946b711332b4d4b4396238b2632",
2668
+ "references/shots/ui-entrance/deck-deal-flyin.md": "eed5b9585bf80a7566b776ca16a5926ec6b35417803090e9a0756726315b039b",
2669
+ "references/shots/ui-entrance/doc-park-left-pill-deal.md": "b1cca04e44384e21d79ebb947b6bec70aa1003f7e8e53d497709348a238dd57c",
2670
+ "references/shots/ui-entrance/draw-svg-trace.md": "10badc80ed577324083366142a5a6d99021b67b5b81a41e1ea29b759b2dcfd0a",
2671
+ "references/shots/ui-entrance/element-body-moves.md": "940931d0f1858c7bcbc0679b68bbc56b7fde1ab324b8d7b71d9cccf0ae1a0f5a",
2672
+ "references/shots/ui-entrance/integration-hub-map.md": "a1474661f0e4158fd2223868742473cee903d9a33bdb51557638204c47522a09",
2673
+ "references/shots/ui-entrance/list-reveal.md": "68b655b516fe96b714b5c798d7c50068741ceea570bc11c80db8513def83f4e9",
2674
+ "references/shots/ui-entrance/list-stack-press.md": "079565fe5134b2ff97eb472203b49e8a4e21749afae6d8329fa41b5eee8c4732",
2675
+ "references/shots/ui-entrance/neon-frame-forerun.md": "ee53fd6e931383bc51ccdc4c710379df0867c97fc5b98e217e55c74f47d7dfd2",
2676
+ "references/shots/ui-entrance/neon-frame-orbit-drop.md": "6f5ecdaabd2700a7aee4feebacdd4dd5415f0d82cd09fe52e80211b8ddb959d2",
2677
+ "references/shots/ui-entrance/page-waterfall-wall.md": "fc4cd282ef0f7d2c5c36b2f192ddc9d5e318ff60b6c3007305e439161db06cef",
2678
+ "references/shots/ui-entrance/product-card-progressive-assemble.md": "b33c0702e9a5fcd66fad7b26b890ea5f5c5a8e389466e597b19752e7f1397839",
2679
+ "references/shots/ui-entrance/radial-wave.md": "587f58625f5815e0376101b35ac552e977e5a57622959bed594d1decb9b53dc0",
2680
+ "references/shots/ui-entrance/research-card-stack-scroll.md": "afb2c4d35007fde738bbf2a0c7a3e337de19b4b9254790878c1577eca6f904bb",
2681
+ "references/shots/ui-entrance/row-embed.md": "c6e6026bc4e2c74b77e76c636752a6b5afe9cfb9740c0ffca2c39e091bf999f8",
2682
+ "references/shots/ui-entrance/value-stagger-gradient.md": "59cff036d152a0f4448b7faee355f197e41c60226f726389f122dd3253e9e9fc",
2683
+ "references/shots/ui-entrance/wall-reveal-moves.md": "8cf1a3f63d45f507ac9fe4db580079a0ed0ae48c4db5d641e36010055debaa15",
2684
+ "references/sound-design.md": "8e22b7a5ae87171deea19e6e3569c80f459cc549ade97f5087aabd6034ec7185",
2685
+ "references/workbench.md": "d1e603ac7b32815bf881116fe9f3f53a65c75f9ba9c5aecdb37429a3e4f64158",
2686
+ "template/TEMPLATE.md": "77459536aa6452da34ee898545d5861c2b31d81a3a2f9299d2574725df5dbc32",
2687
+ "template/THEMES.md": "02dd9afaf99106628ffc06fe0b0259950b42a564b57b0518b17819b3a4d9bf1e",
2688
+ "template/package.json": "7ca1a23c6fad1f21debc3c89186284176a44eed0f5d1fcbdde622fd5153db477",
2689
+ "template/public/audio/ATTRIBUTION.md": "a85a9da9826d6be5d9a6ff09bef40be21202ca262496548948e2a289a68d8b94",
2690
+ "template/remotion.config.ts": "74322306f044aa2da278106bfc19251dca471d312946d1b4ab07c01eafa65c0e",
2691
+ "template/src/Root.tsx": "8eb66cf143cbde04814214f67185a8a6e61be07e6b3b5e130c2578e251672abb",
2692
+ "template/src/aifl/Caption.tsx": "116a808438f6c55be5f4001cc96b16d150b2d10368f8b199c060cf859e341209",
2693
+ "template/src/aifl/DigitRoll.tsx": "38f224b78269e68b11c4780f340d300cc1ccd3cbaabdd7273a53dfa0a4c5dfc8",
2694
+ "template/src/aifl/FlashCut.tsx": "3705429f1bde07e5ce1abd9580b793f6ad9590ba3660f54f4c8f28511ff9966f",
2695
+ "template/src/aifl/Main.tsx": "e74e9694cd4305955725deaf342d463a96a35dcf18508fc4ce213f4bf4e28e6a",
2696
+ "template/src/aifl/PaperTitleCard.tsx": "1ed52c1890fdad5c2dece1b002cae2bdfdee4594307f2bd2633ec36f13368851",
2697
+ "template/src/aifl/live-layout.json": "2cf16d2ead8ec9cdeef5e93cb8861998d62f8a9d3b6254a2653ffde248654aab",
2698
+ "template/src/aifl/live/PageCam.tsx": "2ed16b800cefcaa3d3c709e58952345c54c0b254ca91687587f02c7ea0670ec7",
2699
+ "template/src/aifl/live/SceneDetail.tsx": "240de2143a64e790a2f02640cf0c092f31d783e9789952676347c6882d6c27fa",
2700
+ "template/src/aifl/live/SceneFlyIn.tsx": "33b36bbda193390751eff39a2fa740d077beddff05325181b35f48975346cc7a",
2701
+ "template/src/aifl/live/SceneOpen.tsx": "1e968d32b5dac1c56ad23a84c74d1a74db7211dc1deb150a7e37a884b644c75e",
2702
+ "template/src/aifl/live/SceneOutroLive.tsx": "747d732f824fde1d235091f58ce9bb62968bdc0c4e3dc7f34c2ef3d9953f5896",
2703
+ "template/src/aifl/live/ScenePapers.tsx": "800255af90fad38e5cc48b839f3be4a1870f52d68701557e118adc396420a325",
2704
+ "template/src/aifl/live/SceneWbr.tsx": "27d42c0b5f0c84a016be706447f806fa1d38cdf328d97e18fc14e8dadfa8aeb8",
2705
+ "template/src/index.ts": "7c7522648eb3464f3b3c46b41dfc370fe451d8be99bd1f00179924b9f3de71f3",
2706
+ "template/src/themes/ThemedFilm.tsx": "fd26ffd60821fd6020ce4934320f3df6c854044738b42f128a6cfe4c94f2eb8e",
2707
+ "template/src/themes/manifest.tsx": "cf30427b26e3486ba69e0accde389892d4e66c47f1bf11cd1af9fc11362f2a20",
2708
+ "template/src/themes/palette-assets.json": "880e3ea5ec859bcbc0f14784efc930208af992ce8855298344ff52bcefa31169",
2709
+ "template/src/themes/palette-assets.ts": "06f4608decb9c66af732b6f3b2cfc2826e8cd093c6104b4e5641f4b0cbe66a93",
2710
+ "template/src/themes/palettes.json": "feaec5dd69247e833d506782131b16dab6a4249c6de1f76b25f88813fa164c66",
2711
+ "template/src/themes/visual-theme.tsx": "9350fe5e6ccb1685c9de997fd5ad1342b81ed2f499c863bbe290aa46355e12c2",
2712
+ "template/src/workbench.ts": "46d3e65a377b49c325df09f87f5162a6e97c649dd80e192058850aca79ba3d5d",
2713
+ "template/tsconfig.json": "ec339bb6f95db886a61f20da00b99f6f8ea372401183c01c53f795dd6ead0cde"
2714
+ }
2715
+ }