dsh-drawai 0.4.2 → 0.4.3

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 (366) hide show
  1. package/README.md +4 -3
  2. package/lib/index.js +7777 -7719
  3. package/lib/motion/asset-pack.js +394 -394
  4. package/lib/motion/assets.js +291 -291
  5. package/lib/motion/demo-assets-lock.js +10 -10
  6. package/lib/motion/mgstyles/vendor/README.md +28 -28
  7. package/lib/motion/mgstyles/vendor/modules/d3/LICENSE +13 -13
  8. package/lib/motion/mgstyles/vendor/modules/d3/dist/d3.min.js +2 -2
  9. package/lib/motion/mgstyles/vendor/modules/opentype.js/LICENSE +20 -20
  10. package/lib/motion/mgstyles/vendor/modules/opentype.js/dist/opentype.mjs +14460 -14460
  11. package/lib/motion/mgstyles/vendor/modules/simplex-noise/LICENSE +21 -21
  12. package/lib/motion/mgstyles/vendor/modules/simplex-noise/dist/esm/simplex-noise.js +465 -465
  13. package/lib/motion/mgstyles/vendor/modules/topojson-client/LICENSE +13 -13
  14. package/lib/motion/mgstyles/vendor/modules/topojson-client/dist/topojson-client.min.js +2 -2
  15. package/lib/motion/render.js +179 -179
  16. package/lib/motion/shotcraft/upstream/SKILL.md +286 -286
  17. package/lib/motion/shotcraft/upstream/assets/lib/Caption.tsx +54 -54
  18. package/lib/motion/shotcraft/upstream/assets/lib/ClipCard.tsx +200 -200
  19. package/lib/motion/shotcraft/upstream/assets/lib/DigitRoll.tsx +45 -45
  20. package/lib/motion/shotcraft/upstream/assets/lib/FlashCut.tsx +20 -20
  21. package/lib/motion/shotcraft/upstream/assets/lib/FlatPanel.tsx +65 -65
  22. package/lib/motion/shotcraft/upstream/assets/lib/PageCam.tsx +151 -151
  23. package/lib/motion/shotcraft/upstream/assets/lib/VerticalTicker.tsx +129 -129
  24. package/lib/motion/shotcraft/upstream/assets/lib/helpers/camera.tsx +75 -75
  25. package/lib/motion/shotcraft/upstream/assets/lib/helpers/motion.ts +40 -40
  26. package/lib/motion/shotcraft/upstream/assets/lib/helpers/rand.ts +11 -11
  27. package/lib/motion/shotcraft/upstream/assets/lib/helpers/shake.ts +10 -10
  28. package/lib/motion/shotcraft/upstream/assets/scripts/build-readme-cover.mjs +49 -49
  29. package/lib/motion/shotcraft/upstream/assets/scripts/capture-template.mjs +210 -210
  30. package/lib/motion/shotcraft/upstream/assets/scripts/sfx-source.py +423 -423
  31. package/lib/motion/shotcraft/upstream/assets/scripts/smoke-render-demos.py +170 -170
  32. package/lib/motion/shotcraft/upstream/assets/scripts/test_sfx_source.py +157 -157
  33. package/lib/motion/shotcraft/upstream/demos/README.md +120 -120
  34. package/lib/motion/shotcraft/upstream/demos/_fixtures/Brand.tsx +112 -112
  35. package/lib/motion/shotcraft/upstream/demos/_fixtures/Fixtures.tsx +647 -647
  36. package/lib/motion/shotcraft/upstream/demos/_fixtures/Look.tsx +316 -316
  37. package/lib/motion/shotcraft/upstream/demos/_fixtures/Motion.tsx +82 -82
  38. package/lib/motion/shotcraft/upstream/demos/_fixtures/PageCam2D.tsx +115 -115
  39. package/lib/motion/shotcraft/upstream/demos/_fixtures/Polish.tsx +243 -243
  40. package/lib/motion/shotcraft/upstream/demos/_textures/live-layout.json +388 -388
  41. package/lib/motion/shotcraft/upstream/demos/camera/basic-3d-scene/Basic3DScene.tsx +250 -250
  42. package/lib/motion/shotcraft/upstream/demos/camera/crash-zoom-punch/CrashImpactReal.tsx +305 -305
  43. package/lib/motion/shotcraft/upstream/demos/camera/crash-zoom-punch/CrashZoomReal.tsx +246 -246
  44. package/lib/motion/shotcraft/upstream/demos/camera/cursor-flyover/CursorFlyover.tsx +390 -390
  45. package/lib/motion/shotcraft/upstream/demos/camera/depth-layer-moves/MultiplaneReal.tsx +138 -138
  46. package/lib/motion/shotcraft/upstream/demos/camera/graze-face-tour/GrazeFaceTour.tsx +542 -542
  47. package/lib/motion/shotcraft/upstream/demos/camera/overhead-camera-moves/OverheadTabletopDrop.tsx +315 -315
  48. package/lib/motion/shotcraft/upstream/demos/camera/overhead-camera-moves/TiltReveal.tsx +299 -299
  49. package/lib/motion/shotcraft/upstream/demos/camera/space-camera-moves/DroneDiveLanding.tsx +173 -173
  50. package/lib/motion/shotcraft/upstream/demos/camera/space-camera-moves/ExplodedView.tsx +348 -348
  51. package/lib/motion/shotcraft/upstream/demos/camera/steep-tilt-glide/SteepTiltGlide.tsx +366 -366
  52. package/lib/motion/shotcraft/upstream/demos/camera/tension-camera-moves/BulletTimeFreezeOrbit.tsx +279 -279
  53. package/lib/motion/shotcraft/upstream/demos/camera/tension-camera-moves/PullBackIsolation.tsx +184 -184
  54. package/lib/motion/shotcraft/upstream/demos/camera/terminal-3d/Terminal3D.tsx +390 -390
  55. package/lib/motion/shotcraft/upstream/demos/data/before-after-slider-scrub/BeforeAfterSliderScrub.tsx +155 -155
  56. package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/AxisRescaleShockV2.tsx +303 -303
  57. package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/OscilloscopeStreamV2.tsx +290 -290
  58. package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/UnitDotSwarmRegroupV2.tsx +278 -278
  59. package/lib/motion/shotcraft/upstream/demos/data/gauge-readout-moves/NeedleSweepSelftest.tsx +307 -307
  60. package/lib/motion/shotcraft/upstream/demos/data/gauge-readout-moves/TapeScrollFixedPointer.tsx +215 -215
  61. package/lib/motion/shotcraft/upstream/demos/data/scroll-brake-moves/BrakeReticleLock.tsx +299 -299
  62. package/lib/motion/shotcraft/upstream/demos/data/scroll-brake-moves/ChangelogScrollBrake.tsx +232 -232
  63. package/lib/motion/shotcraft/upstream/demos/data/timeline-travel/TimelineTravel.tsx +290 -290
  64. package/lib/motion/shotcraft/upstream/demos/effects/assemble-then-type-flyin/AssembleThenTypeFlyin.tsx +273 -273
  65. package/lib/motion/shotcraft/upstream/demos/effects/aurora-bloom-bg-flip/AuroraBloomBgFlip.tsx +167 -167
  66. package/lib/motion/shotcraft/upstream/demos/effects/brand-frame-snap/BrandFrameSnap.tsx +536 -536
  67. package/lib/motion/shotcraft/upstream/demos/effects/fui-hud-moves/ReticleLockOn.tsx +164 -164
  68. package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/FlylineArc.tsx +175 -175
  69. package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/GlowOrbAmbient.tsx +197 -197
  70. package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/OrbFlylineRelay.tsx +241 -241
  71. package/lib/motion/shotcraft/upstream/demos/effects/icon-performance-moves/AttentionBounce.tsx +279 -279
  72. package/lib/motion/shotcraft/upstream/demos/effects/impact-feedback/AnimeImpact.tsx +230 -230
  73. package/lib/motion/shotcraft/upstream/demos/effects/impact-feedback/HitCounter.tsx +345 -345
  74. package/lib/motion/shotcraft/upstream/demos/effects/light-play-moves/SheenSweepRetry.tsx +275 -275
  75. package/lib/motion/shotcraft/upstream/demos/effects/light-play-moves/SpotlightSweepReveal.tsx +229 -229
  76. package/lib/motion/shotcraft/upstream/demos/effects/radial-ripple-phone-chips/RadialRipplePhoneChips.tsx +312 -312
  77. package/lib/motion/shotcraft/upstream/demos/effects/riso-print-hits/RisoMisregistrationHit.tsx +222 -222
  78. package/lib/motion/shotcraft/upstream/demos/effects/scan-bracket-sweep/ScanBracketSweep.tsx +295 -295
  79. package/lib/motion/shotcraft/upstream/demos/effects/scanline-annotate-focus/ScanlineAnnotateFocus.tsx +329 -329
  80. package/lib/motion/shotcraft/upstream/demos/effects/scanline-assemble-flyin/ScanlineAssembleFlyin.tsx +315 -315
  81. package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/ImpactBurstKit.tsx +264 -264
  82. package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/KanadaPerspectiveSnap.tsx +260 -260
  83. package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/ScoreSlam.tsx +263 -263
  84. package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/CornerSpotlightReveal.tsx +123 -123
  85. package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/GlowWakeSleepPanel.tsx +187 -187
  86. package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/SlideSpotlightPan.tsx +175 -175
  87. package/lib/motion/shotcraft/upstream/demos/interaction/autolayout-gap-dial/AutolayoutGapDial.tsx +305 -305
  88. package/lib/motion/shotcraft/upstream/demos/interaction/canvas-materialize-moves/DiagramCascadeBuild.tsx +350 -350
  89. package/lib/motion/shotcraft/upstream/demos/interaction/canvas-materialize-moves/PanelToCanvasMaterialize.tsx +352 -352
  90. package/lib/motion/shotcraft/upstream/demos/interaction/chip-grid-single-select-blackout/ChipGridSingleSelectBlackout.tsx +218 -218
  91. package/lib/motion/shotcraft/upstream/demos/interaction/collab-cursor-moves/CursorCastEnsemble.tsx +297 -297
  92. package/lib/motion/shotcraft/upstream/demos/interaction/glass-pill-dictation-typing/GlassPillDictationTyping.tsx +157 -157
  93. package/lib/motion/shotcraft/upstream/demos/interaction/hashtag-to-pill-materialize/HashtagToPillMaterialize.tsx +218 -218
  94. package/lib/motion/shotcraft/upstream/demos/interaction/picker-carousel-feature-cycle/PickerCarouselFeatureCycle.tsx +202 -202
  95. package/lib/motion/shotcraft/upstream/demos/interaction/segmented-thumb-hero/SegmentedThumbHero.tsx +265 -265
  96. package/lib/motion/shotcraft/upstream/demos/interaction/theme-switch-moves/PaletteThemeRipple.tsx +457 -457
  97. package/lib/motion/shotcraft/upstream/demos/interaction/theme-switch-moves/ThemeSweepToggle.tsx +446 -446
  98. package/lib/motion/shotcraft/upstream/demos/interaction/type-and-filter/TypeAndFilter.tsx +249 -249
  99. package/lib/motion/shotcraft/upstream/demos/interaction/voice-waveform-live/VoiceWaveformLive.tsx +278 -278
  100. package/lib/motion/shotcraft/upstream/demos/opening/crane-rise-reveal/CraneRiseReveal.tsx +332 -332
  101. package/lib/motion/shotcraft/upstream/demos/opening/dataviz-landscape-open/DatavizLandscapeOpen.tsx +358 -358
  102. package/lib/motion/shotcraft/upstream/demos/opening/fracture/Fracture.tsx +201 -201
  103. package/lib/motion/shotcraft/upstream/demos/opening/icon-field-colorize/IconFieldColorize.tsx +200 -200
  104. package/lib/motion/shotcraft/upstream/demos/opening/letterspace-materialize/LetterspaceMaterialize.tsx +208 -208
  105. package/lib/motion/shotcraft/upstream/demos/opening/magician-card-flourish/MagicianCardFlourish.tsx +341 -341
  106. package/lib/motion/shotcraft/upstream/demos/opening/orbit-ring-title-open/OrbitRingTitleOpen.tsx +389 -389
  107. package/lib/motion/shotcraft/upstream/demos/opening/spotlight-hero-card/SpotlightHeroCard.tsx +293 -293
  108. package/lib/motion/shotcraft/upstream/demos/opening/stroke-segment-build/StrokeSegmentBuild.tsx +183 -183
  109. package/lib/motion/shotcraft/upstream/demos/opening/text-as-mask/TextAsMask.tsx +245 -245
  110. package/lib/motion/shotcraft/upstream/demos/outro/grain-dissolve/GrainDissolve.tsx +222 -222
  111. package/lib/motion/shotcraft/upstream/demos/outro/logo-shrink-wordmark-lockup/LogoShrinkWordmarkLockup.tsx +223 -223
  112. package/lib/motion/shotcraft/upstream/demos/outro/neon-triple-marquee/NeonTripleMarquee.tsx +217 -217
  113. package/lib/motion/shotcraft/upstream/demos/outro/outro-group-photo-launch/OutroGroupPhotoLaunch.tsx +343 -343
  114. package/lib/motion/shotcraft/upstream/demos/outro/ui-strip-away-outro/UiStripAwayOutro.tsx +357 -357
  115. package/lib/motion/shotcraft/upstream/demos/outro/ui-to-brand-morph/IconFlipBloomLogo.tsx +187 -187
  116. package/lib/motion/shotcraft/upstream/demos/outro/ui-to-brand-morph/InputMorphsIntoLogo.tsx +333 -333
  117. package/lib/motion/shotcraft/upstream/demos/rhythm/beat-cut-moves/PaparazziFlash.tsx +274 -274
  118. package/lib/motion/shotcraft/upstream/demos/rhythm/beat-step-list-theme-cycle/BeatStepListThemeCycle.tsx +270 -270
  119. package/lib/motion/shotcraft/upstream/demos/rhythm/panel-grid-moves/ComicPanelSplit.tsx +430 -430
  120. package/lib/motion/shotcraft/upstream/demos/rhythm/quad-split-parallel-scenes/QuadSplitParallelScenes.tsx +252 -252
  121. package/lib/motion/shotcraft/upstream/demos/rhythm/rhythm-interrupt-moves/JumpCutPunchIn.tsx +106 -106
  122. package/lib/motion/shotcraft/upstream/demos/rhythm/sakuga-timing-shift/SakugaTimingShift.tsx +288 -288
  123. package/lib/motion/shotcraft/upstream/demos/rhythm/speed-ramp-freeze/FreezeAnnotateReal.tsx +362 -362
  124. package/lib/motion/shotcraft/upstream/demos/rhythm/trailer-grammar-moves/TrailerBumper.tsx +168 -168
  125. package/lib/motion/shotcraft/upstream/demos/transition/bottom-push-stack-wipe/BottomPushStackWipe.tsx +310 -310
  126. package/lib/motion/shotcraft/upstream/demos/transition/card-flip-reveal/CardFlipReveal.tsx +261 -261
  127. package/lib/motion/shotcraft/upstream/demos/transition/card-flock-tumble/CardFlockTumble.tsx +459 -459
  128. package/lib/motion/shotcraft/upstream/demos/transition/circle-match-iris/CircleMatchIris.tsx +294 -294
  129. package/lib/motion/shotcraft/upstream/demos/transition/gradient-transition/GradientTransition.tsx +161 -161
  130. package/lib/motion/shotcraft/upstream/demos/transition/line-carry-transition/LineCarryTransition.tsx +248 -248
  131. package/lib/motion/shotcraft/upstream/demos/transition/mosaic-reframe/MosaicReframe.tsx +359 -359
  132. package/lib/motion/shotcraft/upstream/demos/transition/page-turn-transitions/BarnDoorSplit.tsx +227 -227
  133. package/lib/motion/shotcraft/upstream/demos/transition/print-texture-transitions/InkBleedReveal.tsx +162 -162
  134. package/lib/motion/shotcraft/upstream/demos/transition/shot-transitions/PortalWipeV2.tsx +248 -248
  135. package/lib/motion/shotcraft/upstream/demos/transition/shot-transitions/WhipBrakeReal.tsx +186 -186
  136. package/lib/motion/shotcraft/upstream/demos/transition/tear-streak-transitions/GlitchDisplace.tsx +355 -355
  137. package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/InvisibleCut.tsx +272 -272
  138. package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/LightLeakBurn.tsx +262 -262
  139. package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/VersusSlam.tsx +217 -217
  140. package/lib/motion/shotcraft/upstream/demos/transition/transition-travel/LetterformZoom.tsx +285 -285
  141. package/lib/motion/shotcraft/upstream/demos/transition/white-flash-logo-simplify-cut/WhiteFlashLogoSimplifyCut.tsx +205 -205
  142. package/lib/motion/shotcraft/upstream/demos/transition/wipe-transitions/BlindsSlice.tsx +178 -178
  143. package/lib/motion/shotcraft/upstream/demos/typography/blur-slide/BlurSlide.tsx +147 -147
  144. package/lib/motion/shotcraft/upstream/demos/typography/brace-expand/BraceExpand.tsx +143 -143
  145. package/lib/motion/shotcraft/upstream/demos/typography/brand-ink-open/BrandInkOpen.tsx +134 -134
  146. package/lib/motion/shotcraft/upstream/demos/typography/countdown-arc-scatter/CountdownArcScatter.tsx +217 -217
  147. package/lib/motion/shotcraft/upstream/demos/typography/flying-words/FlyingWords.tsx +198 -198
  148. package/lib/motion/shotcraft/upstream/demos/typography/glitch-cycle/GlitchCycle.tsx +221 -221
  149. package/lib/motion/shotcraft/upstream/demos/typography/gradient-word-sweep/GradientWordSweep.tsx +312 -312
  150. package/lib/motion/shotcraft/upstream/demos/typography/lead-word-zoom-assemble/LeadWordZoomAssemble.tsx +261 -261
  151. package/lib/motion/shotcraft/upstream/demos/typography/marker-underline-title/MarkerUnderlineTitle.tsx +121 -121
  152. package/lib/motion/shotcraft/upstream/demos/typography/outline-word-fill/OutlineWordFill.tsx +153 -153
  153. package/lib/motion/shotcraft/upstream/demos/typography/paper-title-card/PaperTitleCard.tsx +179 -179
  154. package/lib/motion/shotcraft/upstream/demos/typography/pill-chip-slot-cycle-handled/PillChipSlotCycleHandled.tsx +140 -140
  155. package/lib/motion/shotcraft/upstream/demos/typography/pill-slot-cycle/PillSlotCycle.tsx +309 -309
  156. package/lib/motion/shotcraft/upstream/demos/typography/text-column-converge/TextColumnConverge.tsx +191 -191
  157. package/lib/motion/shotcraft/upstream/demos/typography/title-demote-to-label/TitleDemoteToLabel.tsx +292 -292
  158. package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/LetterformDriftAssembly.tsx +135 -135
  159. package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/SplitTextStagger.tsx +124 -124
  160. package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/TextOnPath.tsx +255 -255
  161. package/lib/motion/shotcraft/upstream/demos/typography/type-entrance-moves/LetterDropPhysics.tsx +173 -173
  162. package/lib/motion/shotcraft/upstream/demos/typography/type-rhythm-sync/FontWeightPump.tsx +225 -225
  163. package/lib/motion/shotcraft/upstream/demos/typography/type-rhythm-sync/KaraokeFillSync.tsx +141 -141
  164. package/lib/motion/shotcraft/upstream/demos/typography/typewriter-moves/TypewriterErrorRetype.tsx +137 -137
  165. package/lib/motion/shotcraft/upstream/demos/typography/vertical-word-roll-blur-cycle/VerticalWordRollBlurCycle.tsx +147 -147
  166. package/lib/motion/shotcraft/upstream/demos/typography/word-relay-filmstrip/WordRelayFilmstrip.tsx +409 -409
  167. package/lib/motion/shotcraft/upstream/demos/typography/word-relay-geometry/WordRelayGeometry.tsx +280 -280
  168. package/lib/motion/shotcraft/upstream/demos/ui-entrance/avatar-bracket-carousel/AvatarBracketCarousel.tsx +271 -271
  169. package/lib/motion/shotcraft/upstream/demos/ui-entrance/bezier-source-converge-merge/BezierSourceConvergeMerge.tsx +385 -385
  170. package/lib/motion/shotcraft/upstream/demos/ui-entrance/card-stack/CardStack.tsx +312 -312
  171. package/lib/motion/shotcraft/upstream/demos/ui-entrance/carousel-3d/Carousel3D.tsx +303 -303
  172. package/lib/motion/shotcraft/upstream/demos/ui-entrance/clipcard-looping/ClipCardLooping.tsx +77 -77
  173. package/lib/motion/shotcraft/upstream/demos/ui-entrance/cloner-depth-echo/ClonerDepthEcho.tsx +311 -311
  174. package/lib/motion/shotcraft/upstream/demos/ui-entrance/deck-deal-flyin/DeckDealFlyin.tsx +307 -307
  175. package/lib/motion/shotcraft/upstream/demos/ui-entrance/doc-park-left-pill-deal/DocParkLeftPillDeal.tsx +349 -349
  176. package/lib/motion/shotcraft/upstream/demos/ui-entrance/document-typewriter-reveal/DocumentTypewriterReveal.tsx +255 -255
  177. package/lib/motion/shotcraft/upstream/demos/ui-entrance/draw-svg-trace/DrawSvgTrace.tsx +244 -244
  178. package/lib/motion/shotcraft/upstream/demos/ui-entrance/element-body-moves/ContactShadowLift.tsx +217 -217
  179. package/lib/motion/shotcraft/upstream/demos/ui-entrance/integration-hub-map/IntegrationHubMap.tsx +652 -652
  180. package/lib/motion/shotcraft/upstream/demos/ui-entrance/list-reveal/ListReveal.tsx +153 -153
  181. package/lib/motion/shotcraft/upstream/demos/ui-entrance/list-stack-press/ListStackPress.tsx +238 -238
  182. package/lib/motion/shotcraft/upstream/demos/ui-entrance/neon-frame-forerun/NeonFrameForerun.tsx +324 -324
  183. package/lib/motion/shotcraft/upstream/demos/ui-entrance/neon-frame-orbit-drop/NeonFrameForerunOrbit.tsx +354 -354
  184. package/lib/motion/shotcraft/upstream/demos/ui-entrance/page-waterfall-wall/PageWaterfallWall.tsx +101 -101
  185. package/lib/motion/shotcraft/upstream/demos/ui-entrance/page-waterfall-wall/VerticalTicker.tsx +129 -129
  186. package/lib/motion/shotcraft/upstream/demos/ui-entrance/product-card-progressive-assemble/ProductCardProgressiveAssemble.tsx +297 -297
  187. package/lib/motion/shotcraft/upstream/demos/ui-entrance/radial-wave/RadialWave.tsx +57 -57
  188. package/lib/motion/shotcraft/upstream/demos/ui-entrance/research-card-stack-scroll/ResearchCardStackScroll.tsx +155 -155
  189. package/lib/motion/shotcraft/upstream/demos/ui-entrance/row-embed/RowEmbed.tsx +175 -175
  190. package/lib/motion/shotcraft/upstream/demos/ui-entrance/value-stagger-gradient/ValueStaggerGradient.tsx +153 -153
  191. package/lib/motion/shotcraft/upstream/demos/ui-entrance/wall-reveal-moves/BentoLightUp.tsx +146 -146
  192. package/lib/motion/shotcraft/upstream/demos/ui-entrance/wall-reveal-moves/WireframeDrawOn.tsx +226 -226
  193. package/lib/motion/shotcraft/upstream/gallery/api/library.json +1 -1
  194. package/lib/motion/shotcraft/upstream/references/aesthetic-rules.md +193 -193
  195. package/lib/motion/shotcraft/upstream/references/final-review.md +121 -121
  196. package/lib/motion/shotcraft/upstream/references/guided-free-creation.md +199 -199
  197. package/lib/motion/shotcraft/upstream/references/jianying-export.md +183 -183
  198. package/lib/motion/shotcraft/upstream/references/music-beat-sync.md +257 -257
  199. package/lib/motion/shotcraft/upstream/references/pipeline.md +382 -382
  200. package/lib/motion/shotcraft/upstream/references/publish-upload-post.md +111 -111
  201. package/lib/motion/shotcraft/upstream/references/sequences/promo-energy-arc.md +50 -50
  202. package/lib/motion/shotcraft/upstream/references/sfx-sourcing.md +95 -95
  203. package/lib/motion/shotcraft/upstream/references/shots/camera/basic-3d-scene.md +41 -41
  204. package/lib/motion/shotcraft/upstream/references/shots/camera/crash-zoom-punch.md +52 -52
  205. package/lib/motion/shotcraft/upstream/references/shots/camera/cursor-flyover.md +39 -39
  206. package/lib/motion/shotcraft/upstream/references/shots/camera/depth-layer-moves.md +39 -39
  207. package/lib/motion/shotcraft/upstream/references/shots/camera/graze-face-tour.md +57 -57
  208. package/lib/motion/shotcraft/upstream/references/shots/camera/overhead-camera-moves.md +51 -51
  209. package/lib/motion/shotcraft/upstream/references/shots/camera/space-camera-moves.md +46 -46
  210. package/lib/motion/shotcraft/upstream/references/shots/camera/steep-tilt-glide.md +52 -52
  211. package/lib/motion/shotcraft/upstream/references/shots/camera/tension-camera-moves.md +43 -43
  212. package/lib/motion/shotcraft/upstream/references/shots/camera/terminal-3d.md +42 -42
  213. package/lib/motion/shotcraft/upstream/references/shots/data/before-after-slider-scrub.md +48 -48
  214. package/lib/motion/shotcraft/upstream/references/shots/data/chart-live-moves.md +52 -52
  215. package/lib/motion/shotcraft/upstream/references/shots/data/gauge-readout-moves.md +45 -45
  216. package/lib/motion/shotcraft/upstream/references/shots/data/scroll-brake-moves.md +46 -46
  217. package/lib/motion/shotcraft/upstream/references/shots/data/timeline-travel.md +44 -44
  218. package/lib/motion/shotcraft/upstream/references/shots/effects/assemble-then-type-flyin.md +63 -63
  219. package/lib/motion/shotcraft/upstream/references/shots/effects/aurora-bloom-bg-flip.md +54 -54
  220. package/lib/motion/shotcraft/upstream/references/shots/effects/brand-frame-snap.md +58 -58
  221. package/lib/motion/shotcraft/upstream/references/shots/effects/fui-hud-moves.md +35 -35
  222. package/lib/motion/shotcraft/upstream/references/shots/effects/glow-flyline-moves.md +53 -53
  223. package/lib/motion/shotcraft/upstream/references/shots/effects/icon-performance-moves.md +42 -42
  224. package/lib/motion/shotcraft/upstream/references/shots/effects/impact-feedback.md +50 -50
  225. package/lib/motion/shotcraft/upstream/references/shots/effects/light-play-moves.md +46 -46
  226. package/lib/motion/shotcraft/upstream/references/shots/effects/radial-ripple-phone-chips.md +56 -56
  227. package/lib/motion/shotcraft/upstream/references/shots/effects/riso-print-hits.md +49 -49
  228. package/lib/motion/shotcraft/upstream/references/shots/effects/scan-bracket-sweep.md +50 -50
  229. package/lib/motion/shotcraft/upstream/references/shots/effects/scanline-annotate-focus.md +53 -53
  230. package/lib/motion/shotcraft/upstream/references/shots/effects/scanline-assemble-flyin.md +53 -53
  231. package/lib/motion/shotcraft/upstream/references/shots/effects/slam-entrance-moves.md +55 -55
  232. package/lib/motion/shotcraft/upstream/references/shots/effects/spotlight-sweep-moves.md +52 -52
  233. package/lib/motion/shotcraft/upstream/references/shots/interaction/autolayout-gap-dial.md +60 -60
  234. package/lib/motion/shotcraft/upstream/references/shots/interaction/canvas-materialize-moves.md +57 -57
  235. package/lib/motion/shotcraft/upstream/references/shots/interaction/chip-grid-single-select-blackout.md +51 -51
  236. package/lib/motion/shotcraft/upstream/references/shots/interaction/collab-cursor-moves.md +41 -41
  237. package/lib/motion/shotcraft/upstream/references/shots/interaction/glass-pill-dictation-typing.md +53 -53
  238. package/lib/motion/shotcraft/upstream/references/shots/interaction/hashtag-to-pill-materialize.md +60 -60
  239. package/lib/motion/shotcraft/upstream/references/shots/interaction/picker-carousel-feature-cycle.md +55 -55
  240. package/lib/motion/shotcraft/upstream/references/shots/interaction/segmented-thumb-hero.md +57 -57
  241. package/lib/motion/shotcraft/upstream/references/shots/interaction/theme-switch-moves.md +47 -47
  242. package/lib/motion/shotcraft/upstream/references/shots/interaction/type-and-filter.md +37 -37
  243. package/lib/motion/shotcraft/upstream/references/shots/interaction/voice-waveform-live.md +54 -54
  244. package/lib/motion/shotcraft/upstream/references/shots/opening/brand-ink-open.md +36 -36
  245. package/lib/motion/shotcraft/upstream/references/shots/opening/crane-rise-reveal.md +56 -56
  246. package/lib/motion/shotcraft/upstream/references/shots/opening/dataviz-landscape-open.md +56 -56
  247. package/lib/motion/shotcraft/upstream/references/shots/opening/fracture.md +40 -40
  248. package/lib/motion/shotcraft/upstream/references/shots/opening/icon-field-colorize.md +60 -60
  249. package/lib/motion/shotcraft/upstream/references/shots/opening/letterspace-materialize.md +57 -57
  250. package/lib/motion/shotcraft/upstream/references/shots/opening/magician-card-flourish.md +73 -73
  251. package/lib/motion/shotcraft/upstream/references/shots/opening/orbit-ring-title-open.md +87 -87
  252. package/lib/motion/shotcraft/upstream/references/shots/opening/spotlight-hero-card.md +55 -55
  253. package/lib/motion/shotcraft/upstream/references/shots/opening/stroke-segment-build.md +50 -50
  254. package/lib/motion/shotcraft/upstream/references/shots/opening/text-as-mask.md +59 -59
  255. package/lib/motion/shotcraft/upstream/references/shots/outro/grain-dissolve.md +38 -38
  256. package/lib/motion/shotcraft/upstream/references/shots/outro/logo-shrink-wordmark-lockup.md +38 -38
  257. package/lib/motion/shotcraft/upstream/references/shots/outro/neon-triple-marquee.md +59 -59
  258. package/lib/motion/shotcraft/upstream/references/shots/outro/outro-group-photo-launch.md +39 -39
  259. package/lib/motion/shotcraft/upstream/references/shots/outro/ui-strip-away-outro.md +61 -61
  260. package/lib/motion/shotcraft/upstream/references/shots/outro/ui-to-brand-morph.md +52 -52
  261. package/lib/motion/shotcraft/upstream/references/shots/rhythm/beat-cut-moves.md +50 -50
  262. package/lib/motion/shotcraft/upstream/references/shots/rhythm/beat-step-list-theme-cycle.md +66 -66
  263. package/lib/motion/shotcraft/upstream/references/shots/rhythm/panel-grid-moves.md +43 -43
  264. package/lib/motion/shotcraft/upstream/references/shots/rhythm/quad-split-parallel-scenes.md +38 -38
  265. package/lib/motion/shotcraft/upstream/references/shots/rhythm/rhythm-interrupt-moves.md +38 -38
  266. package/lib/motion/shotcraft/upstream/references/shots/rhythm/sakuga-timing-shift.md +56 -56
  267. package/lib/motion/shotcraft/upstream/references/shots/rhythm/speed-ramp-freeze.md +44 -44
  268. package/lib/motion/shotcraft/upstream/references/shots/rhythm/trailer-grammar-moves.md +38 -38
  269. package/lib/motion/shotcraft/upstream/references/shots/transition/bottom-push-stack-wipe.md +63 -63
  270. package/lib/motion/shotcraft/upstream/references/shots/transition/card-flip-reveal.md +57 -57
  271. package/lib/motion/shotcraft/upstream/references/shots/transition/card-flock-tumble.md +63 -63
  272. package/lib/motion/shotcraft/upstream/references/shots/transition/circle-match-iris.md +58 -58
  273. package/lib/motion/shotcraft/upstream/references/shots/transition/gradient-transition.md +45 -45
  274. package/lib/motion/shotcraft/upstream/references/shots/transition/line-carry-transition.md +55 -55
  275. package/lib/motion/shotcraft/upstream/references/shots/transition/mosaic-reframe.md +49 -49
  276. package/lib/motion/shotcraft/upstream/references/shots/transition/page-turn-transitions.md +42 -42
  277. package/lib/motion/shotcraft/upstream/references/shots/transition/print-texture-transitions.md +42 -42
  278. package/lib/motion/shotcraft/upstream/references/shots/transition/shot-transitions.md +45 -45
  279. package/lib/motion/shotcraft/upstream/references/shots/transition/tear-streak-transitions.md +48 -48
  280. package/lib/motion/shotcraft/upstream/references/shots/transition/transition-hidden-cut.md +55 -55
  281. package/lib/motion/shotcraft/upstream/references/shots/transition/transition-travel.md +43 -43
  282. package/lib/motion/shotcraft/upstream/references/shots/transition/white-flash-logo-simplify-cut.md +41 -41
  283. package/lib/motion/shotcraft/upstream/references/shots/transition/wipe-transitions.md +42 -42
  284. package/lib/motion/shotcraft/upstream/references/shots/typography/blur-slide.md +59 -59
  285. package/lib/motion/shotcraft/upstream/references/shots/typography/brace-expand.md +55 -55
  286. package/lib/motion/shotcraft/upstream/references/shots/typography/countdown-arc-scatter.md +65 -65
  287. package/lib/motion/shotcraft/upstream/references/shots/typography/document-typewriter-reveal.md +42 -42
  288. package/lib/motion/shotcraft/upstream/references/shots/typography/flying-words.md +64 -64
  289. package/lib/motion/shotcraft/upstream/references/shots/typography/glitch-cycle.md +64 -64
  290. package/lib/motion/shotcraft/upstream/references/shots/typography/gradient-word-sweep.md +54 -54
  291. package/lib/motion/shotcraft/upstream/references/shots/typography/lead-word-zoom-assemble.md +91 -91
  292. package/lib/motion/shotcraft/upstream/references/shots/typography/marker-underline-title.md +51 -51
  293. package/lib/motion/shotcraft/upstream/references/shots/typography/outline-word-fill.md +66 -66
  294. package/lib/motion/shotcraft/upstream/references/shots/typography/paper-title-card.md +38 -38
  295. package/lib/motion/shotcraft/upstream/references/shots/typography/pill-chip-slot-cycle-handled.md +66 -66
  296. package/lib/motion/shotcraft/upstream/references/shots/typography/pill-slot-cycle.md +58 -58
  297. package/lib/motion/shotcraft/upstream/references/shots/typography/text-column-converge.md +61 -61
  298. package/lib/motion/shotcraft/upstream/references/shots/typography/title-demote-to-label.md +64 -64
  299. package/lib/motion/shotcraft/upstream/references/shots/typography/type-assembly-moves.md +45 -45
  300. package/lib/motion/shotcraft/upstream/references/shots/typography/type-entrance-moves.md +41 -41
  301. package/lib/motion/shotcraft/upstream/references/shots/typography/type-rhythm-sync.md +51 -51
  302. package/lib/motion/shotcraft/upstream/references/shots/typography/typewriter-moves.md +42 -42
  303. package/lib/motion/shotcraft/upstream/references/shots/typography/vertical-word-roll-blur-cycle.md +63 -63
  304. package/lib/motion/shotcraft/upstream/references/shots/typography/word-relay-filmstrip.md +57 -57
  305. package/lib/motion/shotcraft/upstream/references/shots/typography/word-relay-geometry.md +75 -75
  306. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/avatar-bracket-carousel.md +59 -59
  307. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/bezier-source-converge-merge.md +67 -67
  308. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/card-stack.md +60 -60
  309. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/carousel-3d.md +66 -66
  310. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/cloner-depth-echo.md +40 -40
  311. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/deck-deal-flyin.md +45 -45
  312. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/doc-park-left-pill-deal.md +62 -62
  313. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/draw-svg-trace.md +55 -55
  314. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/element-body-moves.md +37 -37
  315. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/integration-hub-map.md +55 -55
  316. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/list-reveal.md +50 -50
  317. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/list-stack-press.md +43 -43
  318. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/neon-frame-forerun.md +55 -55
  319. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/neon-frame-orbit-drop.md +51 -51
  320. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/page-waterfall-wall.md +51 -51
  321. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/product-card-progressive-assemble.md +56 -56
  322. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/radial-wave.md +49 -49
  323. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/research-card-stack-scroll.md +57 -57
  324. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/row-embed.md +36 -36
  325. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/value-stagger-gradient.md +64 -64
  326. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/wall-reveal-moves.md +47 -47
  327. package/lib/motion/shotcraft/upstream/references/sound-design.md +170 -170
  328. package/lib/motion/shotcraft/upstream/references/workbench.md +157 -157
  329. package/lib/motion/shotcraft/upstream/template/TEMPLATE.md +103 -103
  330. package/lib/motion/shotcraft/upstream/template/THEMES.md +44 -44
  331. package/lib/motion/shotcraft/upstream/template/package.json +20 -20
  332. package/lib/motion/shotcraft/upstream/template/remotion.config.ts +6 -6
  333. package/lib/motion/shotcraft/upstream/template/src/Root.tsx +17 -17
  334. package/lib/motion/shotcraft/upstream/template/src/aifl/Caption.tsx +65 -65
  335. package/lib/motion/shotcraft/upstream/template/src/aifl/DigitRoll.tsx +48 -48
  336. package/lib/motion/shotcraft/upstream/template/src/aifl/FlashCut.tsx +24 -24
  337. package/lib/motion/shotcraft/upstream/template/src/aifl/Main.tsx +192 -192
  338. package/lib/motion/shotcraft/upstream/template/src/aifl/PaperTitleCard.tsx +111 -111
  339. package/lib/motion/shotcraft/upstream/template/src/aifl/live/PageCam.tsx +150 -150
  340. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneDetail.tsx +158 -158
  341. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneFlyIn.tsx +468 -468
  342. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneOpen.tsx +552 -552
  343. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneOutroLive.tsx +411 -411
  344. package/lib/motion/shotcraft/upstream/template/src/aifl/live/ScenePapers.tsx +200 -200
  345. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneWbr.tsx +324 -324
  346. package/lib/motion/shotcraft/upstream/template/src/aifl/live-layout.json +388 -388
  347. package/lib/motion/shotcraft/upstream/template/src/index.ts +4 -4
  348. package/lib/motion/shotcraft/upstream/template/src/themes/ThemedFilm.tsx +7 -7
  349. package/lib/motion/shotcraft/upstream/template/src/themes/manifest.tsx +68 -68
  350. package/lib/motion/shotcraft/upstream/template/src/themes/palette-assets.json +1 -1
  351. package/lib/motion/shotcraft/upstream/template/src/themes/palette-assets.ts +24 -24
  352. package/lib/motion/shotcraft/upstream/template/src/themes/palettes.json +74 -74
  353. package/lib/motion/shotcraft/upstream/template/src/themes/visual-theme.tsx +91 -91
  354. package/lib/motion/shotcraft/upstream/template/src/workbench.ts +213 -213
  355. package/lib/motion/shotcraft/upstream/template/tsconfig.json +15 -15
  356. package/lib/motion/style-frames.js +306 -306
  357. package/lib/motion/sync.js +214 -214
  358. package/lib/motion-project.js +105 -105
  359. package/lib/motion-render-worker.js +174 -174
  360. package/lib/routing/router.js +222 -222
  361. package/lib/routing/vendor/README.md +96 -96
  362. package/lib/routing/vendor/libavoid-routing.js +753 -753
  363. package/lib/routing/vendor/libavoid.min.js +59 -59
  364. package/lib/video-trace-pool.js +128 -128
  365. package/package.json +1 -1
  366. package/LICENSE +0 -4175
@@ -1,60 +1,60 @@
1
- ---
2
- name: autolayout-gap-dial
3
- 一句话: 间距拨盘驱动布局——一排链接块带框选描边+缝隙间距标注,徽章数字逐格跳动、块被参数实时推开再弹簧回弹归位;"参数驱动布局"的可视化
4
- 适用: 设计工具/低代码产品的"改一个数、界面跟着动"卖点镜头;"用设计工具语义做包装"的品类语言
5
- 时长: ~5s(150f:框选入场 + 预备回收 10f + 拉松 34f + 屏息 hold 20f + 弹簧回弹 + 落定 hold)
6
- 能量: 中(工具理性型,爽点在数字与位移的锁定同步)
7
- ---
8
-
9
- ## 意图
10
- "参数改了、UI 变了"是设计工具的核心承诺,但通常拍成"点面板→切
11
- 结果"的前后对比,因果被剪掉了。本卡把因果拍成连续镜头:间距徽章
12
- 数字逐格跳,链接块**同帧**被推开,测量线实时拉长——数字就是缰绳,
13
- 布局就是马。框选描边+8 手柄+间距标注全是设计工具的母语,观众一眼
14
- 认出"这是在工具里调参数"。回程故意用欠阻尼弹簧过冲(缩到比起点
15
- 更紧再回稳),把"归位"做成一次有弹性的收尾。与 type-and-filter
16
- 分工:那是"输入内容→列表收敛"的检索因果,本卡是"拨数值→几何
17
- 重排"的参数因果。
18
-
19
- ## 动效核心
20
- - **gap 一个参数管全部**:块位置由 gap 重算(整排保持居中)、测量
21
- 线宽=gap、徽章钉缝隙中心、顶部大读数与拨盘刻度尺——所有元素从同一数值派生,锁定同步
22
- 是本卡的全部说服力
23
- - 参数曲线:先预备回收 12→6(10f swift,"往回收再冲出去");去程 6→104 走 34f swift
24
- (不对称 in-out:起步稍快、落点很软);屏息 hold 20f;回程 spring(damping 9, stiffness 80,
25
- mass 1.1) 故意过冲到起点以下再回稳(过冲段 ×0.45 压缩:104→约 7 再回 12,gap 永不为负)
26
- - 读数做主角:顶部 196px 细体 tabular 数值 + px 单位 + 760px 拨盘刻度尺(刻度随 gap 横滚过中心
27
- 金针);拨动中读数由白转测量金(带 ~6f 余温),松手回稳后褪回白;数值步进 2 显示,
28
- 跳数 scale 脉冲 1+0.06·|sin| × 速度门限
29
- - 导航块按自身速度做横向运动模糊(块速度 = (i−2)·dgap/dt,外侧块拖影最长),静止为 0
30
- - 框选描边 spring 从外侧 26px 收拢,8 手柄 1.2f 错峰弹出,图层名旁实时显示整排尺寸;
31
- 间距标注 = 虚线延长线 ×2 + 测量线带端刺 + 跟随徽章,错峰升起
32
- - demo 美术:graphite 暗场,选择白 + 测量金两色语义(画面里只有被拨动的数是有颜色的);
33
- 相机整段极缓推近 2.5%
34
-
35
- ## 参数表
36
- | 参数 | 典型值 | 调节手感 |
37
- |------|--------|----------|
38
- | gap 幅度 | 12→104px(原片 20→24,demo 按裁决加大) | 原片幅度肉眼几乎不可感——可感性判例:看不出就加大做极端版;实战至少 4–5 倍行程 |
39
- | 预备 | 12→6,10f swift | 先收后放给主动作蓄力;回收 >30% 读作数值抖动 |
40
- | 去程时长 | 34f swift | 快了读作抽搐;慢过 60f 数字跳动和位移的绑定感松掉 |
41
- | 屏息 hold | 20f | 让观众读清"最松"的那一帧;<12f 读不到峰值 |
42
- | 回程弹簧 | damping 9 → 过冲到起点以下再回稳(过冲段 ×0.45,最紧约 7px) | 过冲是"松手回弹"的手感来源;damping ≥13 直落可惜 |
43
- | 数字步进 | 步进 2 + 跳数 scale 脉冲 0.06 × 速度门限 | 逐 1 跳太碎读作毫秒表;步进是"拨盘咔哒"的颗粒感 |
44
- | 运动模糊 | 横向 stdDeviation = min(9, |块速度|×0.5) | 只在拨动段出现;全程常驻会让块字读不清 |
45
- | 标注几何 | 延长线 58px、测量线钉块底 +74px、徽章钉缝隙中心 | 标注必须随 gap 实时重算——任何一处滞后即穿帮 |
46
- | 块宽 | 不等宽(252/206/278/268/220,高 120) | 等宽读作示意图;不等宽才像真导航 |
47
-
48
- ## 已知坑
49
- - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
50
- 首次实战须以真实素材回验
51
- - 数字与位移必须同源同帧:徽章显示值和块坐标都从同一个 gap 派生,分开动画哪怕差 1f,"参数驱动"的信任即碎
52
- - demo 顶部大读数 + 拨盘刻度尺与布局同源同帧,实战里若画面已有真实工具面板(检查器数值框)就删掉大读数,别双重报数
53
- - 同族扩展:gap 只是一维,radius/padding/rotation 同语法可换参数——但一镜只拨一个参数,两个以上读作乱调
54
- - 框选描边+手柄是"设计工具语义"借用(figma/framer 母语),非设计工具受众的片子慎用,读不懂框选就只剩块在挪
55
- - 声音:徽章每跳一格一声极轻 tick(拨盘咔哒),回弹落定一声 pop;tick 密度跟步进走
56
-
57
- ## 参考实现
58
- demos/interaction/autolayout-gap-dial/
59
- (AutolayoutGapDial.tsx)
60
- 原片出处:framer-ai 4.5–5.5s
1
+ ---
2
+ name: autolayout-gap-dial
3
+ 一句话: 间距拨盘驱动布局——一排链接块带框选描边+缝隙间距标注,徽章数字逐格跳动、块被参数实时推开再弹簧回弹归位;"参数驱动布局"的可视化
4
+ 适用: 设计工具/低代码产品的"改一个数、界面跟着动"卖点镜头;"用设计工具语义做包装"的品类语言
5
+ 时长: ~5s(150f:框选入场 + 预备回收 10f + 拉松 34f + 屏息 hold 20f + 弹簧回弹 + 落定 hold)
6
+ 能量: 中(工具理性型,爽点在数字与位移的锁定同步)
7
+ ---
8
+
9
+ ## 意图
10
+ "参数改了、UI 变了"是设计工具的核心承诺,但通常拍成"点面板→切
11
+ 结果"的前后对比,因果被剪掉了。本卡把因果拍成连续镜头:间距徽章
12
+ 数字逐格跳,链接块**同帧**被推开,测量线实时拉长——数字就是缰绳,
13
+ 布局就是马。框选描边+8 手柄+间距标注全是设计工具的母语,观众一眼
14
+ 认出"这是在工具里调参数"。回程故意用欠阻尼弹簧过冲(缩到比起点
15
+ 更紧再回稳),把"归位"做成一次有弹性的收尾。与 type-and-filter
16
+ 分工:那是"输入内容→列表收敛"的检索因果,本卡是"拨数值→几何
17
+ 重排"的参数因果。
18
+
19
+ ## 动效核心
20
+ - **gap 一个参数管全部**:块位置由 gap 重算(整排保持居中)、测量
21
+ 线宽=gap、徽章钉缝隙中心、顶部大读数与拨盘刻度尺——所有元素从同一数值派生,锁定同步
22
+ 是本卡的全部说服力
23
+ - 参数曲线:先预备回收 12→6(10f swift,"往回收再冲出去");去程 6→104 走 34f swift
24
+ (不对称 in-out:起步稍快、落点很软);屏息 hold 20f;回程 spring(damping 9, stiffness 80,
25
+ mass 1.1) 故意过冲到起点以下再回稳(过冲段 ×0.45 压缩:104→约 7 再回 12,gap 永不为负)
26
+ - 读数做主角:顶部 196px 细体 tabular 数值 + px 单位 + 760px 拨盘刻度尺(刻度随 gap 横滚过中心
27
+ 金针);拨动中读数由白转测量金(带 ~6f 余温),松手回稳后褪回白;数值步进 2 显示,
28
+ 跳数 scale 脉冲 1+0.06·|sin| × 速度门限
29
+ - 导航块按自身速度做横向运动模糊(块速度 = (i−2)·dgap/dt,外侧块拖影最长),静止为 0
30
+ - 框选描边 spring 从外侧 26px 收拢,8 手柄 1.2f 错峰弹出,图层名旁实时显示整排尺寸;
31
+ 间距标注 = 虚线延长线 ×2 + 测量线带端刺 + 跟随徽章,错峰升起
32
+ - demo 美术:graphite 暗场,选择白 + 测量金两色语义(画面里只有被拨动的数是有颜色的);
33
+ 相机整段极缓推近 2.5%
34
+
35
+ ## 参数表
36
+ | 参数 | 典型值 | 调节手感 |
37
+ |------|--------|----------|
38
+ | gap 幅度 | 12→104px(原片 20→24,demo 按裁决加大) | 原片幅度肉眼几乎不可感——可感性判例:看不出就加大做极端版;实战至少 4–5 倍行程 |
39
+ | 预备 | 12→6,10f swift | 先收后放给主动作蓄力;回收 >30% 读作数值抖动 |
40
+ | 去程时长 | 34f swift | 快了读作抽搐;慢过 60f 数字跳动和位移的绑定感松掉 |
41
+ | 屏息 hold | 20f | 让观众读清"最松"的那一帧;<12f 读不到峰值 |
42
+ | 回程弹簧 | damping 9 → 过冲到起点以下再回稳(过冲段 ×0.45,最紧约 7px) | 过冲是"松手回弹"的手感来源;damping ≥13 直落可惜 |
43
+ | 数字步进 | 步进 2 + 跳数 scale 脉冲 0.06 × 速度门限 | 逐 1 跳太碎读作毫秒表;步进是"拨盘咔哒"的颗粒感 |
44
+ | 运动模糊 | 横向 stdDeviation = min(9, |块速度|×0.5) | 只在拨动段出现;全程常驻会让块字读不清 |
45
+ | 标注几何 | 延长线 58px、测量线钉块底 +74px、徽章钉缝隙中心 | 标注必须随 gap 实时重算——任何一处滞后即穿帮 |
46
+ | 块宽 | 不等宽(252/206/278/268/220,高 120) | 等宽读作示意图;不等宽才像真导航 |
47
+
48
+ ## 已知坑
49
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
50
+ 首次实战须以真实素材回验
51
+ - 数字与位移必须同源同帧:徽章显示值和块坐标都从同一个 gap 派生,分开动画哪怕差 1f,"参数驱动"的信任即碎
52
+ - demo 顶部大读数 + 拨盘刻度尺与布局同源同帧,实战里若画面已有真实工具面板(检查器数值框)就删掉大读数,别双重报数
53
+ - 同族扩展:gap 只是一维,radius/padding/rotation 同语法可换参数——但一镜只拨一个参数,两个以上读作乱调
54
+ - 框选描边+手柄是"设计工具语义"借用(figma/framer 母语),非设计工具受众的片子慎用,读不懂框选就只剩块在挪
55
+ - 声音:徽章每跳一格一声极轻 tick(拨盘咔哒),回弹落定一声 pop;tick 密度跟步进走
56
+
57
+ ## 参考实现
58
+ demos/interaction/autolayout-gap-dial/
59
+ (AutolayoutGapDial.tsx)
60
+ 原片出处:framer-ai 4.5–5.5s
@@ -1,57 +1,57 @@
1
- ---
2
- name: canvas-materialize-moves
3
- 一句话: 内容"物化上画布"两式——panel-to-canvas 行倒卡(面板表格行沿弧线飞出、跨容器变形成画布卡片)与 diagram-cascade 级联生成树(prompt 打字后节点逐层弹出、连线先于节点生长)
4
- 适用: AI/协作工具"生成结果落到画布上"的叙事段落;A 式讲"已有内容换了个存在形态",B 式讲"从一句话长出一棵结构"
5
- 时长: A ~5s(150f)/ B ~6s(180f)
6
- 能量: 中
7
- 标签: ui-entrance
8
- ---
9
-
10
- ## 意图
11
- 库内生成叙事只有"窗口内逐字写出"(document-typewriter-reveal 文档自己写出来)
12
- 和"图表自己活起来"(chart-live-moves),没有词管**内容离开容器、在
13
- 开放画布上物化成新实体**。本卡补这一块:画布是舞台,生成物是登台的
14
- 演员。A 式的命门是跨容器形态迁移——同一条内容从"行"变成"卡",位置
15
- /宽高/圆角/内容布局在一条 spring 上同步插值,观众读到"是它飞过去
16
- 变的"而不是"删一个加一个";B 式的命门是级联时序——线牵出节点、层
17
- 喂出层,结构感来自先后而非同时。
18
-
19
- ## 两式选型
20
- | 式 | 做法 | 适用 |
21
- |----|------|------|
22
- | A panel-to-canvas 行倒卡 | 光标逐个点复选框打勾→按钮按下→三行先拔起再沿上抛弧线错峰飞出,途中行形态与卡形态交叉淡化,落位带倾角与落地压扁;面板行槽塌陷成虚线留白 | 批量导入/一键上板:内容从列表态迁移为空间态 |
23
- | B diagram-cascade 级联生成树 | prompt 逐字敲出(敲完描边确认、提交后描边流光=生成中)→prompt 底部滴线接根(渐变描边主角)→2 子→4 孙逐层从顶端口拉出,折角连线带彗星头先行 10f,相机从 prompt 特写拉远揭示全树,成树后整棵呼吸一拍 | AI 生成结构图/脑图/ER 图:一句话长出一棵树 |
24
-
25
- ## 参数表
26
- | 参数 | 典型值 | 调节手感 |
27
- |------|--------|----------|
28
- | A 打勾 | 14/24/34f 逐个(光标 swift 弧线逐个点中),spring(damping 11, stiffness 300) pop + 勾线 7f 描出 | 打勾是"预告",全删观众不知道要飞谁;同帧齐勾读作静态已选 |
29
- | A 起飞错峰 | 按钮 52f 按下,三行 56/62/68f 拔起(4f:放大 2% + 阴影加深)后起飞(错峰 6f) | 同帧齐飞读作复制粘贴;错峰 >12f 尾行像掉队;不拔起直接飞读作被删除 |
30
- | A 飞行插值 | spring(damping 17, stiffness 95, mass 0.9);位置走二次贝塞尔,中点上抬 220px;宽高晚 3f 收敛 | 直线飞读作平移不读作"倒出来";中点抬 <100px 弧线感消失;尺寸与位置同步则少了"父先子后"的重量 |
31
- | A 形态迁移 | 行 626×104 → 卡 486×300,圆角 18→24,rowOp 在 us 0.08→0.4 灭、cardOp 在 0.5→0.8 亮 | 两套内容交叉淡化必须错开——中段两态同显即穿帮 |
32
- | A 落位倾角 | −2.5 / 1.8 / −1.2°,落地 6f scaleY 0.97 压扁回弹 | 全正读作网格排版;>4° 读作散落故障 |
33
- | A 速度模糊 | SpeedBlur amount 0.32、max 14(按弧线速度方向) | 只在飞行段;落定后归零 |
34
- | B 打字 | 每字 0.95–1.2f 不均匀、空格停 1.7f;敲完 prompt 条描边转紫确认,+4f 按下提交键 | 匀速打字读作机器;无确认态则"敲完"与"开始生成"之间没有因果扣 |
35
- | B 相机 | 开场 1.3× 推近 prompt 居中;提交后 72f smooth 拉远到 1.0 | 不推近则前 2s 画面下半空着;拉远要与级联同时进行,树长在镜头"退"出来的空间里 |
36
- | B 级联时序 | 根 = 提交 +14f,层间隔 22f、同层兄弟错峰 5f;节点 spring(damping 14, stiffness 190),缩放原点 = 顶边中点(从端口拉出) | 层间隔 <12f 读作一次性全出;兄弟同帧读作复制;中心缩放读作弹窗 |
37
- | B 连线先行 | SVG 圆弧折角 path(父底端口→中线→子顶端口)描线 16f ease-out,比子节点早 10f;线头一颗彗星光点 | "线牵出节点"是因果感来源;线晚于节点就成了补笔 |
38
- | B 收尾呼吸 | 末节点 +22f 起,以树心为原点 scale 1→1.03→1(smooth,28f),背后极光同步亮一档 | 呼吸是"成树"的句号;>1.06 读作缩放故障 |
39
-
40
- ## 已知坑
41
- - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
42
- 首次实战须以真实素材回验
43
- - 与 chart-live-moves 分工:那卡是数据图表自身的活性(流线/点阵/爆轴),
44
- B 式是结构图的**诞生过程**——图活着≠图正在被生成,别拿 B 式去演已有图表
45
- - A 式行槽必须塌陷成虚线留白——行飞走后原位完好如初,"迁移"就退化成
46
- "复制",语义全失
47
- - A 式交叉淡化窗口(rowOp 灭于 u≈0.45 前、cardOp 亮于其后)是防穿帮的
48
- 命门;spring 有过冲,u 可能短暂 >1,内容 opacity 都要 clamp
49
- - B 式呼吸原点必须是树的视觉重心(demo 960,620)而非画面中心,
50
- 不然读作整屏 zoom
51
- - B 式彗星头靠路径弧长取点:折角用 SVG 圆弧(A 命令)而非二次贝塞尔,长度才能解析算准,
52
- 线头与描线端点不脱节
53
-
54
- ## 参考实现
55
- demos/interaction/canvas-materialize-moves/
56
- (DiagramCascadeBuild.tsx / PanelToCanvasMaterialize.tsx)
57
- 原片出处:miro-promo 84–92s(A 式)/ 104–116s(B 式)
1
+ ---
2
+ name: canvas-materialize-moves
3
+ 一句话: 内容"物化上画布"两式——panel-to-canvas 行倒卡(面板表格行沿弧线飞出、跨容器变形成画布卡片)与 diagram-cascade 级联生成树(prompt 打字后节点逐层弹出、连线先于节点生长)
4
+ 适用: AI/协作工具"生成结果落到画布上"的叙事段落;A 式讲"已有内容换了个存在形态",B 式讲"从一句话长出一棵结构"
5
+ 时长: A ~5s(150f)/ B ~6s(180f)
6
+ 能量: 中
7
+ 标签: ui-entrance
8
+ ---
9
+
10
+ ## 意图
11
+ 库内生成叙事只有"窗口内逐字写出"(document-typewriter-reveal 文档自己写出来)
12
+ 和"图表自己活起来"(chart-live-moves),没有词管**内容离开容器、在
13
+ 开放画布上物化成新实体**。本卡补这一块:画布是舞台,生成物是登台的
14
+ 演员。A 式的命门是跨容器形态迁移——同一条内容从"行"变成"卡",位置
15
+ /宽高/圆角/内容布局在一条 spring 上同步插值,观众读到"是它飞过去
16
+ 变的"而不是"删一个加一个";B 式的命门是级联时序——线牵出节点、层
17
+ 喂出层,结构感来自先后而非同时。
18
+
19
+ ## 两式选型
20
+ | 式 | 做法 | 适用 |
21
+ |----|------|------|
22
+ | A panel-to-canvas 行倒卡 | 光标逐个点复选框打勾→按钮按下→三行先拔起再沿上抛弧线错峰飞出,途中行形态与卡形态交叉淡化,落位带倾角与落地压扁;面板行槽塌陷成虚线留白 | 批量导入/一键上板:内容从列表态迁移为空间态 |
23
+ | B diagram-cascade 级联生成树 | prompt 逐字敲出(敲完描边确认、提交后描边流光=生成中)→prompt 底部滴线接根(渐变描边主角)→2 子→4 孙逐层从顶端口拉出,折角连线带彗星头先行 10f,相机从 prompt 特写拉远揭示全树,成树后整棵呼吸一拍 | AI 生成结构图/脑图/ER 图:一句话长出一棵树 |
24
+
25
+ ## 参数表
26
+ | 参数 | 典型值 | 调节手感 |
27
+ |------|--------|----------|
28
+ | A 打勾 | 14/24/34f 逐个(光标 swift 弧线逐个点中),spring(damping 11, stiffness 300) pop + 勾线 7f 描出 | 打勾是"预告",全删观众不知道要飞谁;同帧齐勾读作静态已选 |
29
+ | A 起飞错峰 | 按钮 52f 按下,三行 56/62/68f 拔起(4f:放大 2% + 阴影加深)后起飞(错峰 6f) | 同帧齐飞读作复制粘贴;错峰 >12f 尾行像掉队;不拔起直接飞读作被删除 |
30
+ | A 飞行插值 | spring(damping 17, stiffness 95, mass 0.9);位置走二次贝塞尔,中点上抬 220px;宽高晚 3f 收敛 | 直线飞读作平移不读作"倒出来";中点抬 <100px 弧线感消失;尺寸与位置同步则少了"父先子后"的重量 |
31
+ | A 形态迁移 | 行 626×104 → 卡 486×300,圆角 18→24,rowOp 在 us 0.08→0.4 灭、cardOp 在 0.5→0.8 亮 | 两套内容交叉淡化必须错开——中段两态同显即穿帮 |
32
+ | A 落位倾角 | −2.5 / 1.8 / −1.2°,落地 6f scaleY 0.97 压扁回弹 | 全正读作网格排版;>4° 读作散落故障 |
33
+ | A 速度模糊 | SpeedBlur amount 0.32、max 14(按弧线速度方向) | 只在飞行段;落定后归零 |
34
+ | B 打字 | 每字 0.95–1.2f 不均匀、空格停 1.7f;敲完 prompt 条描边转紫确认,+4f 按下提交键 | 匀速打字读作机器;无确认态则"敲完"与"开始生成"之间没有因果扣 |
35
+ | B 相机 | 开场 1.3× 推近 prompt 居中;提交后 72f smooth 拉远到 1.0 | 不推近则前 2s 画面下半空着;拉远要与级联同时进行,树长在镜头"退"出来的空间里 |
36
+ | B 级联时序 | 根 = 提交 +14f,层间隔 22f、同层兄弟错峰 5f;节点 spring(damping 14, stiffness 190),缩放原点 = 顶边中点(从端口拉出) | 层间隔 <12f 读作一次性全出;兄弟同帧读作复制;中心缩放读作弹窗 |
37
+ | B 连线先行 | SVG 圆弧折角 path(父底端口→中线→子顶端口)描线 16f ease-out,比子节点早 10f;线头一颗彗星光点 | "线牵出节点"是因果感来源;线晚于节点就成了补笔 |
38
+ | B 收尾呼吸 | 末节点 +22f 起,以树心为原点 scale 1→1.03→1(smooth,28f),背后极光同步亮一档 | 呼吸是"成树"的句号;>1.06 读作缩放故障 |
39
+
40
+ ## 已知坑
41
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
42
+ 首次实战须以真实素材回验
43
+ - 与 chart-live-moves 分工:那卡是数据图表自身的活性(流线/点阵/爆轴),
44
+ B 式是结构图的**诞生过程**——图活着≠图正在被生成,别拿 B 式去演已有图表
45
+ - A 式行槽必须塌陷成虚线留白——行飞走后原位完好如初,"迁移"就退化成
46
+ "复制",语义全失
47
+ - A 式交叉淡化窗口(rowOp 灭于 u≈0.45 前、cardOp 亮于其后)是防穿帮的
48
+ 命门;spring 有过冲,u 可能短暂 >1,内容 opacity 都要 clamp
49
+ - B 式呼吸原点必须是树的视觉重心(demo 960,620)而非画面中心,
50
+ 不然读作整屏 zoom
51
+ - B 式彗星头靠路径弧长取点:折角用 SVG 圆弧(A 命令)而非二次贝塞尔,长度才能解析算准,
52
+ 线头与描线端点不脱节
53
+
54
+ ## 参考实现
55
+ demos/interaction/canvas-materialize-moves/
56
+ (DiagramCascadeBuild.tsx / PanelToCanvasMaterialize.tsx)
57
+ 原片出处:miro-promo 84–92s(A 式)/ 104–116s(B 式)
@@ -1,51 +1,51 @@
1
- ---
2
- name: chip-grid-single-select-blackout
3
- 一句话: 五个选项 chip 以 3+2 居中排布逐个淡入;选中帧先插一帧灰色按压块,紧接数帧内底色变墨黑、文字变白并做 1→1.04→1 极轻回弹,其余 chip 淡到 18% 但位置锁死;随后余项归零,黑 chip 上移收窄,下方升起结算价格
4
- 适用: 单选/套餐/档位选择的交互演示;"选了它之后会怎样"的因果镜头;价格/参数结算类链路
5
- 时长: 约5.5s(165f@30fps)
6
- 能量: 中低(唯一的爆点是那一帧灰闪,其余都在收)
7
- ---
8
-
9
- ## 意图
10
- 一帧灰闪 + 三帧反黑,是把真实 UI 的 `:active → :selected` 两级状态
11
- 拆开演。观众看到的是"手指按下"再"系统确认",而不是一次渐变。其余
12
- chip 降到 18% 而**位置绝不移动**:一旦重排,观众会以为页面刷新了,
13
- "单选"的语义就丢了。
14
-
15
- ## 动效核心
16
- - 5 个 chip 分 3+2 两行居中(1080p 原生:高 96、圆角 48、gap 22、36px 字,固定宽 346/364/476/236/330),
17
- 8f 起按 3f 间隔 snappy 升起;上方眉题 + 84px 问句先到
18
- - 光标 26–54f 从右下走 swift 弧线移到目标 chip(因果预告),56f 按下
19
- - **1 帧按压灰闪**:仅 FS=56 这一帧,`rgba(120,128,146,.5)` 覆盖层
20
- - **反黑**:57→62f linear(5 帧)驱动背景 白→墨黑 `#0b1020`、描边、文字 墨→白,同时 ✓ 从 0 宽长出
21
- - **按压回弹**:`sc = 1 + sin(pr·π)*0.04`,pr 走 57→66f——正弦保证起止都精确回到 1
22
- - **余项降级**:57→66f outQuad 把 opacity 压到 18%,`transform` 恒为 `none`
23
- - 主角光:反黑后 chip 底下亮一圈极淡钴蓝落地光(只给主角一次),阴影随抬升变深变大
24
- - **收束**:101f 起(选中后≈1.5s)余项 9f 归零;黑 chip 18f smooth 上移到 y=330、scale→0.88、
25
- 横向回中线(几何由固定宽算出,不运行时测量);问句同时上移淡出让位
26
- - 结算:108f 原价 $42.00 升起 → 118f 一道划线划掉并退灰 → 116f 起现价 $34.44 逐字升起(180px)
27
- → 128f 钴蓝「Save 18% · billed $413.28 yearly」overshoot 弹出;134–165f hold
28
-
29
- ## 参数表
30
- | 参数 | 典型值 | 调节手感 |
31
- |------|--------|----------|
32
- | 入场 | 8f 起、间隔 3f、各 16f snappy | 5 个 chip 在 1s 内铺完,把时间留给选中段 |
33
- | 选中时刻 | FS = 56f(约全片 1/3) | 前段读题、后段看结果;早于 40f 观众还没读完选项 |
34
- | 灰闪 | 1 帧,rgba(120,128,146,.5) | **就一帧**:给 2 帧以上就读作 hover 高亮,不是按下 |
35
- | 反黑 | 57→62f linear(5f) | linear 是故意的:加 ease 会让"变黑"这件事有过程感,太软 |
36
- | 按压回弹 | 1 + sin(pr·π)·0.04,跨 9f | 0.04 是极轻;到 0.1 就成了弹跳按钮,抢戏 |
37
- | 余项降级 | 降到 18%,位置 transform:none | **位置锁死是命门**:降到 18% 仍在原位,才读作"没被选中"而非"消失了" |
38
- | 收束时刻 | 101f(选中后≈1.5s)起,18f smooth in-out | 1.5s 是让观众看清选中态的最短驻留;缩到 0.5s 就赶 |
39
- | 上移收窄 | 到 y=330、scale→0.88,横向补回中线 | 不补中线的话上移后会偏在左边,读作"被拖走";缩过 0.85 字低于 32px |
40
- | 结算顺序 | 原价 → 划线 → 现价 → 省额胶囊,间隔 8–10f | 先给旧价再划掉,观众才读得到"变便宜了"的因果 |
41
-
42
- ## 已知坑
43
- - 选中 chip 的回中线位移由固定 chip 宽算出(不运行时测量 offsetWidth)——改文案时要同步改宽度表,
44
- 否则字溢出或上移后偏离中线
45
- - 其余 chip 的 `transform` 必须显式写 `'none'`,不能靠 flex 自动重排,否则余项归零时会横向滑动
46
- - 占位内容:5 条计费周期选项名(Annual billing … Nonprofit rate)+ 结算「$42.00 → $34.44/mo、Save 18%」,
47
- 落地全部替换;选项名过长会撑破固定宽(第三条 "Two-year commitment" 是长名压力测试)
48
-
49
- ## 参考实现
50
- demos/interaction/chip-grid-single-select-blackout/
51
- (ChipGridSingleSelectBlackout.tsx)
1
+ ---
2
+ name: chip-grid-single-select-blackout
3
+ 一句话: 五个选项 chip 以 3+2 居中排布逐个淡入;选中帧先插一帧灰色按压块,紧接数帧内底色变墨黑、文字变白并做 1→1.04→1 极轻回弹,其余 chip 淡到 18% 但位置锁死;随后余项归零,黑 chip 上移收窄,下方升起结算价格
4
+ 适用: 单选/套餐/档位选择的交互演示;"选了它之后会怎样"的因果镜头;价格/参数结算类链路
5
+ 时长: 约5.5s(165f@30fps)
6
+ 能量: 中低(唯一的爆点是那一帧灰闪,其余都在收)
7
+ ---
8
+
9
+ ## 意图
10
+ 一帧灰闪 + 三帧反黑,是把真实 UI 的 `:active → :selected` 两级状态
11
+ 拆开演。观众看到的是"手指按下"再"系统确认",而不是一次渐变。其余
12
+ chip 降到 18% 而**位置绝不移动**:一旦重排,观众会以为页面刷新了,
13
+ "单选"的语义就丢了。
14
+
15
+ ## 动效核心
16
+ - 5 个 chip 分 3+2 两行居中(1080p 原生:高 96、圆角 48、gap 22、36px 字,固定宽 346/364/476/236/330),
17
+ 8f 起按 3f 间隔 snappy 升起;上方眉题 + 84px 问句先到
18
+ - 光标 26–54f 从右下走 swift 弧线移到目标 chip(因果预告),56f 按下
19
+ - **1 帧按压灰闪**:仅 FS=56 这一帧,`rgba(120,128,146,.5)` 覆盖层
20
+ - **反黑**:57→62f linear(5 帧)驱动背景 白→墨黑 `#0b1020`、描边、文字 墨→白,同时 ✓ 从 0 宽长出
21
+ - **按压回弹**:`sc = 1 + sin(pr·π)*0.04`,pr 走 57→66f——正弦保证起止都精确回到 1
22
+ - **余项降级**:57→66f outQuad 把 opacity 压到 18%,`transform` 恒为 `none`
23
+ - 主角光:反黑后 chip 底下亮一圈极淡钴蓝落地光(只给主角一次),阴影随抬升变深变大
24
+ - **收束**:101f 起(选中后≈1.5s)余项 9f 归零;黑 chip 18f smooth 上移到 y=330、scale→0.88、
25
+ 横向回中线(几何由固定宽算出,不运行时测量);问句同时上移淡出让位
26
+ - 结算:108f 原价 $42.00 升起 → 118f 一道划线划掉并退灰 → 116f 起现价 $34.44 逐字升起(180px)
27
+ → 128f 钴蓝「Save 18% · billed $413.28 yearly」overshoot 弹出;134–165f hold
28
+
29
+ ## 参数表
30
+ | 参数 | 典型值 | 调节手感 |
31
+ |------|--------|----------|
32
+ | 入场 | 8f 起、间隔 3f、各 16f snappy | 5 个 chip 在 1s 内铺完,把时间留给选中段 |
33
+ | 选中时刻 | FS = 56f(约全片 1/3) | 前段读题、后段看结果;早于 40f 观众还没读完选项 |
34
+ | 灰闪 | 1 帧,rgba(120,128,146,.5) | **就一帧**:给 2 帧以上就读作 hover 高亮,不是按下 |
35
+ | 反黑 | 57→62f linear(5f) | linear 是故意的:加 ease 会让"变黑"这件事有过程感,太软 |
36
+ | 按压回弹 | 1 + sin(pr·π)·0.04,跨 9f | 0.04 是极轻;到 0.1 就成了弹跳按钮,抢戏 |
37
+ | 余项降级 | 降到 18%,位置 transform:none | **位置锁死是命门**:降到 18% 仍在原位,才读作"没被选中"而非"消失了" |
38
+ | 收束时刻 | 101f(选中后≈1.5s)起,18f smooth in-out | 1.5s 是让观众看清选中态的最短驻留;缩到 0.5s 就赶 |
39
+ | 上移收窄 | 到 y=330、scale→0.88,横向补回中线 | 不补中线的话上移后会偏在左边,读作"被拖走";缩过 0.85 字低于 32px |
40
+ | 结算顺序 | 原价 → 划线 → 现价 → 省额胶囊,间隔 8–10f | 先给旧价再划掉,观众才读得到"变便宜了"的因果 |
41
+
42
+ ## 已知坑
43
+ - 选中 chip 的回中线位移由固定 chip 宽算出(不运行时测量 offsetWidth)——改文案时要同步改宽度表,
44
+ 否则字溢出或上移后偏离中线
45
+ - 其余 chip 的 `transform` 必须显式写 `'none'`,不能靠 flex 自动重排,否则余项归零时会横向滑动
46
+ - 占位内容:5 条计费周期选项名(Annual billing … Nonprofit rate)+ 结算「$42.00 → $34.44/mo、Save 18%」,
47
+ 落地全部替换;选项名过长会撑破固定宽(第三条 "Two-year commitment" 是长名压力测试)
48
+
49
+ ## 参考实现
50
+ demos/interaction/chip-grid-single-select-blackout/
51
+ (ChipGridSingleSelectBlackout.tsx)
@@ -1,41 +1,41 @@
1
- ---
2
- name: collab-cursor-moves
3
- 一句话: 协作光标当演员——cast-ensemble 五光标群演氛围层(错峰飞入+正弦漂移+打字 cameo+聚拢围观)
4
- 适用: 协作/多人主题的画布场景,给画面铺"团队在场"体温
5
- 时长: A ~5.2s(156f)
6
- 能量: A 低中(氛围层,可垫任何时长)
7
- ---
8
-
9
- ## 意图
10
- 库内光标一直是"操作工具"(cursor-flyover 的光标
11
- 是单光标点击导览)。本卡把带身份名牌的协作光标升格成**演员**:
12
- 五枚光标错峰入场后持续漂移当氛围粒子,"团队在场"感全靠它,其中一枚
13
- 还能停下来打字(cameo 戏份)。SVG 光标+名牌 chip 成本极低、叙事密度
14
- 极高,是"协作"主题最便宜的视觉论证。
15
-
16
- ## 式
17
- | 式 | 做法 | 适用 |
18
- |----|------|------|
19
- | A cast-ensemble | 5 枚具名彩色光标错峰 spring 飞入 video-shotcraft 的分镜白板(头像组同帧弹出、便签带作者色)→双频正弦漂移驻场→一枚挂在插入点上打出简报卡标题→结尾全员 smooth 聚拢围观 | 画布/白板类产品全片氛围层;主内容之外需要"别人也在"的背景活性 |
20
-
21
- ## 参数表
22
- | 参数 | 典型值 | 调节手感 |
23
- |------|--------|----------|
24
- | A 入场 | 5 枚 delay 2/7/11/16/22f 错峰,spring(damping 15, stiffness 80);名牌晚 10f 淡入+上浮 12px;右上头像组同帧弹出(槽宽随弹出长) | 名牌跟光标同帧出现读作贴纸;随减速淡入才是"人到了自报家门" |
25
- | A 漂移 | 双频正弦叠加(0.055/0.021 rad/f,每枚相位不同),幅度 ±40/26px | 单频正弦读作钟摆;双频不同相才是"人手的随机" |
26
- | A 打字 cameo | 48–104f 打 29 字(1.6–2.4f/字确定性抖动,空格后多停 0.9f);光标箭头挂在行内插入点锚点上,换行也跟着走;打字时手稳(漂移压到 0) | 箭头和插入点分开算位置必错位;行内零宽锚点让浏览器排版替你算 |
27
- | A 聚拢 | 98f 起 28f smooth 到卡片四周围观位(不压标题和眉题),漂移幅度衰减到 25% 保留 | 聚拢后漂移不能归零——完全静止的光标群读作死机 |
28
-
29
- ## 已知坑
30
- - demo 在手搓画面上调校通过(瓷白白板 + 便签 + 简报卡,板名挂 video-shotcraft 标志,标题 "Ship a launch film by Friday.")——参数是调校起点非实战定稿,
31
- 首次实战须以真实素材回验
32
- - 名牌颜色=身份编码,全片必须一致(蓝=Designer 就一直蓝);中途换色观众会以为换了人
33
- - 换标题文案时保持字数与空格数,打字节奏(每字抖动按下标取、空格多停)与收尾帧才不变
34
- - 漂移光标永远不许盖住正在阅读的主内容——氛围层要让戏,漂移范围避开主体安全区
35
- - 与 cursor-flyover 分工:那是光标"操作 UI"(点击有 payload),本卡光标"表演给你看"(位移即剧情);光标要点东西时回那张卡
36
- - 声音:入场每枚一声极轻 pop,漂移段静,打字段 keyboard 轻声
37
-
38
- ## 参考实现
39
- demos/interaction/collab-cursor-moves/
40
- (CursorCastEnsemble.tsx)
41
- 原片出处:figma-devmode 0:05 + miro-promo 全片 + pitch-app 82–90s 打字 cameo
1
+ ---
2
+ name: collab-cursor-moves
3
+ 一句话: 协作光标当演员——cast-ensemble 五光标群演氛围层(错峰飞入+正弦漂移+打字 cameo+聚拢围观)
4
+ 适用: 协作/多人主题的画布场景,给画面铺"团队在场"体温
5
+ 时长: A ~5.2s(156f)
6
+ 能量: A 低中(氛围层,可垫任何时长)
7
+ ---
8
+
9
+ ## 意图
10
+ 库内光标一直是"操作工具"(cursor-flyover 的光标
11
+ 是单光标点击导览)。本卡把带身份名牌的协作光标升格成**演员**:
12
+ 五枚光标错峰入场后持续漂移当氛围粒子,"团队在场"感全靠它,其中一枚
13
+ 还能停下来打字(cameo 戏份)。SVG 光标+名牌 chip 成本极低、叙事密度
14
+ 极高,是"协作"主题最便宜的视觉论证。
15
+
16
+ ## 式
17
+ | 式 | 做法 | 适用 |
18
+ |----|------|------|
19
+ | A cast-ensemble | 5 枚具名彩色光标错峰 spring 飞入 video-shotcraft 的分镜白板(头像组同帧弹出、便签带作者色)→双频正弦漂移驻场→一枚挂在插入点上打出简报卡标题→结尾全员 smooth 聚拢围观 | 画布/白板类产品全片氛围层;主内容之外需要"别人也在"的背景活性 |
20
+
21
+ ## 参数表
22
+ | 参数 | 典型值 | 调节手感 |
23
+ |------|--------|----------|
24
+ | A 入场 | 5 枚 delay 2/7/11/16/22f 错峰,spring(damping 15, stiffness 80);名牌晚 10f 淡入+上浮 12px;右上头像组同帧弹出(槽宽随弹出长) | 名牌跟光标同帧出现读作贴纸;随减速淡入才是"人到了自报家门" |
25
+ | A 漂移 | 双频正弦叠加(0.055/0.021 rad/f,每枚相位不同),幅度 ±40/26px | 单频正弦读作钟摆;双频不同相才是"人手的随机" |
26
+ | A 打字 cameo | 48–104f 打 29 字(1.6–2.4f/字确定性抖动,空格后多停 0.9f);光标箭头挂在行内插入点锚点上,换行也跟着走;打字时手稳(漂移压到 0) | 箭头和插入点分开算位置必错位;行内零宽锚点让浏览器排版替你算 |
27
+ | A 聚拢 | 98f 起 28f smooth 到卡片四周围观位(不压标题和眉题),漂移幅度衰减到 25% 保留 | 聚拢后漂移不能归零——完全静止的光标群读作死机 |
28
+
29
+ ## 已知坑
30
+ - demo 在手搓画面上调校通过(瓷白白板 + 便签 + 简报卡,板名挂 video-shotcraft 标志,标题 "Ship a launch film by Friday.")——参数是调校起点非实战定稿,
31
+ 首次实战须以真实素材回验
32
+ - 名牌颜色=身份编码,全片必须一致(蓝=Designer 就一直蓝);中途换色观众会以为换了人
33
+ - 换标题文案时保持字数与空格数,打字节奏(每字抖动按下标取、空格多停)与收尾帧才不变
34
+ - 漂移光标永远不许盖住正在阅读的主内容——氛围层要让戏,漂移范围避开主体安全区
35
+ - 与 cursor-flyover 分工:那是光标"操作 UI"(点击有 payload),本卡光标"表演给你看"(位移即剧情);光标要点东西时回那张卡
36
+ - 声音:入场每枚一声极轻 pop,漂移段静,打字段 keyboard 轻声
37
+
38
+ ## 参考实现
39
+ demos/interaction/collab-cursor-moves/
40
+ (CursorCastEnsemble.tsx)
41
+ 原片出处:figma-devmode 0:05 + miro-promo 全片 + pitch-app 82–90s 打字 cameo
@@ -1,53 +1,53 @@
1
- ---
2
- name: glass-pill-dictation-typing
3
- 一句话: 一条定宽玻璃胶囊以约 1.25 倍略大弹出后缓落到位,内部自左淡到右浓铺一层强调色暖光;光标先行、随后匀速打出听写句,光(连同胶囊背后的环境光)随打字进度渐渐退去,收尾成一条中性的磨砂玻璃条
4
- 适用: 语音/AI 输入框的登场;"跟它说话"的交互提示镜头;高能段之间的一个安静过渡拍
5
- 时长: 约3.3s(100f@30fps)
6
- 能量: 低(全片最安静的一拍,只有光在退)
7
- ---
8
-
9
- ## 意图
10
- 用"光随输入熄灭"讲一件很小的事:待命时它在发光(等你说话),你一开口
11
- 它就把光让给文字。3.3s 里只做三件事——弹出、打字、光退。任何额外动作
12
- (弹跳、色变、图标动画)都会让这一拍不再是休止符。
13
-
14
- ## 动效核心
15
- - 胶囊 1240×132、圆角 66、`padding: 0 20px 0 58px`,**定宽**(不随打字伸缩);
16
- 听写字 56px、右端 92px 圆形声波按钮
17
- - 出场 `scale 1.25→1`,snappy(强 ease-out)20f;opacity 前 2f 就满——先"在了"再落位;
18
- 落位前 14f 带 6px→0 的景深虚化(放大段读作"离镜头更近")
19
- - 材质:`backdrop-filter: blur(26px) saturate(1.3)` 真磨砂(背后的暖色光斑被它晕开),
20
- 上亮下暗白色体积渐变 + 1.5px 白描边 + 顶沿两端渐隐高光线 + 底缘内暗边 + 暖色两层落地影
21
- - 内嵌强调色光:`linear-gradient(90deg, α0 → α.18 @38% → α.62 @78% → 杏色 α.95 @100%)` 左淡右浓,
22
- 外加右下角一团 screen 叠加的高光——光在胶囊**内部**
23
- - 打字:光标 f2 先行,字符 f8 起匀速 2f/字铺完 28 字;光标 f66–74 撤掉
24
- - 光熄灭 `g = 1 − smooth(f10→f72)`,与打字同窗口;`g` 同时驱动四处:胶囊内渐层、胶囊背后那轮暖色"太阳"、
25
- 胶囊下方地面反光、声波按钮(实心暖色 → 描边中性),外泛光 `60g px`
26
- - 声波 5 根竖条基准高 `[30,16,24,13,20]`(左高右低),叠 `±2.4·sin(f·0.5 + i·1.7)` 极轻呼吸
27
-
28
- ## 参数表
29
- | 参数 | 典型值 | 调节手感 |
30
- |------|--------|----------|
31
- | 胶囊定宽 | 1240px(≈整句宽度 1.8 倍) | **定宽是关键**:随字伸缩会读作 chip 而不是输入条 |
32
- | 出场缩放 | scale 1.25→1,snappy 20f | 1.25 倍是"从观众面前落回去"的量;1.5 倍就成了 pop 弹窗 |
33
- | opacity 时序 | 前 2f 跳满(早于缩放落位) | 同步淡入会让它像"渐渐出现",失掉那一下轻微的实感 |
34
- | 内嵌光 | 90deg、0 → .18@38% → .62@78% → .95@100% | 光必须在胶囊内部;改成外 glow 就成了"待通知"而不是"待输入" |
35
- | 打字 | 28 字符,f8 起 2f/字匀速 | 加 ease 就读作"有人在犹豫";听写是匀速的 |
36
- | 光熄灭 | 1 → 0,f10→f72 smooth | 与打字同窗口是全片唯一的因果:光让位给文字 |
37
- | 环境光跟随 | 背后暖光 0.15+0.6g、地面反光 0.22g | 只熄胶囊、环境不变,亮场里"光退"会读不出来 |
38
- | 声波竖条 | 5 根、±2.4px | 幅度到 6px 就成了"正在录音"的活跃态,与"待命"矛盾 |
39
- | 光标 | f2 先行、f66–74 撤 | 光标先于文字出现,是"输入框已就绪"的信号 |
40
-
41
- ## 已知坑
42
- - backdrop-filter 只晕它**背后**的层:暖色光斑必须放在胶囊之下(同一层叠上下文里先画),
43
- 光斑离胶囊太远时磨砂看起来就是一块平白板
44
- - 亮场里光的明暗对比远小于暗场:内嵌光要给到杏色 .95 的饱和度,并让背后环境光一起退,否则"光退"不成立;
45
- 要做暗场版,把舞台换回近黑、光色降饱和即可,曲线不用动
46
- - 声波竖条是持续呼吸(不受 g 控制),首尾帧高度不同——用作 loop 素材时把频率调成 2π/时长 的整数倍
47
- - 打字进度 `floor(p·len + 1e-6)`,那个 epsilon 是防止末字符在整点因浮点误差不出现,别删
48
- - WARM / APRICOT 两个变量是内嵌光、外泛光、环境光、按钮共用的品牌色,换项目只改这两个
49
- - 句子长度变了要同步调胶囊定宽(保持 ≈ 句宽 1.8–2 倍)与打字窗口
50
-
51
- ## 参考实现
52
- demos/interaction/glass-pill-dictation-typing/
53
- (GlassPillDictationTyping.tsx)
1
+ ---
2
+ name: glass-pill-dictation-typing
3
+ 一句话: 一条定宽玻璃胶囊以约 1.25 倍略大弹出后缓落到位,内部自左淡到右浓铺一层强调色暖光;光标先行、随后匀速打出听写句,光(连同胶囊背后的环境光)随打字进度渐渐退去,收尾成一条中性的磨砂玻璃条
4
+ 适用: 语音/AI 输入框的登场;"跟它说话"的交互提示镜头;高能段之间的一个安静过渡拍
5
+ 时长: 约3.3s(100f@30fps)
6
+ 能量: 低(全片最安静的一拍,只有光在退)
7
+ ---
8
+
9
+ ## 意图
10
+ 用"光随输入熄灭"讲一件很小的事:待命时它在发光(等你说话),你一开口
11
+ 它就把光让给文字。3.3s 里只做三件事——弹出、打字、光退。任何额外动作
12
+ (弹跳、色变、图标动画)都会让这一拍不再是休止符。
13
+
14
+ ## 动效核心
15
+ - 胶囊 1240×132、圆角 66、`padding: 0 20px 0 58px`,**定宽**(不随打字伸缩);
16
+ 听写字 56px、右端 92px 圆形声波按钮
17
+ - 出场 `scale 1.25→1`,snappy(强 ease-out)20f;opacity 前 2f 就满——先"在了"再落位;
18
+ 落位前 14f 带 6px→0 的景深虚化(放大段读作"离镜头更近")
19
+ - 材质:`backdrop-filter: blur(26px) saturate(1.3)` 真磨砂(背后的暖色光斑被它晕开),
20
+ 上亮下暗白色体积渐变 + 1.5px 白描边 + 顶沿两端渐隐高光线 + 底缘内暗边 + 暖色两层落地影
21
+ - 内嵌强调色光:`linear-gradient(90deg, α0 → α.18 @38% → α.62 @78% → 杏色 α.95 @100%)` 左淡右浓,
22
+ 外加右下角一团 screen 叠加的高光——光在胶囊**内部**
23
+ - 打字:光标 f2 先行,字符 f8 起匀速 2f/字铺完 28 字;光标 f66–74 撤掉
24
+ - 光熄灭 `g = 1 − smooth(f10→f72)`,与打字同窗口;`g` 同时驱动四处:胶囊内渐层、胶囊背后那轮暖色"太阳"、
25
+ 胶囊下方地面反光、声波按钮(实心暖色 → 描边中性),外泛光 `60g px`
26
+ - 声波 5 根竖条基准高 `[30,16,24,13,20]`(左高右低),叠 `±2.4·sin(f·0.5 + i·1.7)` 极轻呼吸
27
+
28
+ ## 参数表
29
+ | 参数 | 典型值 | 调节手感 |
30
+ |------|--------|----------|
31
+ | 胶囊定宽 | 1240px(≈整句宽度 1.8 倍) | **定宽是关键**:随字伸缩会读作 chip 而不是输入条 |
32
+ | 出场缩放 | scale 1.25→1,snappy 20f | 1.25 倍是"从观众面前落回去"的量;1.5 倍就成了 pop 弹窗 |
33
+ | opacity 时序 | 前 2f 跳满(早于缩放落位) | 同步淡入会让它像"渐渐出现",失掉那一下轻微的实感 |
34
+ | 内嵌光 | 90deg、0 → .18@38% → .62@78% → .95@100% | 光必须在胶囊内部;改成外 glow 就成了"待通知"而不是"待输入" |
35
+ | 打字 | 28 字符,f8 起 2f/字匀速 | 加 ease 就读作"有人在犹豫";听写是匀速的 |
36
+ | 光熄灭 | 1 → 0,f10→f72 smooth | 与打字同窗口是全片唯一的因果:光让位给文字 |
37
+ | 环境光跟随 | 背后暖光 0.15+0.6g、地面反光 0.22g | 只熄胶囊、环境不变,亮场里"光退"会读不出来 |
38
+ | 声波竖条 | 5 根、±2.4px | 幅度到 6px 就成了"正在录音"的活跃态,与"待命"矛盾 |
39
+ | 光标 | f2 先行、f66–74 撤 | 光标先于文字出现,是"输入框已就绪"的信号 |
40
+
41
+ ## 已知坑
42
+ - backdrop-filter 只晕它**背后**的层:暖色光斑必须放在胶囊之下(同一层叠上下文里先画),
43
+ 光斑离胶囊太远时磨砂看起来就是一块平白板
44
+ - 亮场里光的明暗对比远小于暗场:内嵌光要给到杏色 .95 的饱和度,并让背后环境光一起退,否则"光退"不成立;
45
+ 要做暗场版,把舞台换回近黑、光色降饱和即可,曲线不用动
46
+ - 声波竖条是持续呼吸(不受 g 控制),首尾帧高度不同——用作 loop 素材时把频率调成 2π/时长 的整数倍
47
+ - 打字进度 `floor(p·len + 1e-6)`,那个 epsilon 是防止末字符在整点因浮点误差不出现,别删
48
+ - WARM / APRICOT 两个变量是内嵌光、外泛光、环境光、按钮共用的品牌色,换项目只改这两个
49
+ - 句子长度变了要同步调胶囊定宽(保持 ≈ 句宽 1.8–2 倍)与打字窗口
50
+
51
+ ## 参考实现
52
+ demos/interaction/glass-pill-dictation-typing/
53
+ (GlassPillDictationTyping.tsx)