@birdapi/velinstyle 1.0.0 → 1.2.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 (321) hide show
  1. package/README.de.md +87 -158
  2. package/README.md +188 -115
  3. package/cli/blueprint.js +98 -5
  4. package/cli/blueprints/app-chrome.html +18 -0
  5. package/cli/blueprints/benefits-grid.html +9 -0
  6. package/cli/blueprints/bottom-nav-mobile.html +2 -1
  7. package/cli/blueprints/cookie-consent.html +1 -1
  8. package/cli/blueprints/cta-band.html +6 -0
  9. package/cli/blueprints/faq-section.html +18 -0
  10. package/cli/blueprints/filter-bar.html +4 -4
  11. package/cli/blueprints/form-contact.html +6 -5
  12. package/cli/blueprints/hero-section.html +3 -3
  13. package/cli/blueprints/notification-center.html +1 -1
  14. package/cli/blueprints/onboarding.html +2 -1
  15. package/cli/blueprints/ops-console.html +29 -0
  16. package/cli/blueprints/pricing-band.html +37 -0
  17. package/cli/blueprints/process-steps.html +10 -0
  18. package/cli/blueprints/services-grid.html +9 -0
  19. package/cli/blueprints/settings-panel.html +8 -6
  20. package/cli/blueprints/split-hero.html +25 -0
  21. package/cli/blueprints/testimonials.html +8 -0
  22. package/cli/blueprints/trust-bar.html +10 -0
  23. package/cli/cli-manifest.json +81 -17
  24. package/cli/contrast-utils.js +97 -0
  25. package/cli/create.js +370 -0
  26. package/cli/docgen/extract-a11y.js +4 -2
  27. package/cli/docgen/extract-attributes.js +126 -10
  28. package/cli/docgen/extract-cli.js +3 -2
  29. package/cli/docgen/extract-components.js +61 -2
  30. package/cli/docgen/extract-utilities.js +10 -10
  31. package/cli/doctor.js +119 -0
  32. package/cli/index.js +535 -46
  33. package/cli/meta.js +84 -1
  34. package/cli/perf-audit.js +15 -2
  35. package/cli/prompt-engine.js +243 -0
  36. package/cli/review.js +268 -0
  37. package/cli/scaffold.js +119 -4
  38. package/cli/scanner-rules-data.js +7 -0
  39. package/cli/scanner.js +357 -4
  40. package/cli/serve.js +81 -0
  41. package/cli/skills.js +223 -0
  42. package/cli/wc-api.js +89 -0
  43. package/cli/workflow.js +42 -0
  44. package/components/index.js +4 -0
  45. package/components/runtime/component-loaders.js +4 -0
  46. package/components/velin-accordion.js +62 -13
  47. package/components/velin-bottom-nav.js +10 -0
  48. package/components/velin-calendar.js +212 -0
  49. package/components/velin-command.js +18 -2
  50. package/components/velin-data-table.js +438 -0
  51. package/components/velin-dialog.js +4 -1
  52. package/components/velin-drawer.js +2 -4
  53. package/components/velin-file-dropzone.js +162 -0
  54. package/components/velin-form-summary.js +348 -0
  55. package/components/velin-icon.js +22 -1
  56. package/components/velin-lightbox.js +5 -3
  57. package/components/velin-modal.js +2 -4
  58. package/components/velin-search.js +1 -1
  59. package/components/velin-sheet.js +2 -4
  60. package/core/a11y/component-contracts.json +35 -1
  61. package/core/highlight/languages/go.js +28 -0
  62. package/core/highlight/languages/python.js +29 -0
  63. package/core/highlight/languages/rust.js +32 -0
  64. package/core/highlight/languages/yaml.js +23 -0
  65. package/core/highlight/registry.js +13 -2
  66. package/core/meta/build.js +126 -6
  67. package/core/meta/design-constraints/contact.json +9 -0
  68. package/core/meta/design-constraints/faq.json +9 -0
  69. package/core/meta/design-constraints/hero.json +13 -0
  70. package/core/meta/knowledge/components.json +622 -0
  71. package/core/meta/knowledge/tokens.json +282 -0
  72. package/core/meta/pages/registry.json +294 -0
  73. package/core/meta/schema.js +3 -1
  74. package/core/meta/sections/registry.json +185 -0
  75. package/dist/chunks/{attributes-TPANLMLF.js → attributes-A423NX5J.js} +3 -3
  76. package/dist/chunks/{attributes-ADOKLKA7.js → attributes-F6UPIEVP.js} +2 -2
  77. package/dist/chunks/{attributes-STYCS3O5.js → attributes-GLYXGGAL.js} +3 -3
  78. package/dist/chunks/{attributes-5Q2WXGRC.js → attributes-UFTYOSAU.js} +20 -3
  79. package/dist/chunks/attributes-XGLXLR2T.js +391 -0
  80. package/dist/chunks/attributes-YF4NI2QS.js +391 -0
  81. package/dist/chunks/browser-AUABBYUK.js +1544 -0
  82. package/dist/chunks/{chunk-SRL6EWHP.js → chunk-2LSKX57P.js} +13 -11
  83. package/dist/chunks/{chunk-RSMRR27R.js → chunk-2TGCVDUL.js} +11 -9
  84. package/dist/chunks/{chunk-XIET2VSZ.js → chunk-5JWGUAPC.js} +17 -13
  85. package/dist/chunks/chunk-7YSO2OQ2.js +113 -0
  86. package/dist/chunks/{chunk-IEHKRARD.js → chunk-BHR3ZG6U.js} +10 -8
  87. package/dist/chunks/{chunk-J472ERN2.js → chunk-ERF5YVP4.js} +15 -4
  88. package/dist/chunks/{chunk-XYLJ2GCB.js → chunk-JMSIHEYX.js} +55 -7
  89. package/dist/chunks/{chunk-MKZP2TBH.js → chunk-L7ZGUU4D.js} +2 -2
  90. package/dist/chunks/chunk-TUGIPKW5.js +113 -0
  91. package/dist/chunks/go-HZ6XTFCK.js +31 -0
  92. package/dist/chunks/{highlight-GJHHV4KM.js → highlight-IBDX4XWS.js} +1 -1
  93. package/dist/chunks/{highlight-XTHRKBA3.js → highlight-M2ELQNYK.js} +1 -1
  94. package/dist/chunks/python-BMPKDKNO.js +32 -0
  95. package/dist/chunks/runtime-entry.js +1 -1
  96. package/dist/chunks/rust-2BWKI2MN.js +35 -0
  97. package/dist/chunks/{velin-accordion-FBIPAEXG.js → velin-accordion-WSY6BMLA.js} +64 -10
  98. package/dist/chunks/{velin-bottom-nav-7GEMPIM6.js → velin-bottom-nav-5RVRNGIP.js} +25 -0
  99. package/dist/chunks/{velin-bottom-nav-2N2TYWOF.js → velin-bottom-nav-N5F4UO2I.js} +26 -1
  100. package/dist/chunks/velin-calendar-OFE6THUD.js +210 -0
  101. package/dist/chunks/velin-calendar-PGVNJTXK.js +217 -0
  102. package/dist/chunks/velin-calendar-XC7JRDSH.js +217 -0
  103. package/dist/chunks/{velin-code-block-CIAURDRJ.js → velin-code-block-ITCLIC6T.js} +1 -1
  104. package/dist/chunks/{velin-code-block-TSUKPY4C.js → velin-code-block-ZGWG7JI5.js} +12 -3
  105. package/dist/chunks/{velin-combobox-NXS4QB4R.js → velin-combobox-56V2ZWT5.js} +1 -1
  106. package/dist/chunks/{velin-command-ONKO2A3J.js → velin-command-2HO2EKR6.js} +29 -2
  107. package/dist/chunks/{velin-command-TMLSRGIU.js → velin-command-ZJSLPK7B.js} +30 -3
  108. package/dist/chunks/{velin-copy-NYDBOKXT.js → velin-copy-XDQSV2XU.js} +1 -1
  109. package/dist/chunks/{velin-countdown-4ZVDGK4R.js → velin-countdown-V4Z5MA63.js} +1 -1
  110. package/dist/chunks/velin-data-table-KK7IDGTP.js +302 -0
  111. package/dist/chunks/velin-data-table-UVR42UUM.js +372 -0
  112. package/dist/chunks/{velin-dialog-GTTZI564.js → velin-dialog-3YK2RPRV.js} +9 -2
  113. package/dist/chunks/{velin-dialog-ELFOZIXZ.js → velin-dialog-S24KAP4S.js} +3 -1
  114. package/dist/chunks/{velin-drawer-BE6TYN3H.js → velin-drawer-5PNU624J.js} +2 -4
  115. package/dist/chunks/{velin-drawer-DLL2GLT6.js → velin-drawer-CCM6S25D.js} +3 -5
  116. package/dist/chunks/{velin-email-RBX6ZR4S.js → velin-email-TNFONXPW.js} +1 -1
  117. package/dist/chunks/velin-file-dropzone-QRGF2JNA.js +154 -0
  118. package/dist/chunks/velin-file-dropzone-XIZMJ3NB.js +154 -0
  119. package/dist/chunks/velin-form-summary-XRQ7COQH.js +273 -0
  120. package/dist/chunks/{velin-icon-7M76DOPB.js → velin-icon-A6NCXGUK.js} +59 -17
  121. package/dist/chunks/{velin-icon-ZTSKUOVN.js → velin-icon-EC4B5XCM.js} +18 -5
  122. package/dist/chunks/{velin-lightbox-6E7CAATP.js → velin-lightbox-FFK4TUUP.js} +7 -6
  123. package/dist/chunks/{velin-lightbox-I75U6JF4.js → velin-lightbox-P725FLTY.js} +15 -5
  124. package/dist/chunks/{velin-menubar-J66JXRWW.js → velin-menubar-6I2LM5HL.js} +1 -1
  125. package/dist/chunks/{velin-modal-5HYNNNUI.js → velin-modal-ICTMGRSU.js} +7 -8
  126. package/dist/chunks/{velin-modal-AEOTZ67O.js → velin-modal-JBNODH7D.js} +2 -4
  127. package/dist/chunks/{velin-popover-T72HK3DF.js → velin-popover-WZG2GHBL.js} +25 -4
  128. package/dist/chunks/{velin-rating-N4DI2XNL.js → velin-rating-QBBYRRBU.js} +1 -1
  129. package/dist/chunks/{velin-search-7B4KJ6TX.js → velin-search-B3L6J2RP.js} +2 -2
  130. package/dist/chunks/{velin-search-2XRQFBCS.js → velin-search-L3UG6NDQ.js} +5 -4
  131. package/dist/chunks/{velin-secure-field-6PV7RZDJ.js → velin-secure-field-DGYMP7OK.js} +1 -1
  132. package/dist/chunks/{velin-segmented-control-GYD5BIXQ.js → velin-segmented-control-P74GJPAR.js} +1 -1
  133. package/dist/chunks/{velin-sheet-R2Y67X6H.js → velin-sheet-M5GZZD7G.js} +2 -4
  134. package/dist/chunks/{velin-sheet-OUK6572T.js → velin-sheet-X7RXIWKV.js} +3 -5
  135. package/dist/chunks/{velin-stepper-X54WGHDG.js → velin-stepper-4YQJUHPC.js} +12 -5
  136. package/dist/chunks/{velin-toast-OMMOA2DK.js → velin-toast-UG5LWTG2.js} +5 -1
  137. package/dist/chunks/{velin-tooltip-BDHGRTQB.js → velin-tooltip-ZDH5SDLU.js} +1 -1
  138. package/dist/chunks/yaml-O67LEQYT.js +26 -0
  139. package/dist/llms.txt +29 -7
  140. package/dist/search-index.json +182 -10
  141. package/dist/velin-agent.json +3997 -26
  142. package/dist/velinstyle-components.iife.js +1952 -287
  143. package/dist/velinstyle-components.js +1956 -287
  144. package/dist/velinstyle-components.min.js +267 -119
  145. package/dist/velinstyle.css +381 -67
  146. package/dist/velinstyle.d.ts +4 -0
  147. package/dist/velinstyle.min.css +1 -1
  148. package/package.json +26 -6
  149. package/packages/skill-engine/README.md +24 -0
  150. package/packages/skill-engine/package.json +7 -0
  151. package/packages/skill-engine/src/catalog.js +29 -0
  152. package/packages/skill-engine/src/index.js +5 -0
  153. package/packages/skill-engine/src/install.js +69 -0
  154. package/packages/skill-engine/src/registry.js +27 -0
  155. package/packages/skill-engine/src/resolve.js +68 -0
  156. package/packages/skill-engine/src/validate.js +40 -0
  157. package/packages/velinstyle-skills/README.md +6 -0
  158. package/packages/velinstyle-skills/adapter.json +8 -0
  159. package/packages/velinstyle-skills/bundles/landing-starter.bundle.yaml +12 -0
  160. package/packages/velinstyle-skills/bundles/review-suite.bundle.yaml +11 -0
  161. package/packages/velinstyle-skills/catalog.json +1004 -0
  162. package/packages/velinstyle-skills/graphs/component-ship.graph.yaml +14 -0
  163. package/packages/velinstyle-skills/graphs/landingpage.graph.yaml +21 -0
  164. package/packages/velinstyle-skills/graphs/release-gate.graph.yaml +15 -0
  165. package/packages/velinstyle-skills/index.js +22 -0
  166. package/packages/velinstyle-skills/package.json +7 -0
  167. package/packages/velinstyle-skills/packs/accessibility.pack.yaml +9 -0
  168. package/packages/velinstyle-skills/packs/design.pack.yaml +10 -0
  169. package/packages/velinstyle-skills/packs/documentation.pack.yaml +8 -0
  170. package/packages/velinstyle-skills/packs/enterprise.pack.yaml +10 -0
  171. package/packages/velinstyle-skills/packs/frontend.pack.yaml +10 -0
  172. package/packages/velinstyle-skills/packs/review.pack.yaml +9 -0
  173. package/packages/velinstyle-skills/projects/admin-panel.project.yaml +12 -0
  174. package/packages/velinstyle-skills/projects/blog.project.yaml +11 -0
  175. package/packages/velinstyle-skills/projects/documentation-portal.project.yaml +13 -0
  176. package/packages/velinstyle-skills/projects/ecommerce-shop.project.yaml +12 -0
  177. package/packages/velinstyle-skills/projects/landing-page.project.yaml +12 -0
  178. package/packages/velinstyle-skills/projects/laravel-dashboard.project.yaml +12 -0
  179. package/packages/velinstyle-skills/projects/marketing-website.project.yaml +14 -0
  180. package/packages/velinstyle-skills/projects/portfolio.project.yaml +12 -0
  181. package/packages/velinstyle-skills/registry.json +142 -0
  182. package/packages/velinstyle-skills/scripts/generate-assets.mjs +163 -0
  183. package/packages/velinstyle-skills/skills/velin-a11y-focus-keyboard/SKILL.md +57 -0
  184. package/packages/velinstyle-skills/skills/velin-a11y-page-checklist/SKILL.md +57 -0
  185. package/packages/velinstyle-skills/skills/velin-a11y-scan-fix/SKILL.md +57 -0
  186. package/packages/velinstyle-skills/skills/velin-ai-agent-briefing/SKILL.md +57 -0
  187. package/packages/velinstyle-skills/skills/velin-ai-plan-scaffold-review/SKILL.md +57 -0
  188. package/packages/velinstyle-skills/skills/velin-ai-skill-authoring/SKILL.md +57 -0
  189. package/packages/velinstyle-skills/skills/velin-components-accessibility-map/SKILL.md +57 -0
  190. package/packages/velinstyle-skills/skills/velin-components-api-contract/SKILL.md +57 -0
  191. package/packages/velinstyle-skills/skills/velin-components-recipe/SKILL.md +57 -0
  192. package/packages/velinstyle-skills/skills/velin-components-select-compose/SKILL.md +57 -0
  193. package/packages/velinstyle-skills/skills/velin-design-hero-compose/SKILL.md +57 -0
  194. package/packages/velinstyle-skills/skills/velin-design-section-rhythm/SKILL.md +57 -0
  195. package/packages/velinstyle-skills/skills/velin-design-surface-roles/SKILL.md +57 -0
  196. package/packages/velinstyle-skills/skills/velin-dev-component-wire/SKILL.md +57 -0
  197. package/packages/velinstyle-skills/skills/velin-dev-page-scaffold/SKILL.md +57 -0
  198. package/packages/velinstyle-skills/skills/velin-dev-plan-first/SKILL.md +57 -0
  199. package/packages/velinstyle-skills/skills/velin-docs-component-guide/SKILL.md +57 -0
  200. package/packages/velinstyle-skills/skills/velin-docs-generate-api/SKILL.md +57 -0
  201. package/packages/velinstyle-skills/skills/velin-dx-doctor-setup/SKILL.md +57 -0
  202. package/packages/velinstyle-skills/skills/velin-dx-project-init/SKILL.md +57 -0
  203. package/packages/velinstyle-skills/skills/velin-migration-legacy-wc/SKILL.md +57 -0
  204. package/packages/velinstyle-skills/skills/velin-migration-prefix-classes/SKILL.md +57 -0
  205. package/packages/velinstyle-skills/skills/velin-motion-reduced-safe/SKILL.md +57 -0
  206. package/packages/velinstyle-skills/skills/velin-motion-reveal-feedback/SKILL.md +57 -0
  207. package/packages/velinstyle-skills/skills/velin-perf-audit-fix/SKILL.md +57 -0
  208. package/packages/velinstyle-skills/skills/velin-perf-runtime-tree-shake/SKILL.md +57 -0
  209. package/packages/velinstyle-skills/skills/velin-release-changelog-sync/SKILL.md +57 -0
  210. package/packages/velinstyle-skills/skills/velin-release-meta-rebuild/SKILL.md +57 -0
  211. package/packages/velinstyle-skills/skills/velin-review-conversion-hero/SKILL.md +57 -0
  212. package/packages/velinstyle-skills/skills/velin-review-page-gate/SKILL.md +57 -0
  213. package/packages/velinstyle-skills/skills/velin-review-seo-meta/SKILL.md +57 -0
  214. package/packages/velinstyle-skills/skills/velin-security-sanitize-html/SKILL.md +57 -0
  215. package/packages/velinstyle-skills/skills/velin-security-scan-pii/SKILL.md +57 -0
  216. package/packages/velinstyle-skills/skills/velin-testing-a11y-suite/SKILL.md +57 -0
  217. package/packages/velinstyle-skills/skills/velin-testing-visual-smoke/SKILL.md +57 -0
  218. package/packages/velinstyle-skills/skills/velin-themes-apply-token/SKILL.md +57 -0
  219. package/packages/velinstyle-skills/skills/velin-themes-contrast-check/SKILL.md +57 -0
  220. package/packages/velinstyle-skills/skills/velin-utilities-layout-apply/SKILL.md +57 -0
  221. package/packages/velinstyle-skills/skills/velin-utilities-prefix-fix/SKILL.md +57 -0
  222. package/packages/velinstyle-skills/skills/velin-utilities-token-map/SKILL.md +57 -0
  223. package/packages/velinstyle-skills/templates/admin-panel.template.yaml +12 -0
  224. package/packages/velinstyle-skills/templates/blog.template.yaml +12 -0
  225. package/packages/velinstyle-skills/templates/documentation-portal.template.yaml +12 -0
  226. package/packages/velinstyle-skills/templates/ecommerce-shop.template.yaml +13 -0
  227. package/packages/velinstyle-skills/templates/landing-page.template.yaml +12 -0
  228. package/packages/velinstyle-skills/templates/laravel-dashboard.template.yaml +11 -0
  229. package/packages/velinstyle-skills/templates/marketing-website.template.yaml +13 -0
  230. package/packages/velinstyle-skills/templates/portfolio.template.yaml +12 -0
  231. package/schemas/component-knowledge.schema.json +33 -0
  232. package/schemas/design-constraint.schema.json +15 -0
  233. package/schemas/design-intelligence.schema.json +19 -0
  234. package/schemas/design-rule.schema.json +19 -0
  235. package/schemas/page-template.schema.json +24 -0
  236. package/schemas/review-report.schema.json +36 -0
  237. package/schemas/section.schema.json +22 -0
  238. package/schemas/skill-bundle.schema.json +15 -0
  239. package/schemas/skill-graph.schema.json +25 -0
  240. package/schemas/skill-pack.schema.json +14 -0
  241. package/schemas/skill-project.schema.json +16 -0
  242. package/schemas/skill-record.schema.json +27 -0
  243. package/schemas/skill-registry.schema.json +17 -0
  244. package/schemas/skill-template.schema.json +17 -0
  245. package/schemas/token-graph.schema.json +27 -0
  246. package/schemas/utility.schema.json +166 -0
  247. package/src/base/wc-placeholder.css +7 -0
  248. package/src/components/alert.css +22 -1
  249. package/src/components/calendar-dropzone.css +5 -0
  250. package/src/components/data-table.css +93 -0
  251. package/src/components/form-validation.css +40 -0
  252. package/src/layout/app-shell.css +33 -0
  253. package/src/tokens/shadow.css +13 -0
  254. package/src/utilities/border.css +2 -0
  255. package/src/utilities/display.css +1 -24
  256. package/src/utilities/responsive.css +16 -1
  257. package/src/utilities/spacing.css +32 -0
  258. package/src/velinstyle.css +3 -0
  259. package/dist/chunks/attributes-3BZLI7XF.js +0 -364
  260. package/dist/chunks/attributes-4N5JP4CG.js +0 -364
  261. package/dist/chunks/attributes-AIR7SVLK.js +0 -364
  262. package/dist/chunks/attributes-BGRN5XZO.js +0 -364
  263. package/dist/chunks/attributes-BVSQAYLR.js +0 -364
  264. package/dist/chunks/attributes-CDYFUY7Y.js +0 -364
  265. package/dist/chunks/attributes-JMYJZBPE.js +0 -364
  266. package/dist/chunks/attributes-R5JY3X4O.js +0 -374
  267. package/dist/chunks/attributes-TNSPQTHX.js +0 -374
  268. package/dist/chunks/chunk-2354NEBP.js +0 -109
  269. package/dist/chunks/chunk-2VNA7G7S.js +0 -109
  270. package/dist/chunks/chunk-AQLRJSGG.js +0 -109
  271. package/dist/chunks/chunk-EWPSDMQT.js +0 -109
  272. package/dist/chunks/chunk-LA7264K4.js +0 -85
  273. package/dist/chunks/chunk-QTJJ3DPO.js +0 -109
  274. package/dist/chunks/chunk-RZQVWFHW.js +0 -109
  275. package/dist/chunks/chunk-U4XHMZ7D.js +0 -109
  276. package/dist/chunks/chunk-V5YIUA6G.js +0 -109
  277. package/dist/chunks/chunk-ZPSPKUYD.js +0 -109
  278. package/dist/chunks/velin-bottom-nav-N3DFQR66.js +0 -86
  279. package/dist/chunks/velin-carousel-Y5VCOABZ.js +0 -213
  280. package/dist/chunks/velin-code-block-ASUBTAQV.js +0 -119
  281. package/dist/chunks/velin-code-block-Y6CM726Q.js +0 -119
  282. package/dist/chunks/velin-combobox-2KDTCQ7N.js +0 -155
  283. package/dist/chunks/velin-command-M7RNHUPR.js +0 -136
  284. package/dist/chunks/velin-copy-T5KDTDXP.js +0 -81
  285. package/dist/chunks/velin-countdown-5XSTN3BH.js +0 -101
  286. package/dist/chunks/velin-counter-ISCTEAHI.js +0 -118
  287. package/dist/chunks/velin-dialog-D2GUHSCD.js +0 -144
  288. package/dist/chunks/velin-dialog-IJLFDXAJ.js +0 -144
  289. package/dist/chunks/velin-dialog-TNS3WXMB.js +0 -144
  290. package/dist/chunks/velin-drawer-MJS6WCF7.js +0 -130
  291. package/dist/chunks/velin-email-N5B5ZYTE.js +0 -90
  292. package/dist/chunks/velin-icon-KZO3IEHG.js +0 -164
  293. package/dist/chunks/velin-lightbox-QOTB4PRL.js +0 -140
  294. package/dist/chunks/velin-lightbox-UCD6N7HF.js +0 -140
  295. package/dist/chunks/velin-live-dot-XHUZCIDZ.js +0 -67
  296. package/dist/chunks/velin-menubar-SFEXJE56.js +0 -86
  297. package/dist/chunks/velin-modal-2HOBXE6F.js +0 -176
  298. package/dist/chunks/velin-modal-GLI2XZZB.js +0 -176
  299. package/dist/chunks/velin-popover-EXINRIGJ.js +0 -145
  300. package/dist/chunks/velin-popover-OXX7MRZ6.js +0 -145
  301. package/dist/chunks/velin-popover-YKCCROJG.js +0 -145
  302. package/dist/chunks/velin-rating-XRQJV4LO.js +0 -91
  303. package/dist/chunks/velin-scroll-top-F2FCZNYD.js +0 -58
  304. package/dist/chunks/velin-search-4YHJWYSS.js +0 -556
  305. package/dist/chunks/velin-search-LWHY23Q5.js +0 -474
  306. package/dist/chunks/velin-secure-field-H7FSBUJW.js +0 -95
  307. package/dist/chunks/velin-segmented-control-PQX6LKOJ.js +0 -109
  308. package/dist/chunks/velin-sheet-3OGI4HD7.js +0 -119
  309. package/dist/chunks/velin-sparkline-GVEANJVW.js +0 -184
  310. package/dist/chunks/velin-sparkline-KDA3GQAN.js +0 -162
  311. package/dist/chunks/velin-stepper-2ZIHLKGM.js +0 -141
  312. package/dist/chunks/velin-stepper-FYEUEWE6.js +0 -141
  313. package/dist/chunks/velin-stepper-wc-QU3KRVQR.js +0 -133
  314. package/dist/chunks/velin-theme-toggle-BNNS7WLV.js +0 -285
  315. package/dist/chunks/velin-theme-toggle-NO7V4TWI.js +0 -285
  316. package/dist/chunks/velin-theme-toggle-QELCJM2Q.js +0 -291
  317. package/dist/chunks/velin-toast-RCZ4CSUC.js +0 -109
  318. package/dist/chunks/velin-toast-WEUBTJG6.js +0 -109
  319. package/dist/chunks/velin-tooltip-664IOHZA.js +0 -112
  320. package/dist/chunks/velin-tooltip-wc-LXDVT6DE.js +0 -103
  321. package/dist/chunks/worker-client-R6DBYPFT.js +0 -46
package/README.md CHANGED
@@ -9,45 +9,85 @@
9
9
  ╚═══╝ ╚══════╝╚══════╝╚═╝╚═╝ ╚═══╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝
10
10
  ```
11
11
 
12
+ **Accessibility-first CSS Framework · Web Components · Design Intelligence · AI Workflows**
13
+
14
+ One framework. One CLI. One design system. One AI-ready ecosystem.
15
+
12
16
  [![License: MIT](https://img.shields.io/badge/License-MIT-2563eb?style=flat-square)](LICENSE)
13
- [![Release](https://img.shields.io/badge/Release-v1.0.0-2563eb?style=flat-square)](https://github.com/SkyliteDesign/velinstyle/releases/tag/v1.0.0)
14
- [![npm version](https://img.shields.io/npm/v/@birdapi/velinstyle?style=flat-square)](https://www.npmjs.com/package/@birdapi/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)
17
+ [![npm](https://img.shields.io/npm/v/@birdapi/velinstyle?style=flat-square)](https://www.npmjs.com/package/@birdapi/velinstyle)
18
+ [![npm downloads](https://img.shields.io/npm/dm/@birdapi/velinstyle?style=flat-square)](https://www.npmjs.com/package/@birdapi/velinstyle)
16
19
  [![GitHub stars](https://img.shields.io/github/stars/SkyliteDesign/velinstyle?style=flat-square)](https://github.com/SkyliteDesign/velinstyle/stargazers)
20
+ [![Node.js](https://img.shields.io/badge/Node.js-18%2B-339933?style=flat-square)](https://nodejs.org/)
21
+ [![Browsers](https://img.shields.io/badge/Browsers-modern-0ea5e9?style=flat-square)](https://velinstyle.info/docs/getting-started/introduction.html)
22
+ [![WCAG 2.2 AAA support](https://img.shields.io/badge/WCAG_2.2-AAA_support-16a34a?style=flat-square)](https://velinstyle.info/docs/a11y.html)
17
23
  [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-2563eb?style=flat-square)](CONTRIBUTING.md)
18
24
 
19
25
  ```bash
20
26
  npm i @birdapi/velinstyle
21
27
  ```
22
28
 
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)**
24
-
25
- **English** · **[Deutsch](README.de.md)**
29
+ **[Website](https://velinstyle.info)** · **[Docs](https://velinstyle.info/docs/getting-started/introduction.html)** · **[Demos](https://velinstyle.info/demos/)** · **[Getting Started](GETTING_STARTED.md)** · **[Architecture](ARCHITECTURE.md)** · **[Deutsch](README.de.md)**
26
30
 
27
31
  </div>
28
32
 
29
33
  ---
30
34
 
31
- **VelinStyle** is the **WCAG 2.2 AAA CSS framework** with native JavaScript runtime and Web Components CSS utilities, 1.0.0 modules (search, motion, highlight, attributes, meta), and security tooling, with **no external UI framework dependencies** in the core.
35
+ VelinStyle is a **production CSS + Web Components framework** with **WCAG 2.2 AAA-oriented defaults**, a real **CLI ship surface**, and the first **Design Intelligence / AI Foundation** systems (beta). No external UI framework in the core.
32
36
 
33
- Built for teams who want **readable HTML**, **AAA token defaults** (AA via `data-velin-contrast="aa"`), and **CLI automation** instead of utility sprawl.
37
+ **Best fit today:** marketing landings, docs shells, simple admin starters.
38
+ **Not yet:** sole primary stack for large multipage shop + enterprise admin without custom work.
34
39
 
35
- > **Dogfooding:** The entire VelinStyle website and documentation runs 100% on VelinStyle no external scripts or UI frameworks.
40
+ > **Release:** **1.2.0** (Core + Design Intelligence Foundation + Trust/Ship). Using VelinStyle does **not** certify your app see the [a11y matrix](https://velinstyle.info/docs/a11y.html).
36
41
 
37
42
  ---
38
43
 
39
- ## Features at a glance
44
+ ## Why VelinStyle
45
+
46
+ | Need | What you get |
47
+ |------|----------------|
48
+ | Readable HTML | Semantic BEM (`velin-btn--primary`), not utility walls |
49
+ | Accessibility | AAA-capable tokens, focus management, reduced motion — built in |
50
+ | Ship without a build | CDN CSS + optional WCs; Vite/React when you want them |
51
+ | Predictable overrides | Cascade layers + OKLCH design tokens |
52
+ | Quality gates | `scan`, `review`, `check` — catch real defects before merge |
53
+ | AI that helps | Skills, workflows, and agent metadata — **Mensch → Framework → KI** |
54
+
55
+ Compared to **Tailwind**: less class sprawl, stronger defaults for contrast and semantics.
56
+ Compared to **Bootstrap**: modern tokens/layers, optional progressive WCs, CLI automation instead of jQuery-era chrome.
57
+
58
+ ---
59
+
60
+ ## Feature highlights
61
+
62
+ | | Area | What it does |
63
+ |---|------|----------------|
64
+ | 🎨 | **CSS Framework** | OKLCH themes, utilities, components, lite preset for marketing budgets |
65
+ | 🧩 | **Web Components** | 40 canonical custom elements; use CSS alone when you need no JS |
66
+ | ⚡ | **Runtime** | Search, motion, highlight, attributes, `bootFromDOM` tree-shaking |
67
+ | 🛠 | **CLI** | `create` · `serve` · `doctor` · `check` · `scan` · `review` · `skills` |
68
+ | 🧠 | **Design Intelligence** | Plan → constraints → page/section registry → review (beta) |
69
+ | 🤖 | **AI Skills** | 40 skills, packs, bundles, templates, workflow graphs (beta) |
70
+ | 📦 | **Registry** | Skills + page/section registries as machine-readable contracts |
71
+ | 📄 | **AI Metadata** | `velin-agent.json`, `llms.txt`, page-level agent JSON |
72
+ | 📚 | **Documentation** | Dogfooded site — 100% VelinStyle |
73
+ | 🔍 | **Review Engine** | Heuristic design / a11y / SEO / conversion gates (beta) |
74
+ | 🛡 | **Scan Engine** | A11y, security, CSS honesty, PII |
75
+ | 🚀 | **Performance** | Lite CSS, chunked runtime, CLS placeholders |
76
+ | ♿ | **Accessibility** | Contracts, WCAG 2.2 tooling, keyboard + ARIA patterns |
77
+
78
+ ---
79
+
80
+ ## What's new in 1.2
81
+
82
+ Not a CSS bump — a **foundation release**.
83
+
84
+ - **Ship surface** — `create landing|dashboard|docs|auth`, `serve`, `doctor`, `check` (`--json` / `--sarif`)
85
+ - **Design Intelligence (beta)** — Prompt Engine (`plan`), Review Engine, knowledge graph seed, design constraints
86
+ - **AI Foundation (beta)** — skill engine, workflows, richer agent metadata
87
+ - **New primitives** — `<velin-calendar>`, `<velin-file-dropzone>`, editable `<velin-data-table>`
88
+ - **Trust gates** — stricter scan/review so junk pages cannot fake green scores
40
89
 
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
90
+ Details: [`RELEASE_NOTES_1.2.0.md`](RELEASE_NOTES_1.2.0.md) · full history: [`CHANGELOG.md`](CHANGELOG.md)
51
91
 
52
92
  ---
53
93
 
@@ -55,30 +95,31 @@ Built for teams who want **readable HTML**, **AAA token defaults** (AA via `data
55
95
 
56
96
  ```bash
57
97
  npm i @birdapi/velinstyle
98
+ pnpm add @birdapi/velinstyle
99
+ yarn add @birdapi/velinstyle
100
+ bun add @birdapi/velinstyle
58
101
  ```
59
102
 
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 |
69
-
70
- **CDN (pin version):**
103
+ **CDN** (pin a version):
71
104
 
72
105
  ```html
73
- <link rel="stylesheet" href="https://unpkg.com/@birdapi/velinstyle@1.0.0/dist/velinstyle.min.css">
74
- <script type="module" src="https://unpkg.com/@birdapi/velinstyle@1.0.0/dist/velinstyle-components.min.js"></script>
106
+ <link rel="stylesheet" href="https://unpkg.com/@birdapi/velinstyle@1.2.0/dist/velinstyle.min.css">
107
+ <script type="module" src="https://unpkg.com/@birdapi/velinstyle@1.2.0/dist/velinstyle-components.min.js"></script>
75
108
  ```
76
109
 
77
- After cloning, run `npm install && npm run build` `dist/` is generated, not committed.
110
+ > Pin **`@1.2.0`** (or `@latest` after publish). Examples above match this package version.
111
+
112
+ | Export | Use |
113
+ |--------|-----|
114
+ | `@birdapi/velinstyle/css` | Full stylesheet |
115
+ | `@birdapi/velinstyle/bundle` | Web Components ESM |
116
+ | `/search` `/motion` `/attributes` `/highlight` `/meta` `/sanitize` | Tree-shakeable modules |
117
+
118
+ After clone: `npm install && npm run build` — `dist/` is generated, not committed.
78
119
 
79
120
  ---
80
121
 
81
- ## Quickstart
122
+ ## Quick start
82
123
 
83
124
  ```html
84
125
  <!DOCTYPE html>
@@ -86,141 +127,173 @@ After cloning, run `npm install && npm run build` — `dist/` is generated, not
86
127
  <head>
87
128
  <meta charset="UTF-8">
88
129
  <meta name="viewport" content="width=device-width, initial-scale=1">
89
- <link rel="stylesheet" href="https://unpkg.com/@birdapi/velinstyle@1.0.0/dist/velinstyle.min.css">
90
- <script type="module" src="https://unpkg.com/@birdapi/velinstyle@1.0.0/dist/velinstyle-components.min.js"></script>
130
+ <link rel="stylesheet" href="https://unpkg.com/@birdapi/velinstyle@1.2.0/dist/velinstyle.min.css">
131
+ <script type="module" src="https://unpkg.com/@birdapi/velinstyle@1.2.0/dist/velinstyle-components.min.js"></script>
91
132
  </head>
92
133
  <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>
134
+ <button type="button" class="velin-btn velin-btn--primary">Ship it</button>
135
+ <velin-toast></velin-toast>
95
136
  </body>
96
137
  </html>
97
138
  ```
98
139
 
99
- ---
140
+ Scaffold + gate (local 1.2 tree / after publish):
100
141
 
101
- ## Core modules (1.0.0)
142
+ ```bash
143
+ npx @birdapi/velinstyle create landing ./my-site
144
+ cd my-site && npx @birdapi/velinstyle serve . && npx @birdapi/velinstyle check .
145
+ ```
102
146
 
103
- | Export | Description |
104
- | --- | --- |
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` |
147
+ More: [`GETTING_STARTED.md`](GETTING_STARTED.md)
110
148
 
111
149
  ---
112
150
 
113
- ## Web Components
114
-
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.
151
+ ## CLI
116
152
 
117
- Examples: `velin-modal`, `velin-search`, `velin-code-block`, `velin-drawer`, `velin-stepper`, `velin-tooltip`, `velin-toast`, `velin-persist`.
153
+ | Command | Role |
154
+ |---------|------|
155
+ | `init` | Project config |
156
+ | `create` | Opinionated scaffolds (`landing` · `dashboard` · `docs` · `auth`) |
157
+ | `build` | CSS build (`--preset lite` for marketing) |
158
+ | `serve` | Static preview |
159
+ | `doctor` | Install / path health |
160
+ | `check` | doctor + blueprints + scan + review |
161
+ | `scan` | A11y / security / CSS / PII |
162
+ | `review` | Design-intelligence gate (beta) |
163
+ | `plan` | Prompt → plan JSON → render (beta) |
164
+ | `skills` / `workflow` | AI skill registry & graphs (beta) |
165
+ | `meta` | Agent bundle + `llms.txt` |
166
+ | `wc api <tag>` | Human-readable WC API from source |
118
167
 
119
- - [Component documentation](https://velinstyle.info/docs/components/buttons.html)
120
- - [Generated Web Component API](https://velinstyle.info/docs/generated/components/README.md)
168
+ ```bash
169
+ npx @birdapi/velinstyle check . --profile marketing
170
+ npx @birdapi/velinstyle wc api velin-toast
171
+ ```
121
172
 
122
173
  ---
123
174
 
124
- ## CLI
175
+ ## AI Skills & Design Intelligence
176
+
177
+ **AI Skills** give agents and humans a shared vocabulary: skill records, packs, bundles, templates, and workflow graphs. They exist so tooling can scaffold, review, and ship **without inventing VelinStyle from scratch**.
125
178
 
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` |
179
+ **Design Intelligence** adds structure ordinary CSS frameworks lack: a knowledge graph seed, page/section registries, design constraints, and `plan` / `review` so pages are assembled from known patterns — then checked against profiles (`marketing` · `app` · `docs` · `ecommerce`).
133
180
 
134
- Also: `npx velinstyle docs generate` Markdown reference under `docs/generated/`.
181
+ Deep dive: [`ARCHITECTURE.md`](ARCHITECTURE.md) · [`VELINSTYLE_2030.md`](VELINSTYLE_2030.md) · Strategy (lokal, nicht im Git): [`docs/strategy/README.md`](docs/strategy/README.md)
135
182
 
136
183
  ---
137
184
 
138
- ## Security
185
+ ## Components
139
186
 
140
- VelinStyle ships **first-class security tooling**, not an afterthought:
187
+ **40 canonical** custom elements (**42** lazy-loader entries including legacy `*-wc` aliases).
141
188
 
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
189
+ Philosophy: **progressive enhancement**semantic HTML + CSS first; upgrade to a Web Component only when you need behavior (focus traps, sorting, offline search).
145
190
 
146
- [Security documentation](https://velinstyle.info/docs/extend/security.html)
191
+ Highlights: `velin-modal`, `velin-drawer`, `velin-search`, `velin-data-table`, `velin-form-summary`, `velin-calendar`, `velin-file-dropzone`, `velin-toast`, `velin-code-block`.
192
+
193
+ React: [`@velinstyle/react`](./packages/react/README.md) wraps every canonical tag.
147
194
 
148
195
  ---
149
196
 
150
- ## Velin-Meta
197
+ ## Accessibility
151
198
 
152
- Machine-readable context for **Cursor, Copilot, and custom agents**:
199
+ Accessibility is a **default**, not a plugin.
153
200
 
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`
201
+ - WCAG 2.2 **AAA-oriented** token defaults (`data-velin-contrast="aa"` when you need the lighter palette)
202
+ - Semantic HTML patterns and BEM components
203
+ - Keyboard support, focus management, `inert` overlays
204
+ - `prefers-reduced-motion` gating
205
+ - Component a11y contracts + scanner rules
157
206
 
158
- [Velin-Meta guide](https://velinstyle.info/docs/guides/velin-meta.html)
207
+ Docs: [a11y matrix](https://velinstyle.info/docs/a11y.html) · AAA marketing language: see `VELINSTYLE_2030.md` (strategy ADRs are local-only)
159
208
 
160
209
  ---
161
210
 
162
- ## Docs & website
163
-
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
211
+ ## Documentation map
212
+
213
+ | Layer | File / link | Audience |
214
+ |-------|-------------|----------|
215
+ | Landing | This README | First 30 seconds |
216
+ | First build | [`GETTING_STARTED.md`](GETTING_STARTED.md) | New adopters |
217
+ | FAQ | [`FAQ.md`](FAQ.md) | Common questions |
218
+ | Troubleshooting | [`TROUBLESHOOTING.md`](TROUBLESHOOTING.md) | When stuck |
219
+ | Deploy | [`DEPLOY.md`](DEPLOY.md) | Ship to production |
220
+ | Systems | [`ARCHITECTURE.md`](ARCHITECTURE.md) | Advanced / AI / DI |
221
+ | Design Intelligence | [`docs/guides/design-intelligence.md`](docs/guides/design-intelligence.md) | Plan / review |
222
+ | CLI ship surface | [`docs/guides/cli-ship-surface.md`](docs/guides/cli-ship-surface.md) | create / check / wc |
223
+ | AI Skills | [`docs/guides/ai-skills.md`](docs/guides/ai-skills.md) | Skills / workflows |
224
+ | Product site | [velinstyle.info/docs](https://velinstyle.info/docs/getting-started/introduction.html) | Guides, demos, reference |
225
+ | Upgrade | [`UPGRADING.md`](UPGRADING.md) | 1.1 → 1.2 |
226
+ | North star | [`VELINSTYLE_2030.md`](VELINSTYLE_2030.md) | Long-term vision |
168
227
 
169
228
  ---
170
229
 
171
- ## Changelog
230
+ ## Repository structure
172
231
 
173
- See [CHANGELOG.md](CHANGELOG.md) for releases, breaking changes, and migration notes.
232
+ ```
233
+ velinstyle/
234
+ ├── src/ # CSS source (tokens, base, components, utilities)
235
+ ├── components/ # Web Components (JS)
236
+ ├── core/ # Runtime: search, motion, highlight, attributes, meta
237
+ ├── cli/ # velinstyle binary
238
+ ├── packages/ # React wrappers, skill-engine, skills registry
239
+ ├── schemas/ # Design Intelligence + skill contracts
240
+ ├── docs/ # Docs + strategy ADRs
241
+ ├── samples/ # Local HTML samples
242
+ ├── templates/ # Starters (e.g. Vite + React)
243
+ ├── fixtures/ # Scanner / chaos fixtures
244
+ └── showcase-demos/ # Full-page demos
245
+ ```
174
246
 
175
247
  ---
176
248
 
177
- ## Comparison
249
+ ## Philosophy
250
+
251
+ **Mensch → Framework → Design Intelligence → AI**
178
252
 
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, …** |
253
+ Humans own product intent. The framework ships reliable CSS and components. Design Intelligence encodes patterns and constraints. AI skills and workflows accelerate scaffolding and review — they **support** developers; they do not replace judgment, accessibility ownership, or design responsibility.
190
254
 
191
255
  ---
192
256
 
193
- ## Live demos
257
+ ## Roadmap (maturity)
194
258
 
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)
259
+ | Status | Surfaces |
260
+ |--------|----------|
261
+ | **Stable** | CSS · Utilities · Runtime · Web Components · CLI core · Blueprints |
262
+ | **Beta** | Review Engine · Prompt Engine · Knowledge Graph · AI Metadata · Design Constraints |
263
+ | **Foundation** | AI Skills · Workflow Graphs · Registries |
264
+ | **Planned** | Studio · Utility Engine Generator |
196
265
 
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>
266
+ ---
267
+
268
+ ## Comparison
269
+
270
+ | | Bootstrap | Tailwind | **VelinStyle** |
271
+ |---|:---:|:---:|:---:|
272
+ | HTML readability | Medium | Low | **High** |
273
+ | Utility sprawl | Low | High | **Controlled** |
274
+ | A11y defaults | Partial | DIY | **AAA-capable tokens** |
275
+ | Dark mode | Manual | `dark:` everywhere | **Token swap** |
276
+ | Build required | No | Usually | **CDN optional** |
277
+ | Design / AI gates | — | — | **plan · review · skills** |
202
278
 
203
279
  ---
204
280
 
205
281
  ## Contributing
206
282
 
207
- PRs welcome.
208
-
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
283
+ 1. Fork → `npm install && npm run build`
284
+ 2. Change code · run `npm test`, `npm run test:a11y`, `npm run test:e2e`
285
+ 3. Open a PR
213
286
 
214
- See [CONTRIBUTING.md](CONTRIBUTING.md) for code style and review process.
287
+ See [`CONTRIBUTING.md`](CONTRIBUTING.md).
215
288
 
216
289
  ---
217
290
 
218
291
  ## License
219
292
 
220
- [MIT](LICENSE) — Copyright © 2026 VelinStyle
221
-
222
- <div align="center">
223
-
224
- Made with care for the web by [SkyliteDesign](https://github.com/SkyliteDesign)
293
+ [MIT](LICENSE) — © 2026 VelinStyle · [SkyliteDesign](https://github.com/SkyliteDesign)
225
294
 
226
- </div>
295
+ <p align="center">
296
+ <a href="https://velinstyle.info/demos/showcase-crypto.html">
297
+ <img src=".github/assets/readme/hero-demo.webp" alt="VelinStyle crypto dashboard demo" width="720">
298
+ </a>
299
+ </p>
package/cli/blueprint.js CHANGED
@@ -1,12 +1,18 @@
1
- import { readFileSync, existsSync, writeFileSync } from 'fs';
2
- import { join, dirname } from 'path';
1
+ import { readFileSync, existsSync, writeFileSync, readdirSync } from 'fs';
2
+ import { join, dirname, extname } from 'path';
3
3
  import { fileURLToPath } from 'url';
4
4
 
5
5
  const __dirname = dirname(fileURLToPath(import.meta.url));
6
+ const PKG_ROOT = join(__dirname, '..');
7
+ const BLUEPRINT_DIR = join(__dirname, 'blueprints');
8
+
6
9
  const BLUEPRINTS = {
7
10
  'alert-stack': 'alert-stack.html',
11
+ 'benefits-grid': 'benefits-grid.html',
8
12
  'breadcrumb-bar': 'breadcrumb-bar.html',
9
13
  'card-grid': 'card-grid.html',
14
+ 'cta-band': 'cta-band.html',
15
+ 'faq-section': 'faq-section.html',
10
16
  'footer-simple': 'footer-simple.html',
11
17
  'form-contact': 'form-contact.html',
12
18
  'form-login': 'form-login.html',
@@ -15,9 +21,13 @@ const BLUEPRINTS = {
15
21
  modal: 'modal.html',
16
22
  'navbar-header': 'navbar-header.html',
17
23
  'pagination-bar': 'pagination-bar.html',
24
+ 'process-steps': 'process-steps.html',
18
25
  'search-field': 'search-field.html',
26
+ 'services-grid': 'services-grid.html',
19
27
  'sidebar-layout': 'sidebar-layout.html',
20
28
  'table-responsive': 'table-responsive.html',
29
+ testimonials: 'testimonials.html',
30
+ 'trust-bar': 'trust-bar.html',
21
31
  'bottom-nav-mobile': 'bottom-nav-mobile.html',
22
32
  'empty-state': 'empty-state.html',
23
33
  'cookie-consent': 'cookie-consent.html',
@@ -26,18 +36,101 @@ const BLUEPRINTS = {
26
36
  'settings-panel': 'settings-panel.html',
27
37
  onboarding: 'onboarding.html',
28
38
  'pricing-table': 'pricing-table.html',
39
+ 'split-hero': 'split-hero.html',
40
+ 'pricing-band': 'pricing-band.html',
41
+ 'app-chrome': 'app-chrome.html',
42
+ 'ops-console': 'ops-console.html',
29
43
  };
30
44
 
45
+ const CLASS_RE = /class\s*=\s*["']([^"']+)["']/gi;
46
+ const CSS_CLASS_RE = /\.((?:velin|expo)-[a-z0-9_-]+)/gi;
47
+
48
+ let _cssClassCache = null;
49
+
50
+ function walkCssFiles(dir, out = []) {
51
+ if (!existsSync(dir)) return out;
52
+ for (const name of readdirSync(dir, { withFileTypes: true })) {
53
+ const full = join(dir, name.name);
54
+ if (name.isDirectory()) walkCssFiles(full, out);
55
+ else if (extname(name.name) === '.css') out.push(full);
56
+ }
57
+ return out;
58
+ }
59
+
60
+ /** Collect known CSS class names from framework source (+ optional dist). */
61
+ export function loadKnownCssClasses({ includeDist = true } = {}) {
62
+ if (_cssClassCache) return _cssClassCache;
63
+ const files = walkCssFiles(join(PKG_ROOT, 'src'));
64
+ if (includeDist) {
65
+ const distCss = join(PKG_ROOT, 'dist', 'velinstyle.css');
66
+ if (existsSync(distCss)) files.push(distCss);
67
+ }
68
+ const set = new Set();
69
+ for (const file of files) {
70
+ const css = readFileSync(file, 'utf-8');
71
+ for (const m of css.matchAll(CSS_CLASS_RE)) set.add(m[1]);
72
+ }
73
+ _cssClassCache = set;
74
+ return set;
75
+ }
76
+
77
+ export function extractVelinClasses(html) {
78
+ const classes = new Set();
79
+ for (const m of String(html || '').matchAll(CLASS_RE)) {
80
+ for (const token of m[1].split(/\s+/)) {
81
+ if (token.startsWith('velin-')) classes.add(token);
82
+ }
83
+ }
84
+ return [...classes];
85
+ }
86
+
87
+ /**
88
+ * @returns {{ ok: boolean, missing: string[], classes: string[] }}
89
+ */
90
+ export function validateBlueprintHtml(html, known = loadKnownCssClasses()) {
91
+ const classes = extractVelinClasses(html);
92
+ const missing = classes.filter((c) => !known.has(c));
93
+ return { ok: missing.length === 0, missing, classes };
94
+ }
95
+
96
+ export function validateBlueprintId(id, known = loadKnownCssClasses()) {
97
+ const file = BLUEPRINTS[id];
98
+ if (!file) return { ok: false, error: `Unknown blueprint "${id}"`, missing: [], classes: [] };
99
+ const path = join(BLUEPRINT_DIR, file);
100
+ if (!existsSync(path)) return { ok: false, error: `Missing template: ${path}`, missing: [], classes: [] };
101
+ const body = readFileSync(path, 'utf-8');
102
+ const result = validateBlueprintHtml(body, known);
103
+ return { ...result, id, path };
104
+ }
105
+
106
+ export function validateAllBlueprints(known = loadKnownCssClasses()) {
107
+ const results = [];
108
+ for (const id of listBlueprints()) {
109
+ results.push(validateBlueprintId(id, known));
110
+ }
111
+ return results;
112
+ }
113
+
31
114
  export function listBlueprints() {
32
- return Object.keys(BLUEPRINTS);
115
+ return Object.keys(BLUEPRINTS).sort();
33
116
  }
34
117
 
35
- export function emitBlueprint(id, { output } = {}) {
118
+ export function emitBlueprint(id, { output, strict = false } = {}) {
36
119
  const file = BLUEPRINTS[id];
37
120
  if (!file) return { ok: false, error: `Unknown blueprint "${id}". Try: ${listBlueprints().join(', ')}` };
38
- const path = join(__dirname, 'blueprints', file);
121
+ const path = join(BLUEPRINT_DIR, file);
39
122
  if (!existsSync(path)) return { ok: false, error: `Missing template: ${path}` };
40
123
  const body = readFileSync(path, 'utf-8');
124
+ if (strict) {
125
+ const v = validateBlueprintHtml(body);
126
+ if (!v.ok) {
127
+ return {
128
+ ok: false,
129
+ error: `Blueprint "${id}" emits unknown CSS classes: ${v.missing.join(', ')}. Fix templates or add utilities.`,
130
+ missing: v.missing,
131
+ };
132
+ }
133
+ }
41
134
  const banner = `<!-- Generated by velinstyle blueprint ${id} — VelinStyle tokens: --velin-color-*, --velin-space-*, --velin-radius-* -->\n`;
42
135
  const out = banner + body;
43
136
  if (output) {
@@ -0,0 +1,18 @@
1
+ <!-- VelinStyle blueprint: app chrome (menubar + command) -->
2
+ <header class="velin-flex velin-flex--justify-between velin-flex--items-center velin-flex--wrap velin-gap-3 velin-p-3 velin-border-block-end" role="banner">
3
+ <strong class="velin-text-lg">Brand</strong>
4
+ <velin-menubar aria-label="App menu">
5
+ <button type="button" data-menu="file">File</button>
6
+ <button type="button" data-menu="view">View</button>
7
+ <button type="button" data-menu="help">Help</button>
8
+ </velin-menubar>
9
+ <button type="button" class="velin-btn velin-btn--outline velin-btn--sm" id="open-command" aria-keyshortcuts="Control+K Meta+K">Command</button>
10
+ </header>
11
+ <velin-command id="app-command" aria-label="Command palette"></velin-command>
12
+ <script type="module">
13
+ // Prefer package entry; for offline vendor installs use: import './vendor/velinstyle/velinstyle-components.min.js';
14
+ import '@birdapi/velinstyle/bundle';
15
+ document.getElementById('open-command')?.addEventListener('click', () => {
16
+ document.getElementById('app-command')?.open?.();
17
+ });
18
+ </script>
@@ -0,0 +1,9 @@
1
+ <!-- VelinStyle blueprint: benefits grid -->
2
+ <section class="velin-container velin-py-8">
3
+ <h2 class="velin-text-3xl" style="font-weight:var(--velin-weight-semibold);margin-block-end:var(--velin-space-6)">Benefits</h2>
4
+ <div class="velin-grid velin-grid--auto-fit">
5
+ <article class="velin-card"><div class="velin-card__body"><h3 class="velin-card__title">Clarity first</h3><p class="velin-card__text">Plain-language guidance without jargon walls.</p></div></article>
6
+ <article class="velin-card"><div class="velin-card__body"><h3 class="velin-card__title">Reliable process</h3><p class="velin-card__text">Predictable steps from first call to delivery.</p></div></article>
7
+ <article class="velin-card"><div class="velin-card__body"><h3 class="velin-card__title">Accessible by default</h3><p class="velin-card__text">Interfaces that respect contrast, focus, and motion preferences.</p></div></article>
8
+ </div>
9
+ </section>
@@ -6,7 +6,8 @@
6
6
  </velin-bottom-nav>
7
7
  </nav>
8
8
  <script type="module">
9
- import '../../dist/velinstyle-components.min.js';
9
+ // Prefer package entry; for offline vendor installs use: import './vendor/velinstyle/velinstyle-components.min.js';
10
+ import '@birdapi/velinstyle/bundle';
10
11
  const nav = document.querySelector('velin-bottom-nav');
11
12
  nav?.querySelectorAll('a').forEach((link) => {
12
13
  link.addEventListener('click', (e) => {
@@ -1,6 +1,6 @@
1
1
  <aside class="velin-p-4 velin-border velin-rounded-lg velin-pb-safe" role="region" aria-label="Cookie consent">
2
2
  <div class="velin-user-content">
3
- <p class="velin-mbe-3">We use essential cookies only. No third-party trackers in this demo.</p>
3
+ <p class="velin-mbe-4">We use essential cookies only. No third-party trackers in this demo.</p>
4
4
  </div>
5
5
  <div class="velin-flex velin-gap-3">
6
6
  <button type="button" class="velin-btn velin-btn--primary">Accept</button>
@@ -0,0 +1,6 @@
1
+ <!-- VelinStyle blueprint: CTA band -->
2
+ <section class="velin-container velin-py-10" style="text-align:center">
3
+ <h2 class="velin-text-3xl" style="font-weight:var(--velin-weight-semibold);margin-block-end:var(--velin-space-3)">Ready to talk?</h2>
4
+ <p style="color:var(--velin-color-text-muted);margin-block-end:var(--velin-space-6)">Book a short intro call — no jargon, no pressure.</p>
5
+ <a class="velin-btn velin-btn--primary" href="#contact">Request a consultation</a>
6
+ </section>
@@ -0,0 +1,18 @@
1
+ <!-- VelinStyle blueprint: FAQ with accordion -->
2
+ <section class="velin-container velin-py-8" id="faq">
3
+ <h2 class="velin-text-3xl" style="font-weight:var(--velin-weight-semibold);margin-block-end:var(--velin-space-6)">FAQ</h2>
4
+ <velin-accordion>
5
+ <details>
6
+ <summary>What happens in the first meeting?</summary>
7
+ <p>We clarify goals, documents needed, and realistic next steps.</p>
8
+ </details>
9
+ <details>
10
+ <summary>How long does a typical engagement take?</summary>
11
+ <p>Timelines depend on scope; we share a clear plan before work starts.</p>
12
+ </details>
13
+ <details>
14
+ <summary>Do you work with remote clients?</summary>
15
+ <p>Yes — secure document exchange and scheduled calls are standard.</p>
16
+ </details>
17
+ </velin-accordion>
18
+ </section>