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,62 +1,62 @@
1
- ---
2
- name: doc-park-left-pill-deal
3
- 一句话: 文档不淡出而是向左滑出只露约 35% 宽并微缩到 0.92,右侧按旁白节奏慢速发牌三张白底描边药丸(outBack 弹入),每张落定后其下方字幕逐词加深、下一张到来前整句淡出,左侧文档全程极缓慢自动滚动保持"正在被读"
4
- 适用: 旁白驱动的"分析结论逐条给出"段落;文档理解、推荐理由、审阅意见类产品的核心说明镜头
5
- 时长: 约 5.8s(174f@30fps)
6
- 能量: 低(慢发牌节奏,全片无峰值;靠自动滚动维持活性)
7
- ---
8
-
9
- ## 意图
10
- 结论要一条一条给,观众才记得住。但如果把来源文档淡出,结论就变成了空中楼阁——观众
11
- 不知道这些话从哪来。这张卡的解法是**让来源留在画面里**:文档靠左驻留只露一截,还在
12
- 缓慢滚动(说明它正在被读),右侧的每条结论都是从这份文档里长出来的。发牌节奏刻意慢,
13
- 是为了给旁白留出说完一句的时间。
14
-
15
- ## 动效核心
16
- - 驻留(park)不是淡出:`seg(t, 0.06, 0.24, E.inOutCubic)` 驱动
17
- `translateX(0→-55%) scale(1→0.92)`,`transform-origin: 0% 50%` 让缩放以左边缘为锚,
18
- 文档缩小时不会离开画框左侧——最终只露约 35% 宽
19
- - 常驻自动滚动:`translateY(-t * 120)` 连续匀速(≈0.7px/f),内容比容器长 140px 以上。
20
- 旧写法 `-(t*3 % 1) * 40` 取模,非周期内容每 1/3 片长整页回跳 40px,肉眼可见,已弃用
21
- - 慢发牌:三张药丸起点写死在 `T0 = [0.26, 0.48, 0.70]`——间隔 0.22(约 38f / 1.27s),
22
- 这是一句短旁白的长度,不是 UI 常规的 stagger
23
- - 每张药丸两条曲线并行:`o = seg(t, f, f+0.035, E.outQuad)` 管透明度(快,约 6f),
24
- `b = seg(t, f, f+0.062, E.outBack)` 管 `translateY(14→0) scale(0.94→1)`(慢,约 11f
25
- 且带过冲)——先看见、再落定,比单曲线更有"接住"的手感
26
- - 字幕四段编排:起点 `cs = f+0.05`(药丸落定后约 3 帧),`show` 用 0.02 的窗快速出现,
27
- `inn` 逐词加深摊在 `(ce-cs)*0.7` 上,`ce` 是下一张的起点减 0.03(末张 ce=0.98),
28
- `out` 在 `ce-0.05→ce` 淡出——每句字幕在下一张药丸入场前就已清场,画面永远只有一句
29
- - 药丸终态是静态列表(`top = 54 + k*48`),三张全部落位后一直留在画面上,读作
30
- "结论清单已成形"
31
- - 依据联动:每张药丸落定后,文档里对应的依据句被荧光笔自左向右划出(f+0.06→0.13),
32
- 一条强调色细线从该句行尾连到药丸左缘(f+0.04→0.11 draw-on),随该句字幕退场淡出
33
-
34
- ## 参数表
35
- | 参数 | 典型值 | 调节手感 |
36
- |------|--------|----------|
37
- | 发牌起点 | `T0 = [0.26, 0.48, 0.70]`,间隔 0.22(≈38f) | 间隔就是旁白句长;压到 0.12 以下字幕的"逐词加深"来不及走完,读作字幕闪一下就没了 |
38
- | 驻留窗 | 0.06→0.24(inOutCubic) | 必须在首张药丸(0.26)之前收住;重叠会出现"文档还在滑、药丸已在发"的浑浊 |
39
- | 驻留幅度 | `translateX -55%` + `scale 0.92`,露约 35% | 露太少(<25%)文档变成装饰失去"来源"语义;露太多右侧放不下 172px 宽的药丸 |
40
- | 药丸透明度窗 | 0.035(≈6f,outQuad) | 比位移窗短是有意的——先实后稳;两窗等长会读作普通淡入 |
41
- | 药丸位移窗 | 0.062(≈11f,outBack),y 14→0、scale 0.94→1 | outBack 的过冲是"发牌落桌"的手感;换 outCubic 会变成平淡的浮上来 |
42
- | 字幕延迟 | `cs = f + 0.05`(≈9f) | 药丸落定(0.062)之后才起字幕;提前会出现字幕先于结论出现 |
43
- | 字幕加深行程 | `(ce-cs)*0.7` | 占该句可见时长的 70%,末 30% 是全实态的静置阅读时间;调到 1.0 则字幕刚读完就被淡出 |
44
- | 自动滚动 | `-t × 120px` 连续匀速 | 5.8s 上约 0.7px/f,是"正在读"的暗示级速度;>3px/f 会抢注意力变成滚动展示 |
45
-
46
- ## 已知坑
47
- - 自动滚动是连续位移而非取模循环(取模只有在内容本身严格周期时才不回跳);改时长或
48
- 行程时要保证文档内容比容器长出至少整段行程,否则末段会滚出空白
49
- - 末张字幕的 `ce = 0.98` 意味着它在 0.93→0.98 淡出,末帧只剩三张药丸没有字幕。若要
50
- 末句留到底,把末张的 `ce` 改成 >1 并去掉 out
51
- - 药丸位置写死为 `left:214px, top:54+k*48`、宽 172px,是 480 宽画布下与驻留后文档
52
- (露出约 87px)配套的一组数字。改文档驻留幅度必须同步改 PX,否则两者重叠
53
- - 三条药丸文案(demo 里是 video-shotcraft 宣传片简报推荐的三张镜头卡 Crash Zoom / Deck Deal / Logo Sting)与三句字幕都是示意,且字幕
54
- 长度直接影响"逐词加深"读起来快慢——换真实文案后要按新句长重调 `inn` 行程
55
- - 药丸数写死为 3(`T0` 的长度)。加到 4 条时间就不够:末张起点会超过 0.9,字幕根本
56
- 走不完;4 条以上应考虑缩短单句而不是硬塞
57
- - 字幕的 `ce` 依赖 `T0[k+1]`,改任一张的起点都会连带改变前一张字幕的可见时长——这
58
- 是有意的联动(字幕永远填满到下一张之前),但调参时要意识到不是独立参数
59
-
60
- ## 参考实现
61
- demos/ui-entrance/doc-park-left-pill-deal/
62
- (DocParkLeftPillDeal.tsx)
1
+ ---
2
+ name: doc-park-left-pill-deal
3
+ 一句话: 文档不淡出而是向左滑出只露约 35% 宽并微缩到 0.92,右侧按旁白节奏慢速发牌三张白底描边药丸(outBack 弹入),每张落定后其下方字幕逐词加深、下一张到来前整句淡出,左侧文档全程极缓慢自动滚动保持"正在被读"
4
+ 适用: 旁白驱动的"分析结论逐条给出"段落;文档理解、推荐理由、审阅意见类产品的核心说明镜头
5
+ 时长: 约 5.8s(174f@30fps)
6
+ 能量: 低(慢发牌节奏,全片无峰值;靠自动滚动维持活性)
7
+ ---
8
+
9
+ ## 意图
10
+ 结论要一条一条给,观众才记得住。但如果把来源文档淡出,结论就变成了空中楼阁——观众
11
+ 不知道这些话从哪来。这张卡的解法是**让来源留在画面里**:文档靠左驻留只露一截,还在
12
+ 缓慢滚动(说明它正在被读),右侧的每条结论都是从这份文档里长出来的。发牌节奏刻意慢,
13
+ 是为了给旁白留出说完一句的时间。
14
+
15
+ ## 动效核心
16
+ - 驻留(park)不是淡出:`seg(t, 0.06, 0.24, E.inOutCubic)` 驱动
17
+ `translateX(0→-55%) scale(1→0.92)`,`transform-origin: 0% 50%` 让缩放以左边缘为锚,
18
+ 文档缩小时不会离开画框左侧——最终只露约 35% 宽
19
+ - 常驻自动滚动:`translateY(-t * 120)` 连续匀速(≈0.7px/f),内容比容器长 140px 以上。
20
+ 旧写法 `-(t*3 % 1) * 40` 取模,非周期内容每 1/3 片长整页回跳 40px,肉眼可见,已弃用
21
+ - 慢发牌:三张药丸起点写死在 `T0 = [0.26, 0.48, 0.70]`——间隔 0.22(约 38f / 1.27s),
22
+ 这是一句短旁白的长度,不是 UI 常规的 stagger
23
+ - 每张药丸两条曲线并行:`o = seg(t, f, f+0.035, E.outQuad)` 管透明度(快,约 6f),
24
+ `b = seg(t, f, f+0.062, E.outBack)` 管 `translateY(14→0) scale(0.94→1)`(慢,约 11f
25
+ 且带过冲)——先看见、再落定,比单曲线更有"接住"的手感
26
+ - 字幕四段编排:起点 `cs = f+0.05`(药丸落定后约 3 帧),`show` 用 0.02 的窗快速出现,
27
+ `inn` 逐词加深摊在 `(ce-cs)*0.7` 上,`ce` 是下一张的起点减 0.03(末张 ce=0.98),
28
+ `out` 在 `ce-0.05→ce` 淡出——每句字幕在下一张药丸入场前就已清场,画面永远只有一句
29
+ - 药丸终态是静态列表(`top = 54 + k*48`),三张全部落位后一直留在画面上,读作
30
+ "结论清单已成形"
31
+ - 依据联动:每张药丸落定后,文档里对应的依据句被荧光笔自左向右划出(f+0.06→0.13),
32
+ 一条强调色细线从该句行尾连到药丸左缘(f+0.04→0.11 draw-on),随该句字幕退场淡出
33
+
34
+ ## 参数表
35
+ | 参数 | 典型值 | 调节手感 |
36
+ |------|--------|----------|
37
+ | 发牌起点 | `T0 = [0.26, 0.48, 0.70]`,间隔 0.22(≈38f) | 间隔就是旁白句长;压到 0.12 以下字幕的"逐词加深"来不及走完,读作字幕闪一下就没了 |
38
+ | 驻留窗 | 0.06→0.24(inOutCubic) | 必须在首张药丸(0.26)之前收住;重叠会出现"文档还在滑、药丸已在发"的浑浊 |
39
+ | 驻留幅度 | `translateX -55%` + `scale 0.92`,露约 35% | 露太少(<25%)文档变成装饰失去"来源"语义;露太多右侧放不下 172px 宽的药丸 |
40
+ | 药丸透明度窗 | 0.035(≈6f,outQuad) | 比位移窗短是有意的——先实后稳;两窗等长会读作普通淡入 |
41
+ | 药丸位移窗 | 0.062(≈11f,outBack),y 14→0、scale 0.94→1 | outBack 的过冲是"发牌落桌"的手感;换 outCubic 会变成平淡的浮上来 |
42
+ | 字幕延迟 | `cs = f + 0.05`(≈9f) | 药丸落定(0.062)之后才起字幕;提前会出现字幕先于结论出现 |
43
+ | 字幕加深行程 | `(ce-cs)*0.7` | 占该句可见时长的 70%,末 30% 是全实态的静置阅读时间;调到 1.0 则字幕刚读完就被淡出 |
44
+ | 自动滚动 | `-t × 120px` 连续匀速 | 5.8s 上约 0.7px/f,是"正在读"的暗示级速度;>3px/f 会抢注意力变成滚动展示 |
45
+
46
+ ## 已知坑
47
+ - 自动滚动是连续位移而非取模循环(取模只有在内容本身严格周期时才不回跳);改时长或
48
+ 行程时要保证文档内容比容器长出至少整段行程,否则末段会滚出空白
49
+ - 末张字幕的 `ce = 0.98` 意味着它在 0.93→0.98 淡出,末帧只剩三张药丸没有字幕。若要
50
+ 末句留到底,把末张的 `ce` 改成 >1 并去掉 out
51
+ - 药丸位置写死为 `left:214px, top:54+k*48`、宽 172px,是 480 宽画布下与驻留后文档
52
+ (露出约 87px)配套的一组数字。改文档驻留幅度必须同步改 PX,否则两者重叠
53
+ - 三条药丸文案(demo 里是 video-shotcraft 宣传片简报推荐的三张镜头卡 Crash Zoom / Deck Deal / Logo Sting)与三句字幕都是示意,且字幕
54
+ 长度直接影响"逐词加深"读起来快慢——换真实文案后要按新句长重调 `inn` 行程
55
+ - 药丸数写死为 3(`T0` 的长度)。加到 4 条时间就不够:末张起点会超过 0.9,字幕根本
56
+ 走不完;4 条以上应考虑缩短单句而不是硬塞
57
+ - 字幕的 `ce` 依赖 `T0[k+1]`,改任一张的起点都会连带改变前一张字幕的可见时长——这
58
+ 是有意的联动(字幕永远填满到下一张之前),但调参时要意识到不是独立参数
59
+
60
+ ## 参考实现
61
+ demos/ui-entrance/doc-park-left-pill-deal/
62
+ (DocParkLeftPillDeal.tsx)
@@ -1,55 +1,55 @@
1
- ---
2
- name: draw-svg-trace
3
- 一句话: 描边生长圈注——一条带笔头的墨线沿元素轮廓跑一圈把它"画"出来,闭合瞬间闪黑交棒、内容淡入;同套路可给标题画下划线
4
- 适用: 单个卡片/图表/标题的被点名入场;元素级手法(整页级蓝图描线归 wall-reveal-moves B 式)
5
- 时长: 132f(预告 10f + 描边 40f + 闪黑交棒 16f + 下划线 18f + hold 40f,约 4.4s)
6
- 能量: 中
7
- 标签: typography
8
- ---
9
-
10
- ## 意图
11
- "画出来"是纸墨审美里最顺手的入场隐喻:元素不是飞进来也不是淡进来,
12
- 而是被一支看不见的笔当场描出来。库内 wall-reveal-moves B 式已有整页
13
- 蓝图版(全屏线框逐段画+区域点亮),本卡是它的**元素级特写版**——
14
- 一条线、一个主体、一次闭合,笔头可见、方向可读,适合"接下来讲它"
15
- 的点名时刻。第二用法是标题下划线生长:同一套路 18f 短版,给重点词
16
- 一笔手绘强调,与马克笔审美 token 天然同族。
17
-
18
- ## 动效核心
19
- - **免测周长**:SVG rect/path 设 `pathLength={1}`,strokeDasharray="1",
20
- dashoffset 1→0(40f Easing.inOut(cubic))——不用 getTotalLength
21
- - **笔头**:同一路径再叠三段渐细短 dash(0.04/6.4px → 0.024/8px → 0.011/9.6px),dashoffset = 笔头长 − p,
22
- 天然跑在最前;再加一颗按圆角矩形弧长精确定位的实心笔尖(带落影);
23
- 没有笔头就只是"边框在变长",有笔头才是"有人在画"
24
- - 预告:开场 0–12f 四角先长出裁切标记(印刷对位线,错峰 2f),底下是一层中心清晰、四周隐去的绘图纸点阵——
25
- 第 1 帧就有画面,观众先知道"这里要画一个东西";闭合时裁切标记外弹 22px 并淡出
26
- - 闭合闪:50–52f 描边冲纯黑 + 6→11px 加粗,52–58f out 回落
27
- ——白底上加深加粗,不用发光(判例)
28
- - 交棒:56–66f 描边层淡出、元素自身发丝边淡入;50f 起卡底上墨、卡片从贴地升起(阴影长出来),
29
- 内容自上而下 3f 错峰由虚到实 + 上浮,柱图错峰 1.5f 从基线长出——闭合即"画完了",内容跟着"上色"
30
- - 第二用法:74–92f 给重点词「100%」画一笔朱红马克笔下划线(略带弧度的手绘路径,笔头跟随),画完常驻
31
-
32
- ## 参数表
33
- | 参数 | 典型值 | 调节手感 |
34
- |------|--------|----------|
35
- | 描边速度 | 一整圈 40f(10→50f,inOut cubic 起收有呼吸) | <28f 读不出"在画",>60f 读作加载中 |
36
- | 主线 / 笔头 | 主线 6px;笔头三段渐细最粗 9.6px、笔尖 r 7.5 | 笔头≤主线粗细就消失在主线里 |
37
- | 闭合闪 | 2f 冲黑 + 加粗到 11px,6f 回落 | 没有这一下,"画完"没有句号 |
38
- | 主体尺寸 | 1120×660、圆角 28(描边 rx 同值) | 主体占画宽 ~58%,描边一圈才有"画了一个大东西"的分量;描边 rx 必须等于卡片圆角 |
39
- | 下划线版 | 18f out cubic 单向生长,12px 朱红、路径带 ±5px 手绘弧度,画完常驻 | 用在单个重点词;一屏 ≥2 条读作装饰线 |
40
- | 收尾 | 交棒完成后 hold 40f(92→132f),只留 0.9% 极缓推近 | R1 |
41
-
42
- ## 已知坑
43
- - demo 用手搓的 video-shotcraft 渲染报告卡(paper 纸墨 look,「Cuts on the beat / 100%」+ 逐镜头能量柱 + 标志字标署名)调校——参数是调校起点非实战定稿,
44
- 首次实战须以真实素材回验
45
- - 与 wall-reveal-moves B 式(整页蓝图描线)同族互斥:同片二选一,
46
- 都上读作重复报幕
47
- - 描边路径必须与元素真实轮廓吻合(圆角 rx 一致)——线画的是 14px
48
- 圆角、元素是 8px,交棒瞬间错型穿帮
49
- - 真实素材上内容淡入别抢在闭合前:线还没画完内容先出来,"画"的
50
- 因果就断了
51
- - 一次点名画一个主体;同屏多元素排队各画一圈读作加载动画
52
-
53
- ## 参考实现
54
- demos/ui-entrance/draw-svg-trace/
55
- (DrawSvgTrace.tsx)
1
+ ---
2
+ name: draw-svg-trace
3
+ 一句话: 描边生长圈注——一条带笔头的墨线沿元素轮廓跑一圈把它"画"出来,闭合瞬间闪黑交棒、内容淡入;同套路可给标题画下划线
4
+ 适用: 单个卡片/图表/标题的被点名入场;元素级手法(整页级蓝图描线归 wall-reveal-moves B 式)
5
+ 时长: 132f(预告 10f + 描边 40f + 闪黑交棒 16f + 下划线 18f + hold 40f,约 4.4s)
6
+ 能量: 中
7
+ 标签: typography
8
+ ---
9
+
10
+ ## 意图
11
+ "画出来"是纸墨审美里最顺手的入场隐喻:元素不是飞进来也不是淡进来,
12
+ 而是被一支看不见的笔当场描出来。库内 wall-reveal-moves B 式已有整页
13
+ 蓝图版(全屏线框逐段画+区域点亮),本卡是它的**元素级特写版**——
14
+ 一条线、一个主体、一次闭合,笔头可见、方向可读,适合"接下来讲它"
15
+ 的点名时刻。第二用法是标题下划线生长:同一套路 18f 短版,给重点词
16
+ 一笔手绘强调,与马克笔审美 token 天然同族。
17
+
18
+ ## 动效核心
19
+ - **免测周长**:SVG rect/path 设 `pathLength={1}`,strokeDasharray="1",
20
+ dashoffset 1→0(40f Easing.inOut(cubic))——不用 getTotalLength
21
+ - **笔头**:同一路径再叠三段渐细短 dash(0.04/6.4px → 0.024/8px → 0.011/9.6px),dashoffset = 笔头长 − p,
22
+ 天然跑在最前;再加一颗按圆角矩形弧长精确定位的实心笔尖(带落影);
23
+ 没有笔头就只是"边框在变长",有笔头才是"有人在画"
24
+ - 预告:开场 0–12f 四角先长出裁切标记(印刷对位线,错峰 2f),底下是一层中心清晰、四周隐去的绘图纸点阵——
25
+ 第 1 帧就有画面,观众先知道"这里要画一个东西";闭合时裁切标记外弹 22px 并淡出
26
+ - 闭合闪:50–52f 描边冲纯黑 + 6→11px 加粗,52–58f out 回落
27
+ ——白底上加深加粗,不用发光(判例)
28
+ - 交棒:56–66f 描边层淡出、元素自身发丝边淡入;50f 起卡底上墨、卡片从贴地升起(阴影长出来),
29
+ 内容自上而下 3f 错峰由虚到实 + 上浮,柱图错峰 1.5f 从基线长出——闭合即"画完了",内容跟着"上色"
30
+ - 第二用法:74–92f 给重点词「100%」画一笔朱红马克笔下划线(略带弧度的手绘路径,笔头跟随),画完常驻
31
+
32
+ ## 参数表
33
+ | 参数 | 典型值 | 调节手感 |
34
+ |------|--------|----------|
35
+ | 描边速度 | 一整圈 40f(10→50f,inOut cubic 起收有呼吸) | <28f 读不出"在画",>60f 读作加载中 |
36
+ | 主线 / 笔头 | 主线 6px;笔头三段渐细最粗 9.6px、笔尖 r 7.5 | 笔头≤主线粗细就消失在主线里 |
37
+ | 闭合闪 | 2f 冲黑 + 加粗到 11px,6f 回落 | 没有这一下,"画完"没有句号 |
38
+ | 主体尺寸 | 1120×660、圆角 28(描边 rx 同值) | 主体占画宽 ~58%,描边一圈才有"画了一个大东西"的分量;描边 rx 必须等于卡片圆角 |
39
+ | 下划线版 | 18f out cubic 单向生长,12px 朱红、路径带 ±5px 手绘弧度,画完常驻 | 用在单个重点词;一屏 ≥2 条读作装饰线 |
40
+ | 收尾 | 交棒完成后 hold 40f(92→132f),只留 0.9% 极缓推近 | R1 |
41
+
42
+ ## 已知坑
43
+ - demo 用手搓的 video-shotcraft 渲染报告卡(paper 纸墨 look,「Cuts on the beat / 100%」+ 逐镜头能量柱 + 标志字标署名)调校——参数是调校起点非实战定稿,
44
+ 首次实战须以真实素材回验
45
+ - 与 wall-reveal-moves B 式(整页蓝图描线)同族互斥:同片二选一,
46
+ 都上读作重复报幕
47
+ - 描边路径必须与元素真实轮廓吻合(圆角 rx 一致)——线画的是 14px
48
+ 圆角、元素是 8px,交棒瞬间错型穿帮
49
+ - 真实素材上内容淡入别抢在闭合前:线还没画完内容先出来,"画"的
50
+ 因果就断了
51
+ - 一次点名画一个主体;同屏多元素排队各画一圈读作加载动画
52
+
53
+ ## 参考实现
54
+ demos/ui-entrance/draw-svg-trace/
55
+ (DrawSvgTrace.tsx)
@@ -1,37 +1,37 @@
1
- ---
2
- name: element-body-moves
3
- 一句话: 元素身体感——contact-shadow-lift 接触阴影离面抬升:卡抬起时桌上的阴影同步放大变淡,纸片离桌被阴影证明
4
- 适用: 给"位置在变"之外补"身体在变":卡片点名给悬浮证据;配 2.5D 运镜与逐张点名
5
- 时长: A 150f 5s
6
- 能量: A 低中
7
- ---
8
-
9
- ## 意图
10
- 库内运动卡全在管"位置在变"——飞入、滑动、弹跳,元素本身始终是刚体。
11
- 这一式管**身体在变**:给悬浮一个可信的证据——卡抬起时正下方阴影同步放大变淡,
12
- 纸片离桌,staging 法则给 2.5D 运镜垫的物理台词。与 CameraMotionBlur 的区别:
13
- 快门拖影是相机的事,离面抬升是身体的事。
14
-
15
- ## 选型
16
- | 式 | 做法 | 适用 |
17
- |----|------|------|
18
- | A contact-shadow-lift | 斜俯拍桌面(rotateX 24°→20°)上卡沿法线 translateZ 96px + scale 1.05;阴影是躺在桌面 z=0 的两层独立实体(接触核 + 环境影),随抬升变大、变虚、变淡、向背光侧偏移;点名卡落回 8f in-cubic + 2f 微压卡壳,末张选定卡弹簧抬起后停在空中 | 逐张点名强调;2.5D 段落的离面铺垫 |
19
-
20
- ## 参数表
21
- | 参数 | 典型值 | 调节手感 |
22
- |------|--------|----------|
23
- | A 抬升幅度 | 2D:−28px + scale 1.08;2.5D 斜俯拍:translateZ 96px + scale 1.05(屏幕可见位移 40–50px) | 判例锁死:屏幕可见位移 <12px 禁用(见已知坑) |
24
- | A 阴影 | 独立 div(2D 用椭圆径向渐变;2.5D 用与卡同形的圆角矩形 + blur):接触核 α 0.32→0.14、blur 3→25px;环境影 α 0.09→0.22、blur 14→54px、向右下偏移;卡本体不带外阴影 | box-shadow 跟卡走,给不出"影子留在桌上" |
25
- | A 落地 | scale 0.99 卡壳 2f 再 5f 回弹到 1 | 无微压读作飘落,没有重量 |
26
- | 收尾 | 末张选定后悬停 ~50f | 若要循环,把末张改成同样落回 |
27
-
28
- ## 已知坑
29
- - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
30
- 首次实战须以真实素材回验
31
- - A 微幅加码判例:原案 8px 抬升不可感,加码到 28px 才过——实战禁回调到 12px 以下,宁可不用不可用弱
32
- - A 一次只抬一张——两张同时离桌,观众找不到被点名的是谁(P4)
33
- - 声音:抬起轻吸/落回轻放(sound-design §4.5)
34
-
35
- ## 参考实现
36
- demos/ui-entrance/element-body-moves/
37
- (ContactShadowLift.tsx:porcelain 斜俯拍桌面上三张 video-shotcraft 镜头配方卡「Pick your shot.」,扫—扫—选,选定卡是带标志的 Logo sting)
1
+ ---
2
+ name: element-body-moves
3
+ 一句话: 元素身体感——contact-shadow-lift 接触阴影离面抬升:卡抬起时桌上的阴影同步放大变淡,纸片离桌被阴影证明
4
+ 适用: 给"位置在变"之外补"身体在变":卡片点名给悬浮证据;配 2.5D 运镜与逐张点名
5
+ 时长: A 150f 5s
6
+ 能量: A 低中
7
+ ---
8
+
9
+ ## 意图
10
+ 库内运动卡全在管"位置在变"——飞入、滑动、弹跳,元素本身始终是刚体。
11
+ 这一式管**身体在变**:给悬浮一个可信的证据——卡抬起时正下方阴影同步放大变淡,
12
+ 纸片离桌,staging 法则给 2.5D 运镜垫的物理台词。与 CameraMotionBlur 的区别:
13
+ 快门拖影是相机的事,离面抬升是身体的事。
14
+
15
+ ## 选型
16
+ | 式 | 做法 | 适用 |
17
+ |----|------|------|
18
+ | A contact-shadow-lift | 斜俯拍桌面(rotateX 24°→20°)上卡沿法线 translateZ 96px + scale 1.05;阴影是躺在桌面 z=0 的两层独立实体(接触核 + 环境影),随抬升变大、变虚、变淡、向背光侧偏移;点名卡落回 8f in-cubic + 2f 微压卡壳,末张选定卡弹簧抬起后停在空中 | 逐张点名强调;2.5D 段落的离面铺垫 |
19
+
20
+ ## 参数表
21
+ | 参数 | 典型值 | 调节手感 |
22
+ |------|--------|----------|
23
+ | A 抬升幅度 | 2D:−28px + scale 1.08;2.5D 斜俯拍:translateZ 96px + scale 1.05(屏幕可见位移 40–50px) | 判例锁死:屏幕可见位移 <12px 禁用(见已知坑) |
24
+ | A 阴影 | 独立 div(2D 用椭圆径向渐变;2.5D 用与卡同形的圆角矩形 + blur):接触核 α 0.32→0.14、blur 3→25px;环境影 α 0.09→0.22、blur 14→54px、向右下偏移;卡本体不带外阴影 | box-shadow 跟卡走,给不出"影子留在桌上" |
25
+ | A 落地 | scale 0.99 卡壳 2f 再 5f 回弹到 1 | 无微压读作飘落,没有重量 |
26
+ | 收尾 | 末张选定后悬停 ~50f | 若要循环,把末张改成同样落回 |
27
+
28
+ ## 已知坑
29
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
30
+ 首次实战须以真实素材回验
31
+ - A 微幅加码判例:原案 8px 抬升不可感,加码到 28px 才过——实战禁回调到 12px 以下,宁可不用不可用弱
32
+ - A 一次只抬一张——两张同时离桌,观众找不到被点名的是谁(P4)
33
+ - 声音:抬起轻吸/落回轻放(sound-design §4.5)
34
+
35
+ ## 参考实现
36
+ demos/ui-entrance/element-body-moves/
37
+ (ContactShadowLift.tsx:porcelain 斜俯拍桌面上三张 video-shotcraft 镜头配方卡「Pick your shot.」,扫—扫—选,选定卡是带标志的 Logo sting)
@@ -1,55 +1,55 @@
1
- ---
2
- name: integration-hub-map
3
- 一句话: 旧页面一次性快翻 180°(侧棱瞬间亮闪)落成新中枢页,五个集成 app 图标同帧弹现、随即五条彩虹光管同帧齐连,光管内输送脉冲持续流动——"翻开新一页,生态一齐接入"
4
- 适用: 集成/生态能力段(一个产品连一切);版本翻新叙事(旧页翻成新页);暗场霓虹调性的功能高潮
5
- 时长: 前摇 ~0.5s + 快翻 ~1.2s + 图标齐现 → 光管齐连两拍 ~0.7s + 输送呼吸 ≥1.5s;全段 4.5–5s
6
- 能量: 中高(翻面是爆点,输送段是余韵)
7
- 标签: effects
8
- ---
9
-
10
- ## 意图
11
- 翻面是"换时代":旧文档页整个翻转 180° 得到新中枢页——必须是
12
- 完整翻面不是转个角度(判例),翻的动作**快翻+尾段减速**、一口气
13
- 完成无分段停顿("匀速"判例:用户说的匀速=无停顿,不是字面
14
- linear;90° 侧棱停顿版被裁)。侧棱时刻只"闪一下"(1–3f 脉冲,
15
- 长光晕平台被裁)。接入是**两拍制**:五图标同帧弹现(第一拍)→
16
- 五管同帧起画齐连(第二拍)——齐,才读作"生态一次到位";错峰
17
- 逐个连读作逐个谈判(两轮被裁)。连通后光管内亮脉冲沿图标→中枢
18
- 方向持续循环,"输送感"是终态的生命。
19
-
20
- ## 动效核心
21
- - 翻面:rotateY 0→180°,35f,Easing.out(cubic)(前 41% 时间完成
22
- 80% 角度,尾段长减速缓着陆),双面卡(正面旧页/背面新页)
23
- - 侧棱瞬闪:~90° 时刻 2f 脉冲 bloom(0→1→0.25→0,4f 内归零)
24
- - 两拍制接入:五图标 tIcon 同帧(翻面落定 +3f)弹现;+10f 五管
25
- tPipe 同帧起画,9f 齐长全亮
26
- - 输送脉冲:光管 dash 亮斑沿图标→中枢方向循环(速度 ~4.6px/f,
27
- 各管相位错开),全连通后中枢页轻呼吸
28
- - 背景:暗紫底噪 + 霓虹矩形浮现衬场
29
-
30
- ## 参数表
31
- | 参数 | 典型值 | 调节手感 |
32
- |------|--------|----------|
33
- | 翻面时长 | 35f(曾 70f 被裁"再快1倍") | <24f 读不出双面;尾段减速比例 ~60% 时间走 20% 角度 |
34
- | 翻面曲线 | ease-out 单调无停顿 | 侧棱停顿/分段被裁;严格 linear 起停生硬也被裁——快翻尾缓 |
35
- | 侧棱闪 | 2f 脉冲、4f 归零 | 长光晕平台被裁"闪一下就行" |
36
- | 接入节奏 | 两拍制:图标同帧 → +10f 光管同帧 | 错峰逐连两轮被裁"同时出现,然后同时连接";两拍间隔 <6f 读作一拍 |
37
- | 光管生长 | 9f 齐长 | 18f 版偏慢;各管长度不同但同帧到达(按各自 len 归一) |
38
- | 输送脉冲 | ~4.6px/f 循环、相位错开 | 静态连线=没有"输送的感觉"(判例);同相位读作闪烁 |
39
-
40
- ## 已知坑
41
- - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
42
- 首次实战须以真实素材回验
43
- - 时序判例链完整记录在案:错峰连入 ×2 被裁 → 管齐图标错峰被裁 →
44
- 两拍制过关。"同时"是这张卡的节奏身份
45
- - 与 glow-flyline-moves 分工:那张是飞线本身的光效戏;本卡是
46
- 翻面+两拍接入+输送的叙事结构,光管只是元素
47
- - 与 canvas-materialize-moves 分工:那张是画布元素实体化;本卡
48
- 核心是"旧页翻成新页"的换代语义
49
- - 双面卡实现:水平/垂直线 bbox=0 会使 SVG filter/渐变失效(三管
50
- 消失判例),管线渐变用 userSpaceOnUse 每管独立定义
51
-
52
- ## 参考实现
53
- demos/ui-entrance/integration-hub-map/
54
- (IntegrationHubMap.tsx)
55
- 原片出处:clickup-30.mp4
1
+ ---
2
+ name: integration-hub-map
3
+ 一句话: 旧页面一次性快翻 180°(侧棱瞬间亮闪)落成新中枢页,五个集成 app 图标同帧弹现、随即五条彩虹光管同帧齐连,光管内输送脉冲持续流动——"翻开新一页,生态一齐接入"
4
+ 适用: 集成/生态能力段(一个产品连一切);版本翻新叙事(旧页翻成新页);暗场霓虹调性的功能高潮
5
+ 时长: 前摇 ~0.5s + 快翻 ~1.2s + 图标齐现 → 光管齐连两拍 ~0.7s + 输送呼吸 ≥1.5s;全段 4.5–5s
6
+ 能量: 中高(翻面是爆点,输送段是余韵)
7
+ 标签: effects
8
+ ---
9
+
10
+ ## 意图
11
+ 翻面是"换时代":旧文档页整个翻转 180° 得到新中枢页——必须是
12
+ 完整翻面不是转个角度(判例),翻的动作**快翻+尾段减速**、一口气
13
+ 完成无分段停顿("匀速"判例:用户说的匀速=无停顿,不是字面
14
+ linear;90° 侧棱停顿版被裁)。侧棱时刻只"闪一下"(1–3f 脉冲,
15
+ 长光晕平台被裁)。接入是**两拍制**:五图标同帧弹现(第一拍)→
16
+ 五管同帧起画齐连(第二拍)——齐,才读作"生态一次到位";错峰
17
+ 逐个连读作逐个谈判(两轮被裁)。连通后光管内亮脉冲沿图标→中枢
18
+ 方向持续循环,"输送感"是终态的生命。
19
+
20
+ ## 动效核心
21
+ - 翻面:rotateY 0→180°,35f,Easing.out(cubic)(前 41% 时间完成
22
+ 80% 角度,尾段长减速缓着陆),双面卡(正面旧页/背面新页)
23
+ - 侧棱瞬闪:~90° 时刻 2f 脉冲 bloom(0→1→0.25→0,4f 内归零)
24
+ - 两拍制接入:五图标 tIcon 同帧(翻面落定 +3f)弹现;+10f 五管
25
+ tPipe 同帧起画,9f 齐长全亮
26
+ - 输送脉冲:光管 dash 亮斑沿图标→中枢方向循环(速度 ~4.6px/f,
27
+ 各管相位错开),全连通后中枢页轻呼吸
28
+ - 背景:暗紫底噪 + 霓虹矩形浮现衬场
29
+
30
+ ## 参数表
31
+ | 参数 | 典型值 | 调节手感 |
32
+ |------|--------|----------|
33
+ | 翻面时长 | 35f(曾 70f 被裁"再快1倍") | <24f 读不出双面;尾段减速比例 ~60% 时间走 20% 角度 |
34
+ | 翻面曲线 | ease-out 单调无停顿 | 侧棱停顿/分段被裁;严格 linear 起停生硬也被裁——快翻尾缓 |
35
+ | 侧棱闪 | 2f 脉冲、4f 归零 | 长光晕平台被裁"闪一下就行" |
36
+ | 接入节奏 | 两拍制:图标同帧 → +10f 光管同帧 | 错峰逐连两轮被裁"同时出现,然后同时连接";两拍间隔 <6f 读作一拍 |
37
+ | 光管生长 | 9f 齐长 | 18f 版偏慢;各管长度不同但同帧到达(按各自 len 归一) |
38
+ | 输送脉冲 | ~4.6px/f 循环、相位错开 | 静态连线=没有"输送的感觉"(判例);同相位读作闪烁 |
39
+
40
+ ## 已知坑
41
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
42
+ 首次实战须以真实素材回验
43
+ - 时序判例链完整记录在案:错峰连入 ×2 被裁 → 管齐图标错峰被裁 →
44
+ 两拍制过关。"同时"是这张卡的节奏身份
45
+ - 与 glow-flyline-moves 分工:那张是飞线本身的光效戏;本卡是
46
+ 翻面+两拍接入+输送的叙事结构,光管只是元素
47
+ - 与 canvas-materialize-moves 分工:那张是画布元素实体化;本卡
48
+ 核心是"旧页翻成新页"的换代语义
49
+ - 双面卡实现:水平/垂直线 bbox=0 会使 SVG filter/渐变失效(三管
50
+ 消失判例),管线渐变用 userSpaceOnUse 每管独立定义
51
+
52
+ ## 参考实现
53
+ demos/ui-entrance/integration-hub-map/
54
+ (IntegrationHubMap.tsx)
55
+ 原片出处:clickup-30.mp4
@@ -1,50 +1,50 @@
1
- ---
2
- name: list-reveal
3
- 一句话: 垂直菜单 6 项按 10f 的间隔依次 scale 找位、软 back 轻微过冲落定,同时整个列表容器全程匀速上移——逐项入场与整体漂移是两层不相干的运动
4
- 适用: 导航/侧边栏/设置面板的入场;任何"界面自己长出来"的 UI 段落,也适合做旁白铺垫时的低能量底
5
- 时长: 约 4s(120f@30fps)
6
- 能量: 低(稳定节拍,无峰值;靠漂移维持画面不死)
7
- ---
8
-
9
- ## 意图
10
- 列表逐项淡入是最容易做得死板的一类动效:每项动完就停,画面在两项之间是完全静止的。
11
- 这张卡的解法是给容器加一层与逐项入场无关的慢速漂移——局部在"找位",整体在"呼吸"。
12
- 观众读得清每一项,同时画面从头到尾没有一帧是钉死的。
13
-
14
- ## 动效核心
15
- - 两层运动完全解耦:容器 `translateY(DRIFT/2 − DRIFT·f/(N−1))` 只吃全局帧,是贯穿全片的匀速漂移
16
- (demo:1920 坐标下总 96px,+48 → −48,≈0.8px/f);每项只吃自己的局部窗口,互不参与对方的计算
17
- - 逐项入场:起点 `2 + i·10f`、窗口 24f,stagger 10f 比常规 UI stagger 慢一档——这是"读得完"的间隔,
18
- 不是"快速铺开"的间隔;窗口是 stagger 的 2.4 倍 → 相邻 2–3 项同时在动,队列连绵
19
- - 找位动作是 scale 主导:`scale(0.82 → 1)` 配 `translateY(44 → 0)` + 对焦模糊 8px → 0,
20
- 观众感知到的是"从虚到实、从小长到位",而不是"从下面飞上来"
21
- - 软过冲 `bezier(0.3, 1.18, 0.5, 1)`(~1.5%)——量很小,作用是把落位那一帧从"停"变成"扣住"
22
- - 跟随:图标晚 2f、右侧快捷键 / 徽章晚 4f 落定;透明度 `min(1, lin·2.2)`,行程 45% 就已全实
23
- - 当前项(Home)是全片唯一的高亮:瓷白实心条 + 落位后一次扫光(Q4);其余项为深石墨面 + 发丝线
24
-
25
- ## 参数表(demo 为 1920×1080 原生坐标)
26
- | 参数 | 典型值 | 调节手感 |
27
- |------|--------|----------|
28
- | 项数 | 6(Home…Sign out) | 末项 52f 起、76f 落定,尾部留 ~44f 给观众收尾;>8 项必须压 stagger,否则末项吃到收尾 |
29
- | stagger | 10f/项 | 10f 是"逐项读得完";压到 4f 变成一次铺开(另一种手法),拉到 16f 以上节拍会散 |
30
- | 单项窗口 | 24f | 窗口比 stagger 长 2.4 倍 → 相邻项重叠;两者相等会变成一项一项硬接 |
31
- | 起始 scale | 0.82 | "已经能认出是个条目"的尺度;<0.5 读作从零弹出,和 pop 类手法混淆 |
32
- | 起始位移 / 模糊 | 44px / 8px | 位移必须小于行距(92px 行高 + 14px 间距),否则项与项之间穿插 |
33
- | 过冲 | 软 back ~1.5% | 要小到几乎读不出来;换 spring 或加大过冲,6 项连续抖会显得廉价 |
34
- | 容器漂移 | 全程匀速 96px(≈0.8px/f) | 总量是单项位移的 2 倍、速度慢一个数量级——读作"画面在呼吸";速度接近单项入场速度时两层运动混为一件事 |
35
- | 透明度斜率 | `min(1, lin·2.2)` | 降到 1 会看到半透明项叠在背景上,暗场下尤其脏 |
36
-
37
- ## 已知坑
38
- - 容器漂移是匀速且贯穿全程,末帧停在 −48px 而不是 0——这个动效**末帧不回位**。
39
- 要循环播放或与后一镜对齐位置,得把漂移换成收束曲线,或在末段补一个反向缓收
40
- - 项数变化必须重算 stagger:末项起点 `2 + (n−1)·10f`,再加 24f 窗口,要给收尾留 ≥30f
41
- - 行宽 700px、标签 `nowrap`——中文或更长的英文标签会顶到右侧快捷键,换文案要同步加宽;
42
- 列表总高 ~644px,加项前先算漂移后首末项是否仍在安全区内(demo 漂移范围 y 188–928)
43
- - 漂移方向(向上)与逐项位移方向(44px→0,也是向上)同向。这是有意的(同向叠加更顺),
44
- 但两者速度量级必须保持一个数量级差距,否则读作"一起往上飘"而非两层
45
- - 右侧标题要等列表铺到一半(46f)才进:开场只给列表一个主角(Q5),不然观众在两处之间来回找
46
- - 图标是单色线性图标,只有当前项用实心高亮、未读徽章用点缀色;浅色界面下描边和阴影都要重调
47
-
48
- ## 参考实现
49
- demos/ui-entrance/list-reveal/
50
- (ListReveal.tsx:graphite 暗场,左列表 + 右侧 120px 标题的侧边栏海报)
1
+ ---
2
+ name: list-reveal
3
+ 一句话: 垂直菜单 6 项按 10f 的间隔依次 scale 找位、软 back 轻微过冲落定,同时整个列表容器全程匀速上移——逐项入场与整体漂移是两层不相干的运动
4
+ 适用: 导航/侧边栏/设置面板的入场;任何"界面自己长出来"的 UI 段落,也适合做旁白铺垫时的低能量底
5
+ 时长: 约 4s(120f@30fps)
6
+ 能量: 低(稳定节拍,无峰值;靠漂移维持画面不死)
7
+ ---
8
+
9
+ ## 意图
10
+ 列表逐项淡入是最容易做得死板的一类动效:每项动完就停,画面在两项之间是完全静止的。
11
+ 这张卡的解法是给容器加一层与逐项入场无关的慢速漂移——局部在"找位",整体在"呼吸"。
12
+ 观众读得清每一项,同时画面从头到尾没有一帧是钉死的。
13
+
14
+ ## 动效核心
15
+ - 两层运动完全解耦:容器 `translateY(DRIFT/2 − DRIFT·f/(N−1))` 只吃全局帧,是贯穿全片的匀速漂移
16
+ (demo:1920 坐标下总 96px,+48 → −48,≈0.8px/f);每项只吃自己的局部窗口,互不参与对方的计算
17
+ - 逐项入场:起点 `2 + i·10f`、窗口 24f,stagger 10f 比常规 UI stagger 慢一档——这是"读得完"的间隔,
18
+ 不是"快速铺开"的间隔;窗口是 stagger 的 2.4 倍 → 相邻 2–3 项同时在动,队列连绵
19
+ - 找位动作是 scale 主导:`scale(0.82 → 1)` 配 `translateY(44 → 0)` + 对焦模糊 8px → 0,
20
+ 观众感知到的是"从虚到实、从小长到位",而不是"从下面飞上来"
21
+ - 软过冲 `bezier(0.3, 1.18, 0.5, 1)`(~1.5%)——量很小,作用是把落位那一帧从"停"变成"扣住"
22
+ - 跟随:图标晚 2f、右侧快捷键 / 徽章晚 4f 落定;透明度 `min(1, lin·2.2)`,行程 45% 就已全实
23
+ - 当前项(Home)是全片唯一的高亮:瓷白实心条 + 落位后一次扫光(Q4);其余项为深石墨面 + 发丝线
24
+
25
+ ## 参数表(demo 为 1920×1080 原生坐标)
26
+ | 参数 | 典型值 | 调节手感 |
27
+ |------|--------|----------|
28
+ | 项数 | 6(Home…Sign out) | 末项 52f 起、76f 落定,尾部留 ~44f 给观众收尾;>8 项必须压 stagger,否则末项吃到收尾 |
29
+ | stagger | 10f/项 | 10f 是"逐项读得完";压到 4f 变成一次铺开(另一种手法),拉到 16f 以上节拍会散 |
30
+ | 单项窗口 | 24f | 窗口比 stagger 长 2.4 倍 → 相邻项重叠;两者相等会变成一项一项硬接 |
31
+ | 起始 scale | 0.82 | "已经能认出是个条目"的尺度;<0.5 读作从零弹出,和 pop 类手法混淆 |
32
+ | 起始位移 / 模糊 | 44px / 8px | 位移必须小于行距(92px 行高 + 14px 间距),否则项与项之间穿插 |
33
+ | 过冲 | 软 back ~1.5% | 要小到几乎读不出来;换 spring 或加大过冲,6 项连续抖会显得廉价 |
34
+ | 容器漂移 | 全程匀速 96px(≈0.8px/f) | 总量是单项位移的 2 倍、速度慢一个数量级——读作"画面在呼吸";速度接近单项入场速度时两层运动混为一件事 |
35
+ | 透明度斜率 | `min(1, lin·2.2)` | 降到 1 会看到半透明项叠在背景上,暗场下尤其脏 |
36
+
37
+ ## 已知坑
38
+ - 容器漂移是匀速且贯穿全程,末帧停在 −48px 而不是 0——这个动效**末帧不回位**。
39
+ 要循环播放或与后一镜对齐位置,得把漂移换成收束曲线,或在末段补一个反向缓收
40
+ - 项数变化必须重算 stagger:末项起点 `2 + (n−1)·10f`,再加 24f 窗口,要给收尾留 ≥30f
41
+ - 行宽 700px、标签 `nowrap`——中文或更长的英文标签会顶到右侧快捷键,换文案要同步加宽;
42
+ 列表总高 ~644px,加项前先算漂移后首末项是否仍在安全区内(demo 漂移范围 y 188–928)
43
+ - 漂移方向(向上)与逐项位移方向(44px→0,也是向上)同向。这是有意的(同向叠加更顺),
44
+ 但两者速度量级必须保持一个数量级差距,否则读作"一起往上飘"而非两层
45
+ - 右侧标题要等列表铺到一半(46f)才进:开场只给列表一个主角(Q5),不然观众在两处之间来回找
46
+ - 图标是单色线性图标,只有当前项用实心高亮、未读徽章用点缀色;浅色界面下描边和阴影都要重调
47
+
48
+ ## 参考实现
49
+ demos/ui-entrance/list-reveal/
50
+ (ListReveal.tsx:graphite 暗场,左列表 + 右侧 120px 标题的侧边栏海报)