@bookklik/senangstart-css 0.1.4 → 0.1.7

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 (524) hide show
  1. package/.github/workflows/deploy-docs.yml +7 -1
  2. package/dist/senangstart-css.js +1436 -14
  3. package/dist/senangstart-css.min.js +1159 -10
  4. package/docs/.vitepress/config.js +621 -15
  5. package/docs/SYNTAX-REFERENCE.md +1555 -0
  6. package/docs/guide/preflight.md +139 -0
  7. package/docs/ms/guide/preflight.md +139 -0
  8. package/docs/ms/reference/colors.md +45 -45
  9. package/docs/ms/reference/layout/align-content.md +35 -0
  10. package/docs/ms/reference/layout/align-items.md +33 -0
  11. package/docs/ms/reference/layout/align-self.md +34 -0
  12. package/docs/ms/reference/layout/aspect-ratio.md +40 -0
  13. package/docs/ms/reference/layout/border-collapse.md +30 -0
  14. package/docs/ms/reference/layout/border-spacing.md +39 -0
  15. package/docs/ms/reference/layout/box-sizing.md +30 -0
  16. package/docs/ms/reference/layout/caption-side.md +30 -0
  17. package/docs/ms/reference/layout/columns.md +30 -0
  18. package/docs/ms/reference/layout/container.md +29 -0
  19. package/docs/ms/reference/layout/display.md +60 -0
  20. package/docs/ms/reference/layout/flex-basis.md +38 -0
  21. package/docs/ms/reference/layout/flex-direction.md +33 -0
  22. package/docs/ms/reference/layout/flex-items.md +32 -0
  23. package/docs/ms/reference/layout/flex-wrap.md +31 -0
  24. package/docs/ms/reference/layout/flex.md +40 -0
  25. package/docs/ms/reference/layout/float-clear.md +32 -0
  26. package/docs/ms/reference/layout/grid-auto-flow.md +33 -0
  27. package/docs/ms/reference/layout/grid-auto-sizing.md +32 -0
  28. package/docs/ms/reference/layout/grid-column-span.md +31 -0
  29. package/docs/ms/reference/layout/grid-columns.md +32 -0
  30. package/docs/ms/reference/layout/grid-row-span.md +30 -0
  31. package/docs/ms/reference/layout/grid-rows.md +31 -0
  32. package/docs/ms/reference/layout/inset.md +44 -0
  33. package/docs/ms/reference/layout/isolation.md +30 -0
  34. package/docs/ms/reference/layout/justify-content.md +36 -0
  35. package/docs/ms/reference/layout/justify-items.md +32 -0
  36. package/docs/ms/reference/layout/justify-self.md +33 -0
  37. package/docs/ms/reference/layout/object-fit.md +33 -0
  38. package/docs/ms/reference/layout/object-position.md +45 -0
  39. package/docs/ms/reference/layout/order.md +32 -0
  40. package/docs/ms/reference/layout/overflow.md +34 -0
  41. package/docs/ms/reference/layout/overscroll.md +31 -0
  42. package/docs/ms/reference/layout/place-content.md +35 -0
  43. package/docs/ms/reference/layout/place-items.md +32 -0
  44. package/docs/ms/reference/layout/place-self.md +33 -0
  45. package/docs/ms/reference/layout/position.md +34 -0
  46. package/docs/ms/reference/layout/shorthand-alignment.md +34 -0
  47. package/docs/ms/reference/layout/table-layout.md +30 -0
  48. package/docs/ms/reference/layout/visibility.md +30 -0
  49. package/docs/ms/reference/layout/z-index.md +33 -0
  50. package/docs/ms/reference/layout.md +53 -95
  51. package/docs/ms/reference/space/arbitrary-values.md +32 -0
  52. package/docs/ms/reference/space/gap.md +44 -0
  53. package/docs/ms/reference/space/height.md +44 -0
  54. package/docs/ms/reference/space/margin.md +49 -0
  55. package/docs/ms/reference/space/padding.md +49 -0
  56. package/docs/ms/reference/space/scale-reference.md +43 -0
  57. package/docs/ms/reference/space/sizing.md +27 -0
  58. package/docs/ms/reference/space/width.md +45 -0
  59. package/docs/ms/reference/space.md +15 -99
  60. package/docs/ms/reference/spacing.md +22 -8
  61. package/docs/ms/reference/visual/accent-color.md +31 -0
  62. package/docs/ms/reference/visual/animation-builtin.md +41 -0
  63. package/docs/ms/reference/visual/animation-delay.md +41 -0
  64. package/docs/ms/reference/visual/animation-direction.md +32 -0
  65. package/docs/ms/reference/visual/animation-duration.md +43 -0
  66. package/docs/ms/reference/visual/animation-fill.md +32 -0
  67. package/docs/ms/reference/visual/animation-iteration.md +30 -0
  68. package/docs/ms/reference/visual/animation-play.md +30 -0
  69. package/docs/ms/reference/visual/appearance.md +30 -0
  70. package/docs/ms/reference/visual/backdrop-blur.md +43 -0
  71. package/docs/ms/reference/visual/backdrop-brightness.md +41 -0
  72. package/docs/ms/reference/visual/backdrop-contrast.md +41 -0
  73. package/docs/ms/reference/visual/backdrop-grayscale.md +39 -0
  74. package/docs/ms/reference/visual/backdrop-hue-rotate.md +39 -0
  75. package/docs/ms/reference/visual/backdrop-invert.md +39 -0
  76. package/docs/ms/reference/visual/backdrop-opacity.md +39 -0
  77. package/docs/ms/reference/visual/backdrop-saturate.md +41 -0
  78. package/docs/ms/reference/visual/backdrop-sepia.md +39 -0
  79. package/docs/ms/reference/visual/background-attachment.md +31 -0
  80. package/docs/ms/reference/visual/background-blend-mode.md +34 -0
  81. package/docs/ms/reference/visual/background-clip.md +32 -0
  82. package/docs/ms/reference/visual/background-color.md +33 -0
  83. package/docs/ms/reference/visual/background-image.md +41 -0
  84. package/docs/ms/reference/visual/background-origin.md +31 -0
  85. package/docs/ms/reference/visual/background-position.md +45 -0
  86. package/docs/ms/reference/visual/background-repeat.md +34 -0
  87. package/docs/ms/reference/visual/background-size.md +39 -0
  88. package/docs/ms/reference/visual/background.md +13 -0
  89. package/docs/ms/reference/visual/blend-modes.md +34 -0
  90. package/docs/ms/reference/visual/border-radius.md +34 -0
  91. package/docs/ms/reference/visual/border-style.md +33 -0
  92. package/docs/ms/reference/visual/border-width.md +44 -0
  93. package/docs/ms/reference/visual/border.md +43 -0
  94. package/docs/ms/reference/visual/box-shadow.md +33 -0
  95. package/docs/ms/reference/visual/caret-color.md +31 -0
  96. package/docs/ms/reference/visual/color-scheme.md +31 -0
  97. package/docs/ms/reference/visual/cursor.md +37 -0
  98. package/docs/ms/reference/visual/field-sizing.md +30 -0
  99. package/docs/ms/reference/visual/fill.md +38 -0
  100. package/docs/ms/reference/visual/filter-blur.md +43 -0
  101. package/docs/ms/reference/visual/filter-brightness.md +41 -0
  102. package/docs/ms/reference/visual/filter-contrast.md +41 -0
  103. package/docs/ms/reference/visual/filter-drop-shadow.md +42 -0
  104. package/docs/ms/reference/visual/filter-grayscale.md +39 -0
  105. package/docs/ms/reference/visual/filter-hue-rotate.md +39 -0
  106. package/docs/ms/reference/visual/filter-invert.md +39 -0
  107. package/docs/ms/reference/visual/filter-saturate.md +41 -0
  108. package/docs/ms/reference/visual/filter-sepia.md +39 -0
  109. package/docs/ms/reference/visual/font-family.md +31 -0
  110. package/docs/ms/reference/visual/font-smoothing.md +30 -0
  111. package/docs/ms/reference/visual/font-style.md +30 -0
  112. package/docs/ms/reference/visual/font-variant-numeric.md +35 -0
  113. package/docs/ms/reference/visual/font-weight.md +31 -0
  114. package/docs/ms/reference/visual/forced-color-adjust.md +30 -0
  115. package/docs/ms/reference/visual/hyphens.md +31 -0
  116. package/docs/ms/reference/visual/letter-spacing.md +42 -0
  117. package/docs/ms/reference/visual/line-clamp.md +40 -0
  118. package/docs/ms/reference/visual/line-height.md +42 -0
  119. package/docs/ms/reference/visual/list-style.md +34 -0
  120. package/docs/ms/reference/visual/mask.md +39 -0
  121. package/docs/ms/reference/visual/opacity.md +33 -0
  122. package/docs/ms/reference/visual/outline.md +31 -0
  123. package/docs/ms/reference/visual/pointer-events.md +30 -0
  124. package/docs/ms/reference/visual/resize.md +32 -0
  125. package/docs/ms/reference/visual/scroll-behavior.md +30 -0
  126. package/docs/ms/reference/visual/scroll-margin.md +41 -0
  127. package/docs/ms/reference/visual/scroll-padding.md +41 -0
  128. package/docs/ms/reference/visual/scroll-snap-align.md +32 -0
  129. package/docs/ms/reference/visual/scroll-snap-stop.md +30 -0
  130. package/docs/ms/reference/visual/scroll-snap-type.md +34 -0
  131. package/docs/ms/reference/visual/state-prefixes.md +37 -0
  132. package/docs/ms/reference/visual/stroke-width.md +39 -0
  133. package/docs/ms/reference/visual/stroke.md +38 -0
  134. package/docs/ms/reference/visual/text-alignment.md +32 -0
  135. package/docs/ms/reference/visual/text-color.md +41 -0
  136. package/docs/ms/reference/visual/text-decoration.md +32 -0
  137. package/docs/ms/reference/visual/text-indent.md +37 -0
  138. package/docs/ms/reference/visual/text-overflow.md +31 -0
  139. package/docs/ms/reference/visual/text-shadow.md +40 -0
  140. package/docs/ms/reference/visual/text-size.md +32 -0
  141. package/docs/ms/reference/visual/text-transform.md +32 -0
  142. package/docs/ms/reference/visual/text-wrap.md +32 -0
  143. package/docs/ms/reference/visual/touch-action.md +36 -0
  144. package/docs/ms/reference/visual/transform-backface.md +30 -0
  145. package/docs/ms/reference/visual/transform-origin.md +45 -0
  146. package/docs/ms/reference/visual/transform-perspective-origin.md +45 -0
  147. package/docs/ms/reference/visual/transform-perspective.md +43 -0
  148. package/docs/ms/reference/visual/transform-rotate.md +40 -0
  149. package/docs/ms/reference/visual/transform-scale.md +43 -0
  150. package/docs/ms/reference/visual/transform-skew.md +40 -0
  151. package/docs/ms/reference/visual/transform-style.md +30 -0
  152. package/docs/ms/reference/visual/transform-translate.md +39 -0
  153. package/docs/ms/reference/visual/transition-delay.md +41 -0
  154. package/docs/ms/reference/visual/transition-duration.md +43 -0
  155. package/docs/ms/reference/visual/transition-property.md +34 -0
  156. package/docs/ms/reference/visual/transition-timing.md +40 -0
  157. package/docs/ms/reference/visual/typography-keywords.md +81 -0
  158. package/docs/ms/reference/visual/user-select.md +32 -0
  159. package/docs/ms/reference/visual/vertical-align.md +36 -0
  160. package/docs/ms/reference/visual/whitespace.md +34 -0
  161. package/docs/ms/reference/visual/will-change.md +33 -0
  162. package/docs/ms/reference/visual/word-break.md +32 -0
  163. package/docs/ms/reference/visual.md +145 -148
  164. package/docs/public/assets/senangstart-css.min.js +1545 -0
  165. package/docs/reference/layout/align-content.md +35 -0
  166. package/docs/reference/layout/align-items.md +33 -0
  167. package/docs/reference/layout/align-self.md +34 -0
  168. package/docs/reference/layout/aspect-ratio.md +40 -0
  169. package/docs/reference/layout/border-collapse.md +30 -0
  170. package/docs/reference/layout/border-spacing.md +39 -0
  171. package/docs/reference/layout/box-sizing.md +30 -0
  172. package/docs/reference/layout/caption-side.md +30 -0
  173. package/docs/reference/layout/columns.md +30 -0
  174. package/docs/reference/layout/container.md +29 -0
  175. package/docs/reference/layout/display.md +60 -0
  176. package/docs/reference/layout/flex-basis.md +38 -0
  177. package/docs/reference/layout/flex-direction.md +33 -0
  178. package/docs/reference/layout/flex-items.md +32 -0
  179. package/docs/reference/layout/flex-wrap.md +31 -0
  180. package/docs/reference/layout/flex.md +40 -0
  181. package/docs/reference/layout/float-clear.md +32 -0
  182. package/docs/reference/layout/grid-auto-flow.md +33 -0
  183. package/docs/reference/layout/grid-auto-sizing.md +32 -0
  184. package/docs/reference/layout/grid-column-span.md +31 -0
  185. package/docs/reference/layout/grid-columns.md +32 -0
  186. package/docs/reference/layout/grid-row-span.md +30 -0
  187. package/docs/reference/layout/grid-rows.md +31 -0
  188. package/docs/reference/layout/inset.md +44 -0
  189. package/docs/reference/layout/isolation.md +30 -0
  190. package/docs/reference/layout/justify-content.md +36 -0
  191. package/docs/reference/layout/justify-items.md +32 -0
  192. package/docs/reference/layout/justify-self.md +33 -0
  193. package/docs/reference/layout/object-fit.md +33 -0
  194. package/docs/reference/layout/object-position.md +45 -0
  195. package/docs/reference/layout/order.md +32 -0
  196. package/docs/reference/layout/overflow.md +34 -0
  197. package/docs/reference/layout/overscroll.md +31 -0
  198. package/docs/reference/layout/place-content.md +35 -0
  199. package/docs/reference/layout/place-items.md +32 -0
  200. package/docs/reference/layout/place-self.md +33 -0
  201. package/docs/reference/layout/position.md +34 -0
  202. package/docs/reference/layout/shorthand-alignment.md +34 -0
  203. package/docs/reference/layout/table-layout.md +30 -0
  204. package/docs/reference/layout/visibility.md +30 -0
  205. package/docs/reference/layout/z-index.md +33 -0
  206. package/docs/reference/layout.md +60 -102
  207. package/docs/reference/space/arbitrary-values.md +39 -0
  208. package/docs/reference/space/gap.md +44 -0
  209. package/docs/reference/space/height.md +44 -0
  210. package/docs/reference/space/margin.md +49 -0
  211. package/docs/reference/space/padding.md +49 -0
  212. package/docs/reference/space/scale-reference.md +43 -0
  213. package/docs/reference/space/width.md +45 -0
  214. package/docs/reference/space.md +14 -98
  215. package/docs/reference/spacing.md +22 -8
  216. package/docs/reference/visual/accent-color.md +31 -0
  217. package/docs/reference/visual/animation-builtin.md +41 -0
  218. package/docs/reference/visual/animation-delay.md +41 -0
  219. package/docs/reference/visual/animation-direction.md +32 -0
  220. package/docs/reference/visual/animation-duration.md +43 -0
  221. package/docs/reference/visual/animation-fill.md +32 -0
  222. package/docs/reference/visual/animation-iteration.md +30 -0
  223. package/docs/reference/visual/animation-play.md +30 -0
  224. package/docs/reference/visual/appearance.md +30 -0
  225. package/docs/reference/visual/backdrop-blur.md +43 -0
  226. package/docs/reference/visual/backdrop-brightness.md +41 -0
  227. package/docs/reference/visual/backdrop-contrast.md +41 -0
  228. package/docs/reference/visual/backdrop-grayscale.md +39 -0
  229. package/docs/reference/visual/backdrop-hue-rotate.md +39 -0
  230. package/docs/reference/visual/backdrop-invert.md +39 -0
  231. package/docs/reference/visual/backdrop-opacity.md +39 -0
  232. package/docs/reference/visual/backdrop-saturate.md +41 -0
  233. package/docs/reference/visual/backdrop-sepia.md +39 -0
  234. package/docs/reference/visual/background-attachment.md +31 -0
  235. package/docs/reference/visual/background-blend-mode.md +34 -0
  236. package/docs/reference/visual/background-clip.md +32 -0
  237. package/docs/reference/visual/background-color.md +33 -0
  238. package/docs/reference/visual/background-image.md +41 -0
  239. package/docs/reference/visual/background-origin.md +31 -0
  240. package/docs/reference/visual/background-position.md +45 -0
  241. package/docs/reference/visual/background-repeat.md +34 -0
  242. package/docs/reference/visual/background-size.md +39 -0
  243. package/docs/reference/visual/blend-modes.md +34 -0
  244. package/docs/reference/visual/border-radius.md +34 -0
  245. package/docs/reference/visual/border-style.md +33 -0
  246. package/docs/reference/visual/border-width.md +44 -0
  247. package/docs/reference/visual/border.md +43 -0
  248. package/docs/reference/visual/box-shadow.md +33 -0
  249. package/docs/reference/visual/caret-color.md +31 -0
  250. package/docs/reference/visual/color-scheme.md +31 -0
  251. package/docs/reference/visual/cursor.md +37 -0
  252. package/docs/reference/visual/field-sizing.md +30 -0
  253. package/docs/reference/visual/fill.md +38 -0
  254. package/docs/reference/visual/filter-blur.md +43 -0
  255. package/docs/reference/visual/filter-brightness.md +41 -0
  256. package/docs/reference/visual/filter-contrast.md +41 -0
  257. package/docs/reference/visual/filter-drop-shadow.md +42 -0
  258. package/docs/reference/visual/filter-grayscale.md +39 -0
  259. package/docs/reference/visual/filter-hue-rotate.md +39 -0
  260. package/docs/reference/visual/filter-invert.md +39 -0
  261. package/docs/reference/visual/filter-saturate.md +41 -0
  262. package/docs/reference/visual/filter-sepia.md +39 -0
  263. package/docs/reference/visual/font-family.md +31 -0
  264. package/docs/reference/visual/font-smoothing.md +30 -0
  265. package/docs/reference/visual/font-style.md +30 -0
  266. package/docs/reference/visual/font-variant-numeric.md +35 -0
  267. package/docs/reference/visual/font-weight.md +31 -0
  268. package/docs/reference/visual/forced-color-adjust.md +30 -0
  269. package/docs/reference/visual/hyphens.md +31 -0
  270. package/docs/reference/visual/letter-spacing.md +42 -0
  271. package/docs/reference/visual/line-clamp.md +40 -0
  272. package/docs/reference/visual/line-height.md +42 -0
  273. package/docs/reference/visual/list-style.md +34 -0
  274. package/docs/reference/visual/mask.md +39 -0
  275. package/docs/reference/visual/opacity.md +33 -0
  276. package/docs/reference/visual/outline.md +31 -0
  277. package/docs/reference/visual/pointer-events.md +30 -0
  278. package/docs/reference/visual/resize.md +32 -0
  279. package/docs/reference/visual/scroll-behavior.md +30 -0
  280. package/docs/reference/visual/scroll-margin.md +41 -0
  281. package/docs/reference/visual/scroll-padding.md +41 -0
  282. package/docs/reference/visual/scroll-snap-align.md +32 -0
  283. package/docs/reference/visual/scroll-snap-stop.md +30 -0
  284. package/docs/reference/visual/scroll-snap-type.md +34 -0
  285. package/docs/reference/visual/state-prefixes.md +37 -0
  286. package/docs/reference/visual/stroke-width.md +39 -0
  287. package/docs/reference/visual/stroke.md +38 -0
  288. package/docs/reference/visual/text-alignment.md +32 -0
  289. package/docs/reference/visual/text-color.md +41 -0
  290. package/docs/reference/visual/text-decoration.md +32 -0
  291. package/docs/reference/visual/text-indent.md +37 -0
  292. package/docs/reference/visual/text-overflow.md +31 -0
  293. package/docs/reference/visual/text-shadow.md +40 -0
  294. package/docs/reference/visual/text-size.md +32 -0
  295. package/docs/reference/visual/text-transform.md +32 -0
  296. package/docs/reference/visual/text-wrap.md +32 -0
  297. package/docs/reference/visual/touch-action.md +36 -0
  298. package/docs/reference/visual/transform-backface.md +30 -0
  299. package/docs/reference/visual/transform-origin.md +45 -0
  300. package/docs/reference/visual/transform-perspective-origin.md +45 -0
  301. package/docs/reference/visual/transform-perspective.md +43 -0
  302. package/docs/reference/visual/transform-rotate.md +40 -0
  303. package/docs/reference/visual/transform-scale.md +43 -0
  304. package/docs/reference/visual/transform-skew.md +40 -0
  305. package/docs/reference/visual/transform-style.md +30 -0
  306. package/docs/reference/visual/transform-translate.md +39 -0
  307. package/docs/reference/visual/transition-delay.md +41 -0
  308. package/docs/reference/visual/transition-duration.md +43 -0
  309. package/docs/reference/visual/transition-property.md +34 -0
  310. package/docs/reference/visual/transition-timing.md +40 -0
  311. package/docs/reference/visual/typography-keywords.md +81 -0
  312. package/docs/reference/visual/user-select.md +32 -0
  313. package/docs/reference/visual/vertical-align.md +36 -0
  314. package/docs/reference/visual/whitespace.md +34 -0
  315. package/docs/reference/visual/will-change.md +33 -0
  316. package/docs/reference/visual/word-break.md +32 -0
  317. package/docs/reference/visual.md +151 -154
  318. package/docs/syntax-reference.json +1973 -0
  319. package/package.json +10 -2
  320. package/playground/index.html +78 -0
  321. package/playground/jit-test.html +384 -0
  322. package/scripts/extract-syntax.js +152 -0
  323. package/scripts/generate-docs.js +352 -0
  324. package/src/cdn/jit.js +1436 -14
  325. package/src/cli/commands/build.js +5 -0
  326. package/src/cli/index.js +2 -0
  327. package/src/compiler/generators/css.js +1537 -25
  328. package/src/compiler/generators/preflight.js +379 -0
  329. package/src/config/defaults.js +19 -1
  330. package/src/definitions/index.js +153 -0
  331. package/src/definitions/layout-alignment.js +257 -0
  332. package/src/definitions/layout-flex.js +209 -0
  333. package/src/definitions/layout-grid.js +150 -0
  334. package/src/definitions/layout-positioning.js +89 -0
  335. package/src/definitions/layout-table.js +98 -0
  336. package/src/definitions/layout-utilities.js +262 -0
  337. package/src/definitions/layout.js +195 -0
  338. package/src/definitions/space.js +164 -0
  339. package/src/definitions/visual-backgrounds.js +423 -0
  340. package/src/definitions/visual-borders.js +111 -0
  341. package/src/definitions/visual-filters.js +204 -0
  342. package/src/definitions/visual-interactivity.js +292 -0
  343. package/src/definitions/visual-svg.js +80 -0
  344. package/src/definitions/visual-transform3d.js +159 -0
  345. package/src/definitions/visual-transforms.js +142 -0
  346. package/src/definitions/visual-transitions.js +277 -0
  347. package/src/definitions/visual-typography.js +386 -0
  348. package/src/definitions/visual.js +542 -0
  349. package/tests/helpers/test-utils.js +144 -0
  350. package/tests/integration/compiler.test.js +247 -0
  351. package/tests/sync/docs-sync.test.js +364 -0
  352. package/tests/unit/compiler/generators/css.test.js +719 -0
  353. package/tests/unit/compiler/parser.test.js +244 -0
  354. package/tests/unit/compiler/tokenizer.test.js +305 -0
  355. package/tests/unit/config/defaults.test.js +168 -0
  356. package/docs/.vitepress/cache/deps/_metadata.json +0 -31
  357. package/docs/.vitepress/cache/deps/chunk-LE5NDSFD.js +0 -12824
  358. package/docs/.vitepress/cache/deps/chunk-LE5NDSFD.js.map +0 -7
  359. package/docs/.vitepress/cache/deps/package.json +0 -3
  360. package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +0 -4505
  361. package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +0 -7
  362. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +0 -9731
  363. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +0 -7
  364. package/docs/.vitepress/cache/deps/vue.js +0 -347
  365. package/docs/.vitepress/cache/deps/vue.js.map +0 -7
  366. package/docs/.vitepress/dist/404.html +0 -22
  367. package/docs/.vitepress/dist/assets/app.DBXoyO4w.js +0 -1
  368. package/docs/.vitepress/dist/assets/chunks/framework.I305HrzY.js +0 -19
  369. package/docs/.vitepress/dist/assets/chunks/theme.CaXH1t3X.js +0 -1
  370. package/docs/.vitepress/dist/assets/examples_cards.md.BCzaqSD6.js +0 -84
  371. package/docs/.vitepress/dist/assets/examples_cards.md.BCzaqSD6.lean.js +0 -1
  372. package/docs/.vitepress/dist/assets/examples_forms.md.DOjr9LrG.js +0 -169
  373. package/docs/.vitepress/dist/assets/examples_forms.md.DOjr9LrG.lean.js +0 -1
  374. package/docs/.vitepress/dist/assets/examples_hero.md.CAorji-Y.js +0 -118
  375. package/docs/.vitepress/dist/assets/examples_hero.md.CAorji-Y.lean.js +0 -1
  376. package/docs/.vitepress/dist/assets/examples_index.md.BjUNsTob.js +0 -52
  377. package/docs/.vitepress/dist/assets/examples_index.md.BjUNsTob.lean.js +0 -1
  378. package/docs/.vitepress/dist/assets/examples_navigation.md.DvL-Yv_5.js +0 -106
  379. package/docs/.vitepress/dist/assets/examples_navigation.md.DvL-Yv_5.lean.js +0 -1
  380. package/docs/.vitepress/dist/assets/guide_cdn.md.Bbb7-icp.js +0 -30
  381. package/docs/.vitepress/dist/assets/guide_cdn.md.Bbb7-icp.lean.js +0 -1
  382. package/docs/.vitepress/dist/assets/guide_cli.md.yLsOZ7NL.js +0 -44
  383. package/docs/.vitepress/dist/assets/guide_cli.md.yLsOZ7NL.lean.js +0 -1
  384. package/docs/.vitepress/dist/assets/guide_configuration.md.DN4FfKw4.js +0 -79
  385. package/docs/.vitepress/dist/assets/guide_configuration.md.DN4FfKw4.lean.js +0 -1
  386. package/docs/.vitepress/dist/assets/guide_dark-mode.md.D6UJvQtM.js +0 -69
  387. package/docs/.vitepress/dist/assets/guide_dark-mode.md.D6UJvQtM.lean.js +0 -1
  388. package/docs/.vitepress/dist/assets/guide_getting-started.md.K5nA8wXY.js +0 -47
  389. package/docs/.vitepress/dist/assets/guide_getting-started.md.K5nA8wXY.lean.js +0 -1
  390. package/docs/.vitepress/dist/assets/guide_index.md.B0lRU150.js +0 -3
  391. package/docs/.vitepress/dist/assets/guide_index.md.B0lRU150.lean.js +0 -1
  392. package/docs/.vitepress/dist/assets/guide_natural-scale.md.vvauT7U1.js +0 -22
  393. package/docs/.vitepress/dist/assets/guide_natural-scale.md.vvauT7U1.lean.js +0 -1
  394. package/docs/.vitepress/dist/assets/guide_philosophy.md.mOb9kp32.js +0 -7
  395. package/docs/.vitepress/dist/assets/guide_philosophy.md.mOb9kp32.lean.js +0 -1
  396. package/docs/.vitepress/dist/assets/guide_responsive.md.C7cF-4cR.js +0 -57
  397. package/docs/.vitepress/dist/assets/guide_responsive.md.C7cF-4cR.lean.js +0 -1
  398. package/docs/.vitepress/dist/assets/guide_states.md.CwtGEGHB.js +0 -77
  399. package/docs/.vitepress/dist/assets/guide_states.md.CwtGEGHB.lean.js +0 -1
  400. package/docs/.vitepress/dist/assets/guide_tri-attribute.md.CpjJLEMP.js +0 -45
  401. package/docs/.vitepress/dist/assets/guide_tri-attribute.md.CpjJLEMP.lean.js +0 -1
  402. package/docs/.vitepress/dist/assets/index.md.mYp6_S5X.js +0 -7
  403. package/docs/.vitepress/dist/assets/index.md.mYp6_S5X.lean.js +0 -1
  404. package/docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 +0 -0
  405. package/docs/.vitepress/dist/assets/inter-italic-cyrillic.By2_1cv3.woff2 +0 -0
  406. package/docs/.vitepress/dist/assets/inter-italic-greek-ext.1u6EdAuj.woff2 +0 -0
  407. package/docs/.vitepress/dist/assets/inter-italic-greek.DJ8dCoTZ.woff2 +0 -0
  408. package/docs/.vitepress/dist/assets/inter-italic-latin-ext.CN1xVJS-.woff2 +0 -0
  409. package/docs/.vitepress/dist/assets/inter-italic-latin.C2AdPX0b.woff2 +0 -0
  410. package/docs/.vitepress/dist/assets/inter-italic-vietnamese.BSbpV94h.woff2 +0 -0
  411. package/docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 +0 -0
  412. package/docs/.vitepress/dist/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 +0 -0
  413. package/docs/.vitepress/dist/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 +0 -0
  414. package/docs/.vitepress/dist/assets/inter-roman-greek.BBVDIX6e.woff2 +0 -0
  415. package/docs/.vitepress/dist/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 +0 -0
  416. package/docs/.vitepress/dist/assets/inter-roman-latin.Di8DUHzh.woff2 +0 -0
  417. package/docs/.vitepress/dist/assets/inter-roman-vietnamese.BjW4sHH5.woff2 +0 -0
  418. package/docs/.vitepress/dist/assets/ms_examples_cards.md.CaE5JNAs.js +0 -84
  419. package/docs/.vitepress/dist/assets/ms_examples_cards.md.CaE5JNAs.lean.js +0 -1
  420. package/docs/.vitepress/dist/assets/ms_examples_forms.md.VvDzMzxF.js +0 -169
  421. package/docs/.vitepress/dist/assets/ms_examples_forms.md.VvDzMzxF.lean.js +0 -1
  422. package/docs/.vitepress/dist/assets/ms_examples_hero.md.DC4c3kKW.js +0 -118
  423. package/docs/.vitepress/dist/assets/ms_examples_hero.md.DC4c3kKW.lean.js +0 -1
  424. package/docs/.vitepress/dist/assets/ms_examples_index.md.C13ShcjA.js +0 -52
  425. package/docs/.vitepress/dist/assets/ms_examples_index.md.C13ShcjA.lean.js +0 -1
  426. package/docs/.vitepress/dist/assets/ms_examples_navigation.md.BPtVjKbk.js +0 -106
  427. package/docs/.vitepress/dist/assets/ms_examples_navigation.md.BPtVjKbk.lean.js +0 -1
  428. package/docs/.vitepress/dist/assets/ms_guide_cdn.md.tZFpEjTS.js +0 -30
  429. package/docs/.vitepress/dist/assets/ms_guide_cdn.md.tZFpEjTS.lean.js +0 -1
  430. package/docs/.vitepress/dist/assets/ms_guide_cli.md.DBjxv3-o.js +0 -44
  431. package/docs/.vitepress/dist/assets/ms_guide_cli.md.DBjxv3-o.lean.js +0 -1
  432. package/docs/.vitepress/dist/assets/ms_guide_configuration.md.CyYNqREm.js +0 -79
  433. package/docs/.vitepress/dist/assets/ms_guide_configuration.md.CyYNqREm.lean.js +0 -1
  434. package/docs/.vitepress/dist/assets/ms_guide_dark-mode.md.DWDWvzzv.js +0 -69
  435. package/docs/.vitepress/dist/assets/ms_guide_dark-mode.md.DWDWvzzv.lean.js +0 -1
  436. package/docs/.vitepress/dist/assets/ms_guide_getting-started.md.WoQwRhlY.js +0 -47
  437. package/docs/.vitepress/dist/assets/ms_guide_getting-started.md.WoQwRhlY.lean.js +0 -1
  438. package/docs/.vitepress/dist/assets/ms_guide_index.md.pHpXZMmU.js +0 -3
  439. package/docs/.vitepress/dist/assets/ms_guide_index.md.pHpXZMmU.lean.js +0 -1
  440. package/docs/.vitepress/dist/assets/ms_guide_natural-scale.md.BiUfU-TH.js +0 -22
  441. package/docs/.vitepress/dist/assets/ms_guide_natural-scale.md.BiUfU-TH.lean.js +0 -1
  442. package/docs/.vitepress/dist/assets/ms_guide_philosophy.md.hf3SG2Ts.js +0 -7
  443. package/docs/.vitepress/dist/assets/ms_guide_philosophy.md.hf3SG2Ts.lean.js +0 -1
  444. package/docs/.vitepress/dist/assets/ms_guide_responsive.md.C4yS3zzM.js +0 -57
  445. package/docs/.vitepress/dist/assets/ms_guide_responsive.md.C4yS3zzM.lean.js +0 -1
  446. package/docs/.vitepress/dist/assets/ms_guide_states.md.DkDEjPdC.js +0 -77
  447. package/docs/.vitepress/dist/assets/ms_guide_states.md.DkDEjPdC.lean.js +0 -1
  448. package/docs/.vitepress/dist/assets/ms_guide_tri-attribute.md.C3Es_V5J.js +0 -45
  449. package/docs/.vitepress/dist/assets/ms_guide_tri-attribute.md.C3Es_V5J.lean.js +0 -1
  450. package/docs/.vitepress/dist/assets/ms_index.md.Bmo9il08.js +0 -7
  451. package/docs/.vitepress/dist/assets/ms_index.md.Bmo9il08.lean.js +0 -1
  452. package/docs/.vitepress/dist/assets/ms_reference_breakpoints.md.DR7i_--b.js +0 -48
  453. package/docs/.vitepress/dist/assets/ms_reference_breakpoints.md.DR7i_--b.lean.js +0 -1
  454. package/docs/.vitepress/dist/assets/ms_reference_colors.md.06ZYiMcJ.js +0 -17
  455. package/docs/.vitepress/dist/assets/ms_reference_colors.md.06ZYiMcJ.lean.js +0 -1
  456. package/docs/.vitepress/dist/assets/ms_reference_layout.md.NGL6A5SR.js +0 -13
  457. package/docs/.vitepress/dist/assets/ms_reference_layout.md.NGL6A5SR.lean.js +0 -1
  458. package/docs/.vitepress/dist/assets/ms_reference_space.md.BG5YQ-09.js +0 -24
  459. package/docs/.vitepress/dist/assets/ms_reference_space.md.BG5YQ-09.lean.js +0 -1
  460. package/docs/.vitepress/dist/assets/ms_reference_spacing.md.XmXLLPOZ.js +0 -32
  461. package/docs/.vitepress/dist/assets/ms_reference_spacing.md.XmXLLPOZ.lean.js +0 -1
  462. package/docs/.vitepress/dist/assets/ms_reference_visual.md.BVOlkEqc.js +0 -22
  463. package/docs/.vitepress/dist/assets/ms_reference_visual.md.BVOlkEqc.lean.js +0 -1
  464. package/docs/.vitepress/dist/assets/reference_breakpoints.md.BRbG8Fzi.js +0 -48
  465. package/docs/.vitepress/dist/assets/reference_breakpoints.md.BRbG8Fzi.lean.js +0 -1
  466. package/docs/.vitepress/dist/assets/reference_colors.md.C7j7dSO1.js +0 -17
  467. package/docs/.vitepress/dist/assets/reference_colors.md.C7j7dSO1.lean.js +0 -1
  468. package/docs/.vitepress/dist/assets/reference_layout.md.BWJ5NxSp.js +0 -13
  469. package/docs/.vitepress/dist/assets/reference_layout.md.BWJ5NxSp.lean.js +0 -1
  470. package/docs/.vitepress/dist/assets/reference_space.md.DCsqfTWb.js +0 -24
  471. package/docs/.vitepress/dist/assets/reference_space.md.DCsqfTWb.lean.js +0 -1
  472. package/docs/.vitepress/dist/assets/reference_spacing.md.BInFD8gd.js +0 -32
  473. package/docs/.vitepress/dist/assets/reference_spacing.md.BInFD8gd.lean.js +0 -1
  474. package/docs/.vitepress/dist/assets/reference_visual.md.BRK7S9T1.js +0 -22
  475. package/docs/.vitepress/dist/assets/reference_visual.md.BRK7S9T1.lean.js +0 -1
  476. package/docs/.vitepress/dist/assets/style.D82StYDI.css +0 -1
  477. package/docs/.vitepress/dist/examples/cards.html +0 -108
  478. package/docs/.vitepress/dist/examples/forms.html +0 -193
  479. package/docs/.vitepress/dist/examples/hero.html +0 -142
  480. package/docs/.vitepress/dist/examples/index.html +0 -76
  481. package/docs/.vitepress/dist/examples/navigation.html +0 -130
  482. package/docs/.vitepress/dist/guide/cdn.html +0 -54
  483. package/docs/.vitepress/dist/guide/cli.html +0 -68
  484. package/docs/.vitepress/dist/guide/configuration.html +0 -103
  485. package/docs/.vitepress/dist/guide/dark-mode.html +0 -93
  486. package/docs/.vitepress/dist/guide/getting-started.html +0 -71
  487. package/docs/.vitepress/dist/guide/index.html +0 -27
  488. package/docs/.vitepress/dist/guide/natural-scale.html +0 -46
  489. package/docs/.vitepress/dist/guide/philosophy.html +0 -31
  490. package/docs/.vitepress/dist/guide/responsive.html +0 -81
  491. package/docs/.vitepress/dist/guide/states.html +0 -101
  492. package/docs/.vitepress/dist/guide/tri-attribute.html +0 -69
  493. package/docs/.vitepress/dist/hashmap.json +0 -1
  494. package/docs/.vitepress/dist/index.html +0 -31
  495. package/docs/.vitepress/dist/ms/examples/cards.html +0 -108
  496. package/docs/.vitepress/dist/ms/examples/forms.html +0 -193
  497. package/docs/.vitepress/dist/ms/examples/hero.html +0 -142
  498. package/docs/.vitepress/dist/ms/examples/index.html +0 -76
  499. package/docs/.vitepress/dist/ms/examples/navigation.html +0 -130
  500. package/docs/.vitepress/dist/ms/guide/cdn.html +0 -54
  501. package/docs/.vitepress/dist/ms/guide/cli.html +0 -68
  502. package/docs/.vitepress/dist/ms/guide/configuration.html +0 -103
  503. package/docs/.vitepress/dist/ms/guide/dark-mode.html +0 -93
  504. package/docs/.vitepress/dist/ms/guide/getting-started.html +0 -71
  505. package/docs/.vitepress/dist/ms/guide/index.html +0 -27
  506. package/docs/.vitepress/dist/ms/guide/natural-scale.html +0 -46
  507. package/docs/.vitepress/dist/ms/guide/philosophy.html +0 -31
  508. package/docs/.vitepress/dist/ms/guide/responsive.html +0 -81
  509. package/docs/.vitepress/dist/ms/guide/states.html +0 -101
  510. package/docs/.vitepress/dist/ms/guide/tri-attribute.html +0 -69
  511. package/docs/.vitepress/dist/ms/index.html +0 -31
  512. package/docs/.vitepress/dist/ms/reference/breakpoints.html +0 -72
  513. package/docs/.vitepress/dist/ms/reference/colors.html +0 -41
  514. package/docs/.vitepress/dist/ms/reference/layout.html +0 -37
  515. package/docs/.vitepress/dist/ms/reference/space.html +0 -48
  516. package/docs/.vitepress/dist/ms/reference/spacing.html +0 -56
  517. package/docs/.vitepress/dist/ms/reference/visual.html +0 -46
  518. package/docs/.vitepress/dist/reference/breakpoints.html +0 -72
  519. package/docs/.vitepress/dist/reference/colors.html +0 -41
  520. package/docs/.vitepress/dist/reference/layout.html +0 -37
  521. package/docs/.vitepress/dist/reference/space.html +0 -48
  522. package/docs/.vitepress/dist/reference/spacing.html +0 -56
  523. package/docs/.vitepress/dist/reference/visual.html +0 -46
  524. package/docs/.vitepress/dist/vp-icons.css +0 -1
@@ -62,16 +62,107 @@
62
62
  'desk': '1280px'
63
63
  },
64
64
  colors: {
65
+ // Base colors
65
66
  'white': '#FFFFFF',
66
67
  'black': '#000000',
68
+
69
+ // Brand/Semantic colors
67
70
  'grey': '#6B7280',
68
- 'dark': '#3E4A5D', // Brand dark
69
- 'light': '#DBEAFE', // Brand light/secondary
70
- 'primary': '#2563EB', // Brand primary
71
- 'secondary': '#DBEAFE', // Brand secondary
71
+ 'dark': '#3E4A5D',
72
+ 'light': '#DBEAFE',
73
+ 'primary': '#2563EB',
74
+ 'secondary': '#DBEAFE',
72
75
  'success': '#10B981',
73
76
  'warning': '#F59E0B',
74
- 'danger': '#EF4444'
77
+ 'danger': '#EF4444',
78
+
79
+ // Red
80
+ 'red-50': '#FEF2F2', 'red-100': '#FEE2E2', 'red-200': '#FECACA', 'red-300': '#FCA5A5', 'red-400': '#F87171',
81
+ 'red-500': '#EF4444', 'red-600': '#DC2626', 'red-700': '#B91C1C', 'red-800': '#991B1B', 'red-900': '#7F1D1D', 'red-950': '#450A0A',
82
+
83
+ // Orange
84
+ 'orange-50': '#FFF7ED', 'orange-100': '#FFEDD5', 'orange-200': '#FED7AA', 'orange-300': '#FDBA74', 'orange-400': '#FB923C',
85
+ 'orange-500': '#F97316', 'orange-600': '#EA580C', 'orange-700': '#C2410C', 'orange-800': '#9A3412', 'orange-900': '#7C2D12', 'orange-950': '#431407',
86
+
87
+ // Amber
88
+ 'amber-50': '#FFFBEB', 'amber-100': '#FEF3C7', 'amber-200': '#FDE68A', 'amber-300': '#FCD34D', 'amber-400': '#FBBF24',
89
+ 'amber-500': '#F59E0B', 'amber-600': '#D97706', 'amber-700': '#B45309', 'amber-800': '#92400E', 'amber-900': '#78350F', 'amber-950': '#451A03',
90
+
91
+ // Yellow
92
+ 'yellow-50': '#FEFCE8', 'yellow-100': '#FEF9C3', 'yellow-200': '#FEF08A', 'yellow-300': '#FDE047', 'yellow-400': '#FACC15',
93
+ 'yellow-500': '#EAB308', 'yellow-600': '#CA8A04', 'yellow-700': '#A16207', 'yellow-800': '#854D0E', 'yellow-900': '#713F12', 'yellow-950': '#422006',
94
+
95
+ // Lime
96
+ 'lime-50': '#F7FEE7', 'lime-100': '#ECFCCB', 'lime-200': '#D9F99D', 'lime-300': '#BEF264', 'lime-400': '#A3E635',
97
+ 'lime-500': '#84CC16', 'lime-600': '#65A30D', 'lime-700': '#4D7C0F', 'lime-800': '#3F6212', 'lime-900': '#365314', 'lime-950': '#1A2E05',
98
+
99
+ // Green
100
+ 'green-50': '#F0FDF4', 'green-100': '#DCFCE7', 'green-200': '#BBF7D0', 'green-300': '#86EFAC', 'green-400': '#4ADE80',
101
+ 'green-500': '#22C55E', 'green-600': '#16A34A', 'green-700': '#15803D', 'green-800': '#166534', 'green-900': '#14532D', 'green-950': '#052E16',
102
+
103
+ // Emerald
104
+ 'emerald-50': '#ECFDF5', 'emerald-100': '#D1FAE5', 'emerald-200': '#A7F3D0', 'emerald-300': '#6EE7B7', 'emerald-400': '#34D399',
105
+ 'emerald-500': '#10B981', 'emerald-600': '#059669', 'emerald-700': '#047857', 'emerald-800': '#065F46', 'emerald-900': '#064E3B', 'emerald-950': '#022C22',
106
+
107
+ // Teal
108
+ 'teal-50': '#F0FDFA', 'teal-100': '#CCFBF1', 'teal-200': '#99F6E4', 'teal-300': '#5EEAD4', 'teal-400': '#2DD4BF',
109
+ 'teal-500': '#14B8A6', 'teal-600': '#0D9488', 'teal-700': '#0F766E', 'teal-800': '#115E59', 'teal-900': '#134E4A', 'teal-950': '#042F2E',
110
+
111
+ // Cyan
112
+ 'cyan-50': '#ECFEFF', 'cyan-100': '#CFFAFE', 'cyan-200': '#A5F3FC', 'cyan-300': '#67E8F9', 'cyan-400': '#22D3EE',
113
+ 'cyan-500': '#06B6D4', 'cyan-600': '#0891B2', 'cyan-700': '#0E7490', 'cyan-800': '#155E75', 'cyan-900': '#164E63', 'cyan-950': '#083344',
114
+
115
+ // Sky
116
+ 'sky-50': '#F0F9FF', 'sky-100': '#E0F2FE', 'sky-200': '#BAE6FD', 'sky-300': '#7DD3FC', 'sky-400': '#38BDF8',
117
+ 'sky-500': '#0EA5E9', 'sky-600': '#0284C7', 'sky-700': '#0369A1', 'sky-800': '#075985', 'sky-900': '#0C4A6E', 'sky-950': '#082F49',
118
+
119
+ // Blue
120
+ 'blue-50': '#EFF6FF', 'blue-100': '#DBEAFE', 'blue-200': '#BFDBFE', 'blue-300': '#93C5FD', 'blue-400': '#60A5FA',
121
+ 'blue-500': '#3B82F6', 'blue-600': '#2563EB', 'blue-700': '#1D4ED8', 'blue-800': '#1E40AF', 'blue-900': '#1E3A8A', 'blue-950': '#172554',
122
+
123
+ // Indigo
124
+ 'indigo-50': '#EEF2FF', 'indigo-100': '#E0E7FF', 'indigo-200': '#C7D2FE', 'indigo-300': '#A5B4FC', 'indigo-400': '#818CF8',
125
+ 'indigo-500': '#6366F1', 'indigo-600': '#4F46E5', 'indigo-700': '#4338CA', 'indigo-800': '#3730A3', 'indigo-900': '#312E81', 'indigo-950': '#1E1B4B',
126
+
127
+ // Violet
128
+ 'violet-50': '#F5F3FF', 'violet-100': '#EDE9FE', 'violet-200': '#DDD6FE', 'violet-300': '#C4B5FD', 'violet-400': '#A78BFA',
129
+ 'violet-500': '#8B5CF6', 'violet-600': '#7C3AED', 'violet-700': '#6D28D9', 'violet-800': '#5B21B6', 'violet-900': '#4C1D95', 'violet-950': '#2E1065',
130
+
131
+ // Purple
132
+ 'purple-50': '#FAF5FF', 'purple-100': '#F3E8FF', 'purple-200': '#E9D5FF', 'purple-300': '#D8B4FE', 'purple-400': '#C084FC',
133
+ 'purple-500': '#A855F7', 'purple-600': '#9333EA', 'purple-700': '#7E22CE', 'purple-800': '#6B21A8', 'purple-900': '#581C87', 'purple-950': '#3B0764',
134
+
135
+ // Fuchsia
136
+ 'fuchsia-50': '#FDF4FF', 'fuchsia-100': '#FAE8FF', 'fuchsia-200': '#F5D0FE', 'fuchsia-300': '#F0ABFC', 'fuchsia-400': '#E879F9',
137
+ 'fuchsia-500': '#D946EF', 'fuchsia-600': '#C026D3', 'fuchsia-700': '#A21CAF', 'fuchsia-800': '#86198F', 'fuchsia-900': '#701A75', 'fuchsia-950': '#4A044E',
138
+
139
+ // Pink
140
+ 'pink-50': '#FDF2F8', 'pink-100': '#FCE7F3', 'pink-200': '#FBCFE8', 'pink-300': '#F9A8D4', 'pink-400': '#F472B6',
141
+ 'pink-500': '#EC4899', 'pink-600': '#DB2777', 'pink-700': '#BE185D', 'pink-800': '#9D174D', 'pink-900': '#831843', 'pink-950': '#500724',
142
+
143
+ // Rose
144
+ 'rose-50': '#FFF1F2', 'rose-100': '#FFE4E6', 'rose-200': '#FECDD3', 'rose-300': '#FDA4AF', 'rose-400': '#FB7185',
145
+ 'rose-500': '#F43F5E', 'rose-600': '#E11D48', 'rose-700': '#BE123C', 'rose-800': '#9F1239', 'rose-900': '#881337', 'rose-950': '#4C0519',
146
+
147
+ // Slate
148
+ 'slate-50': '#F8FAFC', 'slate-100': '#F1F5F9', 'slate-200': '#E2E8F0', 'slate-300': '#CBD5E1', 'slate-400': '#94A3B8',
149
+ 'slate-500': '#64748B', 'slate-600': '#475569', 'slate-700': '#334155', 'slate-800': '#1E293B', 'slate-900': '#0F172A', 'slate-950': '#020617',
150
+
151
+ // Gray
152
+ 'gray-50': '#F9FAFB', 'gray-100': '#F3F4F6', 'gray-200': '#E5E7EB', 'gray-300': '#D1D5DB', 'gray-400': '#9CA3AF',
153
+ 'gray-500': '#6B7280', 'gray-600': '#4B5563', 'gray-700': '#374151', 'gray-800': '#1F2937', 'gray-900': '#111827', 'gray-950': '#030712',
154
+
155
+ // Zinc
156
+ 'zinc-50': '#FAFAFA', 'zinc-100': '#F4F4F5', 'zinc-200': '#E4E4E7', 'zinc-300': '#D4D4D8', 'zinc-400': '#A1A1AA',
157
+ 'zinc-500': '#71717A', 'zinc-600': '#52525B', 'zinc-700': '#3F3F46', 'zinc-800': '#27272A', 'zinc-900': '#18181B', 'zinc-950': '#09090B',
158
+
159
+ // Neutral
160
+ 'neutral-50': '#FAFAFA', 'neutral-100': '#F5F5F5', 'neutral-200': '#E5E5E5', 'neutral-300': '#D4D4D4', 'neutral-400': '#A3A3A3',
161
+ 'neutral-500': '#737373', 'neutral-600': '#525252', 'neutral-700': '#404040', 'neutral-800': '#262626', 'neutral-900': '#171717', 'neutral-950': '#0A0A0A',
162
+
163
+ // Stone
164
+ 'stone-50': '#FAFAF9', 'stone-100': '#F5F5F4', 'stone-200': '#E7E5E4', 'stone-300': '#D6D3D1', 'stone-400': '#A8A29E',
165
+ 'stone-500': '#78716C', 'stone-600': '#57534E', 'stone-700': '#44403C', 'stone-800': '#292524', 'stone-900': '#1C1917', 'stone-950': '#0C0A09'
75
166
  },
76
167
  zIndex: {
77
168
  'base': '0',
@@ -84,7 +175,11 @@
84
175
  // Dark mode configuration
85
176
  // 'media' - Uses @media (prefers-color-scheme: dark)
86
177
  // 'selector' - Uses .dark class on html/body
87
- darkMode: 'media'
178
+ darkMode: 'media',
179
+ // Preflight: Include opinionated base reset styles
180
+ // true - Include all preflight styles (default)
181
+ // false - Disable preflight completely
182
+ preflight: true
88
183
  };
89
184
 
90
185
  // ============================================
@@ -114,6 +209,16 @@
114
209
  }
115
210
  }
116
211
 
212
+ // Handle darkMode option
213
+ if (user.darkMode !== undefined) {
214
+ merged.darkMode = user.darkMode;
215
+ }
216
+
217
+ // Handle preflight option
218
+ if (user.preflight !== undefined) {
219
+ merged.preflight = user.preflight;
220
+ }
221
+
117
222
  return merged;
118
223
  }
119
224
 
@@ -161,37 +266,278 @@
161
266
  }
162
267
 
163
268
  css += '}\n\n';
164
- css += '*, *::before, *::after { box-sizing: border-box; }\n\n';
165
269
 
166
270
  return css;
167
271
  }
168
272
 
273
+ // ============================================
274
+ // PREFLIGHT GENERATOR
275
+ // ============================================
276
+
277
+ function generatePreflight() {
278
+ return `/* SenangStart Preflight - Opinionated Base Styles */
279
+ *,
280
+ ::before,
281
+ ::after {
282
+ box-sizing: border-box;
283
+ border-width: 0;
284
+ border-style: solid;
285
+ border-color: currentColor;
286
+ }
287
+
288
+ html, :host {
289
+ line-height: 1.5;
290
+ -webkit-text-size-adjust: 100%;
291
+ -moz-tab-size: 4;
292
+ tab-size: 4;
293
+ font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
294
+ font-feature-settings: normal;
295
+ font-variation-settings: normal;
296
+ -webkit-tap-highlight-color: transparent;
297
+ }
298
+
299
+ body {
300
+ margin: 0;
301
+ line-height: inherit;
302
+ }
303
+
304
+ hr {
305
+ height: 0;
306
+ color: inherit;
307
+ border-top-width: 1px;
308
+ }
309
+
310
+ h1, h2, h3, h4, h5, h6 {
311
+ font-size: inherit;
312
+ font-weight: inherit;
313
+ }
314
+
315
+ a {
316
+ color: inherit;
317
+ text-decoration: inherit;
318
+ }
319
+
320
+ b, strong {
321
+ font-weight: bolder;
322
+ }
323
+
324
+ code, kbd, samp, pre {
325
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
326
+ font-size: 1em;
327
+ }
328
+
329
+ small {
330
+ font-size: 80%;
331
+ }
332
+
333
+ sub, sup {
334
+ font-size: 75%;
335
+ line-height: 0;
336
+ position: relative;
337
+ vertical-align: baseline;
338
+ }
339
+
340
+ sub { bottom: -0.25em; }
341
+ sup { top: -0.5em; }
342
+
343
+ table {
344
+ text-indent: 0;
345
+ border-color: inherit;
346
+ border-collapse: collapse;
347
+ }
348
+
349
+ button, input, optgroup, select, textarea {
350
+ font-family: inherit;
351
+ font-size: 100%;
352
+ font-weight: inherit;
353
+ line-height: inherit;
354
+ color: inherit;
355
+ margin: 0;
356
+ padding: 0;
357
+ }
358
+
359
+ button, select {
360
+ text-transform: none;
361
+ }
362
+
363
+ button,
364
+ input:where([type='button']),
365
+ input:where([type='reset']),
366
+ input:where([type='submit']) {
367
+ -webkit-appearance: button;
368
+ background-color: transparent;
369
+ background-image: none;
370
+ }
371
+
372
+ progress {
373
+ vertical-align: baseline;
374
+ }
375
+
376
+ [type='search'] {
377
+ -webkit-appearance: textfield;
378
+ outline-offset: -2px;
379
+ }
380
+
381
+ summary {
382
+ display: list-item;
383
+ }
384
+
385
+ blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre {
386
+ margin: 0;
387
+ }
388
+
389
+ fieldset { margin: 0; padding: 0; }
390
+ legend { padding: 0; }
391
+
392
+ ol, ul, menu {
393
+ list-style: none;
394
+ margin: 0;
395
+ padding: 0;
396
+ }
397
+
398
+ dialog { padding: 0; }
399
+
400
+ textarea { resize: vertical; }
401
+
402
+ input::placeholder, textarea::placeholder {
403
+ opacity: 1;
404
+ color: #9ca3af;
405
+ }
406
+
407
+ button, [role="button"] {
408
+ cursor: pointer;
409
+ }
410
+
411
+ :disabled {
412
+ cursor: default;
413
+ }
414
+
415
+ img, svg, video, canvas, audio, iframe, embed, object {
416
+ display: block;
417
+ vertical-align: middle;
418
+ }
419
+
420
+ img, video {
421
+ max-width: 100%;
422
+ height: auto;
423
+ }
424
+
425
+ [hidden] {
426
+ display: none;
427
+ }
428
+
429
+ /* Keyframe Animations */
430
+ @keyframes spin {
431
+ to { transform: rotate(360deg); }
432
+ }
433
+
434
+ @keyframes ping {
435
+ 75%, 100% {
436
+ transform: scale(2);
437
+ opacity: 0;
438
+ }
439
+ }
440
+
441
+ @keyframes pulse {
442
+ 50% { opacity: .5; }
443
+ }
444
+
445
+ @keyframes bounce {
446
+ 0%, 100% {
447
+ transform: translateY(-25%);
448
+ animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
449
+ }
450
+ 50% {
451
+ transform: none;
452
+ animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
453
+ }
454
+ }
455
+
456
+ `;
457
+ }
458
+
169
459
  // ============================================
170
460
  // LAYOUT KEYWORDS
171
461
  // ============================================
172
462
 
173
463
  const layoutKeywords = {
464
+ // Display
174
465
  'flex': 'display: flex;',
175
466
  'grid': 'display: grid;',
467
+ 'inline-flex': 'display: inline-flex;',
468
+ 'inline-grid': 'display: inline-grid;',
176
469
  'block': 'display: block;',
177
470
  'inline': 'display: inline-block;',
178
471
  'hidden': 'display: none;',
472
+
473
+ // Flex Direction
179
474
  'row': 'flex-direction: row;',
180
475
  'col': 'flex-direction: column;',
181
476
  'row-reverse': 'flex-direction: row-reverse;',
182
477
  'col-reverse': 'flex-direction: column-reverse;',
478
+
479
+ // Flex Wrap
480
+ 'wrap': 'flex-wrap: wrap;',
481
+ 'nowrap': 'flex-wrap: nowrap;',
482
+ 'wrap-reverse': 'flex-wrap: wrap-reverse;',
483
+
484
+ // Flex Item
485
+ 'grow': 'flex-grow: 1;',
486
+ 'grow-0': 'flex-grow: 0;',
487
+ 'shrink': 'flex-shrink: 1;',
488
+ 'shrink-0': 'flex-shrink: 0;',
489
+
490
+ // Grid Auto Flow
491
+ 'grid-flow-row': 'grid-auto-flow: row;',
492
+ 'grid-flow-col': 'grid-auto-flow: column;',
493
+ 'grid-flow-dense': 'grid-auto-flow: dense;',
494
+ 'grid-flow-row-dense': 'grid-auto-flow: row dense;',
495
+ 'grid-flow-col-dense': 'grid-auto-flow: column dense;',
496
+
497
+ // Shorthand Alignment (backwards compat - simple keywords)
183
498
  'center': 'justify-content: center; align-items: center;',
184
499
  'start': 'justify-content: flex-start; align-items: flex-start;',
185
500
  'end': 'justify-content: flex-end; align-items: flex-end;',
186
501
  'between': 'justify-content: space-between;',
187
502
  'around': 'justify-content: space-around;',
188
503
  'evenly': 'justify-content: space-evenly;',
189
- 'wrap': 'flex-wrap: wrap;',
190
- 'nowrap': 'flex-wrap: nowrap;',
504
+
505
+ // Position
191
506
  'absolute': 'position: absolute;',
192
507
  'relative': 'position: relative;',
193
508
  'fixed': 'position: fixed;',
194
- 'sticky': 'position: sticky;'
509
+ 'sticky': 'position: sticky;',
510
+ 'static': 'position: static;',
511
+
512
+ // Visibility
513
+ 'visible': 'visibility: visible;',
514
+ 'invisible': 'visibility: hidden;',
515
+
516
+ // Isolation
517
+ 'isolate': 'isolation: isolate;',
518
+ 'isolate-auto': 'isolation: auto;',
519
+
520
+ // Box Sizing
521
+ 'box-border': 'box-sizing: border-box;',
522
+ 'box-content': 'box-sizing: content-box;',
523
+
524
+ // Float
525
+ 'float-left': 'float: left;',
526
+ 'float-right': 'float: right;',
527
+ 'float-none': 'float: none;',
528
+
529
+ // Clear
530
+ 'clear-left': 'clear: left;',
531
+ 'clear-right': 'clear: right;',
532
+ 'clear-both': 'clear: both;',
533
+ 'clear-none': 'clear: none;',
534
+
535
+ // Container
536
+ 'container': 'width: 100%; margin-left: auto; margin-right: auto;',
537
+
538
+ // Table Border Collapse
539
+ 'border-collapse': 'border-collapse: collapse;',
540
+ 'border-separate': 'border-collapse: separate;'
195
541
  };
196
542
 
197
543
  // ============================================
@@ -248,7 +594,94 @@
248
594
  }
249
595
 
250
596
  function generateLayoutRule(token) {
251
- const { property, value } = token;
597
+ const { property, value, isArbitrary } = token;
598
+
599
+ // Justify Content (justify:[value])
600
+ if (property === 'justify') {
601
+ const justifyMap = {
602
+ 'start': 'flex-start',
603
+ 'end': 'flex-end',
604
+ 'center': 'center',
605
+ 'between': 'space-between',
606
+ 'around': 'space-around',
607
+ 'evenly': 'space-evenly',
608
+ 'stretch': 'stretch'
609
+ };
610
+ return `justify-content: ${justifyMap[value] || value};`;
611
+ }
612
+
613
+ // Justify Items (justify-items:[value])
614
+ if (property === 'justify-items') {
615
+ return `justify-items: ${value};`;
616
+ }
617
+
618
+ // Justify Self (justify-self:[value])
619
+ if (property === 'justify-self') {
620
+ return `justify-self: ${value};`;
621
+ }
622
+
623
+ // Align Content (content:[value])
624
+ if (property === 'content') {
625
+ const contentMap = {
626
+ 'start': 'flex-start',
627
+ 'end': 'flex-end',
628
+ 'center': 'center',
629
+ 'between': 'space-between',
630
+ 'around': 'space-around',
631
+ 'evenly': 'space-evenly',
632
+ 'stretch': 'stretch'
633
+ };
634
+ return `align-content: ${contentMap[value] || value};`;
635
+ }
636
+
637
+ // Align Items (items:[value])
638
+ if (property === 'items') {
639
+ const itemsMap = {
640
+ 'start': 'flex-start',
641
+ 'end': 'flex-end',
642
+ 'center': 'center',
643
+ 'baseline': 'baseline',
644
+ 'stretch': 'stretch'
645
+ };
646
+ return `align-items: ${itemsMap[value] || value};`;
647
+ }
648
+
649
+ // Align Self (self:[value])
650
+ if (property === 'self') {
651
+ const selfMap = {
652
+ 'auto': 'auto',
653
+ 'start': 'flex-start',
654
+ 'end': 'flex-end',
655
+ 'center': 'center',
656
+ 'baseline': 'baseline',
657
+ 'stretch': 'stretch'
658
+ };
659
+ return `align-self: ${selfMap[value] || value};`;
660
+ }
661
+
662
+ // Place Content (place-content:[value])
663
+ if (property === 'place-content') {
664
+ const placeContentMap = {
665
+ 'start': 'start',
666
+ 'end': 'end',
667
+ 'center': 'center',
668
+ 'between': 'space-between',
669
+ 'around': 'space-around',
670
+ 'evenly': 'space-evenly',
671
+ 'stretch': 'stretch'
672
+ };
673
+ return `place-content: ${placeContentMap[value] || value};`;
674
+ }
675
+
676
+ // Place Items (place-items:[value])
677
+ if (property === 'place-items') {
678
+ return `place-items: ${value};`;
679
+ }
680
+
681
+ // Place Self (place-self:[value])
682
+ if (property === 'place-self') {
683
+ return `place-self: ${value};`;
684
+ }
252
685
 
253
686
  // Z-index
254
687
  if (property === 'z') {
@@ -260,6 +693,215 @@
260
693
  return `overflow: ${value};`;
261
694
  }
262
695
 
696
+ // Overflow X/Y
697
+ if (property === 'overflow-x') {
698
+ return `overflow-x: ${value};`;
699
+ }
700
+ if (property === 'overflow-y') {
701
+ return `overflow-y: ${value};`;
702
+ }
703
+
704
+ // Aspect Ratio
705
+ if (property === 'aspect') {
706
+ const aspectMap = {
707
+ 'square': '1 / 1',
708
+ 'video': '16 / 9',
709
+ 'auto': 'auto'
710
+ };
711
+ const cssValue = isArbitrary ? value.replace(/_/g, ' ') : (aspectMap[value] || value);
712
+ return `aspect-ratio: ${cssValue};`;
713
+ }
714
+
715
+ // Object Fit
716
+ if (property === 'object') {
717
+ return `object-fit: ${value};`;
718
+ }
719
+
720
+ // Object Position
721
+ if (property === 'object-pos') {
722
+ const cssValue = isArbitrary ? value.replace(/_/g, ' ') : value;
723
+ return `object-position: ${cssValue};`;
724
+ }
725
+
726
+ // Inset (all sides)
727
+ if (property === 'inset') {
728
+ const cssValue = isArbitrary ? value : (value === '0' ? '0' : `var(--s-${value})`);
729
+ return `inset: ${cssValue};`;
730
+ }
731
+
732
+ // Individual positioning: top, right, bottom, left
733
+ if (['top', 'right', 'bottom', 'left'].includes(property)) {
734
+ const cssValue = isArbitrary ? value : (value === '0' ? '0' : `var(--s-${value})`);
735
+ return `${property}: ${cssValue};`;
736
+ }
737
+
738
+ // Inset X (left + right)
739
+ if (property === 'inset-x') {
740
+ const cssValue = isArbitrary ? value : (value === '0' ? '0' : `var(--s-${value})`);
741
+ return `left: ${cssValue}; right: ${cssValue};`;
742
+ }
743
+
744
+ // Inset Y (top + bottom)
745
+ if (property === 'inset-y') {
746
+ const cssValue = isArbitrary ? value : (value === '0' ? '0' : `var(--s-${value})`);
747
+ return `top: ${cssValue}; bottom: ${cssValue};`;
748
+ }
749
+
750
+ // Columns
751
+ if (property === 'cols') {
752
+ return `columns: ${value};`;
753
+ }
754
+
755
+ // Overscroll Behavior
756
+ if (property === 'overscroll') {
757
+ return `overscroll-behavior: ${value};`;
758
+ }
759
+ if (property === 'overscroll-x') {
760
+ return `overscroll-behavior-x: ${value};`;
761
+ }
762
+ if (property === 'overscroll-y') {
763
+ return `overscroll-behavior-y: ${value};`;
764
+ }
765
+
766
+ // Flex Basis
767
+ if (property === 'basis') {
768
+ const cssValue = isArbitrary ? value : `var(--s-${value})`;
769
+ return `flex-basis: ${cssValue};`;
770
+ }
771
+
772
+ // Flex (shorthand)
773
+ if (property === 'flex') {
774
+ const flexPresets = {
775
+ '1': '1 1 0%',
776
+ 'auto': '1 1 auto',
777
+ 'initial': '0 1 auto',
778
+ 'none': 'none'
779
+ };
780
+ const cssValue = isArbitrary ? value.replace(/_/g, ' ') : (flexPresets[value] || value);
781
+ return `flex: ${cssValue};`;
782
+ }
783
+
784
+ // Order
785
+ if (property === 'order') {
786
+ const orderPresets = {
787
+ 'first': '-9999',
788
+ 'last': '9999',
789
+ 'none': '0'
790
+ };
791
+ const cssValue = orderPresets[value] || value;
792
+ return `order: ${cssValue};`;
793
+ }
794
+
795
+ // Grid Template Columns
796
+ if (property === 'grid-cols') {
797
+ if (value === 'none') {
798
+ return 'grid-template-columns: none;';
799
+ }
800
+ if (value === 'subgrid') {
801
+ return 'grid-template-columns: subgrid;';
802
+ }
803
+ if (isArbitrary) {
804
+ return `grid-template-columns: ${value.replace(/_/g, ' ')};`;
805
+ }
806
+ // Numeric value: repeat(n, minmax(0, 1fr))
807
+ return `grid-template-columns: repeat(${value}, minmax(0, 1fr));`;
808
+ }
809
+
810
+ // Grid Template Rows
811
+ if (property === 'grid-rows') {
812
+ if (value === 'none') {
813
+ return 'grid-template-rows: none;';
814
+ }
815
+ if (value === 'subgrid') {
816
+ return 'grid-template-rows: subgrid;';
817
+ }
818
+ if (isArbitrary) {
819
+ return `grid-template-rows: ${value.replace(/_/g, ' ')};`;
820
+ }
821
+ return `grid-template-rows: repeat(${value}, minmax(0, 1fr));`;
822
+ }
823
+
824
+ // Grid Column Span
825
+ if (property === 'col-span') {
826
+ if (value === 'full') {
827
+ return 'grid-column: 1 / -1;';
828
+ }
829
+ return `grid-column: span ${value} / span ${value};`;
830
+ }
831
+
832
+ // Grid Column Start/End
833
+ if (property === 'col-start') {
834
+ return `grid-column-start: ${value};`;
835
+ }
836
+ if (property === 'col-end') {
837
+ return `grid-column-end: ${value};`;
838
+ }
839
+
840
+ // Grid Row Span
841
+ if (property === 'row-span') {
842
+ if (value === 'full') {
843
+ return 'grid-row: 1 / -1;';
844
+ }
845
+ return `grid-row: span ${value} / span ${value};`;
846
+ }
847
+
848
+ // Grid Row Start/End
849
+ if (property === 'row-start') {
850
+ return `grid-row-start: ${value};`;
851
+ }
852
+ if (property === 'row-end') {
853
+ return `grid-row-end: ${value};`;
854
+ }
855
+
856
+ // Grid Auto Columns
857
+ if (property === 'auto-cols') {
858
+ const autoPresets = {
859
+ 'auto': 'auto',
860
+ 'min': 'min-content',
861
+ 'max': 'max-content',
862
+ 'fr': 'minmax(0, 1fr)'
863
+ };
864
+ const cssValue = isArbitrary ? value : (autoPresets[value] || value);
865
+ return `grid-auto-columns: ${cssValue};`;
866
+ }
867
+
868
+ // Grid Auto Rows
869
+ if (property === 'auto-rows') {
870
+ const autoPresets = {
871
+ 'auto': 'auto',
872
+ 'min': 'min-content',
873
+ 'max': 'max-content',
874
+ 'fr': 'minmax(0, 1fr)'
875
+ };
876
+ const cssValue = isArbitrary ? value : (autoPresets[value] || value);
877
+ return `grid-auto-rows: ${cssValue};`;
878
+ }
879
+
880
+ // Table Layout
881
+ if (property === 'table') {
882
+ const tableMap = { 'auto': 'auto', 'fixed': 'fixed' };
883
+ return `table-layout: ${tableMap[value] || value};`;
884
+ }
885
+
886
+ // Caption Side
887
+ if (property === 'caption') {
888
+ return `caption-side: ${value};`;
889
+ }
890
+
891
+ // Border Spacing
892
+ if (property === 'border-spacing') {
893
+ const cssValue = isArbitrary ? value : `var(--s-${value})`;
894
+ return `border-spacing: ${cssValue};`;
895
+ }
896
+ if (property === 'border-spacing-x') {
897
+ const cssValue = isArbitrary ? value : `var(--s-${value})`;
898
+ return `border-spacing: ${cssValue} 0;`;
899
+ }
900
+ if (property === 'border-spacing-y') {
901
+ const cssValue = isArbitrary ? value : `var(--s-${value})`;
902
+ return `border-spacing: 0 ${cssValue};`;
903
+ }
904
+
263
905
  return layoutKeywords[property] || '';
264
906
  }
265
907
 
@@ -313,13 +955,112 @@
313
955
  function generateVisualRule(token) {
314
956
  const { property, value, isArbitrary } = token;
315
957
 
958
+ // Static typography keywords
959
+ const typographyKeywords = {
960
+ // Font Style
961
+ 'italic': 'font-style: italic;',
962
+ 'not-italic': 'font-style: normal;',
963
+
964
+ // Font Stretch
965
+ 'font-stretch-condensed': 'font-stretch: condensed;',
966
+ 'font-stretch-expanded': 'font-stretch: expanded;',
967
+ 'font-stretch-normal': 'font-stretch: normal;',
968
+
969
+ // Font Smoothing
970
+ 'antialiased': '-webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;',
971
+ 'subpixel-antialiased': '-webkit-font-smoothing: auto; -moz-osx-font-smoothing: auto;',
972
+
973
+ // Font Variant Numeric
974
+ 'normal-nums': 'font-variant-numeric: normal;',
975
+ 'ordinal': 'font-variant-numeric: ordinal;',
976
+ 'slashed-zero': 'font-variant-numeric: slashed-zero;',
977
+ 'lining-nums': 'font-variant-numeric: lining-nums;',
978
+ 'oldstyle-nums': 'font-variant-numeric: oldstyle-nums;',
979
+ 'proportional-nums': 'font-variant-numeric: proportional-nums;',
980
+ 'tabular-nums': 'font-variant-numeric: tabular-nums;',
981
+
982
+ // Text Transform
983
+ 'uppercase': 'text-transform: uppercase;',
984
+ 'lowercase': 'text-transform: lowercase;',
985
+ 'capitalize': 'text-transform: capitalize;',
986
+ 'normal-case': 'text-transform: none;',
987
+
988
+ // Text Decoration Line
989
+ 'underline': 'text-decoration-line: underline;',
990
+ 'overline': 'text-decoration-line: overline;',
991
+ 'line-through': 'text-decoration-line: line-through;',
992
+ 'no-underline': 'text-decoration-line: none;',
993
+
994
+ // Text Decoration Style
995
+ 'decoration-solid': 'text-decoration-style: solid;',
996
+ 'decoration-double': 'text-decoration-style: double;',
997
+ 'decoration-dotted': 'text-decoration-style: dotted;',
998
+ 'decoration-dashed': 'text-decoration-style: dashed;',
999
+ 'decoration-wavy': 'text-decoration-style: wavy;',
1000
+
1001
+ // Text Overflow
1002
+ 'truncate': 'overflow: hidden; text-overflow: ellipsis; white-space: nowrap;',
1003
+ 'text-ellipsis': 'text-overflow: ellipsis;',
1004
+ 'text-clip': 'text-overflow: clip;',
1005
+
1006
+ // Text Wrap
1007
+ 'text-wrap': 'text-wrap: wrap;',
1008
+ 'text-nowrap': 'text-wrap: nowrap;',
1009
+ 'text-balance': 'text-wrap: balance;',
1010
+ 'text-pretty': 'text-wrap: pretty;',
1011
+
1012
+ // Whitespace
1013
+ 'whitespace-normal': 'white-space: normal;',
1014
+ 'whitespace-nowrap': 'white-space: nowrap;',
1015
+ 'whitespace-pre': 'white-space: pre;',
1016
+ 'whitespace-pre-line': 'white-space: pre-line;',
1017
+ 'whitespace-pre-wrap': 'white-space: pre-wrap;',
1018
+ 'whitespace-break-spaces': 'white-space: break-spaces;',
1019
+
1020
+ // Word Break
1021
+ 'break-normal': 'overflow-wrap: normal; word-break: normal;',
1022
+ 'break-words': 'overflow-wrap: break-word;',
1023
+ 'break-all': 'word-break: break-all;',
1024
+ 'break-keep': 'word-break: keep-all;',
1025
+
1026
+ // Hyphens
1027
+ 'hyphens-none': 'hyphens: none;',
1028
+ 'hyphens-manual': 'hyphens: manual;',
1029
+ 'hyphens-auto': 'hyphens: auto;',
1030
+
1031
+ // Vertical Align
1032
+ 'align-baseline': 'vertical-align: baseline;',
1033
+ 'align-top': 'vertical-align: top;',
1034
+ 'align-middle': 'vertical-align: middle;',
1035
+ 'align-bottom': 'vertical-align: bottom;',
1036
+ 'align-text-top': 'vertical-align: text-top;',
1037
+ 'align-text-bottom': 'vertical-align: text-bottom;',
1038
+ 'align-sub': 'vertical-align: sub;',
1039
+ 'align-super': 'vertical-align: super;',
1040
+
1041
+ // List Style Type
1042
+ 'list-none': 'list-style-type: none;',
1043
+ 'list-disc': 'list-style-type: disc;',
1044
+ 'list-decimal': 'list-style-type: decimal;',
1045
+ 'list-square': 'list-style-type: square;',
1046
+
1047
+ // List Style Position
1048
+ 'list-inside': 'list-style-position: inside;',
1049
+ 'list-outside': 'list-style-position: outside;'
1050
+ };
1051
+
1052
+ // Check static keywords first
1053
+ if (typographyKeywords[property]) {
1054
+ return typographyKeywords[property];
1055
+ }
1056
+
316
1057
  const rules = {
317
1058
  'bg': () => {
318
1059
  const cssValue = isArbitrary ? value : `var(--c-${value})`;
319
1060
  return `background-color: ${cssValue};`;
320
1061
  },
321
1062
  'text': () => {
322
- if (['left', 'center', 'right'].includes(value)) {
1063
+ if (['left', 'center', 'right', 'justify'].includes(value)) {
323
1064
  return `text-align: ${value};`;
324
1065
  }
325
1066
  const cssValue = isArbitrary ? value : `var(--c-${value})`;
@@ -329,18 +1070,694 @@
329
1070
  const cssValue = isArbitrary ? value : `var(--font-${value})`;
330
1071
  return `font-size: ${cssValue};`;
331
1072
  },
332
- 'font': () => `font-weight: var(--fw-${value});`,
1073
+ 'font': () => {
1074
+ // Check for font-family presets
1075
+ const fontFamilies = {
1076
+ 'sans': 'ui-sans-serif, system-ui, sans-serif',
1077
+ 'serif': 'ui-serif, Georgia, serif',
1078
+ 'mono': 'ui-monospace, monospace'
1079
+ };
1080
+ if (fontFamilies[value]) {
1081
+ return `font-family: ${fontFamilies[value]};`;
1082
+ }
1083
+ // Font weight
1084
+ return `font-weight: var(--fw-${value});`;
1085
+ },
1086
+ 'tracking': () => {
1087
+ // Letter spacing
1088
+ const trackingScale = {
1089
+ 'tighter': '-0.05em',
1090
+ 'tight': '-0.025em',
1091
+ 'normal': '0',
1092
+ 'wide': '0.025em',
1093
+ 'wider': '0.05em',
1094
+ 'widest': '0.1em'
1095
+ };
1096
+ const cssValue = isArbitrary ? value : (trackingScale[value] || value);
1097
+ return `letter-spacing: ${cssValue};`;
1098
+ },
1099
+ 'leading': () => {
1100
+ // Line height
1101
+ const leadingScale = {
1102
+ 'none': '1',
1103
+ 'tight': '1.25',
1104
+ 'snug': '1.375',
1105
+ 'normal': '1.5',
1106
+ 'relaxed': '1.625',
1107
+ 'loose': '2'
1108
+ };
1109
+ const cssValue = isArbitrary ? value : (leadingScale[value] || value);
1110
+ return `line-height: ${cssValue};`;
1111
+ },
1112
+ 'line-clamp': () => {
1113
+ return `overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: ${value};`;
1114
+ },
1115
+ 'decoration': () => {
1116
+ // Text decoration color
1117
+ const cssValue = isArbitrary ? value : `var(--c-${value})`;
1118
+ return `text-decoration-color: ${cssValue};`;
1119
+ },
1120
+ 'decoration-thickness': () => {
1121
+ const cssValue = isArbitrary ? value : `${value}px`;
1122
+ return `text-decoration-thickness: ${cssValue};`;
1123
+ },
1124
+ 'underline-offset': () => {
1125
+ const cssValue = isArbitrary ? value : `${value}px`;
1126
+ return `text-underline-offset: ${cssValue};`;
1127
+ },
1128
+ 'indent': () => {
1129
+ const cssValue = isArbitrary ? value : `var(--s-${value})`;
1130
+ return `text-indent: ${cssValue};`;
1131
+ },
333
1132
  'border': () => {
334
1133
  const cssValue = isArbitrary ? value : `var(--c-${value})`;
335
1134
  return `border-color: ${cssValue}; border-style: solid;`;
336
1135
  },
1136
+ // Border color - directional
1137
+ 'border-t': () => {
1138
+ const cssValue = isArbitrary ? value : `var(--c-${value})`;
1139
+ return `border-top-color: ${cssValue}; border-top-style: solid;`;
1140
+ },
1141
+ 'border-b': () => {
1142
+ const cssValue = isArbitrary ? value : `var(--c-${value})`;
1143
+ return `border-bottom-color: ${cssValue}; border-bottom-style: solid;`;
1144
+ },
1145
+ 'border-l': () => {
1146
+ const cssValue = isArbitrary ? value : `var(--c-${value})`;
1147
+ return `border-left-color: ${cssValue}; border-left-style: solid;`;
1148
+ },
1149
+ 'border-r': () => {
1150
+ const cssValue = isArbitrary ? value : `var(--c-${value})`;
1151
+ return `border-right-color: ${cssValue}; border-right-style: solid;`;
1152
+ },
1153
+ 'border-x': () => {
1154
+ const cssValue = isArbitrary ? value : `var(--c-${value})`;
1155
+ return `border-left-color: ${cssValue}; border-right-color: ${cssValue}; border-left-style: solid; border-right-style: solid;`;
1156
+ },
1157
+ 'border-y': () => {
1158
+ const cssValue = isArbitrary ? value : `var(--c-${value})`;
1159
+ return `border-top-color: ${cssValue}; border-bottom-color: ${cssValue}; border-top-style: solid; border-bottom-style: solid;`;
1160
+ },
337
1161
  'border-w': () => {
338
1162
  const cssValue = isArbitrary ? value : `var(--s-${value})`;
339
1163
  return `border-width: ${cssValue}; border-style: solid;`;
340
1164
  },
1165
+ // Border width - directional
1166
+ 'border-t-w': () => {
1167
+ const cssValue = isArbitrary ? value : `var(--s-${value})`;
1168
+ return `border-top-width: ${cssValue}; border-top-style: solid;`;
1169
+ },
1170
+ 'border-b-w': () => {
1171
+ const cssValue = isArbitrary ? value : `var(--s-${value})`;
1172
+ return `border-bottom-width: ${cssValue}; border-bottom-style: solid;`;
1173
+ },
1174
+ 'border-l-w': () => {
1175
+ const cssValue = isArbitrary ? value : `var(--s-${value})`;
1176
+ return `border-left-width: ${cssValue}; border-left-style: solid;`;
1177
+ },
1178
+ 'border-r-w': () => {
1179
+ const cssValue = isArbitrary ? value : `var(--s-${value})`;
1180
+ return `border-right-width: ${cssValue}; border-right-style: solid;`;
1181
+ },
1182
+ 'border-x-w': () => {
1183
+ const cssValue = isArbitrary ? value : `var(--s-${value})`;
1184
+ return `border-left-width: ${cssValue}; border-right-width: ${cssValue}; border-left-style: solid; border-right-style: solid;`;
1185
+ },
1186
+ 'border-y-w': () => {
1187
+ const cssValue = isArbitrary ? value : `var(--s-${value})`;
1188
+ return `border-top-width: ${cssValue}; border-bottom-width: ${cssValue}; border-top-style: solid; border-bottom-style: solid;`;
1189
+ },
341
1190
  'rounded': () => `border-radius: var(--r-${value});`,
342
1191
  'shadow': () => `box-shadow: var(--shadow-${value});`,
343
- 'opacity': () => `opacity: ${value};`
1192
+ 'opacity': () => {
1193
+ const opacityValue = isArbitrary ? value : (parseFloat(value) / 100);
1194
+ return `opacity: ${opacityValue};`;
1195
+ },
1196
+ 'content': () => `content: "${value}";`,
1197
+
1198
+ // ============================================
1199
+ // TRANSFORM UTILITIES
1200
+ // ============================================
1201
+ 'scale': () => {
1202
+ const scaleValue = isArbitrary ? value : (parseFloat(value) / 100);
1203
+ return `transform: scale(${scaleValue});`;
1204
+ },
1205
+ 'scale-x': () => {
1206
+ const scaleValue = isArbitrary ? value : (parseFloat(value) / 100);
1207
+ return `transform: scaleX(${scaleValue});`;
1208
+ },
1209
+ 'scale-y': () => {
1210
+ const scaleValue = isArbitrary ? value : (parseFloat(value) / 100);
1211
+ return `transform: scaleY(${scaleValue});`;
1212
+ },
1213
+ 'rotate': () => {
1214
+ const rotateValue = isArbitrary ? value : `${value}deg`;
1215
+ return `transform: rotate(${rotateValue});`;
1216
+ },
1217
+ 'translate-x': () => {
1218
+ const translatePresets = { '0': '0', 'full': '100%', '1/2': '50%', '-full': '-100%', '-1/2': '-50%' };
1219
+ const cssValue = isArbitrary ? value : (translatePresets[value] || `var(--s-${value})`);
1220
+ return `transform: translateX(${cssValue});`;
1221
+ },
1222
+ 'translate-y': () => {
1223
+ const translatePresets = { '0': '0', 'full': '100%', '1/2': '50%', '-full': '-100%', '-1/2': '-50%' };
1224
+ const cssValue = isArbitrary ? value : (translatePresets[value] || `var(--s-${value})`);
1225
+ return `transform: translateY(${cssValue});`;
1226
+ },
1227
+ 'skew-x': () => {
1228
+ const skewValue = isArbitrary ? value : `${value}deg`;
1229
+ return `transform: skewX(${skewValue});`;
1230
+ },
1231
+ 'skew-y': () => {
1232
+ const skewValue = isArbitrary ? value : `${value}deg`;
1233
+ return `transform: skewY(${skewValue});`;
1234
+ },
1235
+ 'origin': () => {
1236
+ const originMap = {
1237
+ 'center': 'center',
1238
+ 'top': 'top',
1239
+ 'top-right': 'top right',
1240
+ 'right': 'right',
1241
+ 'bottom-right': 'bottom right',
1242
+ 'bottom': 'bottom',
1243
+ 'bottom-left': 'bottom left',
1244
+ 'left': 'left',
1245
+ 'top-left': 'top left'
1246
+ };
1247
+ const cssValue = isArbitrary ? value.replace(/_/g, ' ') : (originMap[value] || value);
1248
+ return `transform-origin: ${cssValue};`;
1249
+ },
1250
+
1251
+ // ============================================
1252
+ // TRANSITION UTILITIES
1253
+ // ============================================
1254
+ 'transition': () => {
1255
+ const transitionMap = {
1256
+ 'none': 'transition-property: none;',
1257
+ 'all': 'transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms;',
1258
+ 'colors': 'transition-property: color, background-color, border-color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms;',
1259
+ 'opacity': 'transition-property: opacity; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms;',
1260
+ 'shadow': 'transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms;',
1261
+ 'transform': 'transition-property: transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms;'
1262
+ };
1263
+ return transitionMap[value] || `transition-property: ${value};`;
1264
+ },
1265
+ 'duration': () => {
1266
+ const durationMap = {
1267
+ 'instant': '75ms',
1268
+ 'quick': '100ms',
1269
+ 'fast': '150ms',
1270
+ 'normal': '200ms',
1271
+ 'slow': '300ms',
1272
+ 'slower': '500ms',
1273
+ 'lazy': '700ms'
1274
+ };
1275
+ const cssValue = isArbitrary ? value : (durationMap[value] || `${value}ms`);
1276
+ return `transition-duration: ${cssValue};`;
1277
+ },
1278
+ 'ease': () => {
1279
+ const easeMap = {
1280
+ 'linear': 'linear',
1281
+ 'in': 'cubic-bezier(0.4, 0, 1, 1)',
1282
+ 'out': 'cubic-bezier(0, 0, 0.2, 1)',
1283
+ 'in-out': 'cubic-bezier(0.4, 0, 0.2, 1)'
1284
+ };
1285
+ const cssValue = easeMap[value] || value;
1286
+ return `transition-timing-function: ${cssValue};`;
1287
+ },
1288
+ 'delay': () => {
1289
+ const delayMap = {
1290
+ 'instant': '75ms',
1291
+ 'quick': '100ms',
1292
+ 'fast': '150ms',
1293
+ 'normal': '200ms',
1294
+ 'slow': '300ms'
1295
+ };
1296
+ const cssValue = isArbitrary ? value : (delayMap[value] || `${value}ms`);
1297
+ return `transition-delay: ${cssValue};`;
1298
+ },
1299
+ 'animate': () => {
1300
+ const animateMap = {
1301
+ 'none': 'animation: none;',
1302
+ 'spin': 'animation: spin 1s linear infinite;',
1303
+ 'ping': 'animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;',
1304
+ 'pulse': 'animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;',
1305
+ 'bounce': 'animation: bounce 1s infinite;'
1306
+ };
1307
+ return animateMap[value] || `animation: ${value};`;
1308
+ },
1309
+
1310
+ // ============================================
1311
+ // FILTER UTILITIES
1312
+ // ============================================
1313
+ 'blur': () => {
1314
+ const blurScale = {
1315
+ 'none': '0',
1316
+ 'sm': '4px',
1317
+ 'md': '8px',
1318
+ 'lg': '12px',
1319
+ 'xl': '16px',
1320
+ '2xl': '24px',
1321
+ '3xl': '40px'
1322
+ };
1323
+ const cssValue = isArbitrary ? value : (blurScale[value] || `${value}px`);
1324
+ return `filter: blur(${cssValue});`;
1325
+ },
1326
+ 'brightness': () => {
1327
+ const brightnessScale = {
1328
+ '0': '0',
1329
+ '50': '0.5',
1330
+ '75': '0.75',
1331
+ '90': '0.9',
1332
+ '95': '0.95',
1333
+ '100': '1',
1334
+ '105': '1.05',
1335
+ '110': '1.1',
1336
+ '125': '1.25',
1337
+ '150': '1.5',
1338
+ '200': '2'
1339
+ };
1340
+ const cssValue = isArbitrary ? value : (brightnessScale[value] || (parseFloat(value) / 100));
1341
+ return `filter: brightness(${cssValue});`;
1342
+ },
1343
+ 'contrast': () => {
1344
+ const contrastScale = {
1345
+ '0': '0',
1346
+ '50': '0.5',
1347
+ '75': '0.75',
1348
+ '100': '1',
1349
+ '125': '1.25',
1350
+ '150': '1.5',
1351
+ '200': '2'
1352
+ };
1353
+ const cssValue = isArbitrary ? value : (contrastScale[value] || (parseFloat(value) / 100));
1354
+ return `filter: contrast(${cssValue});`;
1355
+ },
1356
+ 'grayscale': () => {
1357
+ const grayscaleScale = { '0': '0', '100': '1', 'full': '1' };
1358
+ const cssValue = isArbitrary ? value : (grayscaleScale[value] || (parseFloat(value) / 100));
1359
+ return `filter: grayscale(${cssValue});`;
1360
+ },
1361
+ 'hue-rotate': () => {
1362
+ const cssValue = isArbitrary ? value : `${value}deg`;
1363
+ return `filter: hue-rotate(${cssValue});`;
1364
+ },
1365
+ 'invert': () => {
1366
+ const invertScale = { '0': '0', '100': '1', 'full': '1' };
1367
+ const cssValue = isArbitrary ? value : (invertScale[value] || (parseFloat(value) / 100));
1368
+ return `filter: invert(${cssValue});`;
1369
+ },
1370
+ 'saturate': () => {
1371
+ const saturateScale = {
1372
+ '0': '0',
1373
+ '50': '0.5',
1374
+ '100': '1',
1375
+ '150': '1.5',
1376
+ '200': '2'
1377
+ };
1378
+ const cssValue = isArbitrary ? value : (saturateScale[value] || (parseFloat(value) / 100));
1379
+ return `filter: saturate(${cssValue});`;
1380
+ },
1381
+ 'sepia': () => {
1382
+ const sepiaScale = { '0': '0', '100': '1', 'full': '1' };
1383
+ const cssValue = isArbitrary ? value : (sepiaScale[value] || (parseFloat(value) / 100));
1384
+ return `filter: sepia(${cssValue});`;
1385
+ },
1386
+ 'drop-shadow': () => {
1387
+ const shadowMap = {
1388
+ 'sm': 'drop-shadow(0 1px 1px rgb(0 0 0 / 0.05))',
1389
+ 'md': 'drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06))',
1390
+ 'lg': 'drop-shadow(0 10px 8px rgb(0 0 0 / 0.04)) drop-shadow(0 4px 3px rgb(0 0 0 / 0.1))',
1391
+ 'xl': 'drop-shadow(0 20px 13px rgb(0 0 0 / 0.03)) drop-shadow(0 8px 5px rgb(0 0 0 / 0.08))',
1392
+ '2xl': 'drop-shadow(0 25px 25px rgb(0 0 0 / 0.15))',
1393
+ 'none': 'drop-shadow(0 0 #0000)'
1394
+ };
1395
+ const cssValue = isArbitrary ? `drop-shadow(${value.replace(/_/g, ' ')})` : (shadowMap[value] || shadowMap['md']);
1396
+ return `filter: ${cssValue};`;
1397
+ },
1398
+
1399
+ // ============================================
1400
+ // BACKGROUND UTILITIES
1401
+ // ============================================
1402
+ 'bg-size': () => {
1403
+ const sizeMap = { 'auto': 'auto', 'cover': 'cover', 'contain': 'contain' };
1404
+ const cssValue = isArbitrary ? value.replace(/_/g, ' ') : (sizeMap[value] || value);
1405
+ return `background-size: ${cssValue};`;
1406
+ },
1407
+ 'bg-pos': () => {
1408
+ const posMap = {
1409
+ 'center': 'center',
1410
+ 'top': 'top',
1411
+ 'top-right': 'top right',
1412
+ 'right': 'right',
1413
+ 'bottom-right': 'bottom right',
1414
+ 'bottom': 'bottom',
1415
+ 'bottom-left': 'bottom left',
1416
+ 'left': 'left',
1417
+ 'top-left': 'top left'
1418
+ };
1419
+ const cssValue = isArbitrary ? value.replace(/_/g, ' ') : (posMap[value] || value);
1420
+ return `background-position: ${cssValue};`;
1421
+ },
1422
+ 'bg-repeat': () => {
1423
+ const repeatMap = {
1424
+ 'repeat': 'repeat',
1425
+ 'no-repeat': 'no-repeat',
1426
+ 'repeat-x': 'repeat-x',
1427
+ 'repeat-y': 'repeat-y',
1428
+ 'round': 'round',
1429
+ 'space': 'space'
1430
+ };
1431
+ return `background-repeat: ${repeatMap[value] || value};`;
1432
+ },
1433
+ 'bg-attachment': () => {
1434
+ return `background-attachment: ${value};`;
1435
+ },
1436
+ 'bg-clip': () => {
1437
+ const clipMap = {
1438
+ 'border': 'border-box',
1439
+ 'padding': 'padding-box',
1440
+ 'content': 'content-box',
1441
+ 'text': 'text'
1442
+ };
1443
+ return `background-clip: ${clipMap[value] || value};`;
1444
+ },
1445
+ 'bg-origin': () => {
1446
+ const originMap = {
1447
+ 'border': 'border-box',
1448
+ 'padding': 'padding-box',
1449
+ 'content': 'content-box'
1450
+ };
1451
+ return `background-origin: ${originMap[value] || value};`;
1452
+ },
1453
+ 'bg-blend': () => {
1454
+ return `background-blend-mode: ${value};`;
1455
+ },
1456
+ 'bg-image': () => {
1457
+ const gradientMap = {
1458
+ 'none': 'none',
1459
+ 'gradient-to-t': 'linear-gradient(to top, var(--tw-gradient-stops))',
1460
+ 'gradient-to-tr': 'linear-gradient(to top right, var(--tw-gradient-stops))',
1461
+ 'gradient-to-r': 'linear-gradient(to right, var(--tw-gradient-stops))',
1462
+ 'gradient-to-br': 'linear-gradient(to bottom right, var(--tw-gradient-stops))',
1463
+ 'gradient-to-b': 'linear-gradient(to bottom, var(--tw-gradient-stops))',
1464
+ 'gradient-to-bl': 'linear-gradient(to bottom left, var(--tw-gradient-stops))',
1465
+ 'gradient-to-l': 'linear-gradient(to left, var(--tw-gradient-stops))',
1466
+ 'gradient-to-tl': 'linear-gradient(to top left, var(--tw-gradient-stops))'
1467
+ };
1468
+ const cssValue = isArbitrary ? value.replace(/_/g, ' ') : (gradientMap[value] || value);
1469
+ return `background-image: ${cssValue};`;
1470
+ },
1471
+
1472
+ // ============================================
1473
+ // BACKDROP FILTER UTILITIES
1474
+ // ============================================
1475
+ 'backdrop-blur': () => {
1476
+ const blurScale = {
1477
+ 'none': '0',
1478
+ 'sm': '4px',
1479
+ 'md': '8px',
1480
+ 'lg': '12px',
1481
+ 'xl': '16px',
1482
+ '2xl': '24px',
1483
+ '3xl': '40px'
1484
+ };
1485
+ const cssValue = isArbitrary ? value : (blurScale[value] || `${value}px`);
1486
+ return `backdrop-filter: blur(${cssValue});`;
1487
+ },
1488
+ 'backdrop-brightness': () => {
1489
+ const cssValue = isArbitrary ? value : (parseFloat(value) / 100);
1490
+ return `backdrop-filter: brightness(${cssValue});`;
1491
+ },
1492
+ 'backdrop-contrast': () => {
1493
+ const cssValue = isArbitrary ? value : (parseFloat(value) / 100);
1494
+ return `backdrop-filter: contrast(${cssValue});`;
1495
+ },
1496
+ 'backdrop-grayscale': () => {
1497
+ const grayscaleScale = { '0': '0', '100': '1', 'full': '1' };
1498
+ const cssValue = isArbitrary ? value : (grayscaleScale[value] || (parseFloat(value) / 100));
1499
+ return `backdrop-filter: grayscale(${cssValue});`;
1500
+ },
1501
+ 'backdrop-hue-rotate': () => {
1502
+ const cssValue = isArbitrary ? value : `${value}deg`;
1503
+ return `backdrop-filter: hue-rotate(${cssValue});`;
1504
+ },
1505
+ 'backdrop-invert': () => {
1506
+ const invertScale = { '0': '0', '100': '1', 'full': '1' };
1507
+ const cssValue = isArbitrary ? value : (invertScale[value] || (parseFloat(value) / 100));
1508
+ return `backdrop-filter: invert(${cssValue});`;
1509
+ },
1510
+ 'backdrop-opacity': () => {
1511
+ const cssValue = isArbitrary ? value : (parseFloat(value) / 100);
1512
+ return `backdrop-filter: opacity(${cssValue});`;
1513
+ },
1514
+ 'backdrop-saturate': () => {
1515
+ const cssValue = isArbitrary ? value : (parseFloat(value) / 100);
1516
+ return `backdrop-filter: saturate(${cssValue});`;
1517
+ },
1518
+ 'backdrop-sepia': () => {
1519
+ const sepiaScale = { '0': '0', '100': '1', 'full': '1' };
1520
+ const cssValue = isArbitrary ? value : (sepiaScale[value] || (parseFloat(value) / 100));
1521
+ return `backdrop-filter: sepia(${cssValue});`;
1522
+ },
1523
+
1524
+ // ============================================
1525
+ // ANIMATION EXTENDED PROPERTIES
1526
+ // ============================================
1527
+ 'animation-duration': () => {
1528
+ const durationMap = {
1529
+ 'instant': '75ms',
1530
+ 'quick': '100ms',
1531
+ 'fast': '150ms',
1532
+ 'normal': '200ms',
1533
+ 'slow': '300ms',
1534
+ 'slower': '500ms',
1535
+ 'lazy': '700ms'
1536
+ };
1537
+ const cssValue = isArbitrary ? value : (durationMap[value] || `${value}ms`);
1538
+ return `animation-duration: ${cssValue};`;
1539
+ },
1540
+ 'animation-delay': () => {
1541
+ const delayMap = {
1542
+ 'instant': '75ms',
1543
+ 'quick': '100ms',
1544
+ 'fast': '150ms',
1545
+ 'normal': '200ms',
1546
+ 'slow': '300ms'
1547
+ };
1548
+ const cssValue = isArbitrary ? value : (delayMap[value] || `${value}ms`);
1549
+ return `animation-delay: ${cssValue};`;
1550
+ },
1551
+ 'animation-iteration': () => {
1552
+ const iterationMap = { 'infinite': 'infinite', 'once': '1', 'twice': '2' };
1553
+ const cssValue = iterationMap[value] || value;
1554
+ return `animation-iteration-count: ${cssValue};`;
1555
+ },
1556
+ 'animation-direction': () => {
1557
+ return `animation-direction: ${value};`;
1558
+ },
1559
+ 'animation-fill': () => {
1560
+ return `animation-fill-mode: ${value};`;
1561
+ },
1562
+ 'animation-play': () => {
1563
+ return `animation-play-state: ${value};`;
1564
+ },
1565
+ 'animation-timing': () => {
1566
+ const easeMap = {
1567
+ 'linear': 'linear',
1568
+ 'in': 'cubic-bezier(0.4, 0, 1, 1)',
1569
+ 'out': 'cubic-bezier(0, 0, 0.2, 1)',
1570
+ 'in-out': 'cubic-bezier(0.4, 0, 0.2, 1)'
1571
+ };
1572
+ const cssValue = easeMap[value] || value;
1573
+ return `animation-timing-function: ${cssValue};`;
1574
+ },
1575
+
1576
+ // ============================================
1577
+ // SCROLL & INTERACTIVITY UTILITIES
1578
+ // ============================================
1579
+ 'scroll-behavior': () => {
1580
+ return `scroll-behavior: ${value};`;
1581
+ },
1582
+ 'scroll-m': () => {
1583
+ const cssValue = isArbitrary ? value : `var(--s-${value})`;
1584
+ return `scroll-margin: ${cssValue};`;
1585
+ },
1586
+ 'scroll-m-x': () => {
1587
+ const cssValue = isArbitrary ? value : `var(--s-${value})`;
1588
+ return `scroll-margin-left: ${cssValue}; scroll-margin-right: ${cssValue};`;
1589
+ },
1590
+ 'scroll-m-y': () => {
1591
+ const cssValue = isArbitrary ? value : `var(--s-${value})`;
1592
+ return `scroll-margin-top: ${cssValue}; scroll-margin-bottom: ${cssValue};`;
1593
+ },
1594
+ 'scroll-p': () => {
1595
+ const cssValue = isArbitrary ? value : `var(--s-${value})`;
1596
+ return `scroll-padding: ${cssValue};`;
1597
+ },
1598
+ 'scroll-p-x': () => {
1599
+ const cssValue = isArbitrary ? value : `var(--s-${value})`;
1600
+ return `scroll-padding-left: ${cssValue}; scroll-padding-right: ${cssValue};`;
1601
+ },
1602
+ 'scroll-p-y': () => {
1603
+ const cssValue = isArbitrary ? value : `var(--s-${value})`;
1604
+ return `scroll-padding-top: ${cssValue}; scroll-padding-bottom: ${cssValue};`;
1605
+ },
1606
+ 'snap-align': () => {
1607
+ return `scroll-snap-align: ${value};`;
1608
+ },
1609
+ 'snap-stop': () => {
1610
+ return `scroll-snap-stop: ${value};`;
1611
+ },
1612
+ 'snap-type': () => {
1613
+ const typeMap = {
1614
+ 'none': 'none',
1615
+ 'x': 'x mandatory',
1616
+ 'y': 'y mandatory',
1617
+ 'both': 'both mandatory',
1618
+ 'x-proximity': 'x proximity',
1619
+ 'y-proximity': 'y proximity'
1620
+ };
1621
+ return `scroll-snap-type: ${typeMap[value] || value};`;
1622
+ },
1623
+ 'touch': () => {
1624
+ const touchMap = {
1625
+ 'auto': 'auto',
1626
+ 'none': 'none',
1627
+ 'pan-x': 'pan-x',
1628
+ 'pan-y': 'pan-y',
1629
+ 'pan-left': 'pan-left',
1630
+ 'pan-right': 'pan-right',
1631
+ 'pan-up': 'pan-up',
1632
+ 'pan-down': 'pan-down',
1633
+ 'pinch-zoom': 'pinch-zoom',
1634
+ 'manipulation': 'manipulation'
1635
+ };
1636
+ return `touch-action: ${touchMap[value] || value};`;
1637
+ },
1638
+ 'resize': () => {
1639
+ const resizeMap = {
1640
+ 'none': 'none',
1641
+ 'both': 'both',
1642
+ 'x': 'horizontal',
1643
+ 'y': 'vertical'
1644
+ };
1645
+ return `resize: ${resizeMap[value] || value};`;
1646
+ },
1647
+ 'will-change': () => {
1648
+ const willChangeMap = {
1649
+ 'auto': 'auto',
1650
+ 'scroll': 'scroll-position',
1651
+ 'contents': 'contents',
1652
+ 'transform': 'transform',
1653
+ 'opacity': 'opacity'
1654
+ };
1655
+ return `will-change: ${willChangeMap[value] || value};`;
1656
+ },
1657
+ 'color-scheme': () => {
1658
+ return `color-scheme: ${value};`;
1659
+ },
1660
+ 'field-sizing': () => {
1661
+ return `field-sizing: ${value};`;
1662
+ },
1663
+ 'forced-color': () => {
1664
+ return `forced-color-adjust: ${value};`;
1665
+ },
1666
+
1667
+ // ============================================
1668
+ // BORDER & OUTLINE UTILITIES
1669
+ // ============================================
1670
+ 'border-style': () => {
1671
+ return `border-style: ${value};`;
1672
+ },
1673
+ 'outline': () => {
1674
+ const cssValue = isArbitrary ? value : `var(--c-${value})`;
1675
+ return `outline-color: ${cssValue};`;
1676
+ },
1677
+ 'outline-style': () => {
1678
+ return `outline-style: ${value};`;
1679
+ },
1680
+ 'outline-w': () => {
1681
+ const cssValue = isArbitrary ? value : `${value}px`;
1682
+ return `outline-width: ${cssValue};`;
1683
+ },
1684
+ 'outline-offset': () => {
1685
+ const cssValue = isArbitrary ? value : `${value}px`;
1686
+ return `outline-offset: ${cssValue};`;
1687
+ },
1688
+
1689
+ // ============================================
1690
+ // SVG UTILITIES
1691
+ // ============================================
1692
+ 'stroke': () => {
1693
+ const cssValue = isArbitrary ? value : `var(--c-${value})`;
1694
+ return `stroke: ${cssValue};`;
1695
+ },
1696
+ 'stroke-w': () => {
1697
+ const cssValue = isArbitrary ? value : value;
1698
+ return `stroke-width: ${cssValue};`;
1699
+ },
1700
+ 'fill': () => {
1701
+ if (value === 'none') return 'fill: none;';
1702
+ const cssValue = isArbitrary ? value : `var(--c-${value})`;
1703
+ return `fill: ${cssValue};`;
1704
+ },
1705
+
1706
+ // ============================================
1707
+ // MIX BLEND MODE
1708
+ // ============================================
1709
+ 'mix-blend': () => {
1710
+ return `mix-blend-mode: ${value};`;
1711
+ },
1712
+
1713
+ // ============================================
1714
+ // 3D TRANSFORM UTILITIES
1715
+ // ============================================
1716
+ 'perspective': () => {
1717
+ const perspectiveMap = {
1718
+ 'none': 'none',
1719
+ 'sm': '500px',
1720
+ 'md': '1000px',
1721
+ 'lg': '1500px',
1722
+ 'xl': '2000px'
1723
+ };
1724
+ const cssValue = isArbitrary ? value : (perspectiveMap[value] || value);
1725
+ return `perspective: ${cssValue};`;
1726
+ },
1727
+ 'perspective-origin': () => {
1728
+ const originMap = {
1729
+ 'center': 'center',
1730
+ 'top': 'top',
1731
+ 'top-right': 'top right',
1732
+ 'right': 'right',
1733
+ 'bottom-right': 'bottom right',
1734
+ 'bottom': 'bottom',
1735
+ 'bottom-left': 'bottom left',
1736
+ 'left': 'left',
1737
+ 'top-left': 'top left'
1738
+ };
1739
+ const cssValue = isArbitrary ? value.replace(/_/g, ' ') : (originMap[value] || value);
1740
+ return `perspective-origin: ${cssValue};`;
1741
+ },
1742
+ 'rotate-x': () => {
1743
+ const rotateValue = isArbitrary ? value : `${value}deg`;
1744
+ return `transform: rotateX(${rotateValue});`;
1745
+ },
1746
+ 'rotate-y': () => {
1747
+ const rotateValue = isArbitrary ? value : `${value}deg`;
1748
+ return `transform: rotateY(${rotateValue});`;
1749
+ },
1750
+ 'rotate-z': () => {
1751
+ const rotateValue = isArbitrary ? value : `${value}deg`;
1752
+ return `transform: rotateZ(${rotateValue});`;
1753
+ },
1754
+ 'transform-style': () => {
1755
+ return `transform-style: ${value};`;
1756
+ },
1757
+ 'backface': () => {
1758
+ const backfaceMap = { 'visible': 'visible', 'hidden': 'hidden' };
1759
+ return `backface-visibility: ${backfaceMap[value] || value};`;
1760
+ }
344
1761
  };
345
1762
 
346
1763
  const gen = rules[property];
@@ -413,6 +1830,11 @@
413
1830
  function compileCSS(tokens, config) {
414
1831
  let css = generateCSSVariables(config);
415
1832
 
1833
+ // Add Preflight if enabled (default: true)
1834
+ if (config.preflight !== false) {
1835
+ css += generatePreflight();
1836
+ }
1837
+
416
1838
  const baseRules = [];
417
1839
  const darkRules = [];
418
1840
  const mediaRules = {