dsh-drawai 0.4.2 → 0.4.4

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 (379) hide show
  1. package/README.md +7 -5
  2. package/lib/client.js +142 -16
  3. package/lib/index.js +7945 -7719
  4. package/lib/motion/asset-pack.js +394 -394
  5. package/lib/motion/assets.js +291 -291
  6. package/lib/motion/demo-assets-lock.js +10 -10
  7. package/lib/motion/mgstyles/briefs/23-ink-wash.md +147 -0
  8. package/lib/motion/mgstyles/catalog.d/23-ink-wash.json +28 -0
  9. package/lib/motion/mgstyles/catalog.json +127 -14
  10. package/lib/motion/mgstyles/upstream/demos/23-ink-wash/brush.js +149 -0
  11. package/lib/motion/mgstyles/upstream/demos/23-ink-wash/film.js +202 -0
  12. package/lib/motion/mgstyles/upstream/manifest.json +28 -3
  13. package/lib/motion/mgstyles/upstream/prompts/23-ink-wash.md +59 -0
  14. package/lib/motion/mgstyles/vendor/README.md +28 -28
  15. package/lib/motion/mgstyles/vendor/modules/d3/LICENSE +13 -13
  16. package/lib/motion/mgstyles/vendor/modules/d3/dist/d3.min.js +2 -2
  17. package/lib/motion/mgstyles/vendor/modules/opentype.js/LICENSE +20 -20
  18. package/lib/motion/mgstyles/vendor/modules/opentype.js/dist/opentype.mjs +14460 -14460
  19. package/lib/motion/mgstyles/vendor/modules/simplex-noise/LICENSE +21 -21
  20. package/lib/motion/mgstyles/vendor/modules/simplex-noise/dist/esm/simplex-noise.js +465 -465
  21. package/lib/motion/mgstyles/vendor/modules/topojson-client/LICENSE +13 -13
  22. package/lib/motion/mgstyles/vendor/modules/topojson-client/dist/topojson-client.min.js +2 -2
  23. package/lib/motion/project.js +5 -1
  24. package/lib/motion/qa.js +116 -6
  25. package/lib/motion/render.js +179 -179
  26. package/lib/motion/scene-kit.js +1 -1
  27. package/lib/motion/shotcraft/upstream/SKILL.md +286 -286
  28. package/lib/motion/shotcraft/upstream/assets/lib/Caption.tsx +54 -54
  29. package/lib/motion/shotcraft/upstream/assets/lib/ClipCard.tsx +200 -200
  30. package/lib/motion/shotcraft/upstream/assets/lib/DigitRoll.tsx +45 -45
  31. package/lib/motion/shotcraft/upstream/assets/lib/FlashCut.tsx +20 -20
  32. package/lib/motion/shotcraft/upstream/assets/lib/FlatPanel.tsx +65 -65
  33. package/lib/motion/shotcraft/upstream/assets/lib/PageCam.tsx +151 -151
  34. package/lib/motion/shotcraft/upstream/assets/lib/VerticalTicker.tsx +129 -129
  35. package/lib/motion/shotcraft/upstream/assets/lib/helpers/camera.tsx +75 -75
  36. package/lib/motion/shotcraft/upstream/assets/lib/helpers/motion.ts +40 -40
  37. package/lib/motion/shotcraft/upstream/assets/lib/helpers/rand.ts +11 -11
  38. package/lib/motion/shotcraft/upstream/assets/lib/helpers/shake.ts +10 -10
  39. package/lib/motion/shotcraft/upstream/assets/scripts/build-readme-cover.mjs +49 -49
  40. package/lib/motion/shotcraft/upstream/assets/scripts/capture-template.mjs +210 -210
  41. package/lib/motion/shotcraft/upstream/assets/scripts/sfx-source.py +423 -423
  42. package/lib/motion/shotcraft/upstream/assets/scripts/smoke-render-demos.py +170 -170
  43. package/lib/motion/shotcraft/upstream/assets/scripts/test_sfx_source.py +157 -157
  44. package/lib/motion/shotcraft/upstream/demos/README.md +120 -120
  45. package/lib/motion/shotcraft/upstream/demos/_fixtures/Brand.tsx +112 -112
  46. package/lib/motion/shotcraft/upstream/demos/_fixtures/Fixtures.tsx +647 -647
  47. package/lib/motion/shotcraft/upstream/demos/_fixtures/Look.tsx +316 -316
  48. package/lib/motion/shotcraft/upstream/demos/_fixtures/Motion.tsx +82 -82
  49. package/lib/motion/shotcraft/upstream/demos/_fixtures/PageCam2D.tsx +115 -115
  50. package/lib/motion/shotcraft/upstream/demos/_fixtures/Polish.tsx +243 -243
  51. package/lib/motion/shotcraft/upstream/demos/_textures/live-layout.json +388 -388
  52. package/lib/motion/shotcraft/upstream/demos/camera/basic-3d-scene/Basic3DScene.tsx +250 -250
  53. package/lib/motion/shotcraft/upstream/demos/camera/crash-zoom-punch/CrashImpactReal.tsx +305 -305
  54. package/lib/motion/shotcraft/upstream/demos/camera/crash-zoom-punch/CrashZoomReal.tsx +246 -246
  55. package/lib/motion/shotcraft/upstream/demos/camera/cursor-flyover/CursorFlyover.tsx +390 -390
  56. package/lib/motion/shotcraft/upstream/demos/camera/depth-layer-moves/MultiplaneReal.tsx +138 -138
  57. package/lib/motion/shotcraft/upstream/demos/camera/graze-face-tour/GrazeFaceTour.tsx +542 -542
  58. package/lib/motion/shotcraft/upstream/demos/camera/overhead-camera-moves/OverheadTabletopDrop.tsx +315 -315
  59. package/lib/motion/shotcraft/upstream/demos/camera/overhead-camera-moves/TiltReveal.tsx +299 -299
  60. package/lib/motion/shotcraft/upstream/demos/camera/space-camera-moves/DroneDiveLanding.tsx +173 -173
  61. package/lib/motion/shotcraft/upstream/demos/camera/space-camera-moves/ExplodedView.tsx +348 -348
  62. package/lib/motion/shotcraft/upstream/demos/camera/steep-tilt-glide/SteepTiltGlide.tsx +366 -366
  63. package/lib/motion/shotcraft/upstream/demos/camera/tension-camera-moves/BulletTimeFreezeOrbit.tsx +279 -279
  64. package/lib/motion/shotcraft/upstream/demos/camera/tension-camera-moves/PullBackIsolation.tsx +184 -184
  65. package/lib/motion/shotcraft/upstream/demos/camera/terminal-3d/Terminal3D.tsx +390 -390
  66. package/lib/motion/shotcraft/upstream/demos/data/before-after-slider-scrub/BeforeAfterSliderScrub.tsx +155 -155
  67. package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/AxisRescaleShockV2.tsx +303 -303
  68. package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/OscilloscopeStreamV2.tsx +290 -290
  69. package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/UnitDotSwarmRegroupV2.tsx +278 -278
  70. package/lib/motion/shotcraft/upstream/demos/data/gauge-readout-moves/NeedleSweepSelftest.tsx +307 -307
  71. package/lib/motion/shotcraft/upstream/demos/data/gauge-readout-moves/TapeScrollFixedPointer.tsx +215 -215
  72. package/lib/motion/shotcraft/upstream/demos/data/scroll-brake-moves/BrakeReticleLock.tsx +299 -299
  73. package/lib/motion/shotcraft/upstream/demos/data/scroll-brake-moves/ChangelogScrollBrake.tsx +232 -232
  74. package/lib/motion/shotcraft/upstream/demos/data/timeline-travel/TimelineTravel.tsx +290 -290
  75. package/lib/motion/shotcraft/upstream/demos/effects/assemble-then-type-flyin/AssembleThenTypeFlyin.tsx +273 -273
  76. package/lib/motion/shotcraft/upstream/demos/effects/aurora-bloom-bg-flip/AuroraBloomBgFlip.tsx +167 -167
  77. package/lib/motion/shotcraft/upstream/demos/effects/brand-frame-snap/BrandFrameSnap.tsx +536 -536
  78. package/lib/motion/shotcraft/upstream/demos/effects/fui-hud-moves/ReticleLockOn.tsx +164 -164
  79. package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/FlylineArc.tsx +175 -175
  80. package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/GlowOrbAmbient.tsx +197 -197
  81. package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/OrbFlylineRelay.tsx +241 -241
  82. package/lib/motion/shotcraft/upstream/demos/effects/icon-performance-moves/AttentionBounce.tsx +279 -279
  83. package/lib/motion/shotcraft/upstream/demos/effects/impact-feedback/AnimeImpact.tsx +230 -230
  84. package/lib/motion/shotcraft/upstream/demos/effects/impact-feedback/HitCounter.tsx +345 -345
  85. package/lib/motion/shotcraft/upstream/demos/effects/light-play-moves/SheenSweepRetry.tsx +275 -275
  86. package/lib/motion/shotcraft/upstream/demos/effects/light-play-moves/SpotlightSweepReveal.tsx +229 -229
  87. package/lib/motion/shotcraft/upstream/demos/effects/radial-ripple-phone-chips/RadialRipplePhoneChips.tsx +312 -312
  88. package/lib/motion/shotcraft/upstream/demos/effects/riso-print-hits/RisoMisregistrationHit.tsx +222 -222
  89. package/lib/motion/shotcraft/upstream/demos/effects/scan-bracket-sweep/ScanBracketSweep.tsx +295 -295
  90. package/lib/motion/shotcraft/upstream/demos/effects/scanline-annotate-focus/ScanlineAnnotateFocus.tsx +329 -329
  91. package/lib/motion/shotcraft/upstream/demos/effects/scanline-assemble-flyin/ScanlineAssembleFlyin.tsx +315 -315
  92. package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/ImpactBurstKit.tsx +264 -264
  93. package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/KanadaPerspectiveSnap.tsx +260 -260
  94. package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/ScoreSlam.tsx +263 -263
  95. package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/CornerSpotlightReveal.tsx +123 -123
  96. package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/GlowWakeSleepPanel.tsx +187 -187
  97. package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/SlideSpotlightPan.tsx +175 -175
  98. package/lib/motion/shotcraft/upstream/demos/interaction/autolayout-gap-dial/AutolayoutGapDial.tsx +305 -305
  99. package/lib/motion/shotcraft/upstream/demos/interaction/canvas-materialize-moves/DiagramCascadeBuild.tsx +350 -350
  100. package/lib/motion/shotcraft/upstream/demos/interaction/canvas-materialize-moves/PanelToCanvasMaterialize.tsx +352 -352
  101. package/lib/motion/shotcraft/upstream/demos/interaction/chip-grid-single-select-blackout/ChipGridSingleSelectBlackout.tsx +218 -218
  102. package/lib/motion/shotcraft/upstream/demos/interaction/collab-cursor-moves/CursorCastEnsemble.tsx +297 -297
  103. package/lib/motion/shotcraft/upstream/demos/interaction/glass-pill-dictation-typing/GlassPillDictationTyping.tsx +157 -157
  104. package/lib/motion/shotcraft/upstream/demos/interaction/hashtag-to-pill-materialize/HashtagToPillMaterialize.tsx +218 -218
  105. package/lib/motion/shotcraft/upstream/demos/interaction/picker-carousel-feature-cycle/PickerCarouselFeatureCycle.tsx +202 -202
  106. package/lib/motion/shotcraft/upstream/demos/interaction/segmented-thumb-hero/SegmentedThumbHero.tsx +265 -265
  107. package/lib/motion/shotcraft/upstream/demos/interaction/theme-switch-moves/PaletteThemeRipple.tsx +457 -457
  108. package/lib/motion/shotcraft/upstream/demos/interaction/theme-switch-moves/ThemeSweepToggle.tsx +446 -446
  109. package/lib/motion/shotcraft/upstream/demos/interaction/type-and-filter/TypeAndFilter.tsx +249 -249
  110. package/lib/motion/shotcraft/upstream/demos/interaction/voice-waveform-live/VoiceWaveformLive.tsx +278 -278
  111. package/lib/motion/shotcraft/upstream/demos/opening/crane-rise-reveal/CraneRiseReveal.tsx +332 -332
  112. package/lib/motion/shotcraft/upstream/demos/opening/dataviz-landscape-open/DatavizLandscapeOpen.tsx +358 -358
  113. package/lib/motion/shotcraft/upstream/demos/opening/fracture/Fracture.tsx +201 -201
  114. package/lib/motion/shotcraft/upstream/demos/opening/icon-field-colorize/IconFieldColorize.tsx +200 -200
  115. package/lib/motion/shotcraft/upstream/demos/opening/letterspace-materialize/LetterspaceMaterialize.tsx +208 -208
  116. package/lib/motion/shotcraft/upstream/demos/opening/magician-card-flourish/MagicianCardFlourish.tsx +341 -341
  117. package/lib/motion/shotcraft/upstream/demos/opening/orbit-ring-title-open/OrbitRingTitleOpen.tsx +389 -389
  118. package/lib/motion/shotcraft/upstream/demos/opening/spotlight-hero-card/SpotlightHeroCard.tsx +293 -293
  119. package/lib/motion/shotcraft/upstream/demos/opening/stroke-segment-build/StrokeSegmentBuild.tsx +183 -183
  120. package/lib/motion/shotcraft/upstream/demos/opening/text-as-mask/TextAsMask.tsx +245 -245
  121. package/lib/motion/shotcraft/upstream/demos/outro/grain-dissolve/GrainDissolve.tsx +222 -222
  122. package/lib/motion/shotcraft/upstream/demos/outro/logo-shrink-wordmark-lockup/LogoShrinkWordmarkLockup.tsx +223 -223
  123. package/lib/motion/shotcraft/upstream/demos/outro/neon-triple-marquee/NeonTripleMarquee.tsx +217 -217
  124. package/lib/motion/shotcraft/upstream/demos/outro/outro-group-photo-launch/OutroGroupPhotoLaunch.tsx +343 -343
  125. package/lib/motion/shotcraft/upstream/demos/outro/ui-strip-away-outro/UiStripAwayOutro.tsx +357 -357
  126. package/lib/motion/shotcraft/upstream/demos/outro/ui-to-brand-morph/IconFlipBloomLogo.tsx +187 -187
  127. package/lib/motion/shotcraft/upstream/demos/outro/ui-to-brand-morph/InputMorphsIntoLogo.tsx +333 -333
  128. package/lib/motion/shotcraft/upstream/demos/rhythm/beat-cut-moves/PaparazziFlash.tsx +274 -274
  129. package/lib/motion/shotcraft/upstream/demos/rhythm/beat-step-list-theme-cycle/BeatStepListThemeCycle.tsx +270 -270
  130. package/lib/motion/shotcraft/upstream/demos/rhythm/panel-grid-moves/ComicPanelSplit.tsx +430 -430
  131. package/lib/motion/shotcraft/upstream/demos/rhythm/quad-split-parallel-scenes/QuadSplitParallelScenes.tsx +252 -252
  132. package/lib/motion/shotcraft/upstream/demos/rhythm/rhythm-interrupt-moves/JumpCutPunchIn.tsx +106 -106
  133. package/lib/motion/shotcraft/upstream/demos/rhythm/sakuga-timing-shift/SakugaTimingShift.tsx +288 -288
  134. package/lib/motion/shotcraft/upstream/demos/rhythm/speed-ramp-freeze/FreezeAnnotateReal.tsx +362 -362
  135. package/lib/motion/shotcraft/upstream/demos/rhythm/trailer-grammar-moves/TrailerBumper.tsx +168 -168
  136. package/lib/motion/shotcraft/upstream/demos/transition/bottom-push-stack-wipe/BottomPushStackWipe.tsx +310 -310
  137. package/lib/motion/shotcraft/upstream/demos/transition/card-flip-reveal/CardFlipReveal.tsx +261 -261
  138. package/lib/motion/shotcraft/upstream/demos/transition/card-flock-tumble/CardFlockTumble.tsx +459 -459
  139. package/lib/motion/shotcraft/upstream/demos/transition/circle-match-iris/CircleMatchIris.tsx +294 -294
  140. package/lib/motion/shotcraft/upstream/demos/transition/gradient-transition/GradientTransition.tsx +161 -161
  141. package/lib/motion/shotcraft/upstream/demos/transition/line-carry-transition/LineCarryTransition.tsx +248 -248
  142. package/lib/motion/shotcraft/upstream/demos/transition/mosaic-reframe/MosaicReframe.tsx +359 -359
  143. package/lib/motion/shotcraft/upstream/demos/transition/page-turn-transitions/BarnDoorSplit.tsx +227 -227
  144. package/lib/motion/shotcraft/upstream/demos/transition/print-texture-transitions/InkBleedReveal.tsx +162 -162
  145. package/lib/motion/shotcraft/upstream/demos/transition/shot-transitions/PortalWipeV2.tsx +248 -248
  146. package/lib/motion/shotcraft/upstream/demos/transition/shot-transitions/WhipBrakeReal.tsx +186 -186
  147. package/lib/motion/shotcraft/upstream/demos/transition/tear-streak-transitions/GlitchDisplace.tsx +355 -355
  148. package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/InvisibleCut.tsx +272 -272
  149. package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/LightLeakBurn.tsx +262 -262
  150. package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/VersusSlam.tsx +217 -217
  151. package/lib/motion/shotcraft/upstream/demos/transition/transition-travel/LetterformZoom.tsx +285 -285
  152. package/lib/motion/shotcraft/upstream/demos/transition/white-flash-logo-simplify-cut/WhiteFlashLogoSimplifyCut.tsx +205 -205
  153. package/lib/motion/shotcraft/upstream/demos/transition/wipe-transitions/BlindsSlice.tsx +178 -178
  154. package/lib/motion/shotcraft/upstream/demos/typography/blur-slide/BlurSlide.tsx +147 -147
  155. package/lib/motion/shotcraft/upstream/demos/typography/brace-expand/BraceExpand.tsx +143 -143
  156. package/lib/motion/shotcraft/upstream/demos/typography/brand-ink-open/BrandInkOpen.tsx +134 -134
  157. package/lib/motion/shotcraft/upstream/demos/typography/countdown-arc-scatter/CountdownArcScatter.tsx +217 -217
  158. package/lib/motion/shotcraft/upstream/demos/typography/flying-words/FlyingWords.tsx +198 -198
  159. package/lib/motion/shotcraft/upstream/demos/typography/glitch-cycle/GlitchCycle.tsx +221 -221
  160. package/lib/motion/shotcraft/upstream/demos/typography/gradient-word-sweep/GradientWordSweep.tsx +312 -312
  161. package/lib/motion/shotcraft/upstream/demos/typography/lead-word-zoom-assemble/LeadWordZoomAssemble.tsx +261 -261
  162. package/lib/motion/shotcraft/upstream/demos/typography/marker-underline-title/MarkerUnderlineTitle.tsx +121 -121
  163. package/lib/motion/shotcraft/upstream/demos/typography/outline-word-fill/OutlineWordFill.tsx +153 -153
  164. package/lib/motion/shotcraft/upstream/demos/typography/paper-title-card/PaperTitleCard.tsx +179 -179
  165. package/lib/motion/shotcraft/upstream/demos/typography/pill-chip-slot-cycle-handled/PillChipSlotCycleHandled.tsx +140 -140
  166. package/lib/motion/shotcraft/upstream/demos/typography/pill-slot-cycle/PillSlotCycle.tsx +309 -309
  167. package/lib/motion/shotcraft/upstream/demos/typography/text-column-converge/TextColumnConverge.tsx +191 -191
  168. package/lib/motion/shotcraft/upstream/demos/typography/title-demote-to-label/TitleDemoteToLabel.tsx +292 -292
  169. package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/LetterformDriftAssembly.tsx +135 -135
  170. package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/SplitTextStagger.tsx +124 -124
  171. package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/TextOnPath.tsx +255 -255
  172. package/lib/motion/shotcraft/upstream/demos/typography/type-entrance-moves/LetterDropPhysics.tsx +173 -173
  173. package/lib/motion/shotcraft/upstream/demos/typography/type-rhythm-sync/FontWeightPump.tsx +225 -225
  174. package/lib/motion/shotcraft/upstream/demos/typography/type-rhythm-sync/KaraokeFillSync.tsx +141 -141
  175. package/lib/motion/shotcraft/upstream/demos/typography/typewriter-moves/TypewriterErrorRetype.tsx +137 -137
  176. package/lib/motion/shotcraft/upstream/demos/typography/vertical-word-roll-blur-cycle/VerticalWordRollBlurCycle.tsx +147 -147
  177. package/lib/motion/shotcraft/upstream/demos/typography/word-relay-filmstrip/WordRelayFilmstrip.tsx +409 -409
  178. package/lib/motion/shotcraft/upstream/demos/typography/word-relay-geometry/WordRelayGeometry.tsx +280 -280
  179. package/lib/motion/shotcraft/upstream/demos/ui-entrance/avatar-bracket-carousel/AvatarBracketCarousel.tsx +271 -271
  180. package/lib/motion/shotcraft/upstream/demos/ui-entrance/bezier-source-converge-merge/BezierSourceConvergeMerge.tsx +385 -385
  181. package/lib/motion/shotcraft/upstream/demos/ui-entrance/card-stack/CardStack.tsx +312 -312
  182. package/lib/motion/shotcraft/upstream/demos/ui-entrance/carousel-3d/Carousel3D.tsx +303 -303
  183. package/lib/motion/shotcraft/upstream/demos/ui-entrance/clipcard-looping/ClipCardLooping.tsx +77 -77
  184. package/lib/motion/shotcraft/upstream/demos/ui-entrance/cloner-depth-echo/ClonerDepthEcho.tsx +311 -311
  185. package/lib/motion/shotcraft/upstream/demos/ui-entrance/deck-deal-flyin/DeckDealFlyin.tsx +307 -307
  186. package/lib/motion/shotcraft/upstream/demos/ui-entrance/doc-park-left-pill-deal/DocParkLeftPillDeal.tsx +349 -349
  187. package/lib/motion/shotcraft/upstream/demos/ui-entrance/document-typewriter-reveal/DocumentTypewriterReveal.tsx +255 -255
  188. package/lib/motion/shotcraft/upstream/demos/ui-entrance/draw-svg-trace/DrawSvgTrace.tsx +244 -244
  189. package/lib/motion/shotcraft/upstream/demos/ui-entrance/element-body-moves/ContactShadowLift.tsx +217 -217
  190. package/lib/motion/shotcraft/upstream/demos/ui-entrance/integration-hub-map/IntegrationHubMap.tsx +652 -652
  191. package/lib/motion/shotcraft/upstream/demos/ui-entrance/list-reveal/ListReveal.tsx +153 -153
  192. package/lib/motion/shotcraft/upstream/demos/ui-entrance/list-stack-press/ListStackPress.tsx +238 -238
  193. package/lib/motion/shotcraft/upstream/demos/ui-entrance/neon-frame-forerun/NeonFrameForerun.tsx +324 -324
  194. package/lib/motion/shotcraft/upstream/demos/ui-entrance/neon-frame-orbit-drop/NeonFrameForerunOrbit.tsx +354 -354
  195. package/lib/motion/shotcraft/upstream/demos/ui-entrance/page-waterfall-wall/PageWaterfallWall.tsx +101 -101
  196. package/lib/motion/shotcraft/upstream/demos/ui-entrance/page-waterfall-wall/VerticalTicker.tsx +129 -129
  197. package/lib/motion/shotcraft/upstream/demos/ui-entrance/product-card-progressive-assemble/ProductCardProgressiveAssemble.tsx +297 -297
  198. package/lib/motion/shotcraft/upstream/demos/ui-entrance/radial-wave/RadialWave.tsx +57 -57
  199. package/lib/motion/shotcraft/upstream/demos/ui-entrance/research-card-stack-scroll/ResearchCardStackScroll.tsx +155 -155
  200. package/lib/motion/shotcraft/upstream/demos/ui-entrance/row-embed/RowEmbed.tsx +175 -175
  201. package/lib/motion/shotcraft/upstream/demos/ui-entrance/value-stagger-gradient/ValueStaggerGradient.tsx +153 -153
  202. package/lib/motion/shotcraft/upstream/demos/ui-entrance/wall-reveal-moves/BentoLightUp.tsx +146 -146
  203. package/lib/motion/shotcraft/upstream/demos/ui-entrance/wall-reveal-moves/WireframeDrawOn.tsx +226 -226
  204. package/lib/motion/shotcraft/upstream/gallery/api/library.json +1 -1
  205. package/lib/motion/shotcraft/upstream/references/aesthetic-rules.md +193 -193
  206. package/lib/motion/shotcraft/upstream/references/final-review.md +121 -121
  207. package/lib/motion/shotcraft/upstream/references/guided-free-creation.md +199 -199
  208. package/lib/motion/shotcraft/upstream/references/jianying-export.md +183 -183
  209. package/lib/motion/shotcraft/upstream/references/music-beat-sync.md +257 -257
  210. package/lib/motion/shotcraft/upstream/references/pipeline.md +382 -382
  211. package/lib/motion/shotcraft/upstream/references/publish-upload-post.md +111 -111
  212. package/lib/motion/shotcraft/upstream/references/sequences/promo-energy-arc.md +50 -50
  213. package/lib/motion/shotcraft/upstream/references/sfx-sourcing.md +95 -95
  214. package/lib/motion/shotcraft/upstream/references/shots/camera/basic-3d-scene.md +41 -41
  215. package/lib/motion/shotcraft/upstream/references/shots/camera/crash-zoom-punch.md +52 -52
  216. package/lib/motion/shotcraft/upstream/references/shots/camera/cursor-flyover.md +39 -39
  217. package/lib/motion/shotcraft/upstream/references/shots/camera/depth-layer-moves.md +39 -39
  218. package/lib/motion/shotcraft/upstream/references/shots/camera/graze-face-tour.md +57 -57
  219. package/lib/motion/shotcraft/upstream/references/shots/camera/overhead-camera-moves.md +51 -51
  220. package/lib/motion/shotcraft/upstream/references/shots/camera/space-camera-moves.md +46 -46
  221. package/lib/motion/shotcraft/upstream/references/shots/camera/steep-tilt-glide.md +52 -52
  222. package/lib/motion/shotcraft/upstream/references/shots/camera/tension-camera-moves.md +43 -43
  223. package/lib/motion/shotcraft/upstream/references/shots/camera/terminal-3d.md +42 -42
  224. package/lib/motion/shotcraft/upstream/references/shots/data/before-after-slider-scrub.md +48 -48
  225. package/lib/motion/shotcraft/upstream/references/shots/data/chart-live-moves.md +52 -52
  226. package/lib/motion/shotcraft/upstream/references/shots/data/gauge-readout-moves.md +45 -45
  227. package/lib/motion/shotcraft/upstream/references/shots/data/scroll-brake-moves.md +46 -46
  228. package/lib/motion/shotcraft/upstream/references/shots/data/timeline-travel.md +44 -44
  229. package/lib/motion/shotcraft/upstream/references/shots/effects/assemble-then-type-flyin.md +63 -63
  230. package/lib/motion/shotcraft/upstream/references/shots/effects/aurora-bloom-bg-flip.md +54 -54
  231. package/lib/motion/shotcraft/upstream/references/shots/effects/brand-frame-snap.md +58 -58
  232. package/lib/motion/shotcraft/upstream/references/shots/effects/fui-hud-moves.md +35 -35
  233. package/lib/motion/shotcraft/upstream/references/shots/effects/glow-flyline-moves.md +53 -53
  234. package/lib/motion/shotcraft/upstream/references/shots/effects/icon-performance-moves.md +42 -42
  235. package/lib/motion/shotcraft/upstream/references/shots/effects/impact-feedback.md +50 -50
  236. package/lib/motion/shotcraft/upstream/references/shots/effects/light-play-moves.md +46 -46
  237. package/lib/motion/shotcraft/upstream/references/shots/effects/radial-ripple-phone-chips.md +56 -56
  238. package/lib/motion/shotcraft/upstream/references/shots/effects/riso-print-hits.md +49 -49
  239. package/lib/motion/shotcraft/upstream/references/shots/effects/scan-bracket-sweep.md +50 -50
  240. package/lib/motion/shotcraft/upstream/references/shots/effects/scanline-annotate-focus.md +53 -53
  241. package/lib/motion/shotcraft/upstream/references/shots/effects/scanline-assemble-flyin.md +53 -53
  242. package/lib/motion/shotcraft/upstream/references/shots/effects/slam-entrance-moves.md +55 -55
  243. package/lib/motion/shotcraft/upstream/references/shots/effects/spotlight-sweep-moves.md +52 -52
  244. package/lib/motion/shotcraft/upstream/references/shots/interaction/autolayout-gap-dial.md +60 -60
  245. package/lib/motion/shotcraft/upstream/references/shots/interaction/canvas-materialize-moves.md +57 -57
  246. package/lib/motion/shotcraft/upstream/references/shots/interaction/chip-grid-single-select-blackout.md +51 -51
  247. package/lib/motion/shotcraft/upstream/references/shots/interaction/collab-cursor-moves.md +41 -41
  248. package/lib/motion/shotcraft/upstream/references/shots/interaction/glass-pill-dictation-typing.md +53 -53
  249. package/lib/motion/shotcraft/upstream/references/shots/interaction/hashtag-to-pill-materialize.md +60 -60
  250. package/lib/motion/shotcraft/upstream/references/shots/interaction/picker-carousel-feature-cycle.md +55 -55
  251. package/lib/motion/shotcraft/upstream/references/shots/interaction/segmented-thumb-hero.md +57 -57
  252. package/lib/motion/shotcraft/upstream/references/shots/interaction/theme-switch-moves.md +47 -47
  253. package/lib/motion/shotcraft/upstream/references/shots/interaction/type-and-filter.md +37 -37
  254. package/lib/motion/shotcraft/upstream/references/shots/interaction/voice-waveform-live.md +54 -54
  255. package/lib/motion/shotcraft/upstream/references/shots/opening/brand-ink-open.md +36 -36
  256. package/lib/motion/shotcraft/upstream/references/shots/opening/crane-rise-reveal.md +56 -56
  257. package/lib/motion/shotcraft/upstream/references/shots/opening/dataviz-landscape-open.md +56 -56
  258. package/lib/motion/shotcraft/upstream/references/shots/opening/fracture.md +40 -40
  259. package/lib/motion/shotcraft/upstream/references/shots/opening/icon-field-colorize.md +60 -60
  260. package/lib/motion/shotcraft/upstream/references/shots/opening/letterspace-materialize.md +57 -57
  261. package/lib/motion/shotcraft/upstream/references/shots/opening/magician-card-flourish.md +73 -73
  262. package/lib/motion/shotcraft/upstream/references/shots/opening/orbit-ring-title-open.md +87 -87
  263. package/lib/motion/shotcraft/upstream/references/shots/opening/spotlight-hero-card.md +55 -55
  264. package/lib/motion/shotcraft/upstream/references/shots/opening/stroke-segment-build.md +50 -50
  265. package/lib/motion/shotcraft/upstream/references/shots/opening/text-as-mask.md +59 -59
  266. package/lib/motion/shotcraft/upstream/references/shots/outro/grain-dissolve.md +38 -38
  267. package/lib/motion/shotcraft/upstream/references/shots/outro/logo-shrink-wordmark-lockup.md +38 -38
  268. package/lib/motion/shotcraft/upstream/references/shots/outro/neon-triple-marquee.md +59 -59
  269. package/lib/motion/shotcraft/upstream/references/shots/outro/outro-group-photo-launch.md +39 -39
  270. package/lib/motion/shotcraft/upstream/references/shots/outro/ui-strip-away-outro.md +61 -61
  271. package/lib/motion/shotcraft/upstream/references/shots/outro/ui-to-brand-morph.md +52 -52
  272. package/lib/motion/shotcraft/upstream/references/shots/rhythm/beat-cut-moves.md +50 -50
  273. package/lib/motion/shotcraft/upstream/references/shots/rhythm/beat-step-list-theme-cycle.md +66 -66
  274. package/lib/motion/shotcraft/upstream/references/shots/rhythm/panel-grid-moves.md +43 -43
  275. package/lib/motion/shotcraft/upstream/references/shots/rhythm/quad-split-parallel-scenes.md +38 -38
  276. package/lib/motion/shotcraft/upstream/references/shots/rhythm/rhythm-interrupt-moves.md +38 -38
  277. package/lib/motion/shotcraft/upstream/references/shots/rhythm/sakuga-timing-shift.md +56 -56
  278. package/lib/motion/shotcraft/upstream/references/shots/rhythm/speed-ramp-freeze.md +44 -44
  279. package/lib/motion/shotcraft/upstream/references/shots/rhythm/trailer-grammar-moves.md +38 -38
  280. package/lib/motion/shotcraft/upstream/references/shots/transition/bottom-push-stack-wipe.md +63 -63
  281. package/lib/motion/shotcraft/upstream/references/shots/transition/card-flip-reveal.md +57 -57
  282. package/lib/motion/shotcraft/upstream/references/shots/transition/card-flock-tumble.md +63 -63
  283. package/lib/motion/shotcraft/upstream/references/shots/transition/circle-match-iris.md +58 -58
  284. package/lib/motion/shotcraft/upstream/references/shots/transition/gradient-transition.md +45 -45
  285. package/lib/motion/shotcraft/upstream/references/shots/transition/line-carry-transition.md +55 -55
  286. package/lib/motion/shotcraft/upstream/references/shots/transition/mosaic-reframe.md +49 -49
  287. package/lib/motion/shotcraft/upstream/references/shots/transition/page-turn-transitions.md +42 -42
  288. package/lib/motion/shotcraft/upstream/references/shots/transition/print-texture-transitions.md +42 -42
  289. package/lib/motion/shotcraft/upstream/references/shots/transition/shot-transitions.md +45 -45
  290. package/lib/motion/shotcraft/upstream/references/shots/transition/tear-streak-transitions.md +48 -48
  291. package/lib/motion/shotcraft/upstream/references/shots/transition/transition-hidden-cut.md +55 -55
  292. package/lib/motion/shotcraft/upstream/references/shots/transition/transition-travel.md +43 -43
  293. package/lib/motion/shotcraft/upstream/references/shots/transition/white-flash-logo-simplify-cut.md +41 -41
  294. package/lib/motion/shotcraft/upstream/references/shots/transition/wipe-transitions.md +42 -42
  295. package/lib/motion/shotcraft/upstream/references/shots/typography/blur-slide.md +59 -59
  296. package/lib/motion/shotcraft/upstream/references/shots/typography/brace-expand.md +55 -55
  297. package/lib/motion/shotcraft/upstream/references/shots/typography/countdown-arc-scatter.md +65 -65
  298. package/lib/motion/shotcraft/upstream/references/shots/typography/document-typewriter-reveal.md +42 -42
  299. package/lib/motion/shotcraft/upstream/references/shots/typography/flying-words.md +64 -64
  300. package/lib/motion/shotcraft/upstream/references/shots/typography/glitch-cycle.md +64 -64
  301. package/lib/motion/shotcraft/upstream/references/shots/typography/gradient-word-sweep.md +54 -54
  302. package/lib/motion/shotcraft/upstream/references/shots/typography/lead-word-zoom-assemble.md +91 -91
  303. package/lib/motion/shotcraft/upstream/references/shots/typography/marker-underline-title.md +51 -51
  304. package/lib/motion/shotcraft/upstream/references/shots/typography/outline-word-fill.md +66 -66
  305. package/lib/motion/shotcraft/upstream/references/shots/typography/paper-title-card.md +38 -38
  306. package/lib/motion/shotcraft/upstream/references/shots/typography/pill-chip-slot-cycle-handled.md +66 -66
  307. package/lib/motion/shotcraft/upstream/references/shots/typography/pill-slot-cycle.md +58 -58
  308. package/lib/motion/shotcraft/upstream/references/shots/typography/text-column-converge.md +61 -61
  309. package/lib/motion/shotcraft/upstream/references/shots/typography/title-demote-to-label.md +64 -64
  310. package/lib/motion/shotcraft/upstream/references/shots/typography/type-assembly-moves.md +45 -45
  311. package/lib/motion/shotcraft/upstream/references/shots/typography/type-entrance-moves.md +41 -41
  312. package/lib/motion/shotcraft/upstream/references/shots/typography/type-rhythm-sync.md +51 -51
  313. package/lib/motion/shotcraft/upstream/references/shots/typography/typewriter-moves.md +42 -42
  314. package/lib/motion/shotcraft/upstream/references/shots/typography/vertical-word-roll-blur-cycle.md +63 -63
  315. package/lib/motion/shotcraft/upstream/references/shots/typography/word-relay-filmstrip.md +57 -57
  316. package/lib/motion/shotcraft/upstream/references/shots/typography/word-relay-geometry.md +75 -75
  317. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/avatar-bracket-carousel.md +59 -59
  318. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/bezier-source-converge-merge.md +67 -67
  319. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/card-stack.md +60 -60
  320. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/carousel-3d.md +66 -66
  321. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/cloner-depth-echo.md +40 -40
  322. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/deck-deal-flyin.md +45 -45
  323. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/doc-park-left-pill-deal.md +62 -62
  324. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/draw-svg-trace.md +55 -55
  325. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/element-body-moves.md +37 -37
  326. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/integration-hub-map.md +55 -55
  327. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/list-reveal.md +50 -50
  328. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/list-stack-press.md +43 -43
  329. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/neon-frame-forerun.md +55 -55
  330. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/neon-frame-orbit-drop.md +51 -51
  331. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/page-waterfall-wall.md +51 -51
  332. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/product-card-progressive-assemble.md +56 -56
  333. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/radial-wave.md +49 -49
  334. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/research-card-stack-scroll.md +57 -57
  335. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/row-embed.md +36 -36
  336. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/value-stagger-gradient.md +64 -64
  337. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/wall-reveal-moves.md +47 -47
  338. package/lib/motion/shotcraft/upstream/references/sound-design.md +170 -170
  339. package/lib/motion/shotcraft/upstream/references/workbench.md +157 -157
  340. package/lib/motion/shotcraft/upstream/template/TEMPLATE.md +103 -103
  341. package/lib/motion/shotcraft/upstream/template/THEMES.md +44 -44
  342. package/lib/motion/shotcraft/upstream/template/package.json +20 -20
  343. package/lib/motion/shotcraft/upstream/template/remotion.config.ts +6 -6
  344. package/lib/motion/shotcraft/upstream/template/src/Root.tsx +17 -17
  345. package/lib/motion/shotcraft/upstream/template/src/aifl/Caption.tsx +65 -65
  346. package/lib/motion/shotcraft/upstream/template/src/aifl/DigitRoll.tsx +48 -48
  347. package/lib/motion/shotcraft/upstream/template/src/aifl/FlashCut.tsx +24 -24
  348. package/lib/motion/shotcraft/upstream/template/src/aifl/Main.tsx +192 -192
  349. package/lib/motion/shotcraft/upstream/template/src/aifl/PaperTitleCard.tsx +111 -111
  350. package/lib/motion/shotcraft/upstream/template/src/aifl/live/PageCam.tsx +150 -150
  351. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneDetail.tsx +158 -158
  352. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneFlyIn.tsx +468 -468
  353. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneOpen.tsx +552 -552
  354. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneOutroLive.tsx +411 -411
  355. package/lib/motion/shotcraft/upstream/template/src/aifl/live/ScenePapers.tsx +200 -200
  356. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneWbr.tsx +324 -324
  357. package/lib/motion/shotcraft/upstream/template/src/aifl/live-layout.json +388 -388
  358. package/lib/motion/shotcraft/upstream/template/src/index.ts +4 -4
  359. package/lib/motion/shotcraft/upstream/template/src/themes/ThemedFilm.tsx +7 -7
  360. package/lib/motion/shotcraft/upstream/template/src/themes/manifest.tsx +68 -68
  361. package/lib/motion/shotcraft/upstream/template/src/themes/palette-assets.json +1 -1
  362. package/lib/motion/shotcraft/upstream/template/src/themes/palette-assets.ts +24 -24
  363. package/lib/motion/shotcraft/upstream/template/src/themes/palettes.json +74 -74
  364. package/lib/motion/shotcraft/upstream/template/src/themes/visual-theme.tsx +91 -91
  365. package/lib/motion/shotcraft/upstream/template/src/workbench.ts +213 -213
  366. package/lib/motion/shotcraft/upstream/template/tsconfig.json +15 -15
  367. package/lib/motion/style-frames.js +306 -306
  368. package/lib/motion/sync.js +214 -214
  369. package/lib/motion-library.js +1 -1
  370. package/lib/motion-project.js +105 -105
  371. package/lib/motion-render-worker.js +174 -174
  372. package/lib/routing/router.js +222 -222
  373. package/lib/routing/vendor/README.md +96 -96
  374. package/lib/routing/vendor/libavoid-routing.js +753 -753
  375. package/lib/routing/vendor/libavoid.min.js +59 -59
  376. package/lib/svg-export.js +1344 -0
  377. package/lib/video-trace-pool.js +128 -128
  378. package/package.json +3 -2
  379. package/LICENSE +0 -4175
@@ -1,46 +1,46 @@
1
- ---
2
- name: scroll-brake-moves
3
- 一句话: 长卷急刹两式——changelog-scroll-brake 基本款(高速长卷指数减速精准停位+目标抬升)与 brake-reticle-lock 组合款(急刹帧同帧准星咬合)
4
- 适用: changelog/发布史/长列表段落:"一直在发货,今天这条最大";要给停点更强打击感用 B
5
- 时长: A 4–5s / B 5s
6
- 能量: 高开中收(速度对比型)
7
- 标签: rhythm
8
- ---
9
-
10
- ## 意图
11
- Linear changelog 视频语法:一整年的更新日志作为长卷高速掠过
12
- (糊成色带),指数减速精准急刹停在本次发布那条上,该条抬升离面
13
- 高亮、其余退暗——密度感讲"一直在发货",急停讲"今天这条最大"。
14
- B 是组合变异:急刹帧**同帧**四个 L 角标从画外飞入咬合锁定停点
15
- 条目——急刹的"哐"与咬合的"咔"叠在同一帧共振(组合命门:
16
- 角标起跳帧=列表首停帧,错开退化成两招并置)。
17
-
18
- ## 两式选型
19
- | 式 | 做法 | 适用 |
20
- |----|------|------|
21
- | A changelog-scroll-brake | translateY 扫 ~2400px(cubic-bezier(.45,0,.06,1):~5f 拉满速再长尾指数式减速,共 50f),纵向方向性 blur 由帧间位移差分驱动(×0.32 封顶 30px,停稳自动清零);停点行 scale 1.03 抬升+阴影+2px 强调色描边,其余 opacity 退 0.38 | changelog 段落基本款 |
22
- | B brake-reticle-lock | 滚动三段:sin-in 加速→cubic-out 猛减速冲过头 +30px→回弹落定;纵向方向性 blur=v×0.15 封顶 32px;角标从 ±620/±320 画外 Easing.back(2.4) 飞入咬合,高亮 6f 内完成、标签 back(2.6) 弹出 | 停点需要更强打击感的高光段 |
23
-
24
- ## 参数表
25
- | 参数 | 典型值 | 调节手感 |
26
- |------|--------|----------|
27
- | 减速曲线 | A 快起步 + 长尾减速(bezier .45,0,.06,1);B 加"冲过头 30px 回弹" | 匀速滚读作跑马灯;B 的过头回弹是"哐"的来源 |
28
- | blur 驱动 | 帧间位移差分 `|p(f)-p(f-1)|`×系数 | 手排模糊关键帧必然对不上速度;差分法帧确定(模式已沉为 assets/lib/helpers/motion.ts velocityAt) |
29
- | 行高节奏 | 72/94/116 三档错落 | 等高行高速掠过时色带无节奏 |
30
- | 停位 | 目标行停画面纵向正中 | 停偏读作事故 |
31
- | B 共振帧 | 角标挂载起跳帧 = 列表首次停住帧(严格同帧) | 组合命门,错 2f 以上就散 |
32
-
33
- ## 已知坑
34
- - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
35
- 首次实战须以真实素材回验
36
- - 与 timeline-travel 分工:本卡纵向列表急刹停"最新",
37
- 那卡横向时间轴旅行看"历史"——同片双用时先后错开且各 ≤1 次
38
- - 高速段条目内容不用真实可读文本——反正糊成色带,占位灰块即可;
39
- 停点条目必须出版级真内容(Q10)
40
- - 停点后其余行退暗 0.38 是构图动作:别退到 0(上下文消失)
41
- - 声音:高速段低频 riser 铺垫,急刹一声 impact;B 咬合帧
42
- 再叠一声"咔"(与 impact 同帧不同声部)
43
-
44
- ## 参考实现
45
- demos/data/scroll-brake-moves/
46
- (BrakeReticleLock.tsx / ChangelogScrollBrake.tsx)
1
+ ---
2
+ name: scroll-brake-moves
3
+ 一句话: 长卷急刹两式——changelog-scroll-brake 基本款(高速长卷指数减速精准停位+目标抬升)与 brake-reticle-lock 组合款(急刹帧同帧准星咬合)
4
+ 适用: changelog/发布史/长列表段落:"一直在发货,今天这条最大";要给停点更强打击感用 B
5
+ 时长: A 4–5s / B 5s
6
+ 能量: 高开中收(速度对比型)
7
+ 标签: rhythm
8
+ ---
9
+
10
+ ## 意图
11
+ Linear changelog 视频语法:一整年的更新日志作为长卷高速掠过
12
+ (糊成色带),指数减速精准急刹停在本次发布那条上,该条抬升离面
13
+ 高亮、其余退暗——密度感讲"一直在发货",急停讲"今天这条最大"。
14
+ B 是组合变异:急刹帧**同帧**四个 L 角标从画外飞入咬合锁定停点
15
+ 条目——急刹的"哐"与咬合的"咔"叠在同一帧共振(组合命门:
16
+ 角标起跳帧=列表首停帧,错开退化成两招并置)。
17
+
18
+ ## 两式选型
19
+ | 式 | 做法 | 适用 |
20
+ |----|------|------|
21
+ | A changelog-scroll-brake | translateY 扫 ~2400px(cubic-bezier(.45,0,.06,1):~5f 拉满速再长尾指数式减速,共 50f),纵向方向性 blur 由帧间位移差分驱动(×0.32 封顶 30px,停稳自动清零);停点行 scale 1.03 抬升+阴影+2px 强调色描边,其余 opacity 退 0.38 | changelog 段落基本款 |
22
+ | B brake-reticle-lock | 滚动三段:sin-in 加速→cubic-out 猛减速冲过头 +30px→回弹落定;纵向方向性 blur=v×0.15 封顶 32px;角标从 ±620/±320 画外 Easing.back(2.4) 飞入咬合,高亮 6f 内完成、标签 back(2.6) 弹出 | 停点需要更强打击感的高光段 |
23
+
24
+ ## 参数表
25
+ | 参数 | 典型值 | 调节手感 |
26
+ |------|--------|----------|
27
+ | 减速曲线 | A 快起步 + 长尾减速(bezier .45,0,.06,1);B 加"冲过头 30px 回弹" | 匀速滚读作跑马灯;B 的过头回弹是"哐"的来源 |
28
+ | blur 驱动 | 帧间位移差分 `|p(f)-p(f-1)|`×系数 | 手排模糊关键帧必然对不上速度;差分法帧确定(模式已沉为 assets/lib/helpers/motion.ts velocityAt) |
29
+ | 行高节奏 | 72/94/116 三档错落 | 等高行高速掠过时色带无节奏 |
30
+ | 停位 | 目标行停画面纵向正中 | 停偏读作事故 |
31
+ | B 共振帧 | 角标挂载起跳帧 = 列表首次停住帧(严格同帧) | 组合命门,错 2f 以上就散 |
32
+
33
+ ## 已知坑
34
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
35
+ 首次实战须以真实素材回验
36
+ - 与 timeline-travel 分工:本卡纵向列表急刹停"最新",
37
+ 那卡横向时间轴旅行看"历史"——同片双用时先后错开且各 ≤1 次
38
+ - 高速段条目内容不用真实可读文本——反正糊成色带,占位灰块即可;
39
+ 停点条目必须出版级真内容(Q10)
40
+ - 停点后其余行退暗 0.38 是构图动作:别退到 0(上下文消失)
41
+ - 声音:高速段低频 riser 铺垫,急刹一声 impact;B 咬合帧
42
+ 再叠一声"咔"(与 impact 同帧不同声部)
43
+
44
+ ## 参考实现
45
+ demos/data/scroll-brake-moves/
46
+ (BrakeReticleLock.tsx / ChangelogScrollBrake.tsx)
@@ -1,44 +1,44 @@
1
- ---
2
- name: timeline-travel
3
- 一句话: 时间轴横移——镜头沿水平刻度轴加速掠过版本刻度,每过一格卡片弹立短停,末刻度急停推近
4
- 适用: changelog/里程碑/发展史段落("我们一直在发货"的另一种拍法);与 scroll-brake-moves 分工:那卡是纵向列表急刹,本卡是横向时间旅行
5
- 时长: 4–5s
6
- 能量: 中高(加速→急刹的节奏型镜头)
7
- 标签: camera
8
- ---
9
-
10
- ## 意图
11
- 把产品的版本史拍成一次沿时间轴的旅行(《反恐王国》片头判例):
12
- 镜头缓起→冲刺→急刹三段变速横移,v1.0/v2.0/v3.0 刻度依次掠过,
13
- 每过一格对应卡片从刻度线上 spring 弹立——历史在窗外闪过,
14
- 急停在"今天"并推近。速度本身讲"发展快",急停讲"现在最重要"。
15
-
16
- ## 动作阶段
17
- | 阶段 | 帧段参考 | 内容 |
18
- |------|------|------|
19
- | 1 静置 | f0–12 | 空轴 + 首刻度定住 |
20
- | 2 加速掠过 | ~f12–100 | 世界层 translateX 分段缓动:缓起→冲刺→末 12% 急刹 |
21
- | 3 弹卡 | 掠过中 | 相机扫过刻度前 6f 卡片起弹(spring damping ~11 明显过冲),底边为轴 scaleY 立起 |
22
- | 4 急停推近 | 急停帧起 10f | scale 1→1.28 推近末刻度(out cubic),接静止 ≥30f |
23
-
24
- ## 参数表
25
- | 参数 | 典型值 | 调节手感 |
26
- |------|--------|----------|
27
- | 变速曲线 | 输入断点 [0,0.15,0.88,1]→输出 [0,0.055,0.9,1] | 中段不够快就没有"旅行感";全程匀速即廉价 PPT |
28
- | 弹立时机 | 相机到达刻度前 6f 起弹,由 camXAt 反查 | 到了才弹观众已经错过;早太多读作预告 |
29
- | 刻度密度 | 主刻度 3–5 个 + 次刻度小点若干 | 次刻度点是速度感的参照物,删掉就感觉不到快 |
30
- | 急停推近 | 1→1.28 / 10f | 不推近急停就只是"停了",推近才是"到了" |
31
-
32
- ## 已知坑
33
- - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
34
- 首次实战须以真实素材回验
35
- - 中段冲刺快到卡片糊时可叠 CameraMotionBlur(只包快速段,轮 #8 判例)
36
- - 急停后静止预算前置:demo 首版静止只有 25f 不达标,急停帧前移才够
37
- ——排时间线时先给末段留 ≥30f 再倒推行程
38
- - 每张弹立卡片是信息位:实战放真实版本亮点截图/一句话,
39
- 掠过速度要保证至少末两张能读(Q6 同源)
40
- - 声音:每次弹立一声轻打点,急停一声 impact(S2 同源)
41
-
42
- ## 参考实现
43
- demos/data/timeline-travel/
44
- (TimelineTravel.tsx)
1
+ ---
2
+ name: timeline-travel
3
+ 一句话: 时间轴横移——镜头沿水平刻度轴加速掠过版本刻度,每过一格卡片弹立短停,末刻度急停推近
4
+ 适用: changelog/里程碑/发展史段落("我们一直在发货"的另一种拍法);与 scroll-brake-moves 分工:那卡是纵向列表急刹,本卡是横向时间旅行
5
+ 时长: 4–5s
6
+ 能量: 中高(加速→急刹的节奏型镜头)
7
+ 标签: camera
8
+ ---
9
+
10
+ ## 意图
11
+ 把产品的版本史拍成一次沿时间轴的旅行(《反恐王国》片头判例):
12
+ 镜头缓起→冲刺→急刹三段变速横移,v1.0/v2.0/v3.0 刻度依次掠过,
13
+ 每过一格对应卡片从刻度线上 spring 弹立——历史在窗外闪过,
14
+ 急停在"今天"并推近。速度本身讲"发展快",急停讲"现在最重要"。
15
+
16
+ ## 动作阶段
17
+ | 阶段 | 帧段参考 | 内容 |
18
+ |------|------|------|
19
+ | 1 静置 | f0–12 | 空轴 + 首刻度定住 |
20
+ | 2 加速掠过 | ~f12–100 | 世界层 translateX 分段缓动:缓起→冲刺→末 12% 急刹 |
21
+ | 3 弹卡 | 掠过中 | 相机扫过刻度前 6f 卡片起弹(spring damping ~11 明显过冲),底边为轴 scaleY 立起 |
22
+ | 4 急停推近 | 急停帧起 10f | scale 1→1.28 推近末刻度(out cubic),接静止 ≥30f |
23
+
24
+ ## 参数表
25
+ | 参数 | 典型值 | 调节手感 |
26
+ |------|--------|----------|
27
+ | 变速曲线 | 输入断点 [0,0.15,0.88,1]→输出 [0,0.055,0.9,1] | 中段不够快就没有"旅行感";全程匀速即廉价 PPT |
28
+ | 弹立时机 | 相机到达刻度前 6f 起弹,由 camXAt 反查 | 到了才弹观众已经错过;早太多读作预告 |
29
+ | 刻度密度 | 主刻度 3–5 个 + 次刻度小点若干 | 次刻度点是速度感的参照物,删掉就感觉不到快 |
30
+ | 急停推近 | 1→1.28 / 10f | 不推近急停就只是"停了",推近才是"到了" |
31
+
32
+ ## 已知坑
33
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
34
+ 首次实战须以真实素材回验
35
+ - 中段冲刺快到卡片糊时可叠 CameraMotionBlur(只包快速段,轮 #8 判例)
36
+ - 急停后静止预算前置:demo 首版静止只有 25f 不达标,急停帧前移才够
37
+ ——排时间线时先给末段留 ≥30f 再倒推行程
38
+ - 每张弹立卡片是信息位:实战放真实版本亮点截图/一句话,
39
+ 掠过速度要保证至少末两张能读(Q6 同源)
40
+ - 声音:每次弹立一声轻打点,急停一声 impact(S2 同源)
41
+
42
+ ## 参考实现
43
+ demos/data/timeline-travel/
44
+ (TimelineTravel.tsx)
@@ -1,63 +1,63 @@
1
- ---
2
- name: assemble-then-type-flyin
3
- 一句话: 空的暗底网格上,无文字的组件骨架先从四面八方飞入贴合;随后各处文字逐字从 3D 空间旋转着飞来落位,先大标题后小标注,全部落位后页面成形
4
- 适用: 页面/海报"自己长出来"的开场;排版类产品的能力展示;从骨架到成稿的两段式叙事
5
- 时长: 约5.6s(168f@30fps)
6
- 能量: 中高(骨架段稀疏、文字段密集,能量单调上升到收尾)
7
- ---
8
-
9
- ## 意图
10
- 把"页面生成"拆成两个语义清楚的阶段:先立骨架(框、卡片、分隔线、
11
- 色块,全部无字),再填文字。文字用逐字 3D 旋转落位,是因为骨架段
12
- 只有平面位移——两段的运动维度必须不同,否则观众读不出"这是第二步"。
13
-
14
- ## 动效核心
15
- - demo 成形后是 video-shotcraft 的暗场发布页(graphite look,胶片金 accent2 是唯一强调色;导航条是镜刻标志 +
16
- video-shotcraft 字标,大标题是品牌短句「Frame motion. / Craft the shot.」),
17
- 1920×1080 原生坐标;开场第 1 帧先有 12 栏版式参考线,骨架齐后退淡
18
- - 10 个骨架件(导航条、调色台卡 + 胶片画面色块、镜刻标志、三只色轮圈、分隔线、CTA、次按钮、三枚指标块)
19
- 按起飞帧 6/10/15/19/23/27/31/35/39/44 依次飞入,每件 16f `EASE.overshoot` 过冲贴合,
20
- `from` 位移 120–420px + ±7° 旋转(旋转晚 4f 收敛)
21
- - 骨架运动中按真实速度(px/帧)给方向性运动模糊(`SpeedBlur` ×0.32,上限 18px),静止即为 0
22
- - 19 个文字块按起始帧 58→114 依次开始:112px 衬线大标题最先(58/66),
23
- 然后导航、eyebrow、说明句、按钮字(76–95),指标数字(96–102),最后各处 mono 小标注(104–114)
24
- - 逐字 3D:每个字符持有确定性种子随机的
25
- `dx ±260px / dy ±200px / dz −200→−760 / rotateX ±170° / rotateY ±190° /
26
- rotateZ ±120°`,走 `perspective(900px) translate3d + rotateX/Y/Z`,
27
- 每字 16f `EASE.snappy` 落位,飞行中按离焦距离给景深模糊,`a>=1` 时 transform 直接设 `none`
28
- - 块内字符间隔自适应:`step = clamp((128 − start − 16)/字符数, 0.35, 1.6)` 帧
29
- ——保证不论块多长都在 f128 前落完,尾段留 40f 整页静止呼吸(1.5% 极缓推近)
30
- - 落定后的"定稿"一笔:CTA 由描边通电成金色实底(118–132),胶片画面被一道金色竖线从 log 灰片
31
- 擦除成暖调成片(124–146),三只色轮控制点同步从中性位推到偏色位
32
- - 随机全部来自 `rand(i) = frac(sin(i*127.1 + 311.7) * 43758.5453)`,
33
- 确定性、可 seek
34
-
35
- ## 参数表
36
- | 参数 | 典型值 | 调节手感 |
37
- |------|--------|----------|
38
- | 骨架时序 | 10 件,起飞帧 6→44(间隔 4–5f) | 骨架段占前 30%;压缩到 20f 内就和文字段糊在一起 |
39
- | 骨架飞入 | overshoot、16f、位移 120–420px + ±7° | 与 `scanline-assemble-flyin` 同一手法,去掉扫描线后靠时序读顺序 |
40
- | 骨架残影 | 方向性运动模糊,按速度 ×0.32、封顶 18px | 只在快速段出现;常驻模糊读作失焦 |
41
- | 两段断点 | 骨架齐(f50)→ 文字起(f58)留 8f,参考线同期退淡 | 没有这半拍观众读不出"这是第二步" |
42
- | 文字起点 | 大标题 58/66,小标注 104→114 | 大字先落是可读性要求:小字先落观众会去读小字 |
43
- | 逐字位移 | dx ±260 / dy ±200 / dz −200→−760 | dz 是"从远处来"的主力;只给 dx/dy 就成了平面散入 |
44
- | 逐字旋转 | rotateX/Y/Z 各 ±120°–190° | 大角度才有"翻着飞"的手感;±30° 只像抖动 |
45
- | perspective | 900px(写在每个字符自己的 transform 里) | 112px 大字配 600px 会过度畸变;1400px 以上 3D 感基本消失 |
46
- | 字间隔 | clamp((128−start−16)/n, 0.35, 1.6) 帧 | 上限 1.6f 是"逐字可辨"的下限速度 |
47
- | 落位清零 | a>=1 → transform:'none' | 不清零会留下 19 个块的合成层,长片会掉帧 |
48
-
49
- ## 已知坑
50
- - 字符 span 走正常排版流(`display:inline-block`),动画只动 transform——
51
- 不要用绝对定位逐字摆位,换文案就全乱
52
- - 空格字符必须显式塞成不换行空格(代码里用 `ch === ' ' ? '\u00a0' : ch`),
53
- 否则 inline-block 的空 span 宽度归零,词间距消失
54
- - `start` 是手写的 19 个数值,换文案(尤其字符数变化大时)要回看
55
- 最后一块是否仍在 f128 前落完;`step` 只保证块内,不保证块间
56
- - 内容是 video-shotcraft 的示例发布页(标题 / 指标 / 色轮标注),落地换成项目自己的;
57
- GOLD(graphite 的 accent2 `#e4c58a`)为强调色槽位,CTA 字色随通电由金转深要一起换
58
- - 与 `scanline-assemble-flyin` 的区别是**没有扫描线**:那张靠扫描线
59
- 解释顺序,这张靠"先骨架后文字"的两段式解释顺序,两者不要混用
60
-
61
- ## 参考实现
62
- demos/effects/assemble-then-type-flyin/
63
- (AssembleThenTypeFlyin.tsx)
1
+ ---
2
+ name: assemble-then-type-flyin
3
+ 一句话: 空的暗底网格上,无文字的组件骨架先从四面八方飞入贴合;随后各处文字逐字从 3D 空间旋转着飞来落位,先大标题后小标注,全部落位后页面成形
4
+ 适用: 页面/海报"自己长出来"的开场;排版类产品的能力展示;从骨架到成稿的两段式叙事
5
+ 时长: 约5.6s(168f@30fps)
6
+ 能量: 中高(骨架段稀疏、文字段密集,能量单调上升到收尾)
7
+ ---
8
+
9
+ ## 意图
10
+ 把"页面生成"拆成两个语义清楚的阶段:先立骨架(框、卡片、分隔线、
11
+ 色块,全部无字),再填文字。文字用逐字 3D 旋转落位,是因为骨架段
12
+ 只有平面位移——两段的运动维度必须不同,否则观众读不出"这是第二步"。
13
+
14
+ ## 动效核心
15
+ - demo 成形后是 video-shotcraft 的暗场发布页(graphite look,胶片金 accent2 是唯一强调色;导航条是镜刻标志 +
16
+ video-shotcraft 字标,大标题是品牌短句「Frame motion. / Craft the shot.」),
17
+ 1920×1080 原生坐标;开场第 1 帧先有 12 栏版式参考线,骨架齐后退淡
18
+ - 10 个骨架件(导航条、调色台卡 + 胶片画面色块、镜刻标志、三只色轮圈、分隔线、CTA、次按钮、三枚指标块)
19
+ 按起飞帧 6/10/15/19/23/27/31/35/39/44 依次飞入,每件 16f `EASE.overshoot` 过冲贴合,
20
+ `from` 位移 120–420px + ±7° 旋转(旋转晚 4f 收敛)
21
+ - 骨架运动中按真实速度(px/帧)给方向性运动模糊(`SpeedBlur` ×0.32,上限 18px),静止即为 0
22
+ - 19 个文字块按起始帧 58→114 依次开始:112px 衬线大标题最先(58/66),
23
+ 然后导航、eyebrow、说明句、按钮字(76–95),指标数字(96–102),最后各处 mono 小标注(104–114)
24
+ - 逐字 3D:每个字符持有确定性种子随机的
25
+ `dx ±260px / dy ±200px / dz −200→−760 / rotateX ±170° / rotateY ±190° /
26
+ rotateZ ±120°`,走 `perspective(900px) translate3d + rotateX/Y/Z`,
27
+ 每字 16f `EASE.snappy` 落位,飞行中按离焦距离给景深模糊,`a>=1` 时 transform 直接设 `none`
28
+ - 块内字符间隔自适应:`step = clamp((128 − start − 16)/字符数, 0.35, 1.6)` 帧
29
+ ——保证不论块多长都在 f128 前落完,尾段留 40f 整页静止呼吸(1.5% 极缓推近)
30
+ - 落定后的"定稿"一笔:CTA 由描边通电成金色实底(118–132),胶片画面被一道金色竖线从 log 灰片
31
+ 擦除成暖调成片(124–146),三只色轮控制点同步从中性位推到偏色位
32
+ - 随机全部来自 `rand(i) = frac(sin(i*127.1 + 311.7) * 43758.5453)`,
33
+ 确定性、可 seek
34
+
35
+ ## 参数表
36
+ | 参数 | 典型值 | 调节手感 |
37
+ |------|--------|----------|
38
+ | 骨架时序 | 10 件,起飞帧 6→44(间隔 4–5f) | 骨架段占前 30%;压缩到 20f 内就和文字段糊在一起 |
39
+ | 骨架飞入 | overshoot、16f、位移 120–420px + ±7° | 与 `scanline-assemble-flyin` 同一手法,去掉扫描线后靠时序读顺序 |
40
+ | 骨架残影 | 方向性运动模糊,按速度 ×0.32、封顶 18px | 只在快速段出现;常驻模糊读作失焦 |
41
+ | 两段断点 | 骨架齐(f50)→ 文字起(f58)留 8f,参考线同期退淡 | 没有这半拍观众读不出"这是第二步" |
42
+ | 文字起点 | 大标题 58/66,小标注 104→114 | 大字先落是可读性要求:小字先落观众会去读小字 |
43
+ | 逐字位移 | dx ±260 / dy ±200 / dz −200→−760 | dz 是"从远处来"的主力;只给 dx/dy 就成了平面散入 |
44
+ | 逐字旋转 | rotateX/Y/Z 各 ±120°–190° | 大角度才有"翻着飞"的手感;±30° 只像抖动 |
45
+ | perspective | 900px(写在每个字符自己的 transform 里) | 112px 大字配 600px 会过度畸变;1400px 以上 3D 感基本消失 |
46
+ | 字间隔 | clamp((128−start−16)/n, 0.35, 1.6) 帧 | 上限 1.6f 是"逐字可辨"的下限速度 |
47
+ | 落位清零 | a>=1 → transform:'none' | 不清零会留下 19 个块的合成层,长片会掉帧 |
48
+
49
+ ## 已知坑
50
+ - 字符 span 走正常排版流(`display:inline-block`),动画只动 transform——
51
+ 不要用绝对定位逐字摆位,换文案就全乱
52
+ - 空格字符必须显式塞成不换行空格(代码里用 `ch === ' ' ? '\u00a0' : ch`),
53
+ 否则 inline-block 的空 span 宽度归零,词间距消失
54
+ - `start` 是手写的 19 个数值,换文案(尤其字符数变化大时)要回看
55
+ 最后一块是否仍在 f128 前落完;`step` 只保证块内,不保证块间
56
+ - 内容是 video-shotcraft 的示例发布页(标题 / 指标 / 色轮标注),落地换成项目自己的;
57
+ GOLD(graphite 的 accent2 `#e4c58a`)为强调色槽位,CTA 字色随通电由金转深要一起换
58
+ - 与 `scanline-assemble-flyin` 的区别是**没有扫描线**:那张靠扫描线
59
+ 解释顺序,这张靠"先骨架后文字"的两段式解释顺序,两者不要混用
60
+
61
+ ## 参考实现
62
+ demos/effects/assemble-then-type-flyin/
63
+ (AssembleThenTypeFlyin.tsx)
@@ -1,54 +1,54 @@
1
- ---
2
- name: aurora-bloom-bg-flip
3
- 一句话: 浅灰底从底部升起紫橙柔焦 blob,随后整个底色在约 0.36s 内压暗到近黑、blob 压成余晖;文案同步 blur-out 换句 blur-in,换句间留空档不 cross-fade
4
- 适用: 叙事转折点("多年以来…→一切都变了");品牌片从铺垫拉到重音的那一拍;深浅色系之间的段落切换
5
- 时长: 约5.2s(156f@30fps)
6
- 能量: 由低到高(前 2/3 是酝酿,压暗那一瞬是全片重音)
7
- ---
8
-
9
- ## 意图
10
- 把"底色反转"当成重音符号用:前 56% 让极光慢慢升起、观众适应浅底,
11
- 然后用不到 0.4s 把整个画面压到近黑——这一下比任何缩放/闪白都更像
12
- "翻页"。文案的换句必须卡在反转之后,且中间留空档,让观众先接住画面
13
- 变化再读新句。
14
-
15
- ## 动效核心
16
- - 三层 `blur(60px)` blob 从画框底部升起:主紫 `rgba(107,79,224,.85)`
17
- 90%×85%、橙核 `rgba(217,122,74,.9)`、白色融边 `rgba(255,255,255,.8)`
18
- - 升起 `seg(0.04→0.56, outCubic)`:`translateY 32%→−6%` + `scale 1→1.25`
19
- - 反转 `flip = seg(0.57→0.64, inOutQuad)`(归一化 0.07 ≈ 0.36s):
20
- 底色 `mix([236,236,236] → [10,10,18])`,blob opacity 1→0.4 压成余晖,
21
- 白色融边层 `1−flip` 直接收掉
22
- - 橙核独立 `translateX ±8%`(2.2 周期/全片)横向慢漂,让 blob 内部
23
- 有相对运动而不是整块升降
24
- - A 句逐词 `blur 0→8px` + 淡出(t 0.40 起、stagger 0.04、各 0.10、inQuad);
25
- B 句逐词 `outQuint` blur-in(t 0.70 起、stagger 0.05、各 0.11),落位后 0.09 内
26
- 由 DEEPP 紫收色到白,t≈0.90 定稿后静止 ≈0.5s
27
-
28
- ## 参数表
29
- | 参数 | 典型值 | 调节手感 |
30
- |------|--------|----------|
31
- | blob 模糊/尺寸 | blur(60px),主层 90%×85%,容器 inset −10% | 模糊小于 40px 就看得出是圆,成了"色球"不是"光" |
32
- | 升起 | translateY 32%→−6% + scale 1→1.25,t 0.04→0.56 outCubic | 占掉一半以上时长是故意的:酝酿越长,反转越有分量 |
33
- | 反转时长 | t 0.57→0.64 inOutQuad ≈ 0.36s | **命门**:拉到 1s 就不是重音而是渐变过场 |
34
- | 底色 | #ececec → #0a0a12(不是纯黑) | 纯黑会让余晖 blob 边缘出现色阶断层 |
35
- | blob 压暗 | opacity 1→0.4,白色融边层同步归零 | 不压暗 blob,暗场里紫橙会过曝糊成一团 |
36
- | 橙核漂移 | translateX ±8%,2.2 周期/全片 | 幅度到 15% 就看得出是"一个球在动" |
37
- | A 句 blur-out | 逐词 stagger 0.04、各 0.10、inQuad、blur→8px | inQuad 让消失是加速的,读作"被光吞掉" |
38
- | B 句 blur-in | 逐词 stagger 0.05、各 0.11 outQuint + 0.09 内紫→白 | 收色比入场晚一点,落定瞬间才转白,是"定稿"的信号 |
39
- | 换句空档 | A 收完 t≈0.58 → B 起 0.70(≈0.6s 无字) | cross-fade 会把两句糊在一起,空档才读出"翻篇" |
40
-
41
- ## 已知坑
42
- - 白色融边层(blobC)只在浅底成立,反转时必须 `1−flip` 收掉,
43
- 否则暗场里留一团灰雾
44
- - DEEPP/PURPLE 是这个效果的**本体光色**,不是品牌色槽位;要换成项目色
45
- 必须 blob 三层 + B 句文字色整组一起换,只换文字色会和背景脱节
46
- - demo 文案是 video-shotcraft 的叙事转折("Promos took weeks" / "Meet video-shotcraft",
47
- 词数与字长贴近原片的 "For many years" / "everything changed"),逐词
48
- stagger 的节奏依赖词数与字长,换句要回调 0.04/0.06 两个间隔
49
- - 底色用 JS 逐帧写 `background`(`mix()` 出实色),不要用 CSS transition,
50
- 否则 seek 到任意帧时颜色不确定
51
-
52
- ## 参考实现
53
- demos/effects/aurora-bloom-bg-flip/
54
- (AuroraBloomBgFlip.tsx)
1
+ ---
2
+ name: aurora-bloom-bg-flip
3
+ 一句话: 浅灰底从底部升起紫橙柔焦 blob,随后整个底色在约 0.36s 内压暗到近黑、blob 压成余晖;文案同步 blur-out 换句 blur-in,换句间留空档不 cross-fade
4
+ 适用: 叙事转折点("多年以来…→一切都变了");品牌片从铺垫拉到重音的那一拍;深浅色系之间的段落切换
5
+ 时长: 约5.2s(156f@30fps)
6
+ 能量: 由低到高(前 2/3 是酝酿,压暗那一瞬是全片重音)
7
+ ---
8
+
9
+ ## 意图
10
+ 把"底色反转"当成重音符号用:前 56% 让极光慢慢升起、观众适应浅底,
11
+ 然后用不到 0.4s 把整个画面压到近黑——这一下比任何缩放/闪白都更像
12
+ "翻页"。文案的换句必须卡在反转之后,且中间留空档,让观众先接住画面
13
+ 变化再读新句。
14
+
15
+ ## 动效核心
16
+ - 三层 `blur(60px)` blob 从画框底部升起:主紫 `rgba(107,79,224,.85)`
17
+ 90%×85%、橙核 `rgba(217,122,74,.9)`、白色融边 `rgba(255,255,255,.8)`
18
+ - 升起 `seg(0.04→0.56, outCubic)`:`translateY 32%→−6%` + `scale 1→1.25`
19
+ - 反转 `flip = seg(0.57→0.64, inOutQuad)`(归一化 0.07 ≈ 0.36s):
20
+ 底色 `mix([236,236,236] → [10,10,18])`,blob opacity 1→0.4 压成余晖,
21
+ 白色融边层 `1−flip` 直接收掉
22
+ - 橙核独立 `translateX ±8%`(2.2 周期/全片)横向慢漂,让 blob 内部
23
+ 有相对运动而不是整块升降
24
+ - A 句逐词 `blur 0→8px` + 淡出(t 0.40 起、stagger 0.04、各 0.10、inQuad);
25
+ B 句逐词 `outQuint` blur-in(t 0.70 起、stagger 0.05、各 0.11),落位后 0.09 内
26
+ 由 DEEPP 紫收色到白,t≈0.90 定稿后静止 ≈0.5s
27
+
28
+ ## 参数表
29
+ | 参数 | 典型值 | 调节手感 |
30
+ |------|--------|----------|
31
+ | blob 模糊/尺寸 | blur(60px),主层 90%×85%,容器 inset −10% | 模糊小于 40px 就看得出是圆,成了"色球"不是"光" |
32
+ | 升起 | translateY 32%→−6% + scale 1→1.25,t 0.04→0.56 outCubic | 占掉一半以上时长是故意的:酝酿越长,反转越有分量 |
33
+ | 反转时长 | t 0.57→0.64 inOutQuad ≈ 0.36s | **命门**:拉到 1s 就不是重音而是渐变过场 |
34
+ | 底色 | #ececec → #0a0a12(不是纯黑) | 纯黑会让余晖 blob 边缘出现色阶断层 |
35
+ | blob 压暗 | opacity 1→0.4,白色融边层同步归零 | 不压暗 blob,暗场里紫橙会过曝糊成一团 |
36
+ | 橙核漂移 | translateX ±8%,2.2 周期/全片 | 幅度到 15% 就看得出是"一个球在动" |
37
+ | A 句 blur-out | 逐词 stagger 0.04、各 0.10、inQuad、blur→8px | inQuad 让消失是加速的,读作"被光吞掉" |
38
+ | B 句 blur-in | 逐词 stagger 0.05、各 0.11 outQuint + 0.09 内紫→白 | 收色比入场晚一点,落定瞬间才转白,是"定稿"的信号 |
39
+ | 换句空档 | A 收完 t≈0.58 → B 起 0.70(≈0.6s 无字) | cross-fade 会把两句糊在一起,空档才读出"翻篇" |
40
+
41
+ ## 已知坑
42
+ - 白色融边层(blobC)只在浅底成立,反转时必须 `1−flip` 收掉,
43
+ 否则暗场里留一团灰雾
44
+ - DEEPP/PURPLE 是这个效果的**本体光色**,不是品牌色槽位;要换成项目色
45
+ 必须 blob 三层 + B 句文字色整组一起换,只换文字色会和背景脱节
46
+ - demo 文案是 video-shotcraft 的叙事转折("Promos took weeks" / "Meet video-shotcraft",
47
+ 词数与字长贴近原片的 "For many years" / "everything changed"),逐词
48
+ stagger 的节奏依赖词数与字长,换句要回调 0.04/0.06 两个间隔
49
+ - 底色用 JS 逐帧写 `background`(`mix()` 出实色),不要用 CSS transition,
50
+ 否则 seek 到任意帧时颜色不确定
51
+
52
+ ## 参考实现
53
+ demos/effects/aurora-bloom-bg-flip/
54
+ (AuroraBloomBgFlip.tsx)
@@ -1,58 +1,58 @@
1
- ---
2
- name: brand-frame-snap
3
- 一句话: 品牌色画框语法——一圈粗纯色画框先于内容长出包住全屏,录屏窗口落进框内;模式切换时整圈画框同帧硬翻色+窗内布局同帧换,一个 borderColor 干完章节导航/状态提示/品牌露出三件事
4
- 适用: 双模式/双章节产品片的全片包装层(蓝=模式A、绿=模式B 颜色编码);真实录屏素材的品牌化包裹
5
- 时长: 单次翻色 ~4.7s(140f);画框本身可全片驻场
6
- 能量: 中(翻色瞬间高,其余时间是安静的包装层)
7
- 标签: transition
8
- ---
9
-
10
- ## 意图
11
- 真实录屏直接铺满屏没有品牌存在感,加 logo 水印又廉价。本卡用一圈
12
- 粗品牌色画框把录屏"装裱"起来:画框**先于内容出现**(先立画框再放
13
- 画,仪式感),之后画框颜色成为全片的语义编码——demo 里钴蓝=Design、
14
- 橘红=Dev Mode(原片是蓝/绿;关键是色相对冲 + 明度差)。章节切换时整圈画框一帧内硬翻色,无渐变,颜色硬切就是"换挡"
15
- 声效的视觉等价物;窗内布局同帧 A→B、角标与徽标同步换字,三处同帧
16
- 共振把"模式切换"砸实。与 theme-switch-moves 分工:那换的是 UI 本体
17
- 肤色(有扫过边界),本卡换的是"画框"这个包装层(同帧无边界),
18
- 语义是模式/章节切换不是主题切换。
19
-
20
- ## 动效核心
21
- - 画框用 4 条实体色带(非 border 属性),厚度 0→60px snappy 19f
22
- 长出(第 2 帧就有可见框);洞口是 22px 圆角(四角补色块),色带叠一层
23
- 顶亮底暗的薄釉;翻色 = 同一帧换 background,帧确定
24
- - 产品窗口(1560×864,原生像素布局)spring(damping 15, stiffness 115)
25
- 从下方 660px + 前倾 18°→0 + scale 0.88→1 落进框内(帧 10 起,画框长出
26
- 中段),下落按速度纵向运动模糊,阴影随高度 70→22 收紧
27
- - 动机:光标 56–80f 弧线滑向标题栏 Design | Dev 开关,80 按下、84 松开 = 翻色帧
28
- - 翻色帧四件事同帧:画框换色 + 窗内布局 A→B 硬切(右栏浅色检查器→深色
29
- CSS 面板、左栏图层→tokens、蓝选框→橘标注)+ 框带角标换字
30
- (DESIGN→DEV MODE,右上 video-shotcraft 字标常驻,色带上用单色白版标志)+ 开关态
31
- - 翻色瞬间叠 3 帧径向白闪(0.6 起阶梯衰减,框带最亮)+ 画框厚度阻尼
32
- 弹跳(exp(-0.24t)·cos(0.95t)·12px)+ 内容 ~1% 顿挫,给"换挡"打击感;
33
- 余波:标注线 3f 错峰画出、数值胶囊过冲弹出
34
-
35
- ## 参数表
36
- | 参数 | 典型值 | 调节手感 |
37
- |------|--------|----------|
38
- | 画框厚度 | 60px(1080p),角标 30px 粗体全大写 | 太薄读作描边、角标也放不下可读字号;>64px 开始吃内容区 |
39
- | 画框生长 | 19f snappy,先于窗口 10f | 画框必须先立——内容先到画框后包读作补救 |
40
- | 窗口落位 | spring(damping 15, stiffness 115),y 660→0 + rotateX 18°→0 + scale 0.88→1 | 落进"框内"是语义关键,落点必须完全在框带内侧 |
41
- | 翻色时刻 | demo 84f(光标松开帧);停一拍(窗口落定后 ≥30f)再翻 | 落定没坐稳就翻,观众还没建立"蓝=当前模式"的编码 |
42
- | 白闪脉冲 | 3f,0.6→0.2 阶梯,径向(框带处最亮) | 帮眼睛登记"这一帧变了";>4f 读作底色频闪,抢了翻色的戏 |
43
- | 厚度弹跳 | exp 衰减 cos,初幅 12px | 纯硬切略干;弹跳是"挡位卡进去"的机械回馈 |
44
-
45
- ## 已知坑
46
- - demo 用手搓的设计工具窗口调校通过(框带角标是 video-shotcraft 标志 + 字标,画布上是一张 video-shotcraft 推广卡)——参数是调校起点非实战定稿,
47
- 首次实战须以真实素材回验
48
- - 翻色必须真同帧:画框、窗内布局、角标文字三者错开哪怕 2f,"换挡"就散成三个小动画
49
- - 颜色编码要全片守约:蓝框段落里不许出现绿色主 UI 元素,编码被稀释后翻色就只是换色
50
- - 画框是包装层不是主角:全片翻色 ≤2 次,翻多了读作霓虹灯(P4 克制原则)
51
- - 两个模式的品牌色对比度要够(demo 钴蓝 #2F55FF / 橘红 #FF5B1F,色相对冲 + 明度差);同明度邻近色翻了等于没翻
52
- - 窗内 UI 保持中性墨色,强调色只跟模式走(蓝段的选中态是蓝、橘段的标注是橘),否则编码被 UI 自身颜色稀释
53
- - 声音:翻色帧钉一声干脆的机械 click/换挡声,白闪与声同帧;画框生长段可静
54
-
55
- ## 参考实现
56
- demos/effects/brand-frame-snap/
57
- (BrandFrameSnap.tsx)
58
- 原片出处:figma-devmode 0:28–0:32 + 0:43–0:47
1
+ ---
2
+ name: brand-frame-snap
3
+ 一句话: 品牌色画框语法——一圈粗纯色画框先于内容长出包住全屏,录屏窗口落进框内;模式切换时整圈画框同帧硬翻色+窗内布局同帧换,一个 borderColor 干完章节导航/状态提示/品牌露出三件事
4
+ 适用: 双模式/双章节产品片的全片包装层(蓝=模式A、绿=模式B 颜色编码);真实录屏素材的品牌化包裹
5
+ 时长: 单次翻色 ~4.7s(140f);画框本身可全片驻场
6
+ 能量: 中(翻色瞬间高,其余时间是安静的包装层)
7
+ 标签: transition
8
+ ---
9
+
10
+ ## 意图
11
+ 真实录屏直接铺满屏没有品牌存在感,加 logo 水印又廉价。本卡用一圈
12
+ 粗品牌色画框把录屏"装裱"起来:画框**先于内容出现**(先立画框再放
13
+ 画,仪式感),之后画框颜色成为全片的语义编码——demo 里钴蓝=Design、
14
+ 橘红=Dev Mode(原片是蓝/绿;关键是色相对冲 + 明度差)。章节切换时整圈画框一帧内硬翻色,无渐变,颜色硬切就是"换挡"
15
+ 声效的视觉等价物;窗内布局同帧 A→B、角标与徽标同步换字,三处同帧
16
+ 共振把"模式切换"砸实。与 theme-switch-moves 分工:那换的是 UI 本体
17
+ 肤色(有扫过边界),本卡换的是"画框"这个包装层(同帧无边界),
18
+ 语义是模式/章节切换不是主题切换。
19
+
20
+ ## 动效核心
21
+ - 画框用 4 条实体色带(非 border 属性),厚度 0→60px snappy 19f
22
+ 长出(第 2 帧就有可见框);洞口是 22px 圆角(四角补色块),色带叠一层
23
+ 顶亮底暗的薄釉;翻色 = 同一帧换 background,帧确定
24
+ - 产品窗口(1560×864,原生像素布局)spring(damping 15, stiffness 115)
25
+ 从下方 660px + 前倾 18°→0 + scale 0.88→1 落进框内(帧 10 起,画框长出
26
+ 中段),下落按速度纵向运动模糊,阴影随高度 70→22 收紧
27
+ - 动机:光标 56–80f 弧线滑向标题栏 Design | Dev 开关,80 按下、84 松开 = 翻色帧
28
+ - 翻色帧四件事同帧:画框换色 + 窗内布局 A→B 硬切(右栏浅色检查器→深色
29
+ CSS 面板、左栏图层→tokens、蓝选框→橘标注)+ 框带角标换字
30
+ (DESIGN→DEV MODE,右上 video-shotcraft 字标常驻,色带上用单色白版标志)+ 开关态
31
+ - 翻色瞬间叠 3 帧径向白闪(0.6 起阶梯衰减,框带最亮)+ 画框厚度阻尼
32
+ 弹跳(exp(-0.24t)·cos(0.95t)·12px)+ 内容 ~1% 顿挫,给"换挡"打击感;
33
+ 余波:标注线 3f 错峰画出、数值胶囊过冲弹出
34
+
35
+ ## 参数表
36
+ | 参数 | 典型值 | 调节手感 |
37
+ |------|--------|----------|
38
+ | 画框厚度 | 60px(1080p),角标 30px 粗体全大写 | 太薄读作描边、角标也放不下可读字号;>64px 开始吃内容区 |
39
+ | 画框生长 | 19f snappy,先于窗口 10f | 画框必须先立——内容先到画框后包读作补救 |
40
+ | 窗口落位 | spring(damping 15, stiffness 115),y 660→0 + rotateX 18°→0 + scale 0.88→1 | 落进"框内"是语义关键,落点必须完全在框带内侧 |
41
+ | 翻色时刻 | demo 84f(光标松开帧);停一拍(窗口落定后 ≥30f)再翻 | 落定没坐稳就翻,观众还没建立"蓝=当前模式"的编码 |
42
+ | 白闪脉冲 | 3f,0.6→0.2 阶梯,径向(框带处最亮) | 帮眼睛登记"这一帧变了";>4f 读作底色频闪,抢了翻色的戏 |
43
+ | 厚度弹跳 | exp 衰减 cos,初幅 12px | 纯硬切略干;弹跳是"挡位卡进去"的机械回馈 |
44
+
45
+ ## 已知坑
46
+ - demo 用手搓的设计工具窗口调校通过(框带角标是 video-shotcraft 标志 + 字标,画布上是一张 video-shotcraft 推广卡)——参数是调校起点非实战定稿,
47
+ 首次实战须以真实素材回验
48
+ - 翻色必须真同帧:画框、窗内布局、角标文字三者错开哪怕 2f,"换挡"就散成三个小动画
49
+ - 颜色编码要全片守约:蓝框段落里不许出现绿色主 UI 元素,编码被稀释后翻色就只是换色
50
+ - 画框是包装层不是主角:全片翻色 ≤2 次,翻多了读作霓虹灯(P4 克制原则)
51
+ - 两个模式的品牌色对比度要够(demo 钴蓝 #2F55FF / 橘红 #FF5B1F,色相对冲 + 明度差);同明度邻近色翻了等于没翻
52
+ - 窗内 UI 保持中性墨色,强调色只跟模式走(蓝段的选中态是蓝、橘段的标注是橘),否则编码被 UI 自身颜色稀释
53
+ - 声音:翻色帧钉一声干脆的机械 click/换挡声,白闪与声同帧;画框生长段可静
54
+
55
+ ## 参考实现
56
+ demos/effects/brand-frame-snap/
57
+ (BrandFrameSnap.tsx)
58
+ 原片出处:figma-devmode 0:28–0:32 + 0:43–0:47
@@ -1,35 +1,35 @@
1
- ---
2
- name: fui-hud-moves
3
- 一句话: FUI/HUD 准星咬合——reticle-lock-on 四个 L 形角标组成的取景框从画外飞入、超调回弹后咬合锁定目标
4
- 适用: 任何"看这里"的目标点名(替代箭头圈红,画面不冻结)
5
- 时长: 2–3s(demo 90f)
6
- 能量: 中高(咬合帧是打击点)
7
- 标签: ui-entrance
8
- ---
9
-
10
- ## 意图
11
- 科幻虚构界面(Jarvis/Territory)里可中性化的母题:运动中的捕获。
12
- 四个 L 形角标从画外冲入、超调回弹、"咔"地咬合到目标元素四角+弹标签
13
- ——与 freeze-annotate 分工:那卡冻结画面标注,本卡在流动中点名。
14
-
15
- ## 式
16
- | 式 | 做法 | 适用 |
17
- |----|------|------|
18
- | A reticle-lock-on | 四 L 角=同一对矩形四份镜像,飞入(10f out cubic)与收缩(2.2×→0.94×→1 超调回弹)解耦;咬合帧目标微亮+标签 back 弹出 | 目标点名;踩音效重拍 |
19
-
20
- ## 参数表
21
- | 参数 | 典型值 | 调节手感 |
22
- |------|--------|----------|
23
- | 飞入行程 | 画外 ≥1000px 冲入 | 行程短读作"角标出现"不是"扑过来" |
24
- | 超调 | 收缩过头到 0.94× 再回弹 1 | 无超调没有"咔"的咬合感 |
25
- | 咬合帧 | 目标白 overlay 快闪 0.55→停 0.28 + 标签同帧弹出 | 微亮与标签错帧就散了 |
26
-
27
- ## 已知坑
28
- - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
29
- 首次实战须以真实素材回验
30
- - 一支片 ≤2 次:连用读作军事模板;两次锁定目标必须不同
31
- - 声音:咬合帧一声"咔"(机械 click 而非游戏 UI 音,S1 边界内)
32
-
33
- ## 参考实现
34
- demos/effects/fui-hud-moves/
35
- (ReticleLockOn.tsx)
1
+ ---
2
+ name: fui-hud-moves
3
+ 一句话: FUI/HUD 准星咬合——reticle-lock-on 四个 L 形角标组成的取景框从画外飞入、超调回弹后咬合锁定目标
4
+ 适用: 任何"看这里"的目标点名(替代箭头圈红,画面不冻结)
5
+ 时长: 2–3s(demo 90f)
6
+ 能量: 中高(咬合帧是打击点)
7
+ 标签: ui-entrance
8
+ ---
9
+
10
+ ## 意图
11
+ 科幻虚构界面(Jarvis/Territory)里可中性化的母题:运动中的捕获。
12
+ 四个 L 形角标从画外冲入、超调回弹、"咔"地咬合到目标元素四角+弹标签
13
+ ——与 freeze-annotate 分工:那卡冻结画面标注,本卡在流动中点名。
14
+
15
+ ## 式
16
+ | 式 | 做法 | 适用 |
17
+ |----|------|------|
18
+ | A reticle-lock-on | 四 L 角=同一对矩形四份镜像,飞入(10f out cubic)与收缩(2.2×→0.94×→1 超调回弹)解耦;咬合帧目标微亮+标签 back 弹出 | 目标点名;踩音效重拍 |
19
+
20
+ ## 参数表
21
+ | 参数 | 典型值 | 调节手感 |
22
+ |------|--------|----------|
23
+ | 飞入行程 | 画外 ≥1000px 冲入 | 行程短读作"角标出现"不是"扑过来" |
24
+ | 超调 | 收缩过头到 0.94× 再回弹 1 | 无超调没有"咔"的咬合感 |
25
+ | 咬合帧 | 目标白 overlay 快闪 0.55→停 0.28 + 标签同帧弹出 | 微亮与标签错帧就散了 |
26
+
27
+ ## 已知坑
28
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
29
+ 首次实战须以真实素材回验
30
+ - 一支片 ≤2 次:连用读作军事模板;两次锁定目标必须不同
31
+ - 声音:咬合帧一声"咔"(机械 click 而非游戏 UI 音,S1 边界内)
32
+
33
+ ## 参考实现
34
+ demos/effects/fui-hud-moves/
35
+ (ReticleLockOn.tsx)