@yewdiel21/motion-kit 0.9.0 → 0.10.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 (399) hide show
  1. package/NOTICE +3 -35
  2. package/README.md +93 -81
  3. package/dist/auto/index.d.ts +22 -3
  4. package/dist/auto/index.js +43 -5
  5. package/dist/auto/index.js.map +1 -1
  6. package/dist/{chunk-KLY5BRRI.js → chunk-34EZ7DF4.js} +1 -1
  7. package/dist/chunk-34EZ7DF4.js.map +1 -0
  8. package/dist/{chunk-RFDIZYFX.js → chunk-DOOMULVV.js} +20 -20
  9. package/dist/chunk-DOOMULVV.js.map +1 -0
  10. package/dist/{chunk-ABNRDDO7.js → chunk-I3DXF2KQ.js} +2 -2
  11. package/dist/{chunk-Q4LVFNLN.js → chunk-IKQ5FODN.js} +4 -4
  12. package/dist/chunk-IKQ5FODN.js.map +1 -0
  13. package/dist/{chunk-2BQGFOA7.js → chunk-J6OCFNGU.js} +2 -2
  14. package/dist/chunk-J6OCFNGU.js.map +1 -0
  15. package/dist/{chunk-6OJAP6ZL.js → chunk-QFBOHPWZ.js} +3 -3
  16. package/dist/chunk-QFBOHPWZ.js.map +1 -0
  17. package/dist/{chunk-J27KH2A2.js → chunk-RVSKEBIC.js} +1 -1
  18. package/dist/chunk-RVSKEBIC.js.map +1 -0
  19. package/dist/{chunk-34XYOXHG.js → chunk-TFNRIZHU.js} +1615 -12
  20. package/dist/chunk-TFNRIZHU.js.map +1 -0
  21. package/dist/{chunk-FS2HJVVY.js → chunk-XAKC2QY7.js} +1204 -5
  22. package/dist/chunk-XAKC2QY7.js.map +1 -0
  23. package/dist/css/components/calendar.css +159 -0
  24. package/dist/css/components/chat-background.css +2 -2
  25. package/dist/css/components/chat.css +1 -1
  26. package/dist/css/components/cursor.css +3 -3
  27. package/dist/css/components/dialog.css +3 -3
  28. package/dist/css/components/hover-card.css +14 -0
  29. package/dist/css/components/input-otp.css +10 -0
  30. package/dist/css/components/island.css +1 -1
  31. package/dist/css/components/menu.css +1 -1
  32. package/dist/css/components/nav.css +1 -5
  33. package/dist/css/components/pagination.css +11 -0
  34. package/dist/css/components/quantity.css +16 -0
  35. package/dist/css/components/slot-picker.css +126 -0
  36. package/dist/css/components/steps.css +2 -2
  37. package/dist/css/components/studio-dock.css +35 -0
  38. package/dist/css/components/theme-picker.css +1 -1
  39. package/dist/css/components/toast.css +1 -1
  40. package/dist/css/components/trailer.css +37 -0
  41. package/dist/css/controls.css +78 -13
  42. package/dist/css/effects.css +8 -8
  43. package/dist/css/fonts.css +1 -1
  44. package/dist/css/themes/black-green.css +1 -1
  45. package/dist/css/themes/black.css +1 -1
  46. package/dist/css/themes/blue.css +1 -1
  47. package/dist/css/themes/brown.css +1 -1
  48. package/dist/css/themes/cold-blue.css +1 -1
  49. package/dist/css/themes/funny.css +1 -1
  50. package/dist/css/themes/gray.css +1 -1
  51. package/dist/css/themes/green.css +1 -1
  52. package/dist/css/themes/modern-1.css +1 -1
  53. package/dist/css/themes/neogreen.css +1 -1
  54. package/dist/css/themes/new.css +1 -1
  55. package/dist/css/themes/new2.css +1 -1
  56. package/dist/css/themes/oled.css +1 -1
  57. package/dist/css/themes/orange.css +1 -1
  58. package/dist/css/themes/pastel-pink.css +1 -1
  59. package/dist/css/themes/pink.css +1 -1
  60. package/dist/css/themes/purple.css +1 -1
  61. package/dist/css/themes/red.css +1 -1
  62. package/dist/css/themes/super-blue.css +1 -1
  63. package/dist/css/themes.css +19 -19
  64. package/dist/css/tokens.css +9 -9
  65. package/dist/elements/index.d.ts +75 -7
  66. package/dist/elements/index.js +172 -6
  67. package/dist/elements/index.js.map +1 -1
  68. package/dist/{engine-CUr9QijM.d.ts → engine-GDGwQnJE.d.ts} +2 -2
  69. package/dist/gl/index.js +3 -3
  70. package/dist/index.css +1076 -63
  71. package/dist/index.d.ts +17 -17
  72. package/dist/index.js +49 -7
  73. package/dist/index.js.map +1 -1
  74. package/dist/react/index.d.ts +139 -40
  75. package/dist/react/index.js +355 -8
  76. package/dist/react/index.js.map +1 -1
  77. package/dist/{reduced-BM4Ls0g5.d.ts → reduced-BmBzKH94.d.ts} +215 -18
  78. package/dist/{reveal-WFUWDrei.d.ts → reveal-jsX-uwUz.d.ts} +233 -24
  79. package/dist/{store-Bqy_obnD.d.ts → store-DYb3tTsZ.d.ts} +5 -5
  80. package/dist/theme/generate.d.ts +1 -1
  81. package/dist/theme/generate.js +2 -2
  82. package/dist/theme/generate.js.map +1 -1
  83. package/dist/theme/index.d.ts +2 -2
  84. package/dist/theme/index.js +2 -2
  85. package/dist/{theme-BFMoCzi6.d.ts → theme-Bjf9qIIy.d.ts} +1 -1
  86. package/package.json +2 -2
  87. package/registry.json +230 -156
  88. package/skills/motion-kit/SKILL.md +209 -189
  89. package/skills/motion-kit/reference/components.md +5 -5
  90. package/skills/motion-kit/reference/design.md +14 -14
  91. package/skills/motion-kit/reference/recipes.md +48 -49
  92. package/src/auto/auto-init.ts +38 -0
  93. package/src/components/calendar/README.md +82 -0
  94. package/src/components/calendar/calendar.css +158 -0
  95. package/src/components/calendar/element.ts +27 -0
  96. package/src/components/calendar/engine.ts +412 -0
  97. package/src/components/calendar/react.tsx +69 -0
  98. package/src/components/chat/README.md +1 -3
  99. package/src/components/chat/chat.css +1 -1
  100. package/src/components/chat/engine.ts +1 -1
  101. package/src/components/chat/react.tsx +1 -1
  102. package/src/components/chat-background/README.md +1 -3
  103. package/src/components/chat-background/audio.ts +1 -1
  104. package/src/components/chat-background/chat-background.css +2 -2
  105. package/src/components/chat-background/engine.ts +1 -1
  106. package/src/components/chat-background/react.tsx +1 -1
  107. package/src/components/cursor/README.md +3 -5
  108. package/src/components/cursor/cursor.css +3 -3
  109. package/src/components/cursor/element.ts +2 -2
  110. package/src/components/cursor/engine.ts +5 -5
  111. package/src/components/cursor/react.tsx +1 -1
  112. package/src/components/dialog/README.md +4 -8
  113. package/src/components/dialog/dialog.css +3 -3
  114. package/src/components/dialog/engine.ts +2 -2
  115. package/src/components/dialog/react.tsx +1 -1
  116. package/src/components/hover-card/README.md +16 -0
  117. package/src/components/hover-card/element.ts +8 -0
  118. package/src/components/hover-card/engine.ts +69 -0
  119. package/src/components/hover-card/hover-card.css +13 -0
  120. package/src/components/hover-card/react.tsx +19 -0
  121. package/src/components/input-otp/README.md +18 -0
  122. package/src/components/input-otp/element.ts +14 -0
  123. package/src/components/input-otp/engine.ts +106 -0
  124. package/src/components/input-otp/input-otp.css +9 -0
  125. package/src/components/input-otp/react.tsx +21 -0
  126. package/src/components/island/README.md +7 -7
  127. package/src/components/island/engine.ts +3 -3
  128. package/src/components/island/island.css +1 -1
  129. package/src/components/island/react.tsx +3 -3
  130. package/src/components/menu/README.md +2 -4
  131. package/src/components/menu/engine.ts +1 -1
  132. package/src/components/menu/menu.css +1 -1
  133. package/src/components/menu/react.tsx +1 -1
  134. package/src/components/nav/README.md +12 -14
  135. package/src/components/nav/engine.ts +5 -5
  136. package/src/components/nav/nav.css +1 -5
  137. package/src/components/nav/react.tsx +3 -3
  138. package/src/components/pagination/README.md +17 -0
  139. package/src/components/pagination/element.ts +14 -0
  140. package/src/components/pagination/engine.ts +102 -0
  141. package/src/components/pagination/pagination.css +10 -0
  142. package/src/components/pagination/react.tsx +22 -0
  143. package/src/components/quantity/README.md +20 -0
  144. package/src/components/quantity/element.ts +14 -0
  145. package/src/components/quantity/engine.ts +85 -0
  146. package/src/components/quantity/quantity.css +15 -0
  147. package/src/components/quantity/react.tsx +21 -0
  148. package/src/components/slot-picker/README.md +68 -0
  149. package/src/components/slot-picker/element.ts +27 -0
  150. package/src/components/slot-picker/engine.ts +412 -0
  151. package/src/components/slot-picker/react.tsx +76 -0
  152. package/src/components/slot-picker/slot-picker.css +125 -0
  153. package/src/components/steps/README.md +1 -3
  154. package/src/components/steps/engine.ts +3 -3
  155. package/src/components/steps/react.tsx +2 -2
  156. package/src/components/steps/steps.css +2 -2
  157. package/src/components/studio-dock/README.md +44 -0
  158. package/src/components/studio-dock/element.ts +11 -0
  159. package/src/components/studio-dock/engine.ts +212 -0
  160. package/src/components/studio-dock/react.tsx +23 -0
  161. package/src/components/studio-dock/studio-dock.css +34 -0
  162. package/src/components/theme-picker/README.md +3 -5
  163. package/src/components/theme-picker/engine.ts +2 -2
  164. package/src/components/theme-picker/react.tsx +1 -1
  165. package/src/components/theme-picker/theme-picker.css +1 -1
  166. package/src/components/toast/README.md +1 -3
  167. package/src/components/toast/engine.ts +2 -2
  168. package/src/components/toast/react.tsx +1 -1
  169. package/src/components/toast/store.ts +1 -2
  170. package/src/components/toast/toast.css +1 -1
  171. package/src/components/trailer/README.md +28 -0
  172. package/src/components/trailer/element.ts +13 -0
  173. package/src/components/trailer/engine.ts +189 -0
  174. package/src/components/trailer/react.tsx +16 -0
  175. package/src/components/trailer/trailer.css +36 -0
  176. package/src/core/channels.ts +3 -3
  177. package/src/core/curves.ts +3 -3
  178. package/src/core/dates.ts +98 -0
  179. package/src/core/gsap.ts +2 -2
  180. package/src/core/loop.ts +1 -1
  181. package/src/core/math.ts +1 -1
  182. package/src/core/physics-spring.ts +2 -2
  183. package/src/core/scroll-track.ts +2 -4
  184. package/src/core/spring.ts +1 -1
  185. package/src/core/timing.ts +21 -22
  186. package/src/css/controls/README.md +24 -20
  187. package/src/css/controls/burger.css +1 -1
  188. package/src/css/controls/button.css +4 -4
  189. package/src/css/controls/checkbox.css +1 -1
  190. package/src/css/controls/chip.css +1 -1
  191. package/src/css/controls/field.css +2 -2
  192. package/src/css/controls/glass.css +4 -4
  193. package/src/css/controls/status.css +63 -0
  194. package/src/css/default-theme.css +1 -1
  195. package/src/css/effects/README.md +19 -21
  196. package/src/css/effects/anim.css +1 -1
  197. package/src/css/effects/fade.css +1 -1
  198. package/src/css/effects/float.css +1 -1
  199. package/src/css/effects/frost.css +1 -1
  200. package/src/css/effects/grain.css +1 -1
  201. package/src/css/effects/loading.css +1 -1
  202. package/src/css/effects/success.css +1 -1
  203. package/src/css/effects/text.css +1 -1
  204. package/src/css/fonts.css +1 -1
  205. package/src/css/states.css +1 -1
  206. package/src/css/themes/black-green.css +1 -1
  207. package/src/css/themes/black.css +1 -1
  208. package/src/css/themes/blue.css +1 -1
  209. package/src/css/themes/brown.css +1 -1
  210. package/src/css/themes/cold-blue.css +1 -1
  211. package/src/css/themes/funny.css +1 -1
  212. package/src/css/themes/gray.css +1 -1
  213. package/src/css/themes/green.css +1 -1
  214. package/src/css/themes/modern-1.css +1 -1
  215. package/src/css/themes/neogreen.css +1 -1
  216. package/src/css/themes/new.css +1 -1
  217. package/src/css/themes/new2.css +1 -1
  218. package/src/css/themes/oled.css +1 -1
  219. package/src/css/themes/orange.css +1 -1
  220. package/src/css/themes/pastel-pink.css +1 -1
  221. package/src/css/themes/pink.css +1 -1
  222. package/src/css/themes/purple.css +1 -1
  223. package/src/css/themes/red.css +1 -1
  224. package/src/css/themes/super-blue.css +1 -1
  225. package/src/css/tokens.css +8 -8
  226. package/src/elements/index.ts +24 -0
  227. package/src/gl/liquid-blend/README.md +3 -3
  228. package/src/gl/matcap/README.md +3 -3
  229. package/src/gl/particle-hero/README.md +1 -1
  230. package/src/gl/particle-hero/create-particle-hero.ts +3 -5
  231. package/src/gl/particle-hero/shaders.ts +1 -1
  232. package/src/gl/shader-blur/README.md +3 -3
  233. package/src/gl/shader-grain/README.md +3 -3
  234. package/src/index.ts +25 -0
  235. package/src/motion/chat.ts +2 -2
  236. package/src/motion/confetti.ts +1 -1
  237. package/src/motion/count.ts +1 -1
  238. package/src/motion/details.ts +1 -1
  239. package/src/motion/drag-dismiss.ts +1 -1
  240. package/src/motion/effects.ts +1 -1
  241. package/src/motion/entrances.ts +1 -1
  242. package/src/motion/floating.ts +1 -1
  243. package/src/motion/flow.ts +2 -2
  244. package/src/motion/indicator.ts +1 -1
  245. package/src/motion/layout.ts +1 -1
  246. package/src/motion/liquid.ts +1 -1
  247. package/src/motion/morph.ts +2 -2
  248. package/src/motion/reveal.ts +1 -1
  249. package/src/motion/sheet.ts +1 -1
  250. package/src/motion/surface.ts +1 -1
  251. package/src/react/animated-number.tsx +2 -2
  252. package/src/react/flip-group.tsx +1 -1
  253. package/src/react/frost.tsx +1 -1
  254. package/src/react/index.ts +21 -0
  255. package/src/react/slot-text.tsx +1 -1
  256. package/src/react/use-action-button.ts +6 -0
  257. package/src/react/use-card-dock.ts +1 -1
  258. package/src/react/use-cascade.ts +1 -1
  259. package/src/react/use-contrast.ts +1 -1
  260. package/src/react/use-depth-grid.ts +1 -1
  261. package/src/react/use-editorial-reveal.ts +7 -0
  262. package/src/react/use-fill-text.ts +1 -1
  263. package/src/react/use-film-hero.ts +6 -0
  264. package/src/react/use-font-cycle.ts +7 -0
  265. package/src/react/use-frame-zoom.ts +1 -1
  266. package/src/react/use-image-zoom.ts +5 -0
  267. package/src/react/use-joined-cta.ts +5 -0
  268. package/src/react/use-letters.ts +1 -1
  269. package/src/react/use-local-clock.ts +5 -0
  270. package/src/react/use-marquee.ts +1 -1
  271. package/src/react/use-mask-text.ts +1 -1
  272. package/src/react/use-parallax.ts +1 -1
  273. package/src/react/use-particle-hero.ts +1 -1
  274. package/src/react/use-scroll-dock.ts +5 -0
  275. package/src/react/use-snap-strip.ts +1 -1
  276. package/src/react/use-sticker.ts +5 -0
  277. package/src/react/use-studio-dock.ts +8 -0
  278. package/src/react/use-text-roll.ts +1 -1
  279. package/src/react/use-thumbnail-nav.ts +7 -0
  280. package/src/react/use-trailer.ts +6 -0
  281. package/src/react/use-weight-hover.ts +5 -0
  282. package/src/recipes/action-button/README.md +31 -0
  283. package/src/recipes/action-button/action-button.css +113 -0
  284. package/src/recipes/action-button/create-action-button.ts +56 -0
  285. package/src/recipes/card-dock/README.md +1 -1
  286. package/src/recipes/card-dock/card-dock.css +1 -1
  287. package/src/recipes/card-dock/create-card-dock.ts +2 -2
  288. package/src/recipes/cascade/README.md +1 -3
  289. package/src/recipes/cascade/create-cascade.ts +3 -3
  290. package/src/recipes/contrast/README.md +0 -2
  291. package/src/recipes/contrast/create-contrast.ts +1 -1
  292. package/src/recipes/counter/README.md +0 -2
  293. package/src/recipes/counter/create-counter.ts +1 -1
  294. package/src/recipes/curved-carousel/README.md +0 -2
  295. package/src/recipes/curved-carousel/create-curved-carousel.ts +2 -2
  296. package/src/recipes/curved-carousel/curved-carousel.css +1 -1
  297. package/src/recipes/depth-grid/README.md +0 -2
  298. package/src/recipes/depth-grid/create-depth-grid.ts +3 -4
  299. package/src/recipes/details/README.md +0 -2
  300. package/src/recipes/details/create-details.ts +1 -1
  301. package/src/recipes/dock-pill/README.md +3 -3
  302. package/src/recipes/drag-ruler/README.md +3 -3
  303. package/src/recipes/editorial-reveal/README.md +35 -0
  304. package/src/recipes/editorial-reveal/create-editorial-reveal.ts +91 -0
  305. package/src/recipes/editorial-reveal/editorial-reveal.css +17 -0
  306. package/src/recipes/fill-text/README.md +1 -1
  307. package/src/recipes/fill-text/create-fill-text.ts +1 -1
  308. package/src/recipes/film-hero/README.md +23 -0
  309. package/src/recipes/film-hero/create-film-hero.ts +65 -0
  310. package/src/recipes/film-hero/film-hero.css +29 -0
  311. package/src/recipes/fit-text/README.md +0 -2
  312. package/src/recipes/flow/README.md +0 -2
  313. package/src/recipes/flow/create-flow.ts +1 -1
  314. package/src/recipes/font-cycle/README.md +11 -0
  315. package/src/recipes/font-cycle/create-font-cycle.ts +126 -0
  316. package/src/recipes/font-cycle/font-cycle.css +36 -0
  317. package/src/recipes/frame-zoom/README.md +1 -3
  318. package/src/recipes/frame-zoom/create-frame-zoom.ts +2 -2
  319. package/src/recipes/image-zoom/README.md +16 -0
  320. package/src/recipes/image-zoom/create-image-zoom.ts +27 -0
  321. package/src/recipes/image-zoom/image-zoom.css +7 -0
  322. package/src/recipes/infinite-reel/README.md +3 -3
  323. package/src/recipes/joined-cta/README.md +13 -0
  324. package/src/recipes/joined-cta/create-joined-cta.ts +22 -0
  325. package/src/recipes/joined-cta/joined-cta.css +17 -0
  326. package/src/recipes/letters/README.md +2 -4
  327. package/src/recipes/letters/create-letters.ts +3 -3
  328. package/src/recipes/local-clock/README.md +31 -0
  329. package/src/recipes/local-clock/create-local-clock.ts +61 -0
  330. package/src/recipes/marquee/README.md +0 -2
  331. package/src/recipes/marquee/create-marquee.ts +3 -3
  332. package/src/recipes/marquee/marquee.css +1 -1
  333. package/src/recipes/mask-text/README.md +3 -5
  334. package/src/recipes/mask-text/create-mask-text.ts +4 -4
  335. package/src/recipes/parallax/README.md +1 -3
  336. package/src/recipes/parallax/create-parallax.ts +1 -1
  337. package/src/recipes/pile/README.md +0 -2
  338. package/src/recipes/pile/create-pile.ts +1 -1
  339. package/src/recipes/pile/pile-math.ts +1 -1
  340. package/src/recipes/pile/pile.css +1 -1
  341. package/src/recipes/pill/README.md +0 -2
  342. package/src/recipes/pill/pill.css +2 -2
  343. package/src/recipes/pop/README.md +0 -2
  344. package/src/recipes/pop/create-pop.ts +1 -1
  345. package/src/recipes/radial-menu/README.md +0 -2
  346. package/src/recipes/radial-menu/create-radial-menu.ts +1 -1
  347. package/src/recipes/radial-menu/radial-menu.css +1 -1
  348. package/src/recipes/reflow/README.md +3 -5
  349. package/src/recipes/reflow/create-reflow.ts +1 -1
  350. package/src/recipes/repel-bento/README.md +3 -3
  351. package/src/recipes/reveal/README.md +0 -2
  352. package/src/recipes/reveal/create-reveal.ts +1 -1
  353. package/src/recipes/rotator/README.md +3 -3
  354. package/src/recipes/scroll-dock/README.md +46 -0
  355. package/src/recipes/scroll-dock/create-scroll-dock.ts +72 -0
  356. package/src/recipes/scroll-dock/scroll-dock.css +70 -0
  357. package/src/recipes/slot-text/README.md +0 -2
  358. package/src/recipes/slot-text/create-slot-text.ts +1 -1
  359. package/src/recipes/snap-strip/README.md +1 -1
  360. package/src/recipes/snap-strip/create-snap-strip.ts +5 -6
  361. package/src/recipes/snap-strip/snap-strip.css +1 -1
  362. package/src/recipes/sortable/README.md +3 -5
  363. package/src/recipes/sortable/create-sortable.ts +4 -4
  364. package/src/recipes/sortable/sortable.css +1 -1
  365. package/src/recipes/spring-cards/README.md +0 -2
  366. package/src/recipes/spring-cards/create-spring-cards.ts +1 -1
  367. package/src/recipes/spring-cards/spring-cards.css +1 -1
  368. package/src/recipes/sticker/README.md +59 -0
  369. package/src/recipes/sticker/create-sticker.ts +490 -0
  370. package/src/recipes/sticker/sticker.css +112 -0
  371. package/src/recipes/stretch-footer/README.md +0 -2
  372. package/src/recipes/stretch-footer/create-stretch-footer.ts +1 -1
  373. package/src/recipes/stretch-footer/stretch-footer.css +1 -1
  374. package/src/recipes/tabs/README.md +0 -2
  375. package/src/recipes/tabs/create-tabs.ts +1 -1
  376. package/src/recipes/text-roll/README.md +1 -3
  377. package/src/recipes/text-roll/create-text-roll.ts +3 -3
  378. package/src/recipes/text-roll/text-roll.css +1 -1
  379. package/src/recipes/thumbnail-nav/README.md +16 -0
  380. package/src/recipes/thumbnail-nav/create-thumbnail-nav.ts +165 -0
  381. package/src/recipes/thumbnail-nav/thumbnail-nav.css +108 -0
  382. package/src/recipes/ticket-menu/README.md +3 -3
  383. package/src/recipes/weight-hover/README.md +37 -0
  384. package/src/recipes/weight-hover/create-weight-hover.ts +136 -0
  385. package/src/recipes/weight-hover/weight-hover.css +7 -0
  386. package/src/recipes/words/README.md +0 -2
  387. package/src/recipes/words/create-words.ts +1 -1
  388. package/src/theme/generate.ts +1 -1
  389. package/src/theme/presets.ts +2 -2
  390. package/src/theme/theme.ts +1 -2
  391. package/dist/chunk-2BQGFOA7.js.map +0 -1
  392. package/dist/chunk-34XYOXHG.js.map +0 -1
  393. package/dist/chunk-6OJAP6ZL.js.map +0 -1
  394. package/dist/chunk-FS2HJVVY.js.map +0 -1
  395. package/dist/chunk-J27KH2A2.js.map +0 -1
  396. package/dist/chunk-KLY5BRRI.js.map +0 -1
  397. package/dist/chunk-Q4LVFNLN.js.map +0 -1
  398. package/dist/chunk-RFDIZYFX.js.map +0 -1
  399. /package/dist/{chunk-ABNRDDO7.js.map → chunk-I3DXF2KQ.js.map} +0 -0
@@ -1,8 +1,6 @@
1
1
  # controls
2
2
 
3
- Controles en CSS puro con la línea de Stepbro, sobre la capa `--mk-*` de los tokens (cambian con el tema). Funcionan en HTML/Astro y React sin JavaScript.
4
-
5
- Origen: Stepbro usa Material Web; estos estilos reproducen sus ajustes (`tasks/source/frontend.css`): botones rellenos con `primary-container`, botones pequeños de 32 px con radio 12, campos rellenos `surface-container-high` con radio 16 y sin indicador inferior, chips de filtro en cápsula que toman `primary-container`, checkbox con radio 6, menús con radio 16.
3
+ Controles en CSS puro sobre la capa `--mk-*` de los tokens (cambian con el tema). Funcionan en HTML/Astro y React sin JavaScript.
6
4
 
7
5
  ## Botón
8
6
 
@@ -64,12 +62,12 @@ El indicador lo mueve la receta `tabs`.
64
62
 
65
63
  Necesita la fuente Material Symbols Rounded (`@yewdiel21/motion-kit/css/fonts`). `--mk-icon-fill` (0–1) y `--mk-icon-weight` controlan los ejes.
66
64
 
67
- ## Cristal (Dousan Miao)
65
+ ## Cristal
68
66
 
69
67
  ```html
70
68
  <button class="mk-button mk-glass">Copiar email</button>
71
69
 
72
- <!-- con la sombra de gradiente de Dousan -->
70
+ <!-- con la sombra de gradiente -->
73
71
  <button class="mk-button mk-glass">
74
72
  <span class="mk-glass__shadow" aria-hidden="true"></span>
75
73
  Copiar email
@@ -78,28 +76,24 @@ Necesita la fuente Material Symbols Rounded (`@yewdiel21/motion-kit/css/fonts`).
78
76
  <span class="mk-chip mk-glass">Shipped</span>
79
77
  ```
80
78
 
81
- El cristal de Dousan en un solo elemento, sin JS: superficie translúcida con `backdrop-filter: blur(4px)` y sombras interiores; un aro óptico (`::before`, degradado cónico enmascarado al borde) que gira de −75° a −125° al pasar el ratón (0.5 s); un brillo especular (`::after`, `mix-blend-mode: screen`) que se desliza al pasar y se inclina al presionar (0.5 s `cubic-bezier(.25,1,.5,1)`). Al pasar, el blur casi desaparece y la sombra se ajusta (0.4 s). Al presionar, `scale(.95)` con el resorte de Dousan (Motion 400/10, en CSS con `linear()`: `--mk-ease-press`, `--mk-dur-press`).
79
+ El cristal en un solo elemento, sin JS: superficie translúcida con `backdrop-filter: blur(4px)` y sombras interiores; un aro óptico (`::before`, degradado cónico enmascarado al borde) que gira de −75° a −125° al pasar el ratón (0.5 s); un brillo especular (`::after`, `mix-blend-mode: screen`) que se desliza al pasar y se inclina al presionar (0.5 s `cubic-bezier(.25,1,.5,1)`). Al pasar, el blur casi desaparece y la sombra se ajusta (0.4 s). Al presionar, `scale(.95)` con un resorte 400/10 (en CSS con `linear()`: `--mk-ease-press`, `--mk-dur-press`).
82
80
 
83
81
  - Funciona en cualquier elemento: botón, enlace, chip. Necesita algo detrás (foto, color, degradado) para que se note el cristal.
84
82
  - Claro u oscuro según el `color-scheme` del tema (`light-dark()`).
85
- - `<span class="mk-glass__shadow">` añade la sombra de gradiente de Dousan bajo el botón. En Dousan es una capa hermana detrás de la superficie; aquí va dentro y una máscara deja ver solo su parte inferior.
83
+ - `<span class="mk-glass__shadow">` añade la sombra de gradiente bajo el botón. La sombra se coloca dentro de la superficie y una máscara deja ver solo su parte inferior.
86
84
  - Sin `backdrop-filter`, el fondo pasa a ser casi opaco.
87
- - Variables: `--mk-glass-blur` (4px), `--mk-glass-border` (ancho del aro), `--mk-glass-tint` (color del brillo), `--mk-glass-fg` (texto; por defecto `#121212` en claro y blanco en oscuro, como Dousan).
85
+ - Variables: `--mk-glass-blur` (4px), `--mk-glass-border` (ancho del aro), `--mk-glass-tint` (color del brillo), `--mk-glass-fg` (texto; por defecto `#121212` en claro y blanco en oscuro).
88
86
  - Comprueba el contraste del texto sobre fondos claros, oscuros y fotos: el blur no sustituye a un color legible.
89
87
 
90
- Origen: `dousanmiao.com`, botón `glass-btn` (CSS público analizado en `REA - Dousan OFFFICE Siena/dousan`). No es refracción: es una composición de capas, como en el original.
91
-
92
- ## Hamburguesa (Siena)
88
+ ## Hamburguesa
93
89
 
94
90
  ```html
95
91
  <button class="mk-burger" aria-expanded="false" aria-label="Menú"><span></span><span></span><span></span></button>
96
92
  ```
97
93
 
98
- Tres líneas que se pliegan en una X cuando `aria-expanded="true"`: las de fuera giran ±45° y se acortan a .8, la del centro desaparece; 1.1 s con la curva de Siena (`cubic-bezier(.19,1,.22,1)`, `--mk-ease-siena`) y 50 ms de desfase. Cambia `aria-expanded` tu app (o el menú que abre). Siempre con `aria-label`. Variables: `--mk-burger-size` (24px), `--mk-burger-line` (1.5px), `--mk-burger-gap` (5px).
94
+ Tres líneas que se pliegan en una X cuando `aria-expanded="true"`: las de fuera giran ±45° y se acortan a .8, la del centro desaparece; 1.1 s con la curva `cubic-bezier(.19,1,.22,1)` y 50 ms de desfase. Cambia `aria-expanded` tu app (o el menú que abre). Siempre con `aria-label`. Variables: `--mk-burger-size` (24px), `--mk-burger-line` (1.5px), `--mk-burger-gap` (5px).
99
95
 
100
- Origen: `siena.film`, `[data-menu=iconline]`.
101
-
102
- ## Botón con texto que rueda (Siena)
96
+ ## Botón con texto que rueda
103
97
 
104
98
  ```html
105
99
  <button class="mk-button mk-button--roll">
@@ -110,13 +104,23 @@ Origen: `siena.film`, `[data-menu=iconline]`.
110
104
 
111
105
  Al pasar el ratón, el texto sube (−150 %) y entra su copia (`data-text`), la flecha sale por la derecha y entra su copia (`data-icon`), y el botón se rellena con el color del texto (0.8 s, `--mk-ease-quint`, el texto 0.1 s después). En pantallas táctiles no cambia. Con movimiento reducido solo cambia el color.
112
106
 
113
- Origen: `siena.film`, `[data-btn=explore]`.
107
+ ## Estado
108
+
109
+ ```html
110
+ <a class="mk-status" href="#contacto">
111
+ <span class="mk-status__dot"></span>
112
+ <span>Disponible para proyectos</span>
113
+ <span class="mk-status__sep" aria-hidden="true"></span>
114
+ <span class="mk-status__muted">Agenda una llamada</span>
115
+ <span class="mk-icon" aria-hidden="true">arrow_forward</span>
116
+ </a>
117
+ ```
114
118
 
115
- ## Squash y vibración (Stepbro)
119
+ La píldora de DOVV Studio: superficie, borde suave y sombra. Si es enlace o botón, al pasar el ratón sube 1 px, crece su sombra y la flecha avanza 2 px (0.3 s). El punto verde tiene un halo que late (opacidad .6 → 0 y escala 1 → 2.6, 1.6 s `ease-out`, sin fin). Variantes `.mk-status__dot--busy` (ámbar) y `--off` (sin pulso); color propio con `--mk-status-color`. El punto funciona solo, fuera de la píldora. La píldora no parte líneas; en pantallas de 480 px o menos oculta `__sep` y `__muted`, así que pon lo esencial fuera de `__muted`.
116
120
 
117
- - `.mk-button` se aplasta un instante al recibir el foco por puntero (`scaleX(.95) scaleY(.9)`, 0.5 s `cubic-bezier(.37,1.42,.37,1)`). Stepbro lo hacía en todo `:focus`; aquí no rebota al tabular.
118
- - Un campo `.mk-field` vibra (±5 px, 0.3 s) cada vez que pasa a `aria-invalid="true"`.
121
+ ## Squash y vibración
119
122
 
120
- Origen: Stepbro `buttonClickAnimation` y `error-vibration`.
123
+ - `.mk-button` se aplasta un instante al recibir el foco por puntero (`scaleX(.95) scaleY(.9)`, 0.5 s `cubic-bezier(.37,1.42,.37,1)`). El foco de teclado no produce rebote.
124
+ - Un campo `.mk-field` vibra (±5 px, 0.3 s) cada vez que pasa a `aria-invalid="true"`.
121
125
 
122
126
  Todos quitan sus transiciones con `prefers-reduced-motion: reduce`.
@@ -1,4 +1,4 @@
1
- /* .mk-burger — Siena's menu icon: three lines that fold into an X when aria-expanded="true" (1.1 s, Siena's curve). */
1
+ /* .mk-burger — menu icon: three lines that fold into an X when aria-expanded="true". */
2
2
  .mk-burger {
3
3
  --mk-burger-size: 24px;
4
4
  --mk-burger-line: 1.5px;
@@ -1,4 +1,4 @@
1
- /* .mk-button — Stepbro capsules. Default is the tonal primary container Stepbro uses on filled buttons. */
1
+ /* .mk-button — Capsule buttons. Filled buttons default to the tonal primary container. */
2
2
  .mk-button {
3
3
  --mk-button-bg: var(--mk-accent-soft);
4
4
  --mk-button-fg: var(--mk-on-accent-soft);
@@ -108,7 +108,7 @@
108
108
  font-size: 24px;
109
109
  }
110
110
 
111
- /* Stepbro's small buttons: 32 px, 16 px sides, radius 12. */
111
+ /* small buttons: 32 px, 16 px sides, radius 12. */
112
112
  .mk-button--sm {
113
113
  --mk-button-height: 32px;
114
114
  --mk-button-padding: 16px;
@@ -131,7 +131,7 @@
131
131
  }
132
132
  }
133
133
 
134
- /* Stepbro's press squash (buttonClickAnimation), on pointer focus only so tabbing does not bounce. */
134
+ /* press squash (buttonClickAnimation), on pointer focus only so tabbing does not bounce. */
135
135
  .mk-button:focus:not(:focus-visible) {
136
136
  animation: mk-press 0.5s cubic-bezier(0.37, 1.42, 0.37, 1);
137
137
  }
@@ -150,7 +150,7 @@
150
150
  }
151
151
  }
152
152
 
153
- /* Rolling label (Siena's Explore button): the text and its copy roll up, the arrow slides on, the fill inverts. */
153
+ /* Rolling label: the text and its copy roll up, the arrow slides on, the fill inverts. */
154
154
  .mk-button--roll {
155
155
  overflow: hidden;
156
156
  background: transparent;
@@ -1,4 +1,4 @@
1
- /* .mk-checkbox — <input type="checkbox" class="mk-checkbox">: 18 px, radius 6 (Stepbro), check drawn in on-accent. */
1
+ /* .mk-checkbox — <input type="checkbox" class="mk-checkbox">: 18 px, radius 6, check drawn in on-accent. */
2
2
  .mk-checkbox {
3
3
  position: relative;
4
4
  display: inline-grid;
@@ -1,4 +1,4 @@
1
- /* .mk-chip — capsules on container-high; a pressed filter chip takes the primary container (Stepbro filter chips). */
1
+ /* .mk-chip — capsules on container-high; a pressed filter chip takes the primary container. */
2
2
  .mk-chip {
3
3
  position: relative;
4
4
  display: inline-flex;
@@ -1,5 +1,5 @@
1
1
  /*
2
- * .mk-field — Stepbro's filled fields: container-high background, radius 16,
2
+ * .mk-field — filled fields: container-high background, radius 16,
3
3
  * no bottom indicator; focus draws a ring in the accent colour.
4
4
  * <label class="mk-field"><span class="mk-field__label">…</span><input>…<span class="mk-field__hint">…</span></label>
5
5
  */
@@ -77,7 +77,7 @@
77
77
  animation: mk-vibrate 0.3s;
78
78
  }
79
79
 
80
- /* Stepbro's error vibration: plays each time the field becomes invalid. */
80
+ /* error vibration: plays each time the field becomes invalid. */
81
81
  @keyframes mk-vibrate {
82
82
  0% {
83
83
  transform: translate(0);
@@ -1,9 +1,9 @@
1
1
  /*
2
- * .mk-glass — Dousan Miao's glass in one element: a translucent surface with a
2
+ * .mk-glass — glass in one element: a translucent surface with a
3
3
  * 4 px backdrop blur, an optical ring (::before) whose conic highlight turns
4
4
  * from −75° to −125° on hover, and a specular band (::after) that slides and
5
5
  * tilts when pressed. <span class="mk-glass__shadow" aria-hidden="true"> inside
6
- * adds Dousan's gradient shadow. Colours follow the theme's scheme (light-dark()).
6
+ * adds gradient shadow. Colours follow the theme's scheme (light-dark()).
7
7
  */
8
8
  @property --mk-glass-angle-1 {
9
9
  syntax: '<angle>';
@@ -46,7 +46,7 @@
46
46
  isolation: isolate;
47
47
  border: 0;
48
48
  border-radius: 999vw;
49
- /* Dousan: dark text on light, white on dark. */
49
+ /* dark text on light, white on dark. */
50
50
  color: var(--mk-glass-fg, light-dark(#121212, #fff));
51
51
  background: linear-gradient(-75deg, var(--mk-glass-edge), var(--mk-glass-middle), var(--mk-glass-edge));
52
52
  box-shadow: var(--mk-glass-shadow);
@@ -107,7 +107,7 @@
107
107
  --mk-glass-angle-2 0.5s var(--mk-ease-glass);
108
108
  }
109
109
 
110
- /* Dousan's gradient shadow (optional child). Only its lower part shows: it sits under the button. */
110
+ /* gradient shadow (optional child). Only its lower part shows: it sits under the button. */
111
111
  .mk-glass__shadow {
112
112
  --mk-glass-cut: 2em;
113
113
  position: absolute;
@@ -0,0 +1,63 @@
1
+ /* status — "Available for new projects" pill and a live dot whose halo pulses (DOVV Studio: 1.6 s ease-out, scale 1 → 2.6). */
2
+ .mk-status {
3
+ display: inline-flex;
4
+ align-items: center;
5
+ gap: 10px;
6
+ height: 40px;
7
+ padding: 0 16px 0 14px;
8
+ border-radius: 100px;
9
+ background: var(--mk-surface);
10
+ color: var(--mk-text);
11
+ font: inherit;
12
+ font-size: 14px;
13
+ font-weight: 500;
14
+ letter-spacing: -0.01em;
15
+ white-space: nowrap;
16
+ text-decoration: none;
17
+ box-shadow: 0 0 0 1px var(--mk-outline-soft), 0 6px 20px -8px rgb(0 0 0 / 0.18);
18
+ transition: box-shadow 0.3s, transform 0.3s;
19
+ }
20
+ /* One line always: on phones the secondary half goes. */
21
+ @media (max-width: 480px) {
22
+ .mk-status > :is(.mk-status__sep, .mk-status__muted) { display: none; }
23
+ }
24
+ a.mk-status:hover,
25
+ button.mk-status:hover {
26
+ transform: translateY(-1px);
27
+ box-shadow: 0 0 0 1px var(--mk-outline), 0 10px 24px -8px rgb(0 0 0 / 0.22);
28
+ }
29
+ .mk-status__sep { width: 1px; height: 14px; background: var(--mk-outline-soft); }
30
+ .mk-status__muted { color: var(--mk-muted); }
31
+ .mk-status > svg,
32
+ .mk-status > .mk-icon { color: var(--mk-muted); transition: transform 0.3s; }
33
+ .mk-status:hover > svg,
34
+ .mk-status:hover > .mk-icon { transform: translateX(2px); }
35
+ .mk-status__dot {
36
+ --mk-status-color: #16c847;
37
+ position: relative;
38
+ display: inline-block;
39
+ flex: none;
40
+ width: 8px;
41
+ height: 8px;
42
+ border-radius: 50%;
43
+ background: var(--mk-status-color);
44
+ }
45
+ .mk-status__dot::after {
46
+ content: '';
47
+ position: absolute;
48
+ inset: 0;
49
+ border-radius: inherit;
50
+ background: inherit;
51
+ animation: mk-status-pulse 1.6s ease-out infinite;
52
+ }
53
+ .mk-status__dot--busy { --mk-status-color: #f59e0b; }
54
+ .mk-status__dot--off { --mk-status-color: var(--mk-muted); }
55
+ .mk-status__dot--off::after { animation: none; }
56
+ @keyframes mk-status-pulse {
57
+ 0% { opacity: 0.6; transform: scale(1); }
58
+ 100% { opacity: 0; transform: scale(2.6); }
59
+ }
60
+ @media (prefers-reduced-motion: reduce) {
61
+ .mk-status { transition: none; }
62
+ .mk-status__dot::after { animation: none; }
63
+ }
@@ -1,4 +1,4 @@
1
- /* Default palette (Stepbro "neogreen") with zero specificity: any [data-mk-theme] wins.
1
+ /* Default palette with zero specificity: any [data-mk-theme] wins.
2
2
  Generated by scripts/import-themes.mjs; do not edit. */
3
3
  :where(:root) {
4
4
  --md-sys-color-background: #f1fded;
@@ -1,19 +1,17 @@
1
1
  # effects
2
2
 
3
- Efectos sueltos para cualquier elemento: las utilidades de animación de la hoja común de Stepbro y, de Dousan Miao, el blur progresivo, la flotación y el confeti de éxito, más un grano de película en CSS. Se usan con clases; dos funciones (`animate`, `leave`) las reproducen desde código.
4
-
5
- | Pieza | Qué hace | Origen |
6
- |---|---|---|
7
- | `.mk-anim-*` | Salidas, colapso, resaltado, sacudidas, aparición, barrido, entrada de progreso | Stepbro (hoja común): `item-out*`, `today-appt-item-out`, `animation-highlight-2`, `shake`, `asyncstate-fade`, `entry-animation-1`, `progress-indicator-in`; Dousan: `shake` fuerte |
8
- | `.mk-loading`, `.mk-loading--soft`, `.mk-shimmer` | Barridos de carga y brillo al pasar | Stepbro `animation-loading-1/2`, `hover-magic-1` |
9
- | `.mk-text-gradient`, `.mk-text-rainbow` | Texto con degradado en movimiento | Stepbro `text-gradient-pretty-animated`, `text-gradient-rainbow-animated` |
10
- | `.mk-frost` | Blur que crece hacia un borde | Dousan `bottom-gradient-blur` |
11
- | `.mk-float`, `.mk-float-group` | Vaivén lento de etiquetas | Dousan, etiquetas de cristal flotantes |
12
- | `.mk-grain` | Grano de película | Aproximación en CSS del ruido de Siena (allí es un shader) |
13
- | `.mk-success` + `confetti()` | Marca de éxito y confeti | Dousan, éxito del formulario |
14
- | `.mk-fade-x`, `.mk-fade-x-soft`, `.mk-fade-y` | Bordes que se desvanecen con máscara | Siena |
15
-
16
- Stepbro declara también `card-enter`, `animation-general-in`, `animation-general-in-2` y `search-result-item-in`, pero ninguna regla ni script los usa y no tienen duración: no se portan.
3
+ Efectos sueltos para cualquier elemento: las utilidades de animación de la hoja común y,, el blur progresivo, la flotación y el confeti de éxito, más un grano de película en CSS. Se usan con clases; dos funciones (`animate`, `leave`) las reproducen desde código.
4
+
5
+ | Pieza | Qué hace |
6
+ |---|---|
7
+ | `.mk-anim-*` | Salidas, colapso, resaltado, sacudidas, aparición, barrido, entrada de progreso |
8
+ | `.mk-loading`, `.mk-loading--soft`, `.mk-shimmer` | Barridos de carga y brillo al pasar |
9
+ | `.mk-text-gradient`, `.mk-text-rainbow` | Texto con degradado en movimiento |
10
+ | `.mk-frost` | Blur que crece hacia un borde |
11
+ | `.mk-float`, `.mk-float-group` | Vaivén lento de etiquetas |
12
+ | `.mk-grain` | Grano de película |
13
+ | `.mk-success` + `confetti()` | Marca de éxito y confeti |
14
+ | `.mk-fade-x`, `.mk-fade-x-soft`, `.mk-fade-y` | Bordes que se desvanecen con máscara |
17
15
 
18
16
  ## Animaciones (`.mk-anim-*`)
19
17
 
@@ -25,7 +23,7 @@ Stepbro declara también `card-enter`, `animation-general-in`, `animation-genera
25
23
  | `collapse` | Se pliega (altura, padding y margen) mientras se desenfoca | 0.25 s |
26
24
  | `highlight` | Anillo interior de 4 px en `primary-container` que aparece y se va | 1 s |
27
25
  | `shake` | ±4 px | 0.5 s `cubic-bezier(.6,.6,.12,1.26)` |
28
- | `shake-strong` | ±10 px (Dousan, proyecto no compartible) | 0.4 s `ease-in-out` |
26
+ | `shake-strong` | ±10 px | 0.4 s `ease-in-out` |
29
27
  | `fade` | Aparece | 0.3 s `ease` |
30
28
  | `wipe` | Un velo del color de la superficie se retira hacia la derecha | 0.7 s `cubic-bezier(.38,.49,0,1)` |
31
29
  | `progress-in` | Aparece con una curva que espera y luego llega | 1 s `cubic-bezier(.75,0,.41,-.06)` |
@@ -37,10 +35,10 @@ Stepbro declara también `card-enter`, `animation-general-in`, `animation-genera
37
35
  ```js
38
36
  import { animate, leave } from '@yewdiel21/motion-kit';
39
37
 
40
- await animate(field, 'shake'); // se puede repetir: vuelve a empezar
38
+ await animate(field, 'shake'); // se puede repetir: vuelve a empezar
41
39
  await animate(card, 'highlight');
42
- await leave(row, 'out-left'); // anima y quita la fila
43
- await leave(row, 'collapse'); // se pliega y la quita
40
+ await leave(row, 'out-left'); // anima y quita la fila
41
+ await leave(row, 'collapse'); // se pliega y la quita
44
42
  await leave(row, 'out', { remove: false }); // anima y la deja con hidden
45
43
  ```
46
44
 
@@ -77,7 +75,7 @@ await leave(row, 'out', { remove: false }); // anima y la deja con hidden
77
75
  </div>
78
76
  ```
79
77
 
80
- Cinco capas con `backdrop-filter` de 1, 1, 1.5, 2 y 2.5 px, cada una con una máscara que empieza más abajo (0, 25, 45, 65 y 80 %): el desenfoque crece hacia el borde. `.mk-frost--top` lo pone arriba; `.mk-frost--fixed`, fijo a la ventana como en Dousan. Variables: `--mk-frost-height` (60px), `--mk-frost-strength` (multiplica los blurs).
78
+ Cinco capas con `backdrop-filter` de 1, 1, 1.5, 2 y 2.5 px, cada una con una máscara que empieza más abajo (0, 25, 45, 65 y 80 %): el desenfoque crece hacia el borde. `.mk-frost--top` lo pone arriba; `.mk-frost--fixed`, fijo a la ventana. Variables: `--mk-frost-height` (60px), `--mk-frost-strength` (multiplica los blurs).
81
79
 
82
80
  Dentro de un contenedor que hace scroll, para que se quede en el borde visible: `.mk-frost { position: sticky; bottom: 0; margin-top: calc(var(--mk-frost-height, 60px) * -1) }` como último hijo.
83
81
 
@@ -93,7 +91,7 @@ React: `<Frost position="bottom" fixed={false} height={60} strength={1} />`.
93
91
  <span class="mk-float" style="--mk-float-y: 6px">Suelto</span>
94
92
  ```
95
93
 
96
- Cada hijo de `.mk-float-group` sigue uno de los cinco recorridos de Dousan (±3.5–5 px en 5–6.2 s). Al pasar crece a 1.05 y al presionar baja a .98 con el resorte de Dousan. Variables: `--mk-float-y`, `--mk-float-duration`.
94
+ Cada hijo de `.mk-float-group` sigue uno de los cinco recorridos (±3.5–5 px en 5–6.2 s). Al pasar crece a 1.05 y al presionar baja a .98 con. Variables: `--mk-float-y`, `--mk-float-duration`.
97
95
 
98
96
  ## Grano
99
97
 
@@ -115,7 +113,7 @@ mark.hidden = false;
115
113
  const shot = confetti(button); // { stop(), finished }
116
114
  ```
117
115
 
118
- `.mk-success` crece de 0 y se endereza (−45°) con el resorte 260/18 de Dousan tras 0.15 s. `confetti(origen, { count, colors, container })`: 45 papelitos salen del centro del origen (2–8 px por frame, un poco hacia arriba), caen con gravedad .15, frenan .98, giran y se apagan (.015–.03 por frame). Sin `colors`, usa los del tema. El canvas no recibe puntero, está oculto a lectores de pantalla y se retira solo.
116
+ `.mk-success` crece de 0 y se endereza (−45°) con el resorte 260/18 tras 0.15 s. `confetti(origen, { count, colors, container })`: 45 papelitos salen del centro del origen (2–8 px por frame, un poco hacia arriba), caen con gravedad .15, frenan .98, giran y se apagan (.015–.03 por frame). Sin `colors`, usa los del tema. El canvas no recibe puntero, está oculto a lectores de pantalla y se retira solo.
119
117
 
120
118
  ## Bordes que se desvanecen
121
119
 
@@ -1,4 +1,4 @@
1
- /* Stepbro's utility animations (shared stylesheet) and Dousan's strong shake. Replay them with animate(el, name). */
1
+ /* utility animations (shared stylesheet) and strong shake. Replay them with animate(el, name). */
2
2
  .mk-anim-out {
3
3
  animation: mk-out 0.5s ease forwards;
4
4
  }
@@ -1,4 +1,4 @@
1
- /* Siena's edge masks: content fades out at the edges of a strip or a column. */
1
+ /* edge masks: content fades out at the edges of a strip or a column. */
2
2
  .mk-fade-x {
3
3
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 20%, #000 80%, transparent 100%);
4
4
  mask-image: linear-gradient(to right, transparent 0%, #000 20%, #000 80%, transparent 100%);
@@ -1,4 +1,4 @@
1
- /* .mk-float — Dousan's floating tags: a slow bob (ease-in-out, infinite); children of .mk-float-group alternate Dousan's five paths. */
1
+ /* .mk-float — floating tags: a slow bob (ease-in-out, infinite); children of .mk-float-group alternate five paths. */
2
2
  .mk-float,
3
3
  .mk-float-group > * {
4
4
  --mk-float-y: 4px;
@@ -1,4 +1,4 @@
1
- /* .mk-frost — Dousan's progressive blur: five backdrop-blur layers with staggered masks, so the blur grows toward the edge. */
1
+ /* .mk-frost — progressive blur: five backdrop-blur layers with staggered masks, so the blur grows toward the edge. */
2
2
  .mk-frost {
3
3
  --mk-frost-strength: 1;
4
4
  position: absolute;
@@ -1,4 +1,4 @@
1
- /* .mk-grain — film grain (Siena's noise, .07) in CSS: an SVG turbulence tile that jumps between 8 places, like film. */
1
+ /* .mk-grain — film grain in CSS: an SVG turbulence tile that jumps between 8 places, like film. */
2
2
  :where(.mk-grain) {
3
3
  position: relative;
4
4
  isolation: isolate;
@@ -1,4 +1,4 @@
1
- /* Stepbro's loading sweeps (animation-loading-1 / -2) and hover shimmer (hover-magic-1). */
1
+ /* loading sweeps (animation-loading-1 / -2) and hover shimmer (hover-magic-1). */
2
2
  .mk-loading {
3
3
  position: relative;
4
4
  overflow: hidden;
@@ -1,4 +1,4 @@
1
- /* .mk-success — Dousan's success mark: grows and untwists on a 260/18 spring after 0.15 s. Pair it with confetti(). */
1
+ /* .mk-success — success mark: grows and untwists on a 260/18 spring after 0.15 s. Pair it with confetti(). */
2
2
  .mk-success {
3
3
  display: inline-grid;
4
4
  place-items: center;
@@ -1,4 +1,4 @@
1
- /* Stepbro's animated gradient text: a rainbow (6 s) and one in the theme's colours (8 s). */
1
+ /* animated gradient text: a rainbow (6 s) and one in the theme's colours (8 s). */
2
2
  .mk-text-rainbow,
3
3
  .mk-text-gradient {
4
4
  -webkit-background-clip: text;
package/src/css/fonts.css CHANGED
@@ -1,3 +1,3 @@
1
- /* Stepbro's fonts from Google Fonts: DM Sans (variable), Geist Mono, Material Symbols Rounded (FILL/wght axes).
1
+ /* fonts from Google Fonts: DM Sans (variable), Geist Mono, Material Symbols Rounded (FILL/wght axes).
2
2
  Optional: without it the tokens fall back to system fonts. */
3
3
  @import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Geist+Mono:wght@100..900&family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap');
@@ -13,7 +13,7 @@
13
13
  visibility: hidden;
14
14
  }
15
15
 
16
- /* iyo: the island drops in from above, the fill-text starts dimmed. */
16
+ /* the island drops in from above, the fill-text starts dimmed. */
17
17
  .mk-js:not(.mk-failed) :is(.mk-island, mk-island):not([data-mk-ready]) .mk-island__shell {
18
18
  visibility: hidden;
19
19
  }
@@ -1,4 +1,4 @@
1
- /* Stepbro theme "black-green" — values from the replication kit (tasks/themes/theme.{light,dark}-*.css).
1
+ /* Theme "black-green": light and dark color palettes.
2
2
  Generated by scripts/import-themes.mjs; do not edit. */
3
3
  [data-mk-theme="black-green"] {
4
4
  color-scheme: light;
@@ -1,4 +1,4 @@
1
- /* Stepbro theme "black" — values from the replication kit (tasks/themes/theme.{light,dark}-*.css).
1
+ /* Theme "black": light and dark color palettes.
2
2
  Generated by scripts/import-themes.mjs; do not edit. */
3
3
  [data-mk-theme="black"] {
4
4
  color-scheme: light;
@@ -1,4 +1,4 @@
1
- /* Stepbro theme "blue" — values from the replication kit (tasks/themes/theme.{light,dark}-*.css).
1
+ /* Theme "blue": light and dark color palettes.
2
2
  Generated by scripts/import-themes.mjs; do not edit. */
3
3
  [data-mk-theme="blue"] {
4
4
  color-scheme: light;
@@ -1,4 +1,4 @@
1
- /* Stepbro theme "brown" — values from the replication kit (tasks/themes/theme.{light,dark}-*.css).
1
+ /* Theme "brown": light and dark color palettes.
2
2
  Generated by scripts/import-themes.mjs; do not edit. */
3
3
  [data-mk-theme="brown"] {
4
4
  color-scheme: light;
@@ -1,4 +1,4 @@
1
- /* Stepbro theme "cold-blue" — values from the replication kit (tasks/themes/theme.{light,dark}-*.css).
1
+ /* Theme "cold-blue": light and dark color palettes.
2
2
  Generated by scripts/import-themes.mjs; do not edit. */
3
3
  [data-mk-theme="cold-blue"] {
4
4
  color-scheme: light;
@@ -1,4 +1,4 @@
1
- /* Stepbro theme "funny" — values from the replication kit (tasks/themes/theme.{light,dark}-*.css).
1
+ /* Theme "funny": light and dark color palettes.
2
2
  Generated by scripts/import-themes.mjs; do not edit. */
3
3
  [data-mk-theme="funny"] {
4
4
  color-scheme: light;
@@ -1,4 +1,4 @@
1
- /* Stepbro theme "gray" — values from the replication kit (tasks/themes/theme.{light,dark}-*.css).
1
+ /* Theme "gray": light and dark color palettes.
2
2
  Generated by scripts/import-themes.mjs; do not edit. */
3
3
  [data-mk-theme="gray"] {
4
4
  color-scheme: light;
@@ -1,4 +1,4 @@
1
- /* Stepbro theme "green" — values from the replication kit (tasks/themes/theme.{light,dark}-*.css).
1
+ /* Theme "green": light and dark color palettes.
2
2
  Generated by scripts/import-themes.mjs; do not edit. */
3
3
  [data-mk-theme="green"] {
4
4
  color-scheme: light;
@@ -1,4 +1,4 @@
1
- /* Stepbro theme "modern-1" — values from the replication kit (tasks/themes/theme.{light,dark}-*.css).
1
+ /* Theme "modern-1": light and dark color palettes.
2
2
  Generated by scripts/import-themes.mjs; do not edit. */
3
3
  [data-mk-theme="modern-1"] {
4
4
  color-scheme: light;
@@ -1,4 +1,4 @@
1
- /* Stepbro theme "neogreen" — values from the replication kit (tasks/themes/theme.{light,dark}-*.css).
1
+ /* Theme "neogreen": light and dark color palettes.
2
2
  Generated by scripts/import-themes.mjs; do not edit. */
3
3
  [data-mk-theme="neogreen"] {
4
4
  color-scheme: light;
@@ -1,4 +1,4 @@
1
- /* Stepbro theme "new" — values from the replication kit (tasks/themes/theme.{light,dark}-*.css).
1
+ /* Theme "new": light and dark color palettes.
2
2
  Generated by scripts/import-themes.mjs; do not edit. */
3
3
  [data-mk-theme="new"] {
4
4
  color-scheme: light;
@@ -1,4 +1,4 @@
1
- /* Stepbro theme "new2" — values from the replication kit (tasks/themes/theme.{light,dark}-*.css).
1
+ /* Theme "new2": light and dark color palettes.
2
2
  Generated by scripts/import-themes.mjs; do not edit. */
3
3
  [data-mk-theme="new2"] {
4
4
  color-scheme: light;
@@ -1,4 +1,4 @@
1
- /* Stepbro theme "oled" — values from the replication kit (tasks/themes/theme.{light,dark}-*.css).
1
+ /* Theme "oled": light and dark color palettes.
2
2
  Generated by scripts/import-themes.mjs; do not edit. */
3
3
  [data-mk-theme="oled"] {
4
4
  color-scheme: light;
@@ -1,4 +1,4 @@
1
- /* Stepbro theme "orange" — values from the replication kit (tasks/themes/theme.{light,dark}-*.css).
1
+ /* Theme "orange": light and dark color palettes.
2
2
  Generated by scripts/import-themes.mjs; do not edit. */
3
3
  [data-mk-theme="orange"] {
4
4
  color-scheme: light;
@@ -1,4 +1,4 @@
1
- /* Stepbro theme "pastel-pink" — values from the replication kit (tasks/themes/theme.{light,dark}-*.css).
1
+ /* Theme "pastel-pink": light and dark color palettes.
2
2
  Generated by scripts/import-themes.mjs; do not edit. */
3
3
  [data-mk-theme="pastel-pink"] {
4
4
  color-scheme: light;
@@ -1,4 +1,4 @@
1
- /* Stepbro theme "pink" — values from the replication kit (tasks/themes/theme.{light,dark}-*.css).
1
+ /* Theme "pink": light and dark color palettes.
2
2
  Generated by scripts/import-themes.mjs; do not edit. */
3
3
  [data-mk-theme="pink"] {
4
4
  color-scheme: light;
@@ -1,4 +1,4 @@
1
- /* Stepbro theme "purple" — values from the replication kit (tasks/themes/theme.{light,dark}-*.css).
1
+ /* Theme "purple": light and dark color palettes.
2
2
  Generated by scripts/import-themes.mjs; do not edit. */
3
3
  [data-mk-theme="purple"] {
4
4
  color-scheme: light;
@@ -1,4 +1,4 @@
1
- /* Stepbro theme "red" — values from the replication kit (tasks/themes/theme.{light,dark}-*.css).
1
+ /* Theme "red": light and dark color palettes.
2
2
  Generated by scripts/import-themes.mjs; do not edit. */
3
3
  [data-mk-theme="red"] {
4
4
  color-scheme: light;
@@ -1,4 +1,4 @@
1
- /* Stepbro theme "super-blue" — values from the replication kit (tasks/themes/theme.{light,dark}-*.css).
1
+ /* Theme "super-blue": light and dark color palettes.
2
2
  Generated by scripts/import-themes.mjs; do not edit. */
3
3
  [data-mk-theme="super-blue"] {
4
4
  color-scheme: light;