@birdapi/velinstyle 0.8.0 → 0.9.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 (313) hide show
  1. package/README.de.md +135 -246
  2. package/README.md +134 -245
  3. package/cli/blueprints/onboarding.html +2 -2
  4. package/cli/cli-manifest.json +97 -0
  5. package/cli/docgen/extract-a11y.js +89 -0
  6. package/cli/docgen/extract-attributes.js +95 -0
  7. package/cli/docgen/extract-cli.js +50 -0
  8. package/cli/docgen/extract-components.js +175 -0
  9. package/cli/docgen/extract-meta.js +32 -0
  10. package/cli/docgen/extract-rules.js +76 -0
  11. package/cli/docgen/extract-tokens.js +79 -0
  12. package/cli/docgen/extract-utilities.js +75 -0
  13. package/cli/docgen/markdown.js +43 -0
  14. package/cli/docs-generate.js +196 -0
  15. package/cli/index.js +121 -5
  16. package/cli/meta.js +97 -0
  17. package/cli/perf-audit.js +174 -0
  18. package/cli/pii-scanner.js +134 -0
  19. package/cli/scanner-rules-data.js +62 -0
  20. package/cli/scanner.js +68 -1
  21. package/cli/search-index.js +163 -0
  22. package/cli/tokens-build.js +21 -1
  23. package/cli/tokens-validate.js +69 -0
  24. package/components/a11y-entry.js +42 -0
  25. package/components/a11y-utils.js +71 -0
  26. package/components/focus-manager.js +45 -8
  27. package/components/index.js +22 -12
  28. package/components/runtime/component-loaders.js +43 -0
  29. package/components/runtime/index.js +77 -0
  30. package/components/runtime-entry.js +10 -0
  31. package/components/sanitize.js +135 -54
  32. package/components/velin-accordion.js +12 -0
  33. package/components/velin-bottom-nav.js +19 -0
  34. package/components/velin-carousel.js +2 -2
  35. package/components/velin-code-block.js +142 -0
  36. package/components/velin-command.js +15 -0
  37. package/components/velin-copy.js +18 -5
  38. package/components/velin-counter.js +3 -0
  39. package/components/velin-dialog.js +9 -1
  40. package/components/velin-email.js +94 -0
  41. package/components/velin-icon.js +65 -22
  42. package/components/velin-lightbox.js +8 -3
  43. package/components/velin-live-dot.js +5 -0
  44. package/components/velin-modal.js +6 -3
  45. package/components/velin-popover.js +34 -2
  46. package/components/velin-reveal.js +7 -65
  47. package/components/velin-scroll-top.js +1 -1
  48. package/components/velin-search.js +267 -0
  49. package/components/velin-secure-field.js +99 -0
  50. package/components/velin-sparkline.js +27 -7
  51. package/components/{velin-stepper-wc.js → velin-stepper.js} +37 -8
  52. package/components/velin-theme-toggle.js +12 -5
  53. package/components/velin-toast.js +4 -0
  54. package/components/{velin-tooltip-wc.js → velin-tooltip.js} +22 -3
  55. package/core/a11y/component-contracts.json +221 -0
  56. package/core/attributes/index.js +6 -0
  57. package/core/attributes/registry.js +268 -0
  58. package/core/highlight/highlight.js +114 -0
  59. package/core/highlight/index.js +29 -0
  60. package/core/highlight/languages/_utils.js +52 -0
  61. package/core/highlight/languages/blade.js +16 -0
  62. package/core/highlight/languages/css.js +26 -0
  63. package/core/highlight/languages/html.js +17 -0
  64. package/core/highlight/languages/js.js +58 -0
  65. package/core/highlight/languages/json.js +14 -0
  66. package/core/highlight/languages/markdown.js +16 -0
  67. package/core/highlight/languages/php.js +39 -0
  68. package/core/highlight/languages/plain.js +7 -0
  69. package/core/highlight/languages/shell.js +33 -0
  70. package/core/highlight/languages/sql.js +20 -0
  71. package/core/highlight/languages/typescript.js +28 -0
  72. package/core/highlight/observe.js +53 -0
  73. package/core/highlight/registry.js +107 -0
  74. package/core/highlight/render.js +35 -0
  75. package/core/highlight/types.js +28 -0
  76. package/core/meta/build.js +293 -0
  77. package/core/meta/index.js +17 -0
  78. package/core/meta/schema.js +49 -0
  79. package/core/motion/effects.js +54 -0
  80. package/core/motion/index.js +76 -0
  81. package/core/motion/scheduler.js +72 -0
  82. package/core/motion/scroll.js +32 -0
  83. package/core/motion/stagger.js +24 -0
  84. package/core/search/docs-url.js +96 -0
  85. package/core/search/engine.js +139 -0
  86. package/core/search/highlight.js +48 -0
  87. package/core/search/index.js +126 -0
  88. package/core/search/providers.js +36 -0
  89. package/core/search/types.js +61 -0
  90. package/core/search/worker-client.js +56 -0
  91. package/core/search/worker.js +20 -0
  92. package/dist/chunks/a11y-utils-IRC7LOPF.js +16 -0
  93. package/dist/chunks/attributes-3BZLI7XF.js +364 -0
  94. package/dist/chunks/attributes-4N5JP4CG.js +364 -0
  95. package/dist/chunks/attributes-5Q2WXGRC.js +374 -0
  96. package/dist/chunks/attributes-AIR7SVLK.js +364 -0
  97. package/dist/chunks/attributes-BGRN5XZO.js +364 -0
  98. package/dist/chunks/attributes-BVSQAYLR.js +364 -0
  99. package/dist/chunks/attributes-CDYFUY7Y.js +364 -0
  100. package/dist/chunks/attributes-JMYJZBPE.js +364 -0
  101. package/dist/chunks/attributes-R5JY3X4O.js +374 -0
  102. package/dist/chunks/attributes-STYCS3O5.js +391 -0
  103. package/dist/chunks/attributes-TNSPQTHX.js +374 -0
  104. package/dist/chunks/attributes-TPANLMLF.js +391 -0
  105. package/dist/chunks/blade-LIQLVKZQ.js +19 -0
  106. package/dist/chunks/browser-MRKYZPEH.js +1149 -0
  107. package/dist/chunks/chunk-2354NEBP.js +109 -0
  108. package/dist/chunks/chunk-2VNA7G7S.js +109 -0
  109. package/dist/chunks/chunk-42VVPW6N.js +132 -0
  110. package/dist/chunks/chunk-7FFAMRFV.js +44 -0
  111. package/dist/chunks/chunk-7MCGPHVC.js +69 -0
  112. package/dist/chunks/chunk-AQLRJSGG.js +109 -0
  113. package/dist/chunks/chunk-EWPSDMQT.js +109 -0
  114. package/dist/chunks/chunk-F7OLHTGX.js +22 -0
  115. package/dist/chunks/chunk-J472ERN2.js +242 -0
  116. package/dist/chunks/chunk-LA7264K4.js +85 -0
  117. package/dist/chunks/chunk-M5CHQVP6.js +61 -0
  118. package/dist/chunks/chunk-MKZP2TBH.js +89 -0
  119. package/dist/chunks/chunk-QTJJ3DPO.js +109 -0
  120. package/dist/chunks/chunk-RDE3QE7Z.js +89 -0
  121. package/dist/chunks/chunk-RSMRR27R.js +109 -0
  122. package/dist/chunks/chunk-RZQVWFHW.js +109 -0
  123. package/dist/chunks/chunk-SRL6EWHP.js +109 -0
  124. package/dist/chunks/chunk-U4XHMZ7D.js +109 -0
  125. package/dist/chunks/chunk-V5YIUA6G.js +109 -0
  126. package/dist/chunks/chunk-XIET2VSZ.js +109 -0
  127. package/dist/chunks/chunk-XYLJ2GCB.js +205 -0
  128. package/dist/chunks/chunk-Z4JYQ2XX.js +51 -0
  129. package/dist/chunks/chunk-ZPSPKUYD.js +109 -0
  130. package/dist/chunks/css-MQ5YU77P.js +28 -0
  131. package/dist/chunks/highlight-GJHHV4KM.js +37 -0
  132. package/dist/chunks/highlight-XTHRKBA3.js +37 -0
  133. package/dist/chunks/html-ZODC4DLQ.js +20 -0
  134. package/dist/chunks/js-MNSNYTJU.js +7 -0
  135. package/dist/chunks/json-VEM2HFH3.js +17 -0
  136. package/dist/chunks/markdown-E7OPGS3S.js +19 -0
  137. package/dist/chunks/php-MLL7T3LT.js +41 -0
  138. package/dist/chunks/plain-LJJDC5TN.js +8 -0
  139. package/dist/chunks/runtime-entry.js +14 -0
  140. package/dist/chunks/shell-QTRK4U4E.js +35 -0
  141. package/dist/chunks/sql-PPWLHGJ2.js +23 -0
  142. package/dist/chunks/typescript-JT3CCYWL.js +30 -0
  143. package/dist/chunks/velin-accordion-FBIPAEXG.js +105 -0
  144. package/dist/chunks/velin-accordion-QAQO7BI7.js +117 -0
  145. package/dist/chunks/velin-announcer-PVTXXCWR.js +33 -0
  146. package/dist/chunks/velin-bottom-nav-2N2TYWOF.js +86 -0
  147. package/dist/chunks/velin-bottom-nav-7GEMPIM6.js +86 -0
  148. package/dist/chunks/velin-bottom-nav-CTU6FFZV.js +101 -0
  149. package/dist/chunks/velin-bottom-nav-N3DFQR66.js +86 -0
  150. package/dist/chunks/velin-carousel-Y5VCOABZ.js +213 -0
  151. package/dist/chunks/velin-carousel-ZTBANFQQ.js +213 -0
  152. package/dist/chunks/velin-code-block-ASUBTAQV.js +119 -0
  153. package/dist/chunks/velin-code-block-CIAURDRJ.js +132 -0
  154. package/dist/chunks/velin-code-block-TSUKPY4C.js +123 -0
  155. package/dist/chunks/velin-code-block-Y6CM726Q.js +119 -0
  156. package/dist/chunks/velin-collapse-5XYBUIID.js +80 -0
  157. package/dist/chunks/velin-combobox-2KDTCQ7N.js +155 -0
  158. package/dist/chunks/velin-combobox-NXS4QB4R.js +155 -0
  159. package/dist/chunks/velin-combobox-UGA56HP3.js +155 -0
  160. package/dist/chunks/velin-command-CKDNO4BW.js +148 -0
  161. package/dist/chunks/velin-command-M7RNHUPR.js +136 -0
  162. package/dist/chunks/velin-command-ONKO2A3J.js +136 -0
  163. package/dist/chunks/velin-command-TMLSRGIU.js +136 -0
  164. package/dist/chunks/velin-copy-G2TZ5YBB.js +81 -0
  165. package/dist/chunks/velin-copy-NYDBOKXT.js +81 -0
  166. package/dist/chunks/velin-copy-T5KDTDXP.js +81 -0
  167. package/dist/chunks/velin-countdown-4ZVDGK4R.js +101 -0
  168. package/dist/chunks/velin-countdown-5XSTN3BH.js +101 -0
  169. package/dist/chunks/velin-countdown-7AIY66CU.js +101 -0
  170. package/dist/chunks/velin-counter-ISCTEAHI.js +118 -0
  171. package/dist/chunks/velin-counter-L5FYJF7A.js +121 -0
  172. package/dist/chunks/velin-dialog-D2GUHSCD.js +144 -0
  173. package/dist/chunks/velin-dialog-ELFOZIXZ.js +152 -0
  174. package/dist/chunks/velin-dialog-GTTZI564.js +147 -0
  175. package/dist/chunks/velin-dialog-IJLFDXAJ.js +144 -0
  176. package/dist/chunks/velin-dialog-TNS3WXMB.js +144 -0
  177. package/dist/chunks/velin-drawer-BE6TYN3H.js +130 -0
  178. package/dist/chunks/velin-drawer-DLL2GLT6.js +130 -0
  179. package/dist/chunks/velin-drawer-MJS6WCF7.js +130 -0
  180. package/dist/chunks/velin-dropdown-PLUIFA5M.js +172 -0
  181. package/dist/chunks/velin-email-N5B5ZYTE.js +90 -0
  182. package/dist/chunks/velin-email-NTM6DG3V.js +90 -0
  183. package/dist/chunks/velin-email-RBX6ZR4S.js +90 -0
  184. package/dist/chunks/velin-haptic-4QQTM3RK.js +50 -0
  185. package/dist/chunks/velin-icon-7M76DOPB.js +164 -0
  186. package/dist/chunks/velin-icon-KZO3IEHG.js +164 -0
  187. package/dist/chunks/velin-icon-WTFPG2DD.js +191 -0
  188. package/dist/chunks/velin-icon-ZTSKUOVN.js +193 -0
  189. package/dist/chunks/velin-lightbox-6E7CAATP.js +149 -0
  190. package/dist/chunks/velin-lightbox-I75U6JF4.js +140 -0
  191. package/dist/chunks/velin-lightbox-QOTB4PRL.js +140 -0
  192. package/dist/chunks/velin-lightbox-UCD6N7HF.js +140 -0
  193. package/dist/chunks/velin-live-dot-RJHX2DGY.js +74 -0
  194. package/dist/chunks/velin-live-dot-XHUZCIDZ.js +67 -0
  195. package/dist/chunks/velin-menubar-I426AED2.js +86 -0
  196. package/dist/chunks/velin-menubar-J66JXRWW.js +86 -0
  197. package/dist/chunks/velin-menubar-SFEXJE56.js +86 -0
  198. package/dist/chunks/velin-modal-2HOBXE6F.js +176 -0
  199. package/dist/chunks/velin-modal-5HYNNNUI.js +176 -0
  200. package/dist/chunks/velin-modal-AEOTZ67O.js +177 -0
  201. package/dist/chunks/velin-modal-GLI2XZZB.js +176 -0
  202. package/dist/chunks/velin-persist-DFPL3QP4.js +110 -0
  203. package/dist/chunks/velin-popover-EXINRIGJ.js +145 -0
  204. package/dist/chunks/velin-popover-HQW6Q2Y6.js +172 -0
  205. package/dist/chunks/velin-popover-OXX7MRZ6.js +145 -0
  206. package/dist/chunks/velin-popover-T72HK3DF.js +151 -0
  207. package/dist/chunks/velin-popover-YKCCROJG.js +145 -0
  208. package/dist/chunks/velin-progress-ring-E4YRLZHH.js +66 -0
  209. package/dist/chunks/velin-rating-6CDBI6DG.js +91 -0
  210. package/dist/chunks/velin-rating-N4DI2XNL.js +91 -0
  211. package/dist/chunks/velin-rating-XRQJV4LO.js +91 -0
  212. package/dist/chunks/velin-scroll-top-F2FCZNYD.js +58 -0
  213. package/dist/chunks/velin-scroll-top-OHYVVHHY.js +58 -0
  214. package/dist/chunks/velin-scrollspy-OKCT4FDV.js +50 -0
  215. package/dist/chunks/velin-search-2XRQFBCS.js +556 -0
  216. package/dist/chunks/velin-search-4YHJWYSS.js +556 -0
  217. package/dist/chunks/velin-search-7B4KJ6TX.js +557 -0
  218. package/dist/chunks/velin-search-LWHY23Q5.js +474 -0
  219. package/dist/chunks/velin-secure-field-6PV7RZDJ.js +95 -0
  220. package/dist/chunks/velin-secure-field-H7FSBUJW.js +95 -0
  221. package/dist/chunks/velin-secure-field-OFNAXCDP.js +95 -0
  222. package/dist/chunks/velin-segmented-control-EKL4E3BL.js +109 -0
  223. package/dist/chunks/velin-segmented-control-GYD5BIXQ.js +109 -0
  224. package/dist/chunks/velin-segmented-control-PQX6LKOJ.js +109 -0
  225. package/dist/chunks/velin-sheet-3OGI4HD7.js +119 -0
  226. package/dist/chunks/velin-sheet-OUK6572T.js +119 -0
  227. package/dist/chunks/velin-sheet-R2Y67X6H.js +119 -0
  228. package/dist/chunks/velin-sparkline-GVEANJVW.js +184 -0
  229. package/dist/chunks/velin-sparkline-KDA3GQAN.js +162 -0
  230. package/dist/chunks/velin-sparkline-XVTFC6GE.js +181 -0
  231. package/dist/chunks/velin-stepper-2ZIHLKGM.js +141 -0
  232. package/dist/chunks/velin-stepper-7ECRUYHD.js +148 -0
  233. package/dist/chunks/velin-stepper-FYEUEWE6.js +141 -0
  234. package/dist/chunks/velin-stepper-X54WGHDG.js +141 -0
  235. package/dist/chunks/velin-stepper-wc-QU3KRVQR.js +133 -0
  236. package/dist/chunks/velin-tabs-5UQ5ZVMV.js +138 -0
  237. package/dist/chunks/velin-theme-toggle-32J2CBNC.js +291 -0
  238. package/dist/chunks/velin-theme-toggle-BNNS7WLV.js +285 -0
  239. package/dist/chunks/velin-theme-toggle-NO7V4TWI.js +285 -0
  240. package/dist/chunks/velin-theme-toggle-QELCJM2Q.js +291 -0
  241. package/dist/chunks/velin-toast-OMMOA2DK.js +109 -0
  242. package/dist/chunks/velin-toast-RCZ4CSUC.js +109 -0
  243. package/dist/chunks/velin-toast-RSF2IHT3.js +113 -0
  244. package/dist/chunks/velin-toast-WEUBTJG6.js +109 -0
  245. package/dist/chunks/velin-tooltip-664IOHZA.js +112 -0
  246. package/dist/chunks/velin-tooltip-BDHGRTQB.js +112 -0
  247. package/dist/chunks/velin-tooltip-HVUOKNVX.js +112 -0
  248. package/dist/chunks/velin-tooltip-wc-LXDVT6DE.js +103 -0
  249. package/dist/chunks/worker-client-R6DBYPFT.js +46 -0
  250. package/dist/llms.test.txt +40 -0
  251. package/dist/llms.txt +40 -0
  252. package/dist/search-index.json +1773 -0
  253. package/dist/search-index.test.json +1773 -0
  254. package/dist/themes/brutalist.min.css +1 -1
  255. package/dist/themes/midnight.min.css +1 -1
  256. package/dist/themes/pastel.min.css +1 -1
  257. package/dist/themes/retro.min.css +1 -1
  258. package/dist/themes/sunset.min.css +1 -1
  259. package/dist/velin-agent.json +684 -0
  260. package/dist/velin-agent.test.json +684 -0
  261. package/dist/velinstyle-components.iife.js +7715 -3515
  262. package/dist/velinstyle-components.js +7087 -2859
  263. package/dist/velinstyle-components.min.js +196 -109
  264. package/dist/velinstyle.css +604 -65
  265. package/dist/velinstyle.d.ts +54 -0
  266. package/dist/velinstyle.min.css +1 -1
  267. package/examples/search-index.schema.json +33 -0
  268. package/package.json +56 -10
  269. package/src/a11y/authentication.css +37 -0
  270. package/src/a11y/consistent-help.css +22 -0
  271. package/src/a11y/dragging-alternatives.css +30 -0
  272. package/src/a11y/focus-appearance.css +20 -0
  273. package/src/a11y/high-contrast-aaa.css +16 -26
  274. package/src/a11y/skip-link.css +3 -1
  275. package/src/a11y/sr-only.css +1 -1
  276. package/src/base/reset.css +0 -36
  277. package/src/base/wc-placeholder.css +102 -0
  278. package/src/components/attributes.css +42 -0
  279. package/src/components/highlight.css +182 -0
  280. package/src/components/input-group.css +1 -2
  281. package/src/components/nav.css +2 -3
  282. package/src/components/search.css +95 -0
  283. package/src/components/stepper.css +2 -4
  284. package/src/components/timeline.css +1 -2
  285. package/src/components/tooltip.css +2 -4
  286. package/src/layout/container.css +5 -5
  287. package/src/layout/grid.css +8 -8
  288. package/src/layout/patterns.css +5 -5
  289. package/src/themes/brutalist.css +2 -11
  290. package/src/themes/corporate.css +0 -9
  291. package/src/themes/earth.css +0 -9
  292. package/src/themes/forest.css +0 -9
  293. package/src/themes/midnight.css +1 -10
  294. package/src/themes/neon.css +0 -9
  295. package/src/themes/nordic.css +0 -9
  296. package/src/themes/ocean.css +0 -9
  297. package/src/themes/pastel.css +1 -10
  298. package/src/themes/retro.css +2 -11
  299. package/src/themes/sharp.css +0 -7
  300. package/src/themes/soft.css +0 -7
  301. package/src/themes/sunset.css +1 -10
  302. package/src/tokens/color.css +45 -46
  303. package/src/tokens/fonts.css +10 -0
  304. package/src/tokens/typography.css +4 -5
  305. package/src/utilities/animation.css +2 -2
  306. package/src/utilities/display.css +3 -3
  307. package/src/utilities/divide.css +2 -6
  308. package/src/utilities/responsive.css +4 -4
  309. package/src/utilities/safe-area.css +1 -1
  310. package/src/utilities/scroll-animation.css +34 -0
  311. package/src/utilities/spacing.css +17 -8
  312. package/src/utilities/text.css +4 -1
  313. package/src/velinstyle.css +9 -0
package/README.md CHANGED
@@ -1,21 +1,26 @@
1
1
  <div align="center">
2
2
 
3
- <picture>
4
- <source media="(prefers-color-scheme: dark)" srcset=".github/assets/readme-banner-dark.svg">
5
- <img src=".github/assets/readme-banner.svg" alt="VelinStyle — accessibility-first CSS and Web Components" width="100%">
6
- </picture>
7
-
8
- <br>
3
+ ```
4
+ ██╗ ██╗███████╗██╗ ██╗███╗ ██╗███████╗████████╗██╗ ██╗██╗ ███████╗
5
+ ██║ ██║██╔════╝██║ ██║████╗ ██║██╔════╝╚══██╔══╝██║ ██║██║ ██╔════╝
6
+ ██║ ██║█████╗ ██║ ██║██╔██╗ ██║███████╗ ██║ ███████║██║ █████╗
7
+ ╚██╗ ██╔╝██╔══╝ ██║ ██║██║╚██╗██║╚════██║ ██║ ██╔══██║██║ ██╔══╝
8
+ ╚████╔╝ ███████╗███████╗██║██║ ╚████║███████║ ██║ ██║ ██║███████╗███████╗
9
+ ╚═══╝ ╚══════╝╚══════╝╚═╝╚═╝ ╚═══╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝
10
+ ```
9
11
 
10
12
  [![License: MIT](https://img.shields.io/badge/License-MIT-2563eb?style=flat-square)](LICENSE)
11
- [![Release](https://img.shields.io/badge/Release-v0.8.0-2563eb?style=flat-square)](CHANGELOG.md)
12
- [![WCAG AA](https://img.shields.io/badge/WCAG-AA-16a34a?style=flat-square)](docs/a11y.html)
13
- [![CSS min](https://img.shields.io/badge/CSS_min-~46KB-15803d?style=flat-square)]()
14
- [![JS min](https://img.shields.io/badge/JS_min-~66KB-15803d?style=flat-square)]()
13
+ [![Release](https://img.shields.io/badge/Release-v0.9.0-2563eb?style=flat-square)](https://github.com/SkyliteDesign/velinstyle/releases/tag/v0.9.0)
15
14
  [![npm version](https://img.shields.io/npm/v/@birdapi/velinstyle?style=flat-square)](https://www.npmjs.com/package/@birdapi/velinstyle)
16
- [![GitHub Pages](https://img.shields.io/badge/docs-GitHub_Pages-2563eb?style=flat-square)](https://skylitedesign.github.io/velinstyle/)
15
+ [![WCAG 2.2 AAA](https://img.shields.io/badge/WCAG_2.2-AAA-16a34a?style=flat-square)](https://velinstyle.info/docs/a11y.html)
16
+ [![GitHub stars](https://img.shields.io/github/stars/SkyliteDesign/velinstyle?style=flat-square)](https://github.com/SkyliteDesign/velinstyle/stargazers)
17
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-2563eb?style=flat-square)](CONTRIBUTING.md)
17
18
 
18
- [Documentation](https://skylitedesign.github.io/velinstyle/) · [npm](https://www.npmjs.com/package/@birdapi/velinstyle) · [Samples](samples/) · [Playground](tools/playground/index.html) · [Theme Builder](tools/theme-builder/index.html) · [Issues](https://github.com/SkyliteDesign/velinstyle/issues)
19
+ ```bash
20
+ npm i @birdapi/velinstyle
21
+ ```
22
+
23
+ **[Website](https://velinstyle.info)** · **[Docs](https://velinstyle.info/docs/)** · **[Demos](https://velinstyle.info/demos/)** · **[npm](https://www.npmjs.com/package/@birdapi/velinstyle)** · **[Star on GitHub](https://github.com/SkyliteDesign/velinstyle)**
19
24
 
20
25
  **English** · **[Deutsch](README.de.md)**
21
26
 
@@ -23,304 +28,190 @@
23
28
 
24
29
  ---
25
30
 
26
- ## Contents
27
-
28
- - [The problem & the fix](#the-problem--the-fix)
29
- - [What you get](#what-you-get)
30
- - [Architecture](#architecture)
31
- - [Quick start](#quick-start)
32
- - [Why VelinStyle?](#why-velinstyle)
33
- - [Demo gallery](#demo-gallery)
34
- - [CLI reference](#cli-reference)
35
- - [Ecosystem](#ecosystem)
36
- - [Join in](#join-in)
37
- - [Browser support](#browser-support)
38
- - [License](#license)
39
-
40
- ---
41
-
42
- ## The problem & the fix
43
-
44
- <table>
45
- <tr>
46
- <td width="50%" valign="top">
47
-
48
- ### The problem
49
-
50
- Teams ship UI under pressure. **Accessibility** and **consistent theming** are often bolted on late—if at all. Heavy bundles, Bootstrap sameness, or Tailwind sprawl frustrate designers and engineers alike.
51
-
52
- </td>
53
- <td width="50%" valign="top">
54
-
55
- ### The VelinStyle answer
56
-
57
- **WCAG AA patterns**, **OKLCH tokens**, **container-aware layout**, and **interactive Web Components** are part of the system—not an afterthought. Readable CSS, optional CLI automation, zero preprocessor lock-in.
58
-
59
- </td>
60
- </tr>
61
- </table>
31
+ **VelinStyle** is the **WCAG 2.2 AAA CSS framework** with native JavaScript runtime and Web Components — CSS utilities, 0.9.0 modules (search, motion, highlight, attributes, meta), and security tooling, with **no external UI framework dependencies** in the core.
62
32
 
63
- ---
33
+ Built for teams who want **readable HTML**, **AAA token defaults** (AA via `data-velin-contrast="aa"`), and **CLI automation** instead of utility sprawl.
64
34
 
65
- ## What you get
66
-
67
- <table>
68
- <thead>
69
- <tr><th></th><th>Capability</th><th>What it means for you</th></tr>
70
- </thead>
71
- <tbody>
72
- <tr><td align="center">♿</td><td><strong>WCAG AA by design</strong></td><td>Focus, ARIA, and keyboard patterns in components and overlays</td></tr>
73
- <tr><td align="center">🎨</td><td><strong>OKLCH + 13 theme presets</strong></td><td>Perceptually uniform colors; dark mode via token swap</td></tr>
74
- <tr><td align="center">📦</td><td><strong>~46 KB CSS + ~66 KB JS (min)</strong></td><td>Lean defaults vs. heavier all-in-one stacks</td></tr>
75
- <tr><td align="center">📐</td><td><strong>Container Queries + utilities</strong></td><td>Components adapt to <em>their</em> container, not only the viewport</td></tr>
76
- <tr><td align="center">🧩</td><td><strong>25 CSS modules · 29 Web Components</strong></td><td>Modals, tabs, drawers, toasts, icons—documented APIs in <a href="docs/css-components.html">CSS</a> &amp; <a href="docs/components.html">WC docs</a></td></tr>
77
- <tr><td align="center">🛠️</td><td><strong>Optional CLI</strong></td><td><code>init</code>, <code>build</code>, <code>icons</code>, <code>scan</code>, <code>prefix</code>, <code>blueprint</code>, <code>scaffold</code>, <code>layout</code>, <code>tokens build</code></td></tr>
78
- <tr><td align="center">🌍</td><td><strong>RTL-ready</strong></td><td>Logical properties and layout-minded defaults · <a href="samples/rtl.html">RTL sample</a></td></tr>
79
- </tbody>
80
- </table>
35
+ > **Dogfooding:** The entire VelinStyle website and documentation runs 100% on VelinStyle — no external scripts or UI frameworks.
81
36
 
82
37
  ---
83
38
 
84
- ## Architecture
85
-
86
- ```mermaid
87
- flowchart LR
88
- tokens[tokens] --> reset[reset]
89
- reset --> base[base]
90
- base --> a11y[a11y]
91
- a11y --> layout[layout]
92
- layout --> components[components]
93
- components --> utilities[utilities]
94
- utilities --> themes[themes]
95
- ```
39
+ ## Features at a glance
96
40
 
97
- Entry: [`src/velinstyle.css`](src/velinstyle.css) · Build output: `dist/` (`npm run build`)
98
-
99
- ```css
100
- @layer tokens, reset, base, a11y, layout, components, utilities, themes;
101
- ```
41
+ - **CSS utilities** — `velin-*` spacing, color, flex, motion, safe-area; cascade layers + OKLCH tokens
42
+ - **35+ components** — semantic BEM classes (`velin-btn`, `velin-card`, `velin-grid`, …)
43
+ - **Motion runtime** — reveal, stagger, scroll-driven animation, rAF scheduler
44
+ - **VelinSearch** fuzzy offline search with highlighting and categories
45
+ - **Syntax highlighting** — lazy in-view highlighting for JS, HTML, CSS, JSON, and more
46
+ - **HTML attributes** — 27 declarative bridges (`velin-modal`, `velin-reveal`, `velin-scroll-top`, `velin-code`, …)
47
+ - **Quality** — 36/36 component a11y contracts, Playwright cross-browser smoke (`npm run test:e2e`), CLS placeholders (`wc-placeholder.css`)
48
+ - **Security tools** — `scan`, PII rules, sanitize API, hardened components
49
+ - **CLI** — init, build, scan, scaffold, tokens, docs generate, perf audit, layout audit
50
+ - **Velin-Meta** — `velin-agent.json`, `llms.txt`, and page-level agent JSON for AI assistants
102
51
 
103
52
  ---
104
53
 
105
- ## Quick start
106
-
107
- ### <span>①</span> Install
54
+ ## Installation
108
55
 
109
56
  ```bash
110
- npm install @birdapi/velinstyle
111
- ```
112
-
113
- ### <span>②</span> Link CSS + components (ES modules)
114
-
115
- ```html
116
- <link rel="stylesheet" href="node_modules/@birdapi/velinstyle/dist/velinstyle.min.css">
117
- <script type="module" src="node_modules/@birdapi/velinstyle/dist/velinstyle-components.min.js"></script>
57
+ npm i @birdapi/velinstyle
118
58
  ```
119
59
 
120
- <details>
121
- <summary><strong>CDN alternative</strong> (skip npm install)</summary>
122
-
123
- ```html
124
- <link rel="stylesheet" href="https://unpkg.com/@birdapi/velinstyle@latest/dist/velinstyle.min.css">
125
- <script type="module" src="https://unpkg.com/@birdapi/velinstyle@latest/dist/velinstyle-components.min.js"></script>
126
- ```
127
-
128
- </details>
60
+ | Path | Use |
61
+ | --- | --- |
62
+ | `@birdapi/velinstyle/css` | Full minified stylesheet |
63
+ | `@birdapi/velinstyle/bundle` | Web Components ESM bundle |
64
+ | `@birdapi/velinstyle/search` | VelinSearch module |
65
+ | `@birdapi/velinstyle/motion` | Motion runtime |
66
+ | `@birdapi/velinstyle/attributes` | HTML attribute bridges |
67
+ | `@birdapi/velinstyle/highlight` | Syntax highlighting |
68
+ | `@birdapi/velinstyle/meta` | Agent metadata API |
129
69
 
130
- ### <span>③</span> Mark up your first screen
70
+ **CDN (pin version):**
131
71
 
132
72
  ```html
133
- <meta name="viewport" content="width=device-width, initial-scale=1">
134
- <div class="velin-container velin-p-6">
135
- <p class="velin-lead velin-text-muted">Hello, VelinStyle.</p>
136
- <button type="button" class="velin-btn velin-btn--primary">Primary action</button>
137
- </div>
73
+ <link rel="stylesheet" href="https://unpkg.com/@birdapi/velinstyle@0.9.0/dist/velinstyle.min.css">
74
+ <script type="module" src="https://unpkg.com/@birdapi/velinstyle@0.9.0/dist/velinstyle-components.min.js"></script>
138
75
  ```
139
76
 
140
- > **Cloning this repo?** `dist/` is not committed. Run `npm install` and `npm run build`, then point HTML at `dist/velinstyle.min.css` and `dist/velinstyle-components.min.js`. Legacy pages without modules: `velinstyle-components.iife.js` — see [docs](docs/index.html).
77
+ After cloning, run `npm install && npm run build` `dist/` is generated, not committed.
141
78
 
142
79
  ---
143
80
 
144
- ## Why VelinStyle?
81
+ ## Quickstart
145
82
 
146
- A **coherent product language**—prefix classes (`velin-`), explicit `@layer` architecture, modern CSS (`@scope`, nesting, `:has()`)—without sacrificing **ship speed**.
147
-
148
- | | Bootstrap | Tailwind | **VelinStyle** |
149
- | --- | :---: | :---: | :---: |
150
- | A11y | ⚠️ Partial | — Not built-in | ✅ **WCAG AA structurally** |
151
- | Color | HEX/RGB | HEX/RGB | ✅ **OKLCH** + tokenized themes |
152
- | Dark mode | ⚠️ Build / manual | `dark:` variants | ✅ **Token swap** (`data-velin-theme`) |
153
- | Layout | Viewport-first | Viewport utilities | ✅ **Container Queries** + media |
154
- | Interactivity | ⚠️ Legacy JS patterns | Bring your own | ✅ **Web Components** |
155
- | Bundle (indicative) | ~230 KB CSS+JS | JIT / varies | ✅ **~46 KB CSS + ~66 KB JS (min)** |
83
+ ```html
84
+ <!DOCTYPE html>
85
+ <html lang="en" data-velin-theme="ocean">
86
+ <head>
87
+ <meta charset="UTF-8">
88
+ <meta name="viewport" content="width=device-width, initial-scale=1">
89
+ <link rel="stylesheet" href="https://unpkg.com/@birdapi/velinstyle@0.9.0/dist/velinstyle.min.css">
90
+ <script type="module" src="https://unpkg.com/@birdapi/velinstyle@0.9.0/dist/velinstyle-components.min.js"></script>
91
+ </head>
92
+ <body class="velin-p-6">
93
+ <button type="button" class="velin-btn velin-btn--primary" velin-reveal="slide-up">Ship it</button>
94
+ <velin-code-block language="html" line-numbers>&lt;p class="velin-text-muted"&gt;Hello VelinStyle&lt;/p&gt;</velin-code-block>
95
+ </body>
96
+ </html>
97
+ ```
156
98
 
157
99
  ---
158
100
 
159
- ## Demo gallery
160
-
161
- | Demo | Page | Demo | Page |
162
- | --- | --- | --- | --- |
163
- | Landing | [samples/landing.html](samples/landing.html) | Dashboard | [samples/dashboard.html](samples/dashboard.html) |
164
- | Login | [samples/login.html](samples/login.html) | Sign up | [samples/signup.html](samples/signup.html) |
165
- | Pricing | [samples/pricing.html](samples/pricing.html) | E-commerce | [samples/ecommerce.html](samples/ecommerce.html) |
166
- | Blog | [samples/blog.html](samples/blog.html) | Portfolio | [samples/portfolio.html](samples/portfolio.html) |
167
- | Chat | [samples/chat.html](samples/chat.html) | Email | [samples/email.html](samples/email.html) |
168
- | Kanban | [samples/kanban.html](samples/kanban.html) | Settings | [samples/settings.html](samples/settings.html) |
169
- | RTL layout | [samples/rtl.html](samples/rtl.html) | A11y patterns | [samples/a11y-patterns.html](samples/a11y-patterns.html) |
101
+ ## Core modules (0.9.0)
170
102
 
171
- | Tool | Page |
103
+ | Export | Description |
172
104
  | --- | --- |
173
- | HTML playground | [tools/playground/index.html](tools/playground/index.html) |
174
- | OKLCH theme builder | [tools/theme-builder/index.html](tools/theme-builder/index.html) |
105
+ | `@birdapi/velinstyle/search` | Fuzzy offline search, providers, optional Web Worker |
106
+ | `@birdapi/velinstyle/motion` | `initMotion`, stagger, smooth scroll, unified `.velin-in-view` |
107
+ | `@birdapi/velinstyle/attributes` | Registry of declarative `velin-*` HTML attribute bridges |
108
+ | `@birdapi/velinstyle/highlight` | `velinSyntax`, lazy language packs, OKLCH token colors |
109
+ | `@birdapi/velinstyle/meta` | `buildAgentBundle`, page meta MIME `application/vnd.velinstyle.meta+json` |
175
110
 
176
111
  ---
177
112
 
178
- ## CLI reference
179
-
180
- All commands: `npx velinstyle <command>` · `npx velinstyle --help`
181
-
182
- <details>
183
- <summary><strong>Project &amp; build</strong> — <code>init</code>, <code>build</code>, <code>themes</code>, <code>add</code></summary>
184
-
185
- - **`npx velinstyle init`** — creates `velinstyle.config.js` (layer selection, theme, scan options).
186
- - **`npx velinstyle build`** — custom CSS bundle from selected layers (`--output` / `-o`, `--minify`).
187
- - **`npx velinstyle themes`** — lists 13 theme presets.
188
- - **`npx velinstyle add &lt;component&gt;`** — copies a single component CSS file into your project.
189
-
190
- </details>
191
-
192
- <details>
193
- <summary><strong>Icons</strong> — multi-provider sprite workflow</summary>
194
-
195
- - **`npx velinstyle icons list`** — Lucide, Heroicons, Bootstrap Icons, Material Symbols, Font Awesome, Tabler.
196
- - **`npx velinstyle icons add lucide --icons menu,search,check`**
197
- - **`npx velinstyle icons add heroicons --icons arrow-left --variant outline`**
198
- - **`npx velinstyle icons build`** — rebuilds sprite (from a VelinStyle clone: writes `icons/svg/` and rebuilds).
199
-
200
- </details>
113
+ ## Web Components
201
114
 
202
- <details>
203
- <summary><strong>scan</strong> — security, a11y &amp; CSS lint</summary>
115
+ **36 canonical** custom elements (38 lazy-loader entries including legacy `velin-tooltip-wc` and `velin-stepper-wc`) — use plain CSS when you do not need behavior. `src/base/wc-placeholder.css` reduces layout shift before elements upgrade.
204
116
 
205
- - **`npx velinstyle scan [path]`** HTML, CSS, JS; **`--format json`** for CI.
206
- - **`--severity`** — filter minimum level: `error` | `warning` | `info`.
207
- - **`--fix`** — safe auto-fixes only; **`--fix-dry-run`** lists files without writing.
208
- - **`--fix-lang`** — BCP 47 for setting `lang` on `<html>` (default `en`).
117
+ Examples: `velin-modal`, `velin-search`, `velin-code-block`, `velin-drawer`, `velin-stepper`, `velin-tooltip`, `velin-toast`, `velin-persist`.
209
118
 
210
- **Auto-fixes (examples):** `rel="noopener noreferrer"` on risky `target="_blank"`; `lang` on `<html>`; skip link when `id="main"` exists; raw `z-index` → `--velin-z-*`.
119
+ - [Component documentation](https://velinstyle.info/docs/components/buttons.html)
120
+ - [Generated Web Component API](https://velinstyle.info/docs/generated/components/README.md)
211
121
 
212
- **Not auto-fixed:** `javascript:` URLs, `eval`, raw `innerHTML`, inline event handlers — fix in source.
213
-
214
- **Trusted Types / XSS:** the scanner does not replace CSP policies. Web Components use `escapeHTML()` / `sanitizeURL()`; see [docs/security.html](docs/security.html).
215
-
216
- </details>
217
-
218
- <details>
219
- <summary><strong>prefix</strong> — class codemod &amp; JSON maps</summary>
220
-
221
- - **`npx velinstyle prefix &lt;folder&gt;`** — dry-run by default; **`--write`** applies changes.
222
- - **`--bootstrap-display`** — maps Bootstrap `d-*` to Velin display classes.
223
- - **`velinstyle-prefix-map.json`** in the target folder or **`--map file.json`** — explicit token → class mappings (overrides catalog and Bootstrap aliases). Sample: [examples/velinstyle-prefix-map.sample.json](examples/velinstyle-prefix-map.sample.json).
224
-
225
- </details>
226
-
227
- <details>
228
- <summary><strong>scaffold</strong> — prompt → HTML (0.8.0)</summary>
229
-
230
- - **`npx velinstyle scaffold list-intents`**
231
- - **`npx velinstyle scaffold "Navbar with search" -o nav.html`**
232
- - **`npx velinstyle scaffold "…" --json`** — for agents/CI
122
+ ---
233
123
 
234
- See [docs/guides/prompt-scaffolding.html](docs/guides/prompt-scaffolding.html).
124
+ ## CLI
235
125
 
236
- </details>
126
+ | Command | Purpose |
127
+ | --- | --- |
128
+ | `npx velinstyle init` | Create `velinstyle.config.js` in your project |
129
+ | `npx velinstyle scan` | Security, accessibility, CSS, and PII checks |
130
+ | `npx velinstyle search index` | Build `dist/search-index.json` for offline doc search |
131
+ | `npx velinstyle tokens build` | Compile design tokens JSON to CSS |
132
+ | `npx velinstyle meta` | Generate `velin-agent.json` and `llms.txt` |
237
133
 
238
- <details>
239
- <summary><strong>layout</strong> — responsive audit (0.8.0)</summary>
134
+ Also: `npx velinstyle docs generate` — Markdown reference under `docs/generated/`.
240
135
 
241
- - **`npx velinstyle layout audit [path]`**
242
- - **`npx velinstyle layout suggest [path]`**
243
- - **`npx velinstyle layout fix [path] --write`**
136
+ ---
244
137
 
245
- See [docs/guides/responsive-layout.html](docs/guides/responsive-layout.html).
138
+ ## Security
246
139
 
247
- </details>
140
+ VelinStyle ships **first-class security tooling**, not an afterthought:
248
141
 
249
- <details>
250
- <summary><strong>blueprint</strong>22 HTML snippets</summary>
142
+ - **`velinstyle scan`** — markup and a11y rules; PII scanner (`--only pii`, `--fix`)
143
+ - **`@birdapi/velinstyle/sanitize`** URL and text sanitization helpers
144
+ - **`<velin-secure-field>`** — no plaintext secrets in the DOM; hardened search/copy URLs
251
145
 
252
- - **`npx velinstyle blueprint list`**
253
- - **`npx velinstyle blueprint &lt;name&gt; -o snippet.html`**
146
+ [Security documentation](https://velinstyle.info/docs/extend/security.html)
254
147
 
255
- Ids: `modal`, `form-login`, `layout-dashboard`, `navbar-header`, `hero-section`, `card-grid`, `table-responsive`, `alert-stack`, `breadcrumb-bar`, `footer-simple`, `form-contact`, `pagination-bar`, `search-field`, `sidebar-layout`.
148
+ ---
256
149
 
257
- </details>
150
+ ## Velin-Meta
258
151
 
259
- <details>
260
- <summary><strong>tokens build</strong> — design tokens → CSS</summary>
152
+ Machine-readable context for **Cursor, Copilot, and custom agents**:
261
153
 
262
- ```bash
263
- npx velinstyle tokens build --input examples/tokens.sample.json -o tokens-out.css
264
- ```
154
+ - **Global bundle** — `dist/velin-agent.json` + `dist/llms.txt` via `velinstyle meta`
155
+ - **Page-level meta** `<script type="application/vnd.velinstyle.meta+json" id="velin-meta">`
156
+ - **CLI** — `velinstyle meta page my.html --write`
265
157
 
266
- </details>
158
+ [Velin-Meta guide](https://velinstyle.info/docs/guides/velin-meta.html)
267
159
 
268
160
  ---
269
161
 
270
- ## Ecosystem
162
+ ## Docs & website
271
163
 
272
- <table>
273
- <tr>
274
- <td width="50%" valign="top">
164
+ - [velinstyle.info](https://velinstyle.info) — product site and demos
165
+ - [Guides](https://velinstyle.info/docs/guides/index.html) · [Feature scope](https://velinstyle.info/docs/guides/feature-scope.html)
166
+ - [API reference](https://velinstyle.info/docs/guides/api-reference.html) — generated from source
167
+ - [Generated Markdown](https://velinstyle.info/docs/generated/index.html) — components, tokens, utilities, CLI, rules
275
168
 
276
- **Starters &amp; packages**
169
+ ---
277
170
 
278
- - [templates/vite-velinstyle](templates/vite-velinstyle) — Vite + 3 pages + theme toggle
279
- - [@velinstyle/react](packages/react) — experimental thin React wrappers
171
+ ## Changelog
280
172
 
281
- **Docs**
173
+ See [CHANGELOG.md](CHANGELOG.md) for releases, breaking changes, and migration notes.
282
174
 
283
- - [Getting started](docs/getting-started.html) · [Migration](docs/migration.html)
284
- - [A11y patterns](docs/a11y-patterns/index.html) · [Security](docs/security.html)
175
+ ---
285
176
 
286
- </td>
287
- <td width="50%" valign="top">
177
+ ## Comparison
288
178
 
289
- **Development (this repo)**
179
+ | | Bootstrap | Tailwind | Shoelace | **VelinStyle** |
180
+ | --- | :---: | :---: | :---: | :---: |
181
+ | HTML readability | Medium | Low | Medium | **High** |
182
+ | Class predictability | Medium | Low | Medium | **`velin-btn--primary`** |
183
+ | Utility sprawl | Low | **High** | Low | **Controlled** |
184
+ | Override story | Hard | Config file | Shadow DOM | **CSS layers + tokens** |
185
+ | Accessibility | Partial | DIY | Good WC | **WCAG 2.2 AAA tokens** |
186
+ | Dark mode | Manual | `dark:` everywhere | Theme attr | **Token swap** |
187
+ | App chrome | Legacy JS | BYO | WC only | **CSS + optional WCs** |
188
+ | Ship speed | Fast | Fast (with build) | Fast | **CDN, no build required** |
189
+ | Runtime modules | — | — | — | **Search, motion, meta, …** |
290
190
 
291
- ```bash
292
- npm install
293
- npm run dev # serve on :3000
294
- npm run build
295
- npm test
296
- npm run test:a11y
297
- ```
191
+ ---
298
192
 
299
- **Themes (13):** `brutalist`, `corporate`, `earth`, `forest`, `midnight`, `neon`, `nordic`, `ocean`, `pastel`, `retro`, `sharp`, `soft`, `sunset` — see [docs/themes.html](docs/themes.html).
193
+ ## Live demos
300
194
 
301
- </td>
302
- </tr>
303
- </table>
195
+ Full application pages on [velinstyle.info/demos/](https://velinstyle.info/demos/) — [Crypto](https://velinstyle.info/demos/showcase-crypto.html) · [E-Commerce](https://velinstyle.info/demos/showcase-ecommerce.html) · [Dashboard](https://velinstyle.info/demos/showcase-dashboard.html) · [All demos](https://velinstyle.info/demos/) · [Fork showcase-demos](https://github.com/SkyliteDesign/velinstyle/tree/main/showcase-demos)
304
196
 
305
- <!-- Maintainers: add .github/social-preview.png (1280×640) in repo Settings → Social preview -->
197
+ <p align="center">
198
+ <a href="https://velinstyle.info/demos/showcase-crypto.html">
199
+ <img src=".github/assets/readme/hero-demo.webp" alt="VelinStyle crypto dashboard demo" width="720">
200
+ </a>
201
+ </p>
306
202
 
307
203
  ---
308
204
 
309
- ## Join in
310
-
311
- If VelinStyle saves you time or raises the bar for inclusive UI:
312
-
313
- 1. **Star the repo** so others discover it.
314
- 2. **Open an issue** with feedback, edge cases, or ideas.
315
- 3. **Open a PR** following [CONTRIBUTING.md](CONTRIBUTING.md).
205
+ ## Contributing
316
206
 
317
- Maintainers: [RELEASING.md](RELEASING.md) · [SECURITY.md](SECURITY.md)
207
+ PRs welcome.
318
208
 
319
- ---
320
-
321
- ## Browser support
209
+ 1. Fork the repo
210
+ 2. `npm install && npm run build`
211
+ 3. Make your change · run `npm test`, `npm run test:a11y`, and `npm run test:e2e` (after `npm run build`)
212
+ 4. Open a pull request
322
213
 
323
- VelinStyle is **mobile-first**. Use a **current evergreen browser** (recent Safari on iOS, Chrome/Firefox on Android and desktop). OKLCH, Container Queries, `@layer`, and Web Components need modern engines. Include the viewport `meta` tag. Older in-app WebViews may mis-render colors or layout.
214
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for code style and review process.
324
215
 
325
216
  ---
326
217
 
@@ -328,8 +219,6 @@ VelinStyle is **mobile-first**. Use a **current evergreen browser** (recent Safa
328
219
 
329
220
  [MIT](LICENSE) — Copyright © 2026 VelinStyle
330
221
 
331
- ---
332
-
333
222
  <div align="center">
334
223
 
335
224
  Made with care for the web by [SkyliteDesign](https://github.com/SkyliteDesign)
@@ -1,4 +1,4 @@
1
- <velin-stepper-wc id="onboard" labels="Welcome,Profile,Done" active="0">
1
+ <velin-stepper id="onboard" labels="Welcome,Profile,Done" active="0">
2
2
  <section class="velin-p-6">
3
3
  <h2 class="velin-text-xl velin-mbe-2">Welcome</h2>
4
4
  <p class="velin-mbe-4">Set up your workspace in a few steps.</p>
@@ -13,7 +13,7 @@
13
13
  <h2 class="velin-text-xl velin-mbe-2">Done</h2>
14
14
  <p>You are ready to go.</p>
15
15
  </section>
16
- </velin-stepper-wc>
16
+ </velin-stepper>
17
17
  <script type="module">
18
18
  import '../../dist/velinstyle-components.min.js';
19
19
  const stepper = document.getElementById('onboard');
@@ -0,0 +1,97 @@
1
+ {
2
+ "version": "0.9.0",
3
+ "commands": [
4
+ {
5
+ "name": "init",
6
+ "summary": "Create velinstyle.config.js",
7
+ "flags": [],
8
+ "example": "velinstyle init"
9
+ },
10
+ {
11
+ "name": "build",
12
+ "summary": "Build custom CSS with selected layers from config",
13
+ "flags": [],
14
+ "example": "velinstyle build"
15
+ },
16
+ {
17
+ "name": "themes",
18
+ "summary": "List available built-in themes",
19
+ "flags": [],
20
+ "example": "velinstyle themes"
21
+ },
22
+ {
23
+ "name": "add",
24
+ "summary": "Add a single component CSS file to your project",
25
+ "flags": [],
26
+ "example": "velinstyle add button"
27
+ },
28
+ {
29
+ "name": "icons",
30
+ "summary": "Manage icon providers (list, add, remove, build)",
31
+ "flags": ["--icons", "--variant"],
32
+ "subcommands": ["list", "add", "remove", "build"],
33
+ "example": "velinstyle icons add lucide --icons menu,search"
34
+ },
35
+ {
36
+ "name": "scan",
37
+ "summary": "Security, accessibility, CSS, and PII scanner",
38
+ "flags": ["--format", "--severity", "--only", "--fix", "--fix-dry-run", "--fix-lang"],
39
+ "example": "velinstyle scan . --only pii --fix-dry-run"
40
+ },
41
+ {
42
+ "name": "prefix",
43
+ "summary": "Add missing velin- prefix to classes (dry-run; use --write)",
44
+ "flags": ["--write", "--map", "--bootstrap-display"],
45
+ "example": "velinstyle prefix src/ --write"
46
+ },
47
+ {
48
+ "name": "blueprint",
49
+ "summary": "Print HTML blueprint snippets",
50
+ "flags": ["--output", "-o"],
51
+ "subcommands": ["list"],
52
+ "example": "velinstyle blueprint modal -o snippet.html"
53
+ },
54
+ {
55
+ "name": "scaffold",
56
+ "summary": "Generate layout HTML from natural language prompt",
57
+ "flags": ["--output", "-o", "--json"],
58
+ "subcommands": ["list-intents"],
59
+ "example": "velinstyle scaffold \"dashboard with sidebar\""
60
+ },
61
+ {
62
+ "name": "layout",
63
+ "summary": "Responsive layout audit (flex, grid, viewport)",
64
+ "flags": ["--json", "--write", "--dry-run"],
65
+ "subcommands": ["audit", "suggest", "fix"],
66
+ "example": "velinstyle layout suggest index.html"
67
+ },
68
+ {
69
+ "name": "perf",
70
+ "summary": "Performance audit for images and scripts",
71
+ "flags": ["--json", "--write", "--dry-run"],
72
+ "subcommands": ["audit", "suggest", "fix"],
73
+ "example": "velinstyle perf audit samples/"
74
+ },
75
+ {
76
+ "name": "tokens",
77
+ "summary": "Build or validate design tokens JSON",
78
+ "flags": ["--input", "--output", "-o"],
79
+ "subcommands": ["build", "validate"],
80
+ "example": "velinstyle tokens validate --input examples/tokens.full.json"
81
+ },
82
+ {
83
+ "name": "docs",
84
+ "summary": "Generate developer reference Markdown",
85
+ "flags": ["--scope", "--out"],
86
+ "subcommands": ["generate"],
87
+ "example": "velinstyle docs generate --scope all"
88
+ },
89
+ {
90
+ "name": "meta",
91
+ "summary": "Build Velin-Meta agent bundle (velin-agent.json, llms.txt)",
92
+ "flags": ["--out", "--llms-out", "--base-url", "--no-llms"],
93
+ "subcommands": ["page"],
94
+ "example": "velinstyle meta"
95
+ }
96
+ ]
97
+ }