use-scroll-animate 10.2.0 → 10.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (403) hide show
  1. package/AGENTS.md +4 -0
  2. package/CHANGELOG.md +35 -0
  3. package/README.md +67 -0
  4. package/bin/motionary-mcp.mjs +265 -0
  5. package/dist/chunks/anim-image-DDdb9q3X.js +166 -0
  6. package/dist/chunks/anim-image-DDdb9q3X.js.map +1 -0
  7. package/dist/chunks/anim-image-blQgPFFS.cjs +174 -0
  8. package/dist/chunks/anim-image-blQgPFFS.cjs.map +1 -0
  9. package/dist/chunks/audio-BpU-A1m1.cjs.map +1 -1
  10. package/dist/chunks/{audio-D95jwlOh.js → audio-CWt1xdZB.js} +3 -3
  11. package/dist/chunks/{audio-D95jwlOh.js.map → audio-CWt1xdZB.js.map} +1 -1
  12. package/dist/chunks/{base-BnRyfuyM.js → base-BTev8qxg.js} +2 -2
  13. package/dist/chunks/{base-BnRyfuyM.js.map → base-BTev8qxg.js.map} +1 -1
  14. package/dist/chunks/base-DBheNxJu.cjs.map +1 -1
  15. package/dist/chunks/bind-B_CTL6Qn.js.map +1 -1
  16. package/dist/chunks/bind-Ui43-n2d.cjs.map +1 -1
  17. package/dist/chunks/builtins-CKKZNR95.cjs.map +1 -1
  18. package/dist/chunks/{builtins-CqIq1zBv.js → builtins-CPmS6aDB.js} +3 -3
  19. package/dist/chunks/{builtins-CqIq1zBv.js.map → builtins-CPmS6aDB.js.map} +1 -1
  20. package/dist/chunks/core-B5T0dhFH.cjs.map +1 -1
  21. package/dist/chunks/{core-DsGoL9EY.js → core-BviA7nFa.js} +2 -2
  22. package/dist/chunks/{core-DsGoL9EY.js.map → core-BviA7nFa.js.map} +1 -1
  23. package/dist/chunks/core-D74Fz-dL.cjs.map +1 -1
  24. package/dist/chunks/core-D7cVumUu.js.map +1 -1
  25. package/dist/chunks/{core-XA2yhn1b.js → core-KiM7MXjL.js} +2 -2
  26. package/dist/chunks/{core-XA2yhn1b.js.map → core-KiM7MXjL.js.map} +1 -1
  27. package/dist/chunks/core-MQlXZKUG.cjs.map +1 -1
  28. package/dist/chunks/ease-HwYZnZat.cjs +94 -0
  29. package/dist/chunks/ease-HwYZnZat.cjs.map +1 -0
  30. package/dist/chunks/ease-XN8_0sXu.js +89 -0
  31. package/dist/chunks/ease-XN8_0sXu.js.map +1 -0
  32. package/dist/chunks/fx-B_pbhpDp.cjs.map +1 -1
  33. package/dist/chunks/{fx-CtnrFEg9.js → fx-CgWKqVsn.js} +2 -2
  34. package/dist/chunks/{fx-CtnrFEg9.js.map → fx-CgWKqVsn.js.map} +1 -1
  35. package/dist/chunks/generative-2LhxG5BJ.js.map +1 -1
  36. package/dist/chunks/generative-BHIj-NU0.cjs.map +1 -1
  37. package/dist/chunks/{gpu-CDcXiNA8.js → gpu-BWfgYWMY.js} +2 -2
  38. package/dist/chunks/{gpu-CDcXiNA8.js.map → gpu-BWfgYWMY.js.map} +1 -1
  39. package/dist/chunks/gpu-cUixt7kT.cjs.map +1 -1
  40. package/dist/chunks/index-tags-B-JBecYg.js.map +1 -1
  41. package/dist/chunks/index-tags-hLIF2Clq.cjs.map +1 -1
  42. package/dist/chunks/{keyframes-W-474DMc.js → keyframes-B5PWe5bU.js} +3 -2
  43. package/dist/chunks/keyframes-B5PWe5bU.js.map +1 -0
  44. package/dist/chunks/{keyframes-ZheOkpt0.cjs → keyframes-tC3I7anQ.cjs} +4 -3
  45. package/dist/chunks/keyframes-tC3I7anQ.cjs.map +1 -0
  46. package/dist/chunks/{manifest-D58HXVY-.js → manifest-BHx5yPN6.js} +2 -2
  47. package/dist/chunks/{manifest-D58HXVY-.js.map → manifest-BHx5yPN6.js.map} +1 -1
  48. package/dist/chunks/manifest-PaF9B8Vt.cjs.map +1 -1
  49. package/dist/chunks/{player-48Zy_NBG.js → player-BfHMNtiM.js} +4 -4
  50. package/dist/chunks/{player-48Zy_NBG.js.map → player-BfHMNtiM.js.map} +1 -1
  51. package/dist/chunks/player-C4y4jXSv.cjs.map +1 -1
  52. package/dist/chunks/presets-BYBVJVeP.js.map +1 -1
  53. package/dist/chunks/presets-CUHys3sK.cjs.map +1 -1
  54. package/dist/chunks/{registry-gFJRpPES.js → registry-BKzyg1JV.js} +2 -2
  55. package/dist/chunks/{registry-gFJRpPES.js.map → registry-BKzyg1JV.js.map} +1 -1
  56. package/dist/chunks/{registry-BIEjKngP.js → registry-CT-TT_bx.js} +3 -3
  57. package/dist/chunks/{registry-BIEjKngP.js.map → registry-CT-TT_bx.js.map} +1 -1
  58. package/dist/chunks/{registry-eJgpFAzI.cjs → registry-tzwKkldE.cjs} +2 -2
  59. package/dist/chunks/{registry-eJgpFAzI.cjs.map → registry-tzwKkldE.cjs.map} +1 -1
  60. package/dist/chunks/registry-xQZnSqqV.cjs.map +1 -1
  61. package/dist/chunks/shared-CkKHWrtJ.js.map +1 -1
  62. package/dist/chunks/shared-jkgRH-Hx.cjs.map +1 -1
  63. package/dist/chunks/{spring-CZDNyqWp.js → spring-BHuP55DR.js} +2 -2
  64. package/dist/chunks/{spring-CZDNyqWp.js.map → spring-BHuP55DR.js.map} +1 -1
  65. package/dist/chunks/spring-BlTQD2AV.cjs.map +1 -1
  66. package/dist/chunks/stagger-CCFyhzSw.cjs.map +1 -1
  67. package/dist/chunks/stagger-DtMKo2SK.js.map +1 -1
  68. package/dist/chunks/{ticker-CM_56oVy.js → ticker-C8lSGml9.js} +2 -2
  69. package/dist/chunks/{ticker-CM_56oVy.js.map → ticker-C8lSGml9.js.map} +1 -1
  70. package/dist/chunks/{ticker-D4o6enH0.cjs → ticker-Un0bvTWR.cjs} +2 -2
  71. package/dist/chunks/{ticker-D4o6enH0.cjs.map → ticker-Un0bvTWR.cjs.map} +1 -1
  72. package/dist/chunks/{tween-CqX1JBuj.js → tween-BcejKpsx.js} +15 -91
  73. package/dist/chunks/tween-BcejKpsx.js.map +1 -0
  74. package/dist/chunks/{tween-CBuWYpI-.cjs → tween-CwLLC3Ko.cjs} +15 -95
  75. package/dist/chunks/tween-CwLLC3Ko.cjs.map +1 -0
  76. package/dist/chunks/variants-CrDDJoYK.cjs.map +1 -1
  77. package/dist/chunks/{variants-GU3yIL4F.js → variants-CsRGUIyA.js} +2 -2
  78. package/dist/chunks/{variants-GU3yIL4F.js.map → variants-CsRGUIyA.js.map} +1 -1
  79. package/dist/components/a11y.cjs.map +1 -1
  80. package/dist/components/a11y.js +2 -2
  81. package/dist/components/a11y.js.map +1 -1
  82. package/dist/components/angular.cjs.map +1 -1
  83. package/dist/components/angular.js +8 -8
  84. package/dist/components/angular.js.map +1 -1
  85. package/dist/components/background.cjs.map +1 -1
  86. package/dist/components/background.js +2 -2
  87. package/dist/components/background.js.map +1 -1
  88. package/dist/components/bridge.cjs.map +1 -1
  89. package/dist/components/bridge.js +1 -1
  90. package/dist/components/bridge.js.map +1 -1
  91. package/dist/components/cards.cjs.map +1 -1
  92. package/dist/components/cards.js +2 -2
  93. package/dist/components/cards.js.map +1 -1
  94. package/dist/components/click.cjs.map +1 -1
  95. package/dist/components/click.js +3 -3
  96. package/dist/components/click.js.map +1 -1
  97. package/dist/components/core.cjs.map +1 -1
  98. package/dist/components/core.js.map +1 -1
  99. package/dist/components/depth.cjs.map +1 -1
  100. package/dist/components/depth.js +3 -3
  101. package/dist/components/depth.js.map +1 -1
  102. package/dist/components/design.cjs.map +1 -1
  103. package/dist/components/design.js +3 -3
  104. package/dist/components/design.js.map +1 -1
  105. package/dist/components/dsl.cjs.map +1 -1
  106. package/dist/components/dsl.js +2 -2
  107. package/dist/components/dsl.js.map +1 -1
  108. package/dist/components/effects.cjs.map +1 -1
  109. package/dist/components/effects.js +9 -9
  110. package/dist/components/effects.js.map +1 -1
  111. package/dist/components/engine.cjs.map +1 -1
  112. package/dist/components/engine.js +2 -2
  113. package/dist/components/engine.js.map +1 -1
  114. package/dist/components/feedback.cjs.map +1 -1
  115. package/dist/components/feedback.js +1 -1
  116. package/dist/components/feedback.js.map +1 -1
  117. package/dist/components/fx-3d.cjs.map +1 -1
  118. package/dist/components/fx-3d.js +2 -2
  119. package/dist/components/fx-3d.js.map +1 -1
  120. package/dist/components/fx-ai.cjs.map +1 -1
  121. package/dist/components/fx-ai.js +2 -2
  122. package/dist/components/fx-ai.js.map +1 -1
  123. package/dist/components/fx-chart.cjs.map +1 -1
  124. package/dist/components/fx-chart.js +2 -2
  125. package/dist/components/fx-chart.js.map +1 -1
  126. package/dist/components/fx-cinema.cjs.map +1 -1
  127. package/dist/components/fx-cinema.js +2 -2
  128. package/dist/components/fx-cinema.js.map +1 -1
  129. package/dist/components/fx-cyber.cjs.map +1 -1
  130. package/dist/components/fx-cyber.js +2 -2
  131. package/dist/components/fx-cyber.js.map +1 -1
  132. package/dist/components/fx-festival.cjs.map +1 -1
  133. package/dist/components/fx-festival.js +2 -2
  134. package/dist/components/fx-festival.js.map +1 -1
  135. package/dist/components/fx-focus.cjs.map +1 -1
  136. package/dist/components/fx-focus.js +2 -2
  137. package/dist/components/fx-focus.js.map +1 -1
  138. package/dist/components/fx-form.cjs.map +1 -1
  139. package/dist/components/fx-form.js +2 -2
  140. package/dist/components/fx-form.js.map +1 -1
  141. package/dist/components/fx-game.cjs.map +1 -1
  142. package/dist/components/fx-game.js +2 -2
  143. package/dist/components/fx-game.js.map +1 -1
  144. package/dist/components/fx-genart.cjs.map +1 -1
  145. package/dist/components/fx-genart.js +2 -2
  146. package/dist/components/fx-genart.js.map +1 -1
  147. package/dist/components/fx-geo.cjs.map +1 -1
  148. package/dist/components/fx-geo.js +2 -2
  149. package/dist/components/fx-geo.js.map +1 -1
  150. package/dist/components/fx-gesture.cjs.map +1 -1
  151. package/dist/components/fx-gesture.js +2 -2
  152. package/dist/components/fx-gesture.js.map +1 -1
  153. package/dist/components/fx-gpu.js +3 -3
  154. package/dist/components/fx-light.cjs.map +1 -1
  155. package/dist/components/fx-light.js +2 -2
  156. package/dist/components/fx-light.js.map +1 -1
  157. package/dist/components/fx-lottie.cjs.map +1 -1
  158. package/dist/components/fx-lottie.js +2 -2
  159. package/dist/components/fx-lottie.js.map +1 -1
  160. package/dist/components/fx-morph.cjs.map +1 -1
  161. package/dist/components/fx-morph.js +2 -2
  162. package/dist/components/fx-morph.js.map +1 -1
  163. package/dist/components/fx-music.cjs.map +1 -1
  164. package/dist/components/fx-music.js +3 -3
  165. package/dist/components/fx-music.js.map +1 -1
  166. package/dist/components/fx-organic.cjs.map +1 -1
  167. package/dist/components/fx-organic.js +2 -2
  168. package/dist/components/fx-organic.js.map +1 -1
  169. package/dist/components/fx-paper.cjs.map +1 -1
  170. package/dist/components/fx-paper.js +2 -2
  171. package/dist/components/fx-paper.js.map +1 -1
  172. package/dist/components/fx-perf.cjs.map +1 -1
  173. package/dist/components/fx-perf.js +2 -2
  174. package/dist/components/fx-perf.js.map +1 -1
  175. package/dist/components/fx-physics.cjs.map +1 -1
  176. package/dist/components/fx-physics.js +2 -2
  177. package/dist/components/fx-physics.js.map +1 -1
  178. package/dist/components/fx-retro.cjs.map +1 -1
  179. package/dist/components/fx-retro.js +2 -2
  180. package/dist/components/fx-retro.js.map +1 -1
  181. package/dist/components/fx-safe.cjs.map +1 -1
  182. package/dist/components/fx-safe.js +2 -2
  183. package/dist/components/fx-safe.js.map +1 -1
  184. package/dist/components/fx-shop.cjs.map +1 -1
  185. package/dist/components/fx-shop.js +2 -2
  186. package/dist/components/fx-shop.js.map +1 -1
  187. package/dist/components/fx-social.cjs.map +1 -1
  188. package/dist/components/fx-social.js +2 -2
  189. package/dist/components/fx-social.js.map +1 -1
  190. package/dist/components/fx-spatial.cjs.map +1 -1
  191. package/dist/components/fx-spatial.js +2 -2
  192. package/dist/components/fx-spatial.js.map +1 -1
  193. package/dist/components/fx-surface.cjs.map +1 -1
  194. package/dist/components/fx-surface.js +2 -2
  195. package/dist/components/fx-surface.js.map +1 -1
  196. package/dist/components/fx-text.cjs.map +1 -1
  197. package/dist/components/fx-text.js +2 -2
  198. package/dist/components/fx-text.js.map +1 -1
  199. package/dist/components/fx-transitions.cjs.map +1 -1
  200. package/dist/components/fx-transitions.js +3 -3
  201. package/dist/components/fx-transitions.js.map +1 -1
  202. package/dist/components/fx-video.cjs.map +1 -1
  203. package/dist/components/fx-video.js +2 -2
  204. package/dist/components/fx-video.js.map +1 -1
  205. package/dist/components/fx-weather.cjs.map +1 -1
  206. package/dist/components/fx-weather.js +2 -2
  207. package/dist/components/fx-weather.js.map +1 -1
  208. package/dist/components/fx.cjs.map +1 -1
  209. package/dist/components/fx.js +6 -6
  210. package/dist/components/fx.js.map +1 -1
  211. package/dist/components/fx2.cjs.map +1 -1
  212. package/dist/components/fx2.js +6 -6
  213. package/dist/components/fx2.js.map +1 -1
  214. package/dist/components/gesture.cjs.map +1 -1
  215. package/dist/components/gesture.js +4 -4
  216. package/dist/components/gesture.js.map +1 -1
  217. package/dist/components/interaction.cjs.map +1 -1
  218. package/dist/components/interaction.js +1 -1
  219. package/dist/components/interaction.js.map +1 -1
  220. package/dist/components/layout.cjs.map +1 -1
  221. package/dist/components/layout.js +1 -1
  222. package/dist/components/layout.js.map +1 -1
  223. package/dist/components/lazy.cjs.map +1 -1
  224. package/dist/components/lazy.js.map +1 -1
  225. package/dist/components/lite.cjs.map +1 -1
  226. package/dist/components/lite.js.map +1 -1
  227. package/dist/components/marketplace.cjs.map +1 -1
  228. package/dist/components/marketplace.js +4 -4
  229. package/dist/components/marketplace.js.map +1 -1
  230. package/dist/components/native.cjs.map +1 -1
  231. package/dist/components/native.js +3 -3
  232. package/dist/components/native.js.map +1 -1
  233. package/dist/components/packs.cjs.map +1 -1
  234. package/dist/components/packs.js +1 -1
  235. package/dist/components/packs.js.map +1 -1
  236. package/dist/components/page.cjs.map +1 -1
  237. package/dist/components/page.js +3 -3
  238. package/dist/components/page.js.map +1 -1
  239. package/dist/components/perf.cjs.map +1 -1
  240. package/dist/components/perf.js +2 -2
  241. package/dist/components/perf.js.map +1 -1
  242. package/dist/components/physics.cjs.map +1 -1
  243. package/dist/components/physics.js +3 -3
  244. package/dist/components/physics.js.map +1 -1
  245. package/dist/components/plugins.cjs.map +1 -1
  246. package/dist/components/plugins.js +4 -4
  247. package/dist/components/plugins.js.map +1 -1
  248. package/dist/components/react.cjs.map +1 -1
  249. package/dist/components/react.js.map +1 -1
  250. package/dist/components/reveal.cjs.map +1 -1
  251. package/dist/components/reveal.js +1 -1
  252. package/dist/components/reveal.js.map +1 -1
  253. package/dist/components/solid.cjs.map +1 -1
  254. package/dist/components/solid.js +8 -8
  255. package/dist/components/solid.js.map +1 -1
  256. package/dist/components/svelte.cjs.map +1 -1
  257. package/dist/components/svelte.js +8 -8
  258. package/dist/components/svelte.js.map +1 -1
  259. package/dist/components/svg.cjs.map +1 -1
  260. package/dist/components/svg.js +1 -1
  261. package/dist/components/svg.js.map +1 -1
  262. package/dist/components/text.cjs.map +1 -1
  263. package/dist/components/text.js +2 -2
  264. package/dist/components/text.js.map +1 -1
  265. package/dist/components/timeline.cjs.map +1 -1
  266. package/dist/components/timeline.js +3 -3
  267. package/dist/components/timeline.js.map +1 -1
  268. package/dist/components/tokens.cjs.map +1 -1
  269. package/dist/components/tokens.js.map +1 -1
  270. package/dist/components/transitions.cjs.map +1 -1
  271. package/dist/components/transitions.js +1 -1
  272. package/dist/components/transitions.js.map +1 -1
  273. package/dist/components/ui.cjs.map +1 -1
  274. package/dist/components/ui.js +4 -4
  275. package/dist/components/ui.js.map +1 -1
  276. package/dist/components/vue.cjs.map +1 -1
  277. package/dist/components/vue.js +8 -8
  278. package/dist/components/vue.js.map +1 -1
  279. package/dist/components/webgl.cjs.map +1 -1
  280. package/dist/components/webgl.js +1 -1
  281. package/dist/components/webgl.js.map +1 -1
  282. package/dist/components/widgets.cjs +766 -212
  283. package/dist/components/widgets.cjs.map +1 -1
  284. package/dist/components/widgets.d.cts +207 -2
  285. package/dist/components/widgets.d.ts +207 -2
  286. package/dist/components/widgets.js +770 -221
  287. package/dist/components/widgets.js.map +1 -1
  288. package/dist/components.cjs.map +1 -1
  289. package/dist/components.js +10 -10
  290. package/dist/components.js.map +1 -1
  291. package/dist/element.cjs.map +1 -1
  292. package/dist/element.js.map +1 -1
  293. package/dist/index.cjs.map +1 -1
  294. package/dist/index.js +2 -2
  295. package/dist/index.js.map +1 -1
  296. package/dist/llms-full.txt +250 -1
  297. package/dist/llms.txt +13 -2
  298. package/dist/manifest.json +646 -1
  299. package/dist/presets/extended.cjs.map +1 -1
  300. package/dist/presets/extended.js.map +1 -1
  301. package/dist/react.cjs.map +1 -1
  302. package/dist/react.js.map +1 -1
  303. package/dist/runtime/format-apng.cjs +131 -0
  304. package/dist/runtime/format-apng.cjs.map +1 -0
  305. package/dist/runtime/format-apng.d.cts +250 -0
  306. package/dist/runtime/format-apng.d.ts +250 -0
  307. package/dist/runtime/format-apng.iife.js +2 -0
  308. package/dist/runtime/format-apng.iife.js.map +1 -0
  309. package/dist/runtime/format-apng.js +123 -0
  310. package/dist/runtime/format-apng.js.map +1 -0
  311. package/dist/runtime/format-css.cjs +5 -4
  312. package/dist/runtime/format-css.cjs.map +1 -1
  313. package/dist/runtime/format-css.js +5 -4
  314. package/dist/runtime/format-css.js.map +1 -1
  315. package/dist/runtime/format-gif.cjs +206 -0
  316. package/dist/runtime/format-gif.cjs.map +1 -0
  317. package/dist/runtime/format-gif.d.cts +223 -0
  318. package/dist/runtime/format-gif.d.ts +223 -0
  319. package/dist/runtime/format-gif.iife.js +2 -0
  320. package/dist/runtime/format-gif.iife.js.map +1 -0
  321. package/dist/runtime/format-gif.js +199 -0
  322. package/dist/runtime/format-gif.js.map +1 -0
  323. package/dist/runtime/format-motion.cjs +9 -8
  324. package/dist/runtime/format-motion.cjs.map +1 -1
  325. package/dist/runtime/format-motion.js +5 -4
  326. package/dist/runtime/format-motion.js.map +1 -1
  327. package/dist/runtime/format-sprite.cjs +226 -0
  328. package/dist/runtime/format-sprite.cjs.map +1 -0
  329. package/dist/runtime/format-sprite.d.cts +224 -0
  330. package/dist/runtime/format-sprite.d.ts +224 -0
  331. package/dist/runtime/format-sprite.iife.js +2 -0
  332. package/dist/runtime/format-sprite.iife.js.map +1 -0
  333. package/dist/runtime/format-sprite.js +216 -0
  334. package/dist/runtime/format-sprite.js.map +1 -0
  335. package/dist/runtime/format-svg.cjs +5 -4
  336. package/dist/runtime/format-svg.cjs.map +1 -1
  337. package/dist/runtime/format-svg.iife.js.map +1 -1
  338. package/dist/runtime/format-svg.js +4 -3
  339. package/dist/runtime/format-svg.js.map +1 -1
  340. package/dist/runtime/format-webp.cjs +123 -0
  341. package/dist/runtime/format-webp.cjs.map +1 -0
  342. package/dist/runtime/format-webp.d.cts +245 -0
  343. package/dist/runtime/format-webp.d.ts +245 -0
  344. package/dist/runtime/format-webp.iife.js +2 -0
  345. package/dist/runtime/format-webp.iife.js.map +1 -0
  346. package/dist/runtime/format-webp.js +115 -0
  347. package/dist/runtime/format-webp.js.map +1 -0
  348. package/dist/runtime/scroll.cjs +2 -2
  349. package/dist/runtime/scroll.cjs.map +1 -1
  350. package/dist/runtime/scroll.js +2 -2
  351. package/dist/runtime/scroll.js.map +1 -1
  352. package/dist/runtime/smooth.cjs +284 -0
  353. package/dist/runtime/smooth.cjs.map +1 -0
  354. package/dist/runtime/smooth.d.cts +137 -0
  355. package/dist/runtime/smooth.d.ts +137 -0
  356. package/dist/runtime/smooth.iife.js +2 -0
  357. package/dist/runtime/smooth.iife.js.map +1 -0
  358. package/dist/runtime/smooth.js +279 -0
  359. package/dist/runtime/smooth.js.map +1 -0
  360. package/dist/runtime/text.cjs +147 -0
  361. package/dist/runtime/text.cjs.map +1 -0
  362. package/dist/runtime/text.d.cts +65 -0
  363. package/dist/runtime/text.d.ts +65 -0
  364. package/dist/runtime/text.iife.js +2 -0
  365. package/dist/runtime/text.iife.js.map +1 -0
  366. package/dist/runtime/text.js +143 -0
  367. package/dist/runtime/text.js.map +1 -0
  368. package/dist/runtime.cjs +9 -8
  369. package/dist/runtime.cjs.map +1 -1
  370. package/dist/runtime.d.cts +9 -2
  371. package/dist/runtime.d.ts +9 -2
  372. package/dist/runtime.iife.js +1 -1
  373. package/dist/runtime.iife.js.map +1 -1
  374. package/dist/runtime.js +6 -5
  375. package/dist/runtime.js.map +1 -1
  376. package/dist/solid.cjs.map +1 -1
  377. package/dist/solid.js.map +1 -1
  378. package/dist/svelte.cjs.map +1 -1
  379. package/dist/svelte.js.map +1 -1
  380. package/dist/vue.cjs.map +1 -1
  381. package/dist/vue.js.map +1 -1
  382. package/dist/widgets.umd.js +1 -1
  383. package/dist/widgets.umd.js.map +1 -1
  384. package/docs/ROADMAP.md +2 -2
  385. package/docs/components/README.md +12 -7
  386. package/docs/components/usa-parallax-layers.md +38 -0
  387. package/docs/components/usa-route-transition.md +38 -0
  388. package/docs/components/usa-scroll-ring.md +32 -0
  389. package/docs/components/usa-smooth-scroll.md +60 -0
  390. package/docs/components/usa-text-splitter.md +60 -0
  391. package/docs/components.md +94 -0
  392. package/docs/mcp.md +50 -0
  393. package/docs/runtime/format-apng.md +59 -0
  394. package/docs/runtime/format-gif.md +60 -0
  395. package/docs/runtime/format-sprite.md +60 -0
  396. package/docs/runtime/format-webp.md +58 -0
  397. package/docs/runtime/smooth.md +60 -0
  398. package/docs/runtime/text.md +59 -0
  399. package/package.json +64 -2
  400. package/dist/chunks/keyframes-W-474DMc.js.map +0 -1
  401. package/dist/chunks/keyframes-ZheOkpt0.cjs.map +0 -1
  402. package/dist/chunks/tween-CBuWYpI-.cjs.map +0 -1
  403. package/dist/chunks/tween-CqX1JBuj.js.map +0 -1
package/docs/ROADMAP.md CHANGED
@@ -52,11 +52,11 @@ Store 卡片显示 **「Requires: motionary/runtime/<module>」** 徽章(官
52
52
  - 主线 B:**scroll 模块**(`motionary/runtime/scroll`)—— pin、scrub、markers、start / end 规则(自研,功能对标 ScrollTrigger,但不复制其代码或 API)。
53
53
  - 格式:SVG SMIL 回放、路径变形、CSS 动画 SVG(`motionary/runtime/format-svg`)。
54
54
  - 新组件:动效检查器面板、`<usa-scroll-scene>`(Requires: motionary/runtime/scroll)。
55
- - **v10.3** — View Transitions 2.0:跨文档页面转场、共享元素动画。
55
+ - ✅ **v10.3** — View Transitions 2.0:跨文档页面转场、共享元素动画。
56
56
  - 主线 B:**text 模块** —— 逐字 / 逐词 / 逐行拆分(保留可访问文本)。
57
57
  - 格式:精灵图(TexturePacker / Aseprite JSON)、图片序列(`motionary/runtime/format-sprite`)。
58
58
  - 新组件:路由转场容器、`<usa-text-splitter>`(`<usa-split-text>` 已被 4.x 文本组件占用)。
59
- - **v10.4** — 滚动驱动 3.0:原生 `animation-timeline` 优先、JS 回退插件化。
59
+ - ✅ **v10.4** — 滚动驱动 3.0:原生 `animation-timeline` 优先、JS 回退插件化。
60
60
  - 主线 A:发布 `motionary-mcp` MCP 服务器(`npx motionary-mcp`,stdio):`list_components`、`search_components`、`get_component`、`get_example`、`scaffold_snippet`(自动带上前置条件)。
61
61
  - 主线 B:**smooth 模块** —— 平滑滚动(减少动态效果时停用)。
62
62
  - 格式:GIF(自研 LZW)、APNG、动画 WebP 拆帧到 canvas。
@@ -1,4 +1,4 @@
1
- # Motionary components (193)
1
+ # Motionary components (198)
2
2
 
3
3
  One page per `<usa-*>` element, generated from the source. Machine-readable: `motionary/manifest.json` · Pages `/components.json` · `/llms.txt` · `/llms-full.txt`. How to use these with an AI assistant: [AGENTS.md](../../AGENTS.md) and [the prompt guide](../ai-prompt-guide.md).
4
4
 
@@ -8,6 +8,7 @@ One page per `<usa-*>` element, generated from the source. Machine-readable: `mo
8
8
  - [`<usa-dialog>`](usa-dialog.md) — Modal & drawer
9
9
  - [`<usa-disclosure>`](usa-disclosure.md) — Accordion 2.0
10
10
  - [`<usa-modal>`](usa-modal.md) — Modal dialog
11
+ - [`<usa-route-transition>`](usa-route-transition.md) — Route transition container
11
12
  - [`<usa-sheet>`](usa-sheet.md) — Drawer / bottom sheet
12
13
  - [`<usa-view-switch>`](usa-view-switch.md) — View switch
13
14
 
@@ -190,6 +191,7 @@ One page per `<usa-*>` element, generated from the source. Machine-readable: `mo
190
191
  - [`<usa-magnetic>`](usa-magnetic.md) — Magnetic button
191
192
  - [`<usa-press>`](usa-press.md) — Press feedback
192
193
  - [`<usa-ripple>`](usa-ripple.md) — Ripple
194
+ - [`<usa-smooth-scroll>`](usa-smooth-scroll.md) — Smooth scroll · Requires: motionary/runtime/smooth
193
195
  - [`<usa-spotlight>`](usa-spotlight.md) — Reveal highlight
194
196
  - [`<usa-tilt>`](usa-tilt.md) — 3D tilt card
195
197
  - [`<usa-volume-knob>`](usa-volume-knob.md) — Volume knob
@@ -207,6 +209,7 @@ One page per `<usa-*>` element, generated from the source. Machine-readable: `mo
207
209
  - [`<usa-shimmer-text>`](usa-shimmer-text.md) — Shimmer text
208
210
  - [`<usa-split-text>`](usa-split-text.md) — Split-text reveal
209
211
  - [`<usa-text-rotate>`](usa-text-rotate.md) — Rotating words
212
+ - [`<usa-text-splitter>`](usa-text-splitter.md) — Text splitter · Requires: motionary/runtime/text
210
213
  - [`<usa-typewriter>`](usa-typewriter.md) — Typewriter
211
214
  - [`<usa-wave-text>`](usa-wave-text.md) — Wave text
212
215
 
@@ -238,16 +241,18 @@ One page per `<usa-*>` element, generated from the source. Machine-readable: `mo
238
241
 
239
242
  - [`<usa-pack>`](usa-pack.md) — E-commerce pack
240
243
 
241
- ## gesture
242
-
243
- - [`<usa-pinch-zoom>`](usa-pinch-zoom.md) — Pinch zoom
244
- - [`<usa-swipe-deck>`](usa-swipe-deck.md) — Swipe cards deck
245
- - [`<usa-swipeable>`](usa-swipeable.md) — Swipeable
246
-
247
244
  ## reveal
248
245
 
246
+ - [`<usa-parallax-layers>`](usa-parallax-layers.md) — Parallax layers
249
247
  - [`<usa-reveal>`](usa-reveal.md) — Reveal
250
248
  - [`<usa-scroll-progress>`](usa-scroll-progress.md) — Scroll progress bar
249
+ - [`<usa-scroll-ring>`](usa-scroll-ring.md) — Scroll progress ring
251
250
  - [`<usa-scroll-scene>`](usa-scroll-scene.md) — Scroll scene · Requires: motionary/runtime/scroll
252
251
  - [`<usa-scrolly>`](usa-scrolly.md) — Sticky scrollytelling
253
252
  - [`<usa-stagger>`](usa-stagger.md) — Stagger list
253
+
254
+ ## gesture
255
+
256
+ - [`<usa-pinch-zoom>`](usa-pinch-zoom.md) — Pinch zoom
257
+ - [`<usa-swipe-deck>`](usa-swipe-deck.md) — Swipe cards deck
258
+ - [`<usa-swipeable>`](usa-swipeable.md) — Swipeable
@@ -0,0 +1,38 @@
1
+ # `<usa-parallax-layers>` — Parallax layers
2
+
3
+ > Generated from the source and the gallery catalog by `scripts/gen-component-docs.mjs` (same data as [components.json](https://harrisoncn.github.io/Motionary/components.json) and [llms-full.txt](https://harrisoncn.github.io/Motionary/llms-full.txt)).
4
+
5
+ 10.4: a parallax container — children with data-depth move at different speeds while it crosses the viewport (native view() scroll timeline first, JS fallback), optional pointer tilt; static under reduced motion.
6
+
7
+ - **Category:** reveal · **since** 10.4
8
+ - **Import:** `import { defineParallaxLayers } from 'motionary/components/widgets'` then `defineParallaxLayers();`
9
+ - **CDN:** `<script src="https://unpkg.com/motionary@10/dist/widgets.umd.js"></script>`
10
+ - **Attributes:** `range`, `engine`, `horizontal`, `pointer`, `strength`, `preview`
11
+ - **Events:** `usa:progress`
12
+ - **Slots:** —
13
+ - **Methods:** `layers()`
14
+ - **Source:** [src/components/widgets/parallax-layers.ts](../../src/components/widgets/parallax-layers.ts)
15
+
16
+ ## Minimal example
17
+
18
+ ```html
19
+ <usa-parallax-layers range="120">
20
+ <img data-depth="0.6" src="mountains.webp" alt="">
21
+ <h2 data-depth="-0.3">Above the clouds</h2>
22
+ </usa-parallax-layers>
23
+ ```
24
+
25
+ ## ES module
26
+
27
+ ```js
28
+ import { defineParallaxLayers } from 'motionary/components/widgets';
29
+
30
+ defineParallaxLayers(); // registers <usa-parallax-layers>
31
+
32
+ /* then use it in your HTML:
33
+ <usa-parallax-layers range="120">
34
+ <img data-depth="0.6" src="mountains.webp" alt="">
35
+ <h2 data-depth="-0.3">Above the clouds</h2>
36
+ </usa-parallax-layers>
37
+ */
38
+ ```
@@ -0,0 +1,38 @@
1
+ # `<usa-route-transition>` — Route transition container
2
+
3
+ > Generated from the source and the gallery catalog by `scripts/gen-component-docs.mjs` (same data as [components.json](https://harrisoncn.github.io/Motionary/components.json) and [llms-full.txt](https://harrisoncn.github.io/Motionary/llms-full.txt)).
4
+
5
+ 10.3: View Transitions 2.0 — link clicks swap the container’s content with the target page (fetched) or an inline <template data-route>, animated with the View Transitions API (Web Animations fallback); data-shared elements morph between routes; cross-document enables native MPA transitions.
6
+
7
+ - **Category:** transitions · **since** 10.3
8
+ - **Import:** `import { defineRouteTransition } from 'motionary/components/widgets'` then `defineRouteTransition();`
9
+ - **CDN:** `<script src="https://unpkg.com/motionary@10/dist/widgets.umd.js"></script>`
10
+ - **Attributes:** `effect`, `engine`, `cross-document`
11
+ - **Events:** `usa:navigate`, `usa:navigated`
12
+ - **Slots:** —
13
+ - **Methods:** `navigate()`
14
+ - **Source:** [src/components/widgets/route-transition.ts](../../src/components/widgets/route-transition.ts)
15
+
16
+ ## Minimal example
17
+
18
+ ```html
19
+ <usa-route-transition id="app" effect="slide" cross-document>
20
+ <nav><a href="/">Home</a> <a href="/about">About</a></nav>
21
+ <h1 data-shared="title">Home</h1>
22
+ </usa-route-transition>
23
+ ```
24
+
25
+ ## ES module
26
+
27
+ ```js
28
+ import { defineRouteTransition } from 'motionary/components/widgets';
29
+
30
+ defineRouteTransition(); // registers <usa-route-transition>
31
+
32
+ /* then use it in your HTML:
33
+ <usa-route-transition id="app" effect="slide" cross-document>
34
+ <nav><a href="/">Home</a> <a href="/about">About</a></nav>
35
+ <h1 data-shared="title">Home</h1>
36
+ </usa-route-transition>
37
+ */
38
+ ```
@@ -0,0 +1,32 @@
1
+ # `<usa-scroll-ring>` — Scroll progress ring
2
+
3
+ > Generated from the source and the gallery catalog by `scripts/gen-component-docs.mjs` (same data as [components.json](https://harrisoncn.github.io/Motionary/components.json) and [llms-full.txt](https://harrisoncn.github.io/Motionary/llms-full.txt)).
4
+
5
+ 10.4: a circular scroll-progress indicator for the page or any scroll container (for=".article"), optional percentage label and back-to-top button. Scroll-driven 3.0: native animation-timeline: scroll() first (no script per frame), a small JS loop where scroll timelines are missing.
6
+
7
+ - **Category:** reveal · **since** 10.4
8
+ - **Import:** `import { defineScrollRing } from 'motionary/components/widgets'` then `defineScrollRing();`
9
+ - **CDN:** `<script src="https://unpkg.com/motionary@10/dist/widgets.umd.js"></script>`
10
+ - **Attributes:** `for`, `engine`, `label`, `back-to-top`, `size`, `thickness`, `horizontal`, `preview`
11
+ - **Events:** `usa:progress`, `usa:top`
12
+ - **Slots:** —
13
+ - **Methods:** —
14
+ - **Source:** [src/components/widgets/scroll-ring.ts](../../src/components/widgets/scroll-ring.ts)
15
+
16
+ ## Minimal example
17
+
18
+ ```html
19
+ <usa-scroll-ring label back-to-top></usa-scroll-ring>
20
+ ```
21
+
22
+ ## ES module
23
+
24
+ ```js
25
+ import { defineScrollRing } from 'motionary/components/widgets';
26
+
27
+ defineScrollRing(); // registers <usa-scroll-ring>
28
+
29
+ /* then use it in your HTML:
30
+ <usa-scroll-ring label back-to-top></usa-scroll-ring>
31
+ */
32
+ ```
@@ -0,0 +1,60 @@
1
+ # `<usa-smooth-scroll>` — Smooth scroll
2
+
3
+ > Generated from the source and the gallery catalog by `scripts/gen-component-docs.mjs` (same data as [components.json](https://harrisoncn.github.io/Motionary/components.json) and [llms-full.txt](https://harrisoncn.github.io/Motionary/llms-full.txt)).
4
+
5
+ 10.4: smooth, inertial wheel scrolling for the page or a container (wrapper), anchor links glide (with offset for sticky headers); keyboard / scrollbar / touch stay native and it switches off under reduced motion. Requires motionary/runtime/smooth — npm i motionary, then use(smooth) before it mounts.
6
+
7
+ - **Category:** interaction · **since** 10.4
8
+ - **Import:** `import { defineSmoothScroll } from 'motionary/components/widgets'` then `defineSmoothScroll();`
9
+ - **CDN:** `<script src="https://unpkg.com/motionary@10/dist/widgets.umd.js"></script>`
10
+ - **Attributes:** `lerp`, `duration`, `ease`, `wheel-multiplier`, `horizontal`, `touch`, `anchors`, `offset`, `wrapper`, `preview`
11
+ - **Events:** `usa:scroll`, `usa:ready`, `usa:runtime-missing`
12
+ - **Slots:** —
13
+ - **Methods:** `glideTo()`, `stop()`, `resume()`
14
+ - **Source:** [src/components/widgets/smooth-scroll.ts](../../src/components/widgets/smooth-scroll.ts)
15
+
16
+ ## Prerequisites — Requires: motionary/runtime/smooth
17
+
18
+ 1. **Install:** `npm i motionary`
19
+ 2. **Import order & registration:** Register the core first, then the module: use(smooth) also registers the core. CDN: load runtime.iife.js, then runtime/smooth.iife.js (it registers itself).
20
+
21
+ ```js
22
+ import { use } from 'motionary/runtime';
23
+ import { smooth } from 'motionary/runtime/smooth';
24
+ import { defineSmoothScroll } from 'motionary/components/widgets';
25
+
26
+ use(smooth);
27
+ defineSmoothScroll(); // registers <usa-smooth-scroll> — after the prerequisites
28
+ ```
29
+
30
+ 3. **CDN:**
31
+
32
+ ```html
33
+ <script src="https://cdn.jsdelivr.net/npm/motionary@10/dist/runtime.iife.js"></script>
34
+ <script src="https://cdn.jsdelivr.net/npm/motionary@10/dist/runtime/smooth.iife.js"></script>
35
+ <!-- then the component bundles -->
36
+ <script src="https://unpkg.com/motionary@10/dist/components.umd.js"></script>
37
+ <script src="https://unpkg.com/motionary@10/dist/widgets.umd.js"></script>
38
+ ```
39
+
40
+ ## Minimal example
41
+
42
+ ```html
43
+ <usa-smooth-scroll lerp="0.1" offset="64"></usa-smooth-scroll>
44
+ ```
45
+
46
+ ## ES module
47
+
48
+ ```js
49
+ import { use } from 'motionary/runtime';
50
+ import { smooth } from 'motionary/runtime/smooth';
51
+
52
+ use(smooth);
53
+ import { defineSmoothScroll } from 'motionary/components/widgets';
54
+
55
+ defineSmoothScroll(); // registers <usa-smooth-scroll>
56
+
57
+ /* then use it in your HTML:
58
+ <usa-smooth-scroll lerp="0.1" offset="64"></usa-smooth-scroll>
59
+ */
60
+ ```
@@ -0,0 +1,60 @@
1
+ # `<usa-text-splitter>` — Text splitter
2
+
3
+ > Generated from the source and the gallery catalog by `scripts/gen-component-docs.mjs` (same data as [components.json](https://harrisoncn.github.io/Motionary/components.json) and [llms-full.txt](https://harrisoncn.github.io/Motionary/llms-full.txt)).
4
+
5
+ 10.3: splits its text into characters, words or lines and animates them in with a stagger (rise, fade, blur, flip, wave) when it scrolls into view — accessible, grapheme-aware. Requires motionary/runtime/text — npm i motionary, then use(text) before it mounts.
6
+
7
+ - **Category:** text · **since** 10.3
8
+ - **Import:** `import { defineTextSplitter } from 'motionary/components/widgets'` then `defineTextSplitter();`
9
+ - **CDN:** `<script src="https://unpkg.com/motionary@10/dist/widgets.umd.js"></script>`
10
+ - **Attributes:** `split`, `effect`, `stagger`, `duration`, `loop`, `trigger`
11
+ - **Events:** `usa:split`, `usa:done`, `usa:runtime-missing`
12
+ - **Slots:** —
13
+ - **Methods:** `replay()`, `pieces()`
14
+ - **Source:** [src/components/widgets/text-splitter.ts](../../src/components/widgets/text-splitter.ts)
15
+
16
+ ## Prerequisites — Requires: motionary/runtime/text
17
+
18
+ 1. **Install:** `npm i motionary`
19
+ 2. **Import order & registration:** Register the core first, then the module: use(text) also registers the core. CDN: load runtime.iife.js, then runtime/text.iife.js (it registers itself).
20
+
21
+ ```js
22
+ import { use } from 'motionary/runtime';
23
+ import { text } from 'motionary/runtime/text';
24
+ import { defineTextSplitter } from 'motionary/components/widgets';
25
+
26
+ use(text);
27
+ defineTextSplitter(); // registers <usa-text-splitter> — after the prerequisites
28
+ ```
29
+
30
+ 3. **CDN:**
31
+
32
+ ```html
33
+ <script src="https://cdn.jsdelivr.net/npm/motionary@10/dist/runtime.iife.js"></script>
34
+ <script src="https://cdn.jsdelivr.net/npm/motionary@10/dist/runtime/text.iife.js"></script>
35
+ <!-- then the component bundles -->
36
+ <script src="https://unpkg.com/motionary@10/dist/components.umd.js"></script>
37
+ <script src="https://unpkg.com/motionary@10/dist/widgets.umd.js"></script>
38
+ ```
39
+
40
+ ## Minimal example
41
+
42
+ ```html
43
+ <usa-text-splitter split="chars" effect="rise" stagger="30">Motion, made simple.</usa-text-splitter>
44
+ ```
45
+
46
+ ## ES module
47
+
48
+ ```js
49
+ import { use } from 'motionary/runtime';
50
+ import { text } from 'motionary/runtime/text';
51
+
52
+ use(text);
53
+ import { defineTextSplitter } from 'motionary/components/widgets';
54
+
55
+ defineTextSplitter(); // registers <usa-text-splitter>
56
+
57
+ /* then use it in your HTML:
58
+ <usa-text-splitter split="chars" effect="rise" stagger="30">Motion, made simple.</usa-text-splitter>
59
+ */
60
+ ```
@@ -1407,6 +1407,66 @@ defineScrollScene(); // registers <usa-scroll-scene> — after the prerequisites
1407
1407
  </usa-scroll-scene>
1408
1408
  ```
1409
1409
 
1410
+ ### `<usa-text-splitter>` — Requires: motionary/runtime/text
1411
+
1412
+ - **Install:** `npm i motionary`
1413
+ - **Import order & registration:** Register the core first, then the module: use(text) also registers the core. CDN: load runtime.iife.js, then runtime/text.iife.js (it registers itself).
1414
+
1415
+ ```js
1416
+ import { use } from 'motionary/runtime';
1417
+ import { text } from 'motionary/runtime/text';
1418
+ import { defineTextSplitter } from 'motionary/components/widgets';
1419
+
1420
+ use(text);
1421
+ defineTextSplitter(); // registers <usa-text-splitter> — after the prerequisites
1422
+ ```
1423
+
1424
+ - **CDN:**
1425
+
1426
+ ```html
1427
+ <script src="https://cdn.jsdelivr.net/npm/motionary@10/dist/runtime.iife.js"></script>
1428
+ <script src="https://cdn.jsdelivr.net/npm/motionary@10/dist/runtime/text.iife.js"></script>
1429
+ <!-- then the component bundles -->
1430
+ <script src="https://unpkg.com/motionary@10/dist/components.umd.js"></script>
1431
+ <script src="https://unpkg.com/motionary@10/dist/widgets.umd.js"></script>
1432
+ ```
1433
+
1434
+ - **Minimal example:**
1435
+
1436
+ ```html
1437
+ <usa-text-splitter split="chars" effect="rise" stagger="30">Motion, made simple.</usa-text-splitter>
1438
+ ```
1439
+
1440
+ ### `<usa-smooth-scroll>` — Requires: motionary/runtime/smooth
1441
+
1442
+ - **Install:** `npm i motionary`
1443
+ - **Import order & registration:** Register the core first, then the module: use(smooth) also registers the core. CDN: load runtime.iife.js, then runtime/smooth.iife.js (it registers itself).
1444
+
1445
+ ```js
1446
+ import { use } from 'motionary/runtime';
1447
+ import { smooth } from 'motionary/runtime/smooth';
1448
+ import { defineSmoothScroll } from 'motionary/components/widgets';
1449
+
1450
+ use(smooth);
1451
+ defineSmoothScroll(); // registers <usa-smooth-scroll> — after the prerequisites
1452
+ ```
1453
+
1454
+ - **CDN:**
1455
+
1456
+ ```html
1457
+ <script src="https://cdn.jsdelivr.net/npm/motionary@10/dist/runtime.iife.js"></script>
1458
+ <script src="https://cdn.jsdelivr.net/npm/motionary@10/dist/runtime/smooth.iife.js"></script>
1459
+ <!-- then the component bundles -->
1460
+ <script src="https://unpkg.com/motionary@10/dist/components.umd.js"></script>
1461
+ <script src="https://unpkg.com/motionary@10/dist/widgets.umd.js"></script>
1462
+ ```
1463
+
1464
+ - **Minimal example:**
1465
+
1466
+ ```html
1467
+ <usa-smooth-scroll lerp="0.1" offset="64"></usa-smooth-scroll>
1468
+ ```
1469
+
1410
1470
  <!-- prereqs:end -->
1411
1471
 
1412
1472
  ### v10.2 Scroll scenes (`motionary/runtime/scroll`) + SVG loader + `data-motion` in core: `<usa-scroll-scene>`, `<usa-motion-inspector>` (`components/widgets`)
@@ -1426,6 +1486,40 @@ defineScrollScene(); // registers <usa-scroll-scene> — after the prerequisites
1426
1486
 
1427
1487
  Declarative motion with just the core: `applyMotionAttributes(createMotion())` + `data-motion="enter: fade-up 600ms"`.
1428
1488
 
1489
+ ### v10.3 View Transitions 2.0 + text splitting (`motionary/runtime/text`) + sprite sheets: `<usa-route-transition>`, `<usa-text-splitter>` (`components/widgets`)
1490
+
1491
+ ```html
1492
+ <usa-route-transition id="app" effect="slide" cross-document>
1493
+ <nav><a href="/">Home</a> <a href="/about">About</a></nav>
1494
+ <h1 data-shared="title">Home</h1>
1495
+ </usa-route-transition>
1496
+ <usa-text-splitter split="chars" effect="rise" stagger="30">Motion, made simple.</usa-text-splitter>
1497
+ ```
1498
+
1499
+ | Element | Attributes | Methods / events |
1500
+ |---|---|---|
1501
+ | `<usa-route-transition>` | `effect` (fade, slide, zoom), `engine` (auto, view-transition, waapi), `selector`, `history` (push, replace, off), `links` (inside, document), `cross-document`; `[data-to]`, `<template data-route>`, `[data-shared]` | `navigate(url)`, `current`; `usa:navigate`, `usa:navigated` |
1502
+ | `<usa-text-splitter>` (Requires: motionary/runtime/text) | `split` (chars, words, lines), `effect` (rise, fade, blur, flip, wave), `stagger`, `duration`, `trigger` (view, load, hover), `loop` | `replay()`, `pieces()`; `usa:split`, `usa:done`, `usa:runtime-missing` |
1503
+
1504
+ ### v10.4 Scroll-driven 3.0 + smooth scrolling (`motionary/runtime/smooth`) + animated images: `<usa-scroll-ring>`, `<usa-parallax-layers>`, `<usa-smooth-scroll>` (`components/widgets`) · `motionary-mcp`
1505
+
1506
+ ```html
1507
+ <usa-scroll-ring label back-to-top></usa-scroll-ring>
1508
+ <usa-parallax-layers range="120">
1509
+ <img data-depth="0.6" src="mountains.webp" alt="">
1510
+ <h2 data-depth="-0.3">Above the clouds</h2>
1511
+ </usa-parallax-layers>
1512
+ <usa-smooth-scroll lerp="0.1" offset="64"></usa-smooth-scroll>
1513
+ ```
1514
+
1515
+ | Element | Attributes | Methods / events |
1516
+ |---|---|---|
1517
+ | `<usa-scroll-ring>` | `for` (page or a selector), `engine` (auto, native, js), `label`, `back-to-top`, `size`, `thickness`, `horizontal`, `preview` | `progress`, `engine`; `usa:progress`, `usa:top` |
1518
+ | `<usa-parallax-layers>` | `range`, `engine` (auto, native, js), `horizontal`, `pointer`, `strength`, `preview`; children `[data-depth]` | `layers()`, `progress`; `usa:progress` |
1519
+ | `<usa-smooth-scroll>` (Requires: motionary/runtime/smooth) | `wrapper`, `lerp`, `duration`, `ease`, `wheel-multiplier`, `horizontal`, `touch`, `anchors`, `offset`, `preview` | `glideTo(target)`, `stop()`, `resume()`, `instance`; `usa:ready`, `usa:scroll`, `usa:runtime-missing` |
1520
+
1521
+ MCP: `npx -y -p motionary motionary-mcp` — see [docs/mcp.md](docs/mcp.md).
1522
+
1429
1523
  ## Frameworks
1430
1524
 
1431
1525
  Custom elements work in every framework. Register once (e.g. in your entry file), then use the tags.
package/docs/mcp.md ADDED
@@ -0,0 +1,50 @@
1
+ # `motionary-mcp` — the component catalog as an MCP server
2
+
3
+ `motionary-mcp` (10.4+) is a **read-only** [Model Context Protocol](https://modelcontextprotocol.io) server that ships inside the `motionary` package. AI assistants that speak MCP (Claude Desktop / Claude Code, Cursor, VS Code, Windsurf, Zed, …) can ask it which `<usa-*>` component fits a UI need, read the component's API and get a snippet that already installs, imports and registers every prerequisite in the right order.
4
+
5
+ - **Zero dependencies**, stdio transport (newline-delimited JSON-RPC 2.0), protocol versions `2025-06-18`, `2025-03-26`, `2024-11-05`.
6
+ - **Read-only**: it answers from the AI manifest bundled in the package (`motionary/manifest.json`, the same data as the site's `components.json` / `llms.txt`). It never writes files, executes code or touches the network. Every tool is annotated `readOnlyHint: true`.
7
+ - Tested in CI with the official MCP TypeScript SDK client over stdio.
8
+
9
+ ## Run it
10
+
11
+ ```bash
12
+ npx -y -p motionary motionary-mcp # any machine with Node 18+
13
+ npx motionary-mcp # inside a project that has motionary installed
14
+ MOTIONARY_MANIFEST=./manifest.json npx -p motionary motionary-mcp # another manifest
15
+ ```
16
+
17
+ Client configuration (the usual `mcpServers` shape):
18
+
19
+ ```json
20
+ {
21
+ "mcpServers": {
22
+ "motionary": { "command": "npx", "args": ["-y", "-p", "motionary", "motionary-mcp"] }
23
+ }
24
+ }
25
+ ```
26
+
27
+ Claude Code: `claude mcp add motionary -- npx -y -p motionary motionary-mcp`.
28
+
29
+ ## Tools
30
+
31
+ | Tool | Arguments | Returns |
32
+ |---|---|---|
33
+ | `list_components` | `category?`, `requires?` (`scroll`, `motionary/runtime/text`, `none`), `since?` (`10.0`), `limit?` | tag, title, category, import path, prerequisites, version introduced |
34
+ | `search_components` | `query`, `limit?` | best matches for a UI need ("animated counter", "pinned scroll scene") with a score |
35
+ | `get_component` | `tag` (`usa-tilt`, `tilt` or `<usa-tilt>`) | attributes, events, slots, methods, import / define, CDN, prerequisites (install, import + register order, CDN order), example, variants |
36
+ | `get_example` | `tag`, `variant?` (`html` = CDN, `esm`, or a variant id) | a working example |
37
+ | `scaffold_snippet` | `tags[]`, `framework?` (`html`, `esm`, `react`, `vue`, `svelte`) | one snippet for several components, prerequisites first |
38
+
39
+ Unknown tags come back as tool errors (`isError: true`) with a hint to search first.
40
+
41
+ ## Resources
42
+
43
+ - `motionary://manifest` — the whole manifest (JSON)
44
+ - `motionary://llms.txt` — the short catalog text
45
+ - `motionary://component/{tag}` — one component (JSON; resource template)
46
+
47
+ ## Notes
48
+
49
+ - The server version follows its own track (`0.x` until Motionary 11.0 makes it `1.0`); the catalog version is the installed `motionary` version (`initialize` → `instructions`).
50
+ - MCP 2.0 tools (`suggest_motion`, `validate_snippet`) arrive in 10.7.
@@ -0,0 +1,59 @@
1
+ # motionary/runtime/format-apng — APNG loader
2
+
3
+ > Generated from `showcase/catalog/prereqs.js` by `scripts/gen-runtime-docs.mjs` — edit the data, not this page.
4
+
5
+ Split animated PNGs into standalone frame PNGs (decoded by the browser), composite them (dispose / blend) and play them on a canvas as a runtime timeline.
6
+
7
+ Part of Motionary's own zero-dependency runtime. Size budget: **3.0 KB gzip** (enforced in CI).
8
+
9
+ ## Prerequisites
10
+
11
+ 1. **Install:** `npm i motionary`
12
+ 2. **Import path:** `motionary/runtime/format-apng`
13
+ 3. **CDN:**
14
+
15
+ ```html
16
+ <script src="https://cdn.jsdelivr.net/npm/motionary@10/dist/runtime.iife.js"></script>
17
+ <script src="https://cdn.jsdelivr.net/npm/motionary@10/dist/runtime/format-apng.iife.js"></script>
18
+ ```
19
+
20
+ ESM from a CDN: `https://cdn.jsdelivr.net/npm/motionary@10/dist/runtime/format-apng.js`
21
+
22
+ 4. **Import order & registration:** Register the core first, then the module: use(formatApng) also registers the core. CDN: load runtime.iife.js, then runtime/format-apng.iife.js (it registers itself).
23
+
24
+ ```js
25
+ import { use } from 'motionary/runtime';
26
+ import { formatApng } from 'motionary/runtime/format-apng';
27
+ use(formatApng);
28
+ ```
29
+
30
+ ## Example
31
+
32
+ ```js
33
+ import { use } from 'motionary/runtime';
34
+ import { formatApng, loadApng, animatedImagePlayer } from 'motionary/runtime/format-apng';
35
+ use(formatApng);
36
+ const anim = await loadApng('/sticker.png');
37
+ animatedImagePlayer(document.querySelector('canvas'), anim);
38
+ ```
39
+
40
+ ## Exports
41
+
42
+ `formatApng` · `parseApng` · `apngFramePngs` · `decodeApng` · `loadApng` · `animatedImagePlayer`
43
+
44
+ ## Compatibility
45
+
46
+ | Feature | Supported | Notes |
47
+ |---|---|---|
48
+ | acTL / fcTL / fdAT, frame offsets and delays | ✅ yes | |
49
+ | dispose_op none / background / previous | ✅ yes | first-frame previous → background (spec) |
50
+ | blend_op source / over | ✅ yes | |
51
+ | hidden default image (IDAT not part of the animation) | ✅ yes | |
52
+ | palette / tRNS / gAMA / iCCP / sRGB / sBIT copied into frames | ✅ yes | |
53
+ | plain (non-animated) PNG | ✅ yes | one frame |
54
+ | decoding | ✅ yes | the browser's PNG decoder (createImageBitmap), or your own { decode } |
55
+ | SSR / workers | ◐ partial | parsing is pure; decoding needs createImageBitmap (workers OK) or { decode } |
56
+
57
+ ## Components that need it
58
+
59
+ _None yet._
@@ -0,0 +1,60 @@
1
+ # motionary/runtime/format-gif — GIF decoder
2
+
3
+ > Generated from `showcase/catalog/prereqs.js` by `scripts/gen-runtime-docs.mjs` — edit the data, not this page.
4
+
5
+ Decode animated GIFs (own LZW decoder, no DOM) into composited RGBA frames and play / scrub / reverse them on a canvas as a runtime timeline.
6
+
7
+ Part of Motionary's own zero-dependency runtime. Size budget: **3.0 KB gzip** (enforced in CI).
8
+
9
+ ## Prerequisites
10
+
11
+ 1. **Install:** `npm i motionary`
12
+ 2. **Import path:** `motionary/runtime/format-gif`
13
+ 3. **CDN:**
14
+
15
+ ```html
16
+ <script src="https://cdn.jsdelivr.net/npm/motionary@10/dist/runtime.iife.js"></script>
17
+ <script src="https://cdn.jsdelivr.net/npm/motionary@10/dist/runtime/format-gif.iife.js"></script>
18
+ ```
19
+
20
+ ESM from a CDN: `https://cdn.jsdelivr.net/npm/motionary@10/dist/runtime/format-gif.js`
21
+
22
+ 4. **Import order & registration:** Register the core first, then the module: use(formatGif) also registers the core. CDN: load runtime.iife.js, then runtime/format-gif.iife.js (it registers itself).
23
+
24
+ ```js
25
+ import { use } from 'motionary/runtime';
26
+ import { formatGif } from 'motionary/runtime/format-gif';
27
+ use(formatGif);
28
+ ```
29
+
30
+ ## Example
31
+
32
+ ```js
33
+ import { use } from 'motionary/runtime';
34
+ import { formatGif, loadGif, animatedImagePlayer } from 'motionary/runtime/format-gif';
35
+ use(formatGif);
36
+ const gif = await loadGif('/loader.gif');
37
+ const player = animatedImagePlayer(document.querySelector('canvas'), gif);
38
+ player.pause(); player.progress = 0.5; // scrub
39
+ ```
40
+
41
+ ## Exports
42
+
43
+ `formatGif` · `decodeGif` · `loadGif` · `lzwDecode` · `animatedImagePlayer`
44
+
45
+ ## Compatibility
46
+
47
+ | Feature | Supported | Notes |
48
+ |---|---|---|
49
+ | GIF87a / GIF89a | ✅ yes | |
50
+ | global + local palettes, transparency | ✅ yes | |
51
+ | interlaced frames | ✅ yes | 4-pass row order |
52
+ | disposal 0–3 (none / keep / background / previous) | ✅ yes | background clears to transparent, like browsers |
53
+ | frame delays, NETSCAPE2.0 / ANIMEXTS loop count | ✅ yes | delays ≤ 10 ms play at 100 ms, like browsers |
54
+ | truncated files | ◐ partial | decodes what is there |
55
+ | plain-text extension | ✕ no | ignored (browsers ignore it too) |
56
+ | SSR / workers | ✅ yes | decoding is pure; the player needs a (Offscreen)Canvas |
57
+
58
+ ## Components that need it
59
+
60
+ _None yet._
@@ -0,0 +1,60 @@
1
+ # motionary/runtime/format-sprite — Sprite sheets & image sequences
2
+
3
+ > Generated from `showcase/catalog/prereqs.js` by `scripts/gen-runtime-docs.mjs` — edit the data, not this page.
4
+
5
+ Play TexturePacker / Aseprite sprite sheets and numbered image sequences on a canvas or an element background, as runtime timelines (scrubbable).
6
+
7
+ Part of Motionary's own zero-dependency runtime. Size budget: **3.0 KB gzip** (enforced in CI).
8
+
9
+ ## Prerequisites
10
+
11
+ 1. **Install:** `npm i motionary`
12
+ 2. **Import path:** `motionary/runtime/format-sprite`
13
+ 3. **CDN:**
14
+
15
+ ```html
16
+ <script src="https://cdn.jsdelivr.net/npm/motionary@10/dist/runtime.iife.js"></script>
17
+ <script src="https://cdn.jsdelivr.net/npm/motionary@10/dist/runtime/format-sprite.iife.js"></script>
18
+ ```
19
+
20
+ ESM from a CDN: `https://cdn.jsdelivr.net/npm/motionary@10/dist/runtime/format-sprite.js`
21
+
22
+ 4. **Import order & registration:** Register the core first, then the module: use(formatSprite) also registers the core. CDN: load runtime.iife.js, then runtime/format-sprite.iife.js (it registers itself).
23
+
24
+ ```js
25
+ import { use } from 'motionary/runtime';
26
+ import { formatSprite } from 'motionary/runtime/format-sprite';
27
+ use(formatSprite);
28
+ ```
29
+
30
+ ## Example
31
+
32
+ ```js
33
+ import { use } from 'motionary/runtime';
34
+ import { formatSprite, parseSpriteSheet, spritePlayer } from 'motionary/runtime/format-sprite';
35
+ use(formatSprite);
36
+ const sheet = parseSpriteSheet(await (await fetch('/slime.json')).json());
37
+ const img = new Image(); img.src = '/slime.png'; await img.decode();
38
+ spritePlayer(document.querySelector('canvas'), sheet, img, { tag: 'bounce' });
39
+ ```
40
+
41
+ ## Exports
42
+
43
+ `formatSprite` · `parseSpriteSheet` · `gridSheet` · `frameOrder` · `drawFrame` · `spritePlayer` · `imageSequence` · `preloadImages` · `sequencePlayer`
44
+
45
+ ## Compatibility
46
+
47
+ | Feature | Supported | Notes |
48
+ |---|---|---|
49
+ | TexturePacker JSON (hash + array) | ✅ yes | trimmed (spriteSourceSize / sourceSize) and rotated frames |
50
+ | Aseprite JSON (hash + array), per-frame duration | ✅ yes | |
51
+ | Aseprite frameTags: forward / reverse / pingpong / pingpong_reverse | ✅ yes | |
52
+ | plain grid sheets | ✅ yes | gridSheet(cols, rows, w, h) |
53
+ | image sequences (frame_{0001}.webp) | ✅ yes | preloading, cover-fit drawing, scrub via progress |
54
+ | multipack (several atlas images) | ✕ no | load each sheet separately |
55
+ | Aseprite slices / layers | ✕ no | frames only |
56
+ | SSR / workers | ◐ partial | parsing is pure; players need a canvas (OffscreenCanvas works) |
57
+
58
+ ## Components that need it
59
+
60
+ _None yet._