@birdapi/velinstyle 0.7.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 (336) hide show
  1. package/README.de.md +135 -224
  2. package/README.md +134 -223
  3. package/cli/blueprint.js +8 -0
  4. package/cli/blueprints/bottom-nav-mobile.html +17 -0
  5. package/cli/blueprints/cookie-consent.html +9 -0
  6. package/cli/blueprints/empty-state.html +5 -0
  7. package/cli/blueprints/filter-bar.html +15 -0
  8. package/cli/blueprints/notification-center.html +13 -0
  9. package/cli/blueprints/onboarding.html +23 -0
  10. package/cli/blueprints/pricing-table.html +20 -0
  11. package/cli/blueprints/settings-panel.html +20 -0
  12. package/cli/cli-manifest.json +97 -0
  13. package/cli/docgen/extract-a11y.js +89 -0
  14. package/cli/docgen/extract-attributes.js +95 -0
  15. package/cli/docgen/extract-cli.js +50 -0
  16. package/cli/docgen/extract-components.js +175 -0
  17. package/cli/docgen/extract-meta.js +32 -0
  18. package/cli/docgen/extract-rules.js +76 -0
  19. package/cli/docgen/extract-tokens.js +79 -0
  20. package/cli/docgen/extract-utilities.js +75 -0
  21. package/cli/docgen/markdown.js +43 -0
  22. package/cli/docs-generate.js +196 -0
  23. package/cli/index.js +236 -5
  24. package/cli/layout-audit.js +325 -0
  25. package/cli/meta.js +97 -0
  26. package/cli/perf-audit.js +174 -0
  27. package/cli/pii-scanner.js +134 -0
  28. package/cli/scaffold-recipes.json +70 -0
  29. package/cli/scaffold.js +155 -0
  30. package/cli/scanner-rules-data.js +62 -0
  31. package/cli/scanner.js +136 -1
  32. package/cli/search-index.js +163 -0
  33. package/cli/tokens-build.js +21 -1
  34. package/cli/tokens-validate.js +69 -0
  35. package/components/a11y-entry.js +42 -0
  36. package/components/a11y-utils.js +71 -0
  37. package/components/focus-manager.js +45 -8
  38. package/components/index.js +40 -11
  39. package/components/runtime/component-loaders.js +43 -0
  40. package/components/runtime/index.js +77 -0
  41. package/components/runtime-entry.js +10 -0
  42. package/components/sanitize.js +135 -28
  43. package/components/shadow-a11y-styles.js +18 -0
  44. package/components/velin-accordion.js +12 -0
  45. package/components/velin-announcer.js +35 -0
  46. package/components/velin-bottom-nav.js +108 -0
  47. package/components/velin-carousel.js +2 -2
  48. package/components/velin-code-block.js +142 -0
  49. package/components/velin-combobox.js +149 -0
  50. package/components/velin-command.js +142 -0
  51. package/components/velin-copy.js +18 -5
  52. package/components/velin-counter.js +155 -0
  53. package/components/velin-dialog.js +9 -1
  54. package/components/velin-email.js +94 -0
  55. package/components/velin-flip.js +220 -0
  56. package/components/velin-icon.js +99 -22
  57. package/components/velin-lightbox.js +8 -3
  58. package/components/velin-live-dot.js +90 -0
  59. package/components/velin-menubar.js +83 -0
  60. package/components/velin-modal.js +6 -3
  61. package/components/velin-popover.js +34 -2
  62. package/components/velin-rating.js +91 -0
  63. package/components/velin-reveal.js +22 -0
  64. package/components/velin-scroll-top.js +1 -1
  65. package/components/velin-search.js +267 -0
  66. package/components/velin-secure-field.js +99 -0
  67. package/components/velin-segmented-control.js +108 -0
  68. package/components/velin-sheet.js +107 -0
  69. package/components/velin-sparkline.js +227 -0
  70. package/components/{velin-stepper-wc.js → velin-stepper.js} +37 -8
  71. package/components/velin-theme-toggle.js +284 -60
  72. package/components/velin-toast.js +4 -0
  73. package/components/{velin-tooltip-wc.js → velin-tooltip.js} +22 -3
  74. package/core/a11y/component-contracts.json +221 -0
  75. package/core/attributes/index.js +6 -0
  76. package/core/attributes/registry.js +268 -0
  77. package/core/highlight/highlight.js +114 -0
  78. package/core/highlight/index.js +29 -0
  79. package/core/highlight/languages/_utils.js +52 -0
  80. package/core/highlight/languages/blade.js +16 -0
  81. package/core/highlight/languages/css.js +26 -0
  82. package/core/highlight/languages/html.js +17 -0
  83. package/core/highlight/languages/js.js +58 -0
  84. package/core/highlight/languages/json.js +14 -0
  85. package/core/highlight/languages/markdown.js +16 -0
  86. package/core/highlight/languages/php.js +39 -0
  87. package/core/highlight/languages/plain.js +7 -0
  88. package/core/highlight/languages/shell.js +33 -0
  89. package/core/highlight/languages/sql.js +20 -0
  90. package/core/highlight/languages/typescript.js +28 -0
  91. package/core/highlight/observe.js +53 -0
  92. package/core/highlight/registry.js +107 -0
  93. package/core/highlight/render.js +35 -0
  94. package/core/highlight/types.js +28 -0
  95. package/core/meta/build.js +293 -0
  96. package/core/meta/index.js +17 -0
  97. package/core/meta/schema.js +49 -0
  98. package/core/motion/effects.js +54 -0
  99. package/core/motion/index.js +76 -0
  100. package/core/motion/scheduler.js +72 -0
  101. package/core/motion/scroll.js +32 -0
  102. package/core/motion/stagger.js +24 -0
  103. package/core/search/docs-url.js +96 -0
  104. package/core/search/engine.js +139 -0
  105. package/core/search/highlight.js +48 -0
  106. package/core/search/index.js +126 -0
  107. package/core/search/providers.js +36 -0
  108. package/core/search/types.js +61 -0
  109. package/core/search/worker-client.js +56 -0
  110. package/core/search/worker.js +20 -0
  111. package/dist/chunks/a11y-utils-IRC7LOPF.js +16 -0
  112. package/dist/chunks/attributes-3BZLI7XF.js +364 -0
  113. package/dist/chunks/attributes-4N5JP4CG.js +364 -0
  114. package/dist/chunks/attributes-5Q2WXGRC.js +374 -0
  115. package/dist/chunks/attributes-AIR7SVLK.js +364 -0
  116. package/dist/chunks/attributes-BGRN5XZO.js +364 -0
  117. package/dist/chunks/attributes-BVSQAYLR.js +364 -0
  118. package/dist/chunks/attributes-CDYFUY7Y.js +364 -0
  119. package/dist/chunks/attributes-JMYJZBPE.js +364 -0
  120. package/dist/chunks/attributes-R5JY3X4O.js +374 -0
  121. package/dist/chunks/attributes-STYCS3O5.js +391 -0
  122. package/dist/chunks/attributes-TNSPQTHX.js +374 -0
  123. package/dist/chunks/attributes-TPANLMLF.js +391 -0
  124. package/dist/chunks/blade-LIQLVKZQ.js +19 -0
  125. package/dist/chunks/browser-MRKYZPEH.js +1149 -0
  126. package/dist/chunks/chunk-2354NEBP.js +109 -0
  127. package/dist/chunks/chunk-2VNA7G7S.js +109 -0
  128. package/dist/chunks/chunk-42VVPW6N.js +132 -0
  129. package/dist/chunks/chunk-7FFAMRFV.js +44 -0
  130. package/dist/chunks/chunk-7MCGPHVC.js +69 -0
  131. package/dist/chunks/chunk-AQLRJSGG.js +109 -0
  132. package/dist/chunks/chunk-EWPSDMQT.js +109 -0
  133. package/dist/chunks/chunk-F7OLHTGX.js +22 -0
  134. package/dist/chunks/chunk-J472ERN2.js +242 -0
  135. package/dist/chunks/chunk-LA7264K4.js +85 -0
  136. package/dist/chunks/chunk-M5CHQVP6.js +61 -0
  137. package/dist/chunks/chunk-MKZP2TBH.js +89 -0
  138. package/dist/chunks/chunk-QTJJ3DPO.js +109 -0
  139. package/dist/chunks/chunk-RDE3QE7Z.js +89 -0
  140. package/dist/chunks/chunk-RSMRR27R.js +109 -0
  141. package/dist/chunks/chunk-RZQVWFHW.js +109 -0
  142. package/dist/chunks/chunk-SRL6EWHP.js +109 -0
  143. package/dist/chunks/chunk-U4XHMZ7D.js +109 -0
  144. package/dist/chunks/chunk-V5YIUA6G.js +109 -0
  145. package/dist/chunks/chunk-XIET2VSZ.js +109 -0
  146. package/dist/chunks/chunk-XYLJ2GCB.js +205 -0
  147. package/dist/chunks/chunk-Z4JYQ2XX.js +51 -0
  148. package/dist/chunks/chunk-ZPSPKUYD.js +109 -0
  149. package/dist/chunks/css-MQ5YU77P.js +28 -0
  150. package/dist/chunks/highlight-GJHHV4KM.js +37 -0
  151. package/dist/chunks/highlight-XTHRKBA3.js +37 -0
  152. package/dist/chunks/html-ZODC4DLQ.js +20 -0
  153. package/dist/chunks/js-MNSNYTJU.js +7 -0
  154. package/dist/chunks/json-VEM2HFH3.js +17 -0
  155. package/dist/chunks/markdown-E7OPGS3S.js +19 -0
  156. package/dist/chunks/php-MLL7T3LT.js +41 -0
  157. package/dist/chunks/plain-LJJDC5TN.js +8 -0
  158. package/dist/chunks/runtime-entry.js +14 -0
  159. package/dist/chunks/shell-QTRK4U4E.js +35 -0
  160. package/dist/chunks/sql-PPWLHGJ2.js +23 -0
  161. package/dist/chunks/typescript-JT3CCYWL.js +30 -0
  162. package/dist/chunks/velin-accordion-FBIPAEXG.js +105 -0
  163. package/dist/chunks/velin-accordion-QAQO7BI7.js +117 -0
  164. package/dist/chunks/velin-announcer-PVTXXCWR.js +33 -0
  165. package/dist/chunks/velin-bottom-nav-2N2TYWOF.js +86 -0
  166. package/dist/chunks/velin-bottom-nav-7GEMPIM6.js +86 -0
  167. package/dist/chunks/velin-bottom-nav-CTU6FFZV.js +101 -0
  168. package/dist/chunks/velin-bottom-nav-N3DFQR66.js +86 -0
  169. package/dist/chunks/velin-carousel-Y5VCOABZ.js +213 -0
  170. package/dist/chunks/velin-carousel-ZTBANFQQ.js +213 -0
  171. package/dist/chunks/velin-code-block-ASUBTAQV.js +119 -0
  172. package/dist/chunks/velin-code-block-CIAURDRJ.js +132 -0
  173. package/dist/chunks/velin-code-block-TSUKPY4C.js +123 -0
  174. package/dist/chunks/velin-code-block-Y6CM726Q.js +119 -0
  175. package/dist/chunks/velin-collapse-5XYBUIID.js +80 -0
  176. package/dist/chunks/velin-combobox-2KDTCQ7N.js +155 -0
  177. package/dist/chunks/velin-combobox-NXS4QB4R.js +155 -0
  178. package/dist/chunks/velin-combobox-UGA56HP3.js +155 -0
  179. package/dist/chunks/velin-command-CKDNO4BW.js +148 -0
  180. package/dist/chunks/velin-command-M7RNHUPR.js +136 -0
  181. package/dist/chunks/velin-command-ONKO2A3J.js +136 -0
  182. package/dist/chunks/velin-command-TMLSRGIU.js +136 -0
  183. package/dist/chunks/velin-copy-G2TZ5YBB.js +81 -0
  184. package/dist/chunks/velin-copy-NYDBOKXT.js +81 -0
  185. package/dist/chunks/velin-copy-T5KDTDXP.js +81 -0
  186. package/dist/chunks/velin-countdown-4ZVDGK4R.js +101 -0
  187. package/dist/chunks/velin-countdown-5XSTN3BH.js +101 -0
  188. package/dist/chunks/velin-countdown-7AIY66CU.js +101 -0
  189. package/dist/chunks/velin-counter-ISCTEAHI.js +118 -0
  190. package/dist/chunks/velin-counter-L5FYJF7A.js +121 -0
  191. package/dist/chunks/velin-dialog-D2GUHSCD.js +144 -0
  192. package/dist/chunks/velin-dialog-ELFOZIXZ.js +152 -0
  193. package/dist/chunks/velin-dialog-GTTZI564.js +147 -0
  194. package/dist/chunks/velin-dialog-IJLFDXAJ.js +144 -0
  195. package/dist/chunks/velin-dialog-TNS3WXMB.js +144 -0
  196. package/dist/chunks/velin-drawer-BE6TYN3H.js +130 -0
  197. package/dist/chunks/velin-drawer-DLL2GLT6.js +130 -0
  198. package/dist/chunks/velin-drawer-MJS6WCF7.js +130 -0
  199. package/dist/chunks/velin-dropdown-PLUIFA5M.js +172 -0
  200. package/dist/chunks/velin-email-N5B5ZYTE.js +90 -0
  201. package/dist/chunks/velin-email-NTM6DG3V.js +90 -0
  202. package/dist/chunks/velin-email-RBX6ZR4S.js +90 -0
  203. package/dist/chunks/velin-haptic-4QQTM3RK.js +50 -0
  204. package/dist/chunks/velin-icon-7M76DOPB.js +164 -0
  205. package/dist/chunks/velin-icon-KZO3IEHG.js +164 -0
  206. package/dist/chunks/velin-icon-WTFPG2DD.js +191 -0
  207. package/dist/chunks/velin-icon-ZTSKUOVN.js +193 -0
  208. package/dist/chunks/velin-lightbox-6E7CAATP.js +149 -0
  209. package/dist/chunks/velin-lightbox-I75U6JF4.js +140 -0
  210. package/dist/chunks/velin-lightbox-QOTB4PRL.js +140 -0
  211. package/dist/chunks/velin-lightbox-UCD6N7HF.js +140 -0
  212. package/dist/chunks/velin-live-dot-RJHX2DGY.js +74 -0
  213. package/dist/chunks/velin-live-dot-XHUZCIDZ.js +67 -0
  214. package/dist/chunks/velin-menubar-I426AED2.js +86 -0
  215. package/dist/chunks/velin-menubar-J66JXRWW.js +86 -0
  216. package/dist/chunks/velin-menubar-SFEXJE56.js +86 -0
  217. package/dist/chunks/velin-modal-2HOBXE6F.js +176 -0
  218. package/dist/chunks/velin-modal-5HYNNNUI.js +176 -0
  219. package/dist/chunks/velin-modal-AEOTZ67O.js +177 -0
  220. package/dist/chunks/velin-modal-GLI2XZZB.js +176 -0
  221. package/dist/chunks/velin-persist-DFPL3QP4.js +110 -0
  222. package/dist/chunks/velin-popover-EXINRIGJ.js +145 -0
  223. package/dist/chunks/velin-popover-HQW6Q2Y6.js +172 -0
  224. package/dist/chunks/velin-popover-OXX7MRZ6.js +145 -0
  225. package/dist/chunks/velin-popover-T72HK3DF.js +151 -0
  226. package/dist/chunks/velin-popover-YKCCROJG.js +145 -0
  227. package/dist/chunks/velin-progress-ring-E4YRLZHH.js +66 -0
  228. package/dist/chunks/velin-rating-6CDBI6DG.js +91 -0
  229. package/dist/chunks/velin-rating-N4DI2XNL.js +91 -0
  230. package/dist/chunks/velin-rating-XRQJV4LO.js +91 -0
  231. package/dist/chunks/velin-scroll-top-F2FCZNYD.js +58 -0
  232. package/dist/chunks/velin-scroll-top-OHYVVHHY.js +58 -0
  233. package/dist/chunks/velin-scrollspy-OKCT4FDV.js +50 -0
  234. package/dist/chunks/velin-search-2XRQFBCS.js +556 -0
  235. package/dist/chunks/velin-search-4YHJWYSS.js +556 -0
  236. package/dist/chunks/velin-search-7B4KJ6TX.js +557 -0
  237. package/dist/chunks/velin-search-LWHY23Q5.js +474 -0
  238. package/dist/chunks/velin-secure-field-6PV7RZDJ.js +95 -0
  239. package/dist/chunks/velin-secure-field-H7FSBUJW.js +95 -0
  240. package/dist/chunks/velin-secure-field-OFNAXCDP.js +95 -0
  241. package/dist/chunks/velin-segmented-control-EKL4E3BL.js +109 -0
  242. package/dist/chunks/velin-segmented-control-GYD5BIXQ.js +109 -0
  243. package/dist/chunks/velin-segmented-control-PQX6LKOJ.js +109 -0
  244. package/dist/chunks/velin-sheet-3OGI4HD7.js +119 -0
  245. package/dist/chunks/velin-sheet-OUK6572T.js +119 -0
  246. package/dist/chunks/velin-sheet-R2Y67X6H.js +119 -0
  247. package/dist/chunks/velin-sparkline-GVEANJVW.js +184 -0
  248. package/dist/chunks/velin-sparkline-KDA3GQAN.js +162 -0
  249. package/dist/chunks/velin-sparkline-XVTFC6GE.js +181 -0
  250. package/dist/chunks/velin-stepper-2ZIHLKGM.js +141 -0
  251. package/dist/chunks/velin-stepper-7ECRUYHD.js +148 -0
  252. package/dist/chunks/velin-stepper-FYEUEWE6.js +141 -0
  253. package/dist/chunks/velin-stepper-X54WGHDG.js +141 -0
  254. package/dist/chunks/velin-stepper-wc-QU3KRVQR.js +133 -0
  255. package/dist/chunks/velin-tabs-5UQ5ZVMV.js +138 -0
  256. package/dist/chunks/velin-theme-toggle-32J2CBNC.js +291 -0
  257. package/dist/chunks/velin-theme-toggle-BNNS7WLV.js +285 -0
  258. package/dist/chunks/velin-theme-toggle-NO7V4TWI.js +285 -0
  259. package/dist/chunks/velin-theme-toggle-QELCJM2Q.js +291 -0
  260. package/dist/chunks/velin-toast-OMMOA2DK.js +109 -0
  261. package/dist/chunks/velin-toast-RCZ4CSUC.js +109 -0
  262. package/dist/chunks/velin-toast-RSF2IHT3.js +113 -0
  263. package/dist/chunks/velin-toast-WEUBTJG6.js +109 -0
  264. package/dist/chunks/velin-tooltip-664IOHZA.js +112 -0
  265. package/dist/chunks/velin-tooltip-BDHGRTQB.js +112 -0
  266. package/dist/chunks/velin-tooltip-HVUOKNVX.js +112 -0
  267. package/dist/chunks/velin-tooltip-wc-LXDVT6DE.js +103 -0
  268. package/dist/chunks/worker-client-R6DBYPFT.js +46 -0
  269. package/dist/llms.test.txt +40 -0
  270. package/dist/llms.txt +40 -0
  271. package/dist/search-index.json +1773 -0
  272. package/dist/search-index.test.json +1773 -0
  273. package/dist/themes/brutalist.min.css +1 -1
  274. package/dist/themes/midnight.min.css +1 -1
  275. package/dist/themes/pastel.min.css +1 -1
  276. package/dist/themes/retro.min.css +1 -1
  277. package/dist/themes/sunset.min.css +1 -1
  278. package/dist/velin-agent.json +684 -0
  279. package/dist/velin-agent.test.json +684 -0
  280. package/dist/velinstyle-components.iife.js +7959 -2199
  281. package/dist/velinstyle-components.js +7982 -2174
  282. package/dist/velinstyle-components.min.js +521 -90
  283. package/dist/velinstyle.css +1290 -282
  284. package/dist/velinstyle.d.ts +54 -0
  285. package/dist/velinstyle.min.css +1 -1
  286. package/examples/search-index.schema.json +33 -0
  287. package/package.json +57 -10
  288. package/src/a11y/authentication.css +37 -0
  289. package/src/a11y/consistent-help.css +22 -0
  290. package/src/a11y/dragging-alternatives.css +30 -0
  291. package/src/a11y/focus-appearance.css +20 -0
  292. package/src/a11y/high-contrast-aaa.css +16 -26
  293. package/src/a11y/security.css +18 -0
  294. package/src/a11y/skip-link.css +3 -1
  295. package/src/a11y/sr-only.css +1 -1
  296. package/src/base/reset.css +0 -25
  297. package/src/base/wc-placeholder.css +102 -0
  298. package/src/components/attributes.css +42 -0
  299. package/src/components/highlight.css +182 -0
  300. package/src/components/input-group.css +1 -2
  301. package/src/components/nav.css +151 -151
  302. package/src/components/search.css +95 -0
  303. package/src/components/stepper.css +2 -4
  304. package/src/components/timeline.css +1 -2
  305. package/src/components/tooltip.css +2 -4
  306. package/src/layout/container.css +5 -5
  307. package/src/layout/grid.css +8 -8
  308. package/src/layout/patterns.css +5 -5
  309. package/src/themes/brutalist.css +2 -11
  310. package/src/themes/corporate.css +0 -9
  311. package/src/themes/earth.css +0 -9
  312. package/src/themes/forest.css +0 -9
  313. package/src/themes/midnight.css +1 -10
  314. package/src/themes/neon.css +0 -9
  315. package/src/themes/nordic.css +0 -9
  316. package/src/themes/ocean.css +0 -9
  317. package/src/themes/pastel.css +1 -10
  318. package/src/themes/retro.css +2 -11
  319. package/src/themes/sharp.css +0 -7
  320. package/src/themes/soft.css +0 -7
  321. package/src/themes/sunset.css +1 -10
  322. package/src/tokens/color.css +45 -46
  323. package/src/tokens/fonts.css +10 -0
  324. package/src/tokens/motion.css +7 -0
  325. package/src/tokens/typography.css +4 -5
  326. package/src/utilities/animation.css +99 -3
  327. package/src/utilities/chart-animation.css +101 -0
  328. package/src/utilities/display.css +3 -3
  329. package/src/utilities/divide.css +2 -6
  330. package/src/utilities/filter-effects.css +103 -0
  331. package/src/utilities/responsive.css +4 -4
  332. package/src/utilities/safe-area.css +39 -0
  333. package/src/utilities/scroll-animation.css +34 -0
  334. package/src/utilities/spacing.css +17 -8
  335. package/src/utilities/text.css +4 -1
  336. package/src/velinstyle.css +12 -0
package/README.de.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 — barrierefreies CSS und Web Components" width="100%">
6
- </picture>
7
-
8
- <br>
3
+ ```
4
+ ██╗ ██╗███████╗██╗ ██╗███╗ ██╗███████╗████████╗██╗ ██╗██╗ ███████╗
5
+ ██║ ██║██╔════╝██║ ██║████╗ ██║██╔════╝╚══██╔══╝██║ ██║██║ ██╔════╝
6
+ ██║ ██║█████╗ ██║ ██║██╔██╗ ██║███████╗ ██║ ███████║██║ █████╗
7
+ ╚██╗ ██╔╝██╔══╝ ██║ ██║██║╚██╗██║╚════██║ ██║ ██╔══██║██║ ██╔══╝
8
+ ╚████╔╝ ███████╗███████╗██║██║ ╚████║███████║ ██║ ██║ ██║███████╗███████╗
9
+ ╚═══╝ ╚══════╝╚══════╝╚═╝╚═╝ ╚═══╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝
10
+ ```
9
11
 
10
12
  [![Lizenz: MIT](https://img.shields.io/badge/Lizenz-MIT-2563eb?style=flat-square)](LICENSE)
11
- [![Release](https://img.shields.io/badge/Release-v0.7.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-willkommen-2563eb?style=flat-square)](CONTRIBUTING.de.md)
18
+
19
+ ```bash
20
+ npm i @birdapi/velinstyle
21
+ ```
17
22
 
18
- [Dokumentation](https://skylitedesign.github.io/velinstyle/) · [npm](https://www.npmjs.com/package/@birdapi/velinstyle) · [Beispiele](samples/) · [Playground](tools/playground/index.html) · [Theme Builder](tools/theme-builder/index.html) · [Issues](https://github.com/SkyliteDesign/velinstyle/issues)
23
+ **[Website](https://velinstyle.info)** · **[Doku](https://velinstyle.info/docs/)** · **[Demos](https://velinstyle.info/demos/)** · **[npm](https://www.npmjs.com/package/@birdapi/velinstyle)** · **[Stern auf GitHub](https://github.com/SkyliteDesign/velinstyle)**
19
24
 
20
25
  **[English](README.md)** · **Deutsch**
21
26
 
@@ -23,291 +28,197 @@
23
28
 
24
29
  ---
25
30
 
26
- ## Inhalt
27
-
28
- - [Problem & Lösung](#the-problem--the-fix)
29
- - [Das liefert VelinStyle](#what-you-get)
30
- - [Architektur](#architecture)
31
- - [Schnellstart](#quick-start)
32
- - [Warum VelinStyle?](#why-velinstyle)
33
- - [Demo-Galerie](#demo-gallery)
34
- - [CLI-Referenz](#cli-reference)
35
- - [Ökosystem](#ecosystem)
36
- - [Mitmachen](#join-in)
37
- - [Browser-Unterstützung](#browser-support)
38
- - [Lizenz](#license)
39
-
40
- ---
41
-
42
- ## The problem & the fix
43
-
44
- <table>
45
- <tr>
46
- <td width="50%" valign="top">
47
-
48
- ### Das Problem
49
-
50
- Unter Zeitdruck landen **Barrierefreiheit** und **konsistentes Theming** oft erst am Ende—wenn überhaupt. Schwere Bundles, einheitlicher Bootstrap-Look oder Tailwind-Sprawl frustrieren Design und Engineering gleichermassen.
51
-
52
- </td>
53
- <td width="50%" valign="top">
54
-
55
- ### Die VelinStyle-Antwort
31
+ **VelinStyle** ist das **WCAG-2.2-AAA-CSS-Framework** mit nativer JavaScript-Runtime und Web Components — CSS-Utilities, 0.9.0-Module (Search, Motion, Highlight, Attributes, Meta) und Security-Toolchain, **ohne externe UI-Framework-Abhängigkeiten** im Kern.
56
32
 
57
- **WCAG-AA-Muster**, **OKLCH-Tokens**, **container-sensitives Layout** und **Web Components** gehören zum System—nicht als Nachrüstung. Lesbares CSS, optionale CLI, kein Preprocessor-Zwang.
33
+ Gedacht für Teams mit **lesbarem HTML**, **AAA-Token-Defaults** (AA über `data-velin-contrast="aa"`) und **CLI-Automatisierung** statt Utility-Chaos.
58
34
 
59
- </td>
60
- </tr>
61
- </table>
35
+ > **Dogfooding:** Die gesamte VelinStyle-Website und Dokumentation läuft zu 100 % mit VelinStyle — ohne externe Skripte oder UI-Frameworks.
62
36
 
63
37
  ---
64
38
 
65
- ## What you get
66
-
67
- <table>
68
- <thead>
69
- <tr><th></th><th>Funktion</th><th>Was du davon hast</th></tr>
70
- </thead>
71
- <tbody>
72
- <tr><td align="center">♿</td><td><strong>WCAG AA by design</strong></td><td>Fokus, ARIA und Tastatur in Komponenten und Overlays</td></tr>
73
- <tr><td align="center">🎨</td><td><strong>OKLCH + 13 Theme-Presets</strong></td><td>Perzeptuell gleichmässige Farben; Dark Mode per Token-Swap</td></tr>
74
- <tr><td align="center">📦</td><td><strong>~46 KB CSS + ~66 KB JS (min)</strong></td><td>Schlank im Vergleich zu vielen All-in-One-Stacks</td></tr>
75
- <tr><td align="center">📐</td><td><strong>Container Queries + Utilities</strong></td><td>Bausteine passen sich <em>ihrem</em> Container an, nicht nur dem Viewport</td></tr>
76
- <tr><td align="center">🧩</td><td><strong>25 CSS-Module · 21 Web Components</strong></td><td>Modals, Tabs, Drawer, Toasts, Icons—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>Optionale CLI</strong></td><td><code>init</code>, <code>build</code>, <code>icons</code>, <code>scan</code>, <code>prefix</code>, <code>blueprint</code>, <code>tokens build</code></td></tr>
78
- <tr><td align="center">🌍</td><td><strong>RTL-ready</strong></td><td>Logical Properties und layout-orientierte Defaults · <a href="samples/rtl.html">RTL-Beispiel</a></td></tr>
79
- </tbody>
80
- </table>
39
+ ## Features auf einen Blick
81
40
 
82
- ---
83
-
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
- ```
96
-
97
- Einstieg: [`src/velinstyle.css`](src/velinstyle.css) · Build-Ausgabe: `dist/` (`npm run build`)
98
-
99
- ```css
100
- @layer tokens, reset, base, a11y, layout, components, utilities, themes;
101
- ```
41
+ - **CSS-Utilities** — `velin-*` Spacing, Farbe, Flex, Motion, Safe-Area; Cascade Layers + OKLCH-Tokens
42
+ - **35+ Komponenten** — semantische BEM-Klassen (`velin-btn`, `velin-card`, `velin-grid`, …)
43
+ - **Motion-Runtime** — Reveal, Stagger, scroll-getriebene Animation, rAF-Scheduler
44
+ - **VelinSearch** — fuzzy Offline-Suche mit Highlighting und Kategorien
45
+ - **Syntax-Highlighting** — lazy In-View für JS, HTML, CSS, JSON und mehr
46
+ - **HTML-Attribute** — 27 deklarative Bridges (`velin-modal`, `velin-reveal`, `velin-scroll-top`, `velin-code`, …)
47
+ - **Qualität** — 36/36 A11y-Component-Contracts, Playwright Cross-Browser-Smoke (`npm run test:e2e`), CLS-Platzhalter (`wc-placeholder.css`)
48
+ - **Security-Tools** — `scan`, PII-Regeln, Sanitize-API, gehärtete Komponenten
49
+ - **CLI** — init, build, scan, scaffold, tokens, docs generate, perf audit, layout audit
50
+ - **Velin-Meta** — `velin-agent.json`, `llms.txt` und Page-Level-Agent-JSON für KI-Assistenten
102
51
 
103
52
  ---
104
53
 
105
- ## Quick start
106
-
107
- ### <span>①</span> Installation
54
+ ## Installation
108
55
 
109
56
  ```bash
110
- npm install @birdapi/velinstyle
111
- ```
112
-
113
- ### <span>②</span> CSS + Komponenten einbinden (ES-Module)
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>
118
- ```
119
-
120
- <details>
121
- <summary><strong>CDN-Alternative</strong> (ohne 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>
57
+ npm i @birdapi/velinstyle
126
58
  ```
127
59
 
128
- </details>
60
+ | Pfad | Verwendung |
61
+ | --- | --- |
62
+ | `@birdapi/velinstyle/css` | Vollständiges minifiziertes Stylesheet |
63
+ | `@birdapi/velinstyle/bundle` | Web-Components-ESM-Bundle |
64
+ | `@birdapi/velinstyle/search` | VelinSearch-Modul |
65
+ | `@birdapi/velinstyle/motion` | Motion-Runtime |
66
+ | `@birdapi/velinstyle/attributes` | HTML-Attribut-Bridges |
67
+ | `@birdapi/velinstyle/highlight` | Syntax-Highlighting |
68
+ | `@birdapi/velinstyle/meta` | Agent-Metadaten-API |
129
69
 
130
- ### <span>③</span> Erste Oberfläche markupen
70
+ **CDN (Version pinnen):**
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">Hallo, VelinStyle.</p>
136
- <button type="button" class="velin-btn velin-btn--primary">Primäre Aktion</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
- > **Repository klonen?** `dist/` liegt nicht im Repo. `npm install` und `npm run build`, dann HTML auf `dist/velinstyle.min.css` und `dist/velinstyle-components.min.js` zeigen. Ohne ES-Module: `velinstyle-components.iife.js` — siehe [Dokumentation](docs/index.html).
77
+ Nach dem Klonen: `npm install && npm run build` `dist/` wird erzeugt, nicht committet.
141
78
 
142
79
  ---
143
80
 
144
- ## Why VelinStyle?
81
+ ## Quickstart
145
82
 
146
- Eine **einheitliche Produktsprache**—Präfix-Klassen (`velin-`), klare **`@layer`-Architektur**, modernes CSS (`@scope`, Nesting, `:has()`)—ohne **Liefergeschwindigkeit** zu opfern.
147
-
148
- | | Bootstrap | Tailwind | **VelinStyle** |
149
- | --- | :---: | :---: | :---: |
150
- | A11y | ⚠️ Teilweise | — Nicht eingebaut | ✅ **WCAG AA strukturell** |
151
- | Farben | HEX/RGB | HEX/RGB | ✅ **OKLCH** + tokenisierte Themes |
152
- | Dark Mode | ⚠️ Build / manuell | `dark:`-Varianten | ✅ **Token-Swap** (`data-velin-theme`) |
153
- | Layout | Viewport-first | Viewport-Utilities | ✅ **Container Queries** + Media |
154
- | Interaktion | ⚠️ Legacy-JS-Muster | Eigenes JS | ✅ **Web Components** |
155
- | Bundle (Richtwert) | ~230 KB CSS+JS | JIT / variabel | ✅ **~46 KB CSS + ~66 KB JS (min)** |
83
+ ```html
84
+ <!DOCTYPE html>
85
+ <html lang="de" 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">Loslegen</button>
94
+ <velin-code-block language="html" line-numbers>&lt;p class="velin-text-muted"&gt;Hallo VelinStyle&lt;/p&gt;</velin-code-block>
95
+ </body>
96
+ </html>
97
+ ```
156
98
 
157
99
  ---
158
100
 
159
- ## Demo gallery
160
-
161
- | Demo | Seite | Demo | Seite |
162
- | --- | --- | --- | --- |
163
- | Landing | [samples/landing.html](samples/landing.html) | Dashboard | [samples/dashboard.html](samples/dashboard.html) |
164
- | Login | [samples/login.html](samples/login.html) | Registrierung | [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) | E-Mail | [samples/email.html](samples/email.html) |
168
- | Kanban | [samples/kanban.html](samples/kanban.html) | Einstellungen | [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-Module (0.9.0)
170
102
 
171
- | Tool | Seite |
103
+ | Export | Beschreibung |
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-Suche, Provider, optional Web Worker |
106
+ | `@birdapi/velinstyle/motion` | `initMotion`, Stagger, Smooth Scroll, einheitlich `.velin-in-view` |
107
+ | `@birdapi/velinstyle/attributes` | Registry deklarativer `velin-*` HTML-Attribut-Bridges |
108
+ | `@birdapi/velinstyle/highlight` | `velinSyntax`, lazy Language Packs, OKLCH-Token-Farben |
109
+ | `@birdapi/velinstyle/meta` | `buildAgentBundle`, Page-Meta MIME `application/vnd.velinstyle.meta+json` |
175
110
 
176
111
  ---
177
112
 
178
- ## CLI reference
179
-
180
- Alle Befehle: `npx velinstyle <befehl>` · `npx velinstyle --help`
181
-
182
- <details>
183
- <summary><strong>Projekt &amp; Build</strong> — <code>init</code>, <code>build</code>, <code>themes</code>, <code>add</code></summary>
113
+ ## Web Components
184
114
 
185
- - **`npx velinstyle init`**erstellt `velinstyle.config.js` (Layer-Auswahl, Theme, Scan-Optionen).
186
- - **`npx velinstyle build`** — CSS-Bundle aus gewählten Layern (`--output` / `-o`, `--minify`).
187
- - **`npx velinstyle themes`** — listet 13 Theme-Presets.
188
- - **`npx velinstyle add &lt;komponente&gt;`** — kopiert eine einzelne Komponenten-CSS-Datei ins Projekt.
115
+ **36 kanonische** Custom Elements (38 Lazy-Loader-Einträge inkl. Legacy `velin-tooltip-wc` und `velin-stepper-wc`) reines CSS, wenn kein Verhalten nötig ist. `src/base/wc-placeholder.css` verringert Layout-Shift vor dem Upgrade.
189
116
 
190
- </details>
117
+ Beispiele: `velin-modal`, `velin-search`, `velin-code-block`, `velin-drawer`, `velin-stepper`, `velin-tooltip`, `velin-toast`, `velin-persist`.
191
118
 
192
- <details>
193
- <summary><strong>Icons</strong> Multi-Provider-Sprite-Workflow</summary>
119
+ - [Komponenten-Dokumentation](https://velinstyle.info/docs/components/buttons.html)
120
+ - [Generierte Web-Component-API](https://velinstyle.info/docs/generated/components/README.md)
194
121
 
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`** — Sprite neu bauen (im VelinStyle-Klon: schreibt `icons/svg/` und baut neu).
199
-
200
- </details>
201
-
202
- <details>
203
- <summary><strong>scan</strong> — Security, A11y &amp; CSS-Lint</summary>
204
-
205
- - **`npx velinstyle scan [pfad]`** — HTML, CSS, JS; **`--format json`** für CI.
206
- - **`--severity`** — Mindest-Stufe filtern: `error` | `warning` | `info`.
207
- - **`--fix`** — nur sichere Auto-Fixes; **`--fix-dry-run`** listet Dateien ohne Schreiben.
208
- - **`--fix-lang`** — BCP 47 für `lang` auf `<html>` (Standard `de`).
209
-
210
- **Auto-Fixes (Auszug):** `rel="noopener noreferrer"` bei riskantem `target="_blank"`; `lang` auf `<html>`; Skip-Link wenn `id="main"` existiert; rohe `z-index` → `--velin-z-*`.
122
+ ---
211
123
 
212
- **Nicht automatisch:** `javascript:`-URLs, `eval`, rohes `innerHTML`, Inline-Event-Handler — im Code bereinigen.
124
+ ## CLI
213
125
 
214
- **Trusted Types / XSS:** Der Scanner ersetzt keine CSP-Policies. Web Components nutzen `escapeHTML()` / `sanitizeURL()`; siehe [docs/security.html](docs/security.html).
126
+ | Befehl | Zweck |
127
+ | --- | --- |
128
+ | `npx velinstyle init` | `velinstyle.config.js` im Projekt anlegen |
129
+ | `npx velinstyle scan` | Security, Accessibility, CSS und PII prüfen |
130
+ | `npx velinstyle search index` | `dist/search-index.json` für Offline-Docs-Suche |
131
+ | `npx velinstyle tokens build` | Design-Tokens-JSON nach CSS kompilieren |
132
+ | `npx velinstyle meta` | `velin-agent.json` und `llms.txt` erzeugen |
215
133
 
216
- </details>
134
+ Außerdem: `npx velinstyle docs generate` — Markdown-Referenz unter `docs/generated/`.
217
135
 
218
- <details>
219
- <summary><strong>prefix</strong> — Klassen-Codemod &amp; JSON-Maps</summary>
136
+ ---
220
137
 
221
- - **`npx velinstyle prefix &lt;ordner&gt;`** — Standard: Dry-Run; **`--write`** schreibt Änderungen.
222
- - **`--bootstrap-display`** — mappt Bootstrap-`d-*` auf Velin-Display-Klassen.
223
- - **`velinstyle-prefix-map.json`** im Zielordner oder **`--map datei.json`** — explizite Token → Klassen (überschreibt Katalog und Bootstrap-Aliase). Beispiel: [examples/velinstyle-prefix-map.sample.json](examples/velinstyle-prefix-map.sample.json).
138
+ ## Security
224
139
 
225
- </details>
140
+ VelinStyle bringt **Security-Tooling mit**, nicht als Nachgedanke:
226
141
 
227
- <details>
228
- <summary><strong>blueprint</strong>14 HTML-Snippets</summary>
142
+ - **`velinstyle scan`** — Markup- und A11y-Regeln; PII-Scanner (`--only pii`, `--fix`)
143
+ - **`@birdapi/velinstyle/sanitize`** URL- und Text-Sanitization
144
+ - **`<velin-secure-field>`** — keine Klartext-Secrets im DOM; gehärtete Search-/Copy-URLs
229
145
 
230
- - **`npx velinstyle blueprint list`**
231
- - **`npx velinstyle blueprint &lt;name&gt; -o datei.html`**
146
+ [Security-Dokumentation](https://velinstyle.info/docs/extend/security.html)
232
147
 
233
- 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
+ ---
234
149
 
235
- </details>
150
+ ## Velin-Meta
236
151
 
237
- <details>
238
- <summary><strong>tokens build</strong> — Design-Tokens → CSS</summary>
152
+ Maschinenlesbarer Kontext für **Cursor, Copilot und eigene Agenten**:
239
153
 
240
- ```bash
241
- npx velinstyle tokens build --input examples/tokens.sample.json -o tokens.css
242
- ```
154
+ - **Globaler 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`
243
157
 
244
- </details>
158
+ [Velin-Meta-Guide](https://velinstyle.info/docs/guides/velin-meta.html)
245
159
 
246
160
  ---
247
161
 
248
- ## Ecosystem
162
+ ## Doku & Website
249
163
 
250
- <table>
251
- <tr>
252
- <td width="50%" valign="top">
164
+ - [velinstyle.info](https://velinstyle.info) — Produktseite und Demos
165
+ - [Guides](https://velinstyle.info/docs/guides/index.html) · [Feature scope](https://velinstyle.info/docs/guides/feature-scope.html)
166
+ - [API-Referenz](https://velinstyle.info/docs/guides/api-reference.html) — aus dem Quellcode generiert
167
+ - [Generiertes Markdown](https://velinstyle.info/docs/generated/index.html) — Komponenten, Tokens, Utilities, CLI, Regeln
253
168
 
254
- **Starter &amp; Pakete**
169
+ ---
255
170
 
256
- - [templates/vite-velinstyle](templates/vite-velinstyle) — Vite + 3 Seiten + Theme-Toggle
257
- - [@velinstyle/react](packages/react) — experimentelle dünne React-Wrapper
171
+ ## Changelog
258
172
 
259
- **Dokumentation**
173
+ Alle Releases, Breaking Changes und Migrationsschritte: [CHANGELOG.md](CHANGELOG.md).
260
174
 
261
- - [Erste Schritte](docs/getting-started.html) · [Migration](docs/migration.html)
262
- - [A11y-Patterns](docs/a11y-patterns/index.html) · [Security](docs/security.html)
175
+ ---
263
176
 
264
- </td>
265
- <td width="50%" valign="top">
177
+ ## Vergleich
266
178
 
267
- **Entwicklung (dieses Repo)**
179
+ | | Bootstrap | Tailwind | Shoelace | **VelinStyle** |
180
+ | --- | :---: | :---: | :---: | :---: |
181
+ | HTML-Lesbarkeit | Mittel | Niedrig | Mittel | **Hoch** |
182
+ | Klassen-Vorhersagbarkeit | Mittel | Niedrig | Mittel | **`velin-btn--primary`** |
183
+ | Utility-Wucher | Niedrig | **Hoch** | Niedrig | **Kontrolliert** |
184
+ | Override-Story | Schwer | Config-Datei | Shadow DOM | **CSS-Layer + Tokens** |
185
+ | Barrierefreiheit | Teilweise | DIY | Gute WC | **WCAG 2.2 AAA-Tokens** |
186
+ | Dark Mode | Manuell | `dark:` überall | Theme-Attribut | **Token-Tausch** |
187
+ | App-Chrome | Legacy-JS | BYO | nur WC | **CSS + optionale WCs** |
188
+ | Liefergeschwindigkeit | Schnell | Schnell (mit Build) | Schnell | **CDN, kein Build nötig** |
189
+ | Runtime-Module | — | — | — | **Search, Motion, Meta, …** |
268
190
 
269
- ```bash
270
- npm install
271
- npm run dev # Serve auf :3000
272
- npm run build
273
- npm test
274
- npm run test:a11y
275
- ```
191
+ ---
276
192
 
277
- **Themes (13):** `brutalist`, `corporate`, `earth`, `forest`, `midnight`, `neon`, `nordic`, `ocean`, `pastel`, `retro`, `sharp`, `soft`, `sunset` — siehe [docs/themes.html](docs/themes.html).
193
+ ## Live-Demos
278
194
 
279
- </td>
280
- </tr>
281
- </table>
195
+ Vollständige Anwendungsseiten auf [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) · [Alle Demos](https://velinstyle.info/demos/) · [showcase-demos forken](https://github.com/SkyliteDesign/velinstyle/tree/main/showcase-demos)
282
196
 
283
- <!-- Maintainer: .github/social-preview.png (1280×640) unter 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>
284
202
 
285
203
  ---
286
204
 
287
- ## Join in
205
+ ## Mitwirken
288
206
 
289
- Wenn VelinStyle dir Zeit spart oder die Latte für inklusive UI hebt:
207
+ PRs sind willkommen.
290
208
 
291
- 1. **Stern dalassen**, damit andere das Projekt finden.
292
- 2. **Issue öffnen** mit Feedback, Grenzfällen oder Ideen.
293
- 3. **Pull Request** nach [CONTRIBUTING.de.md](CONTRIBUTING.de.md).
209
+ 1. Repository forken
210
+ 2. `npm install && npm run build`
211
+ 3. Änderung umsetzen · `npm test`, `npm run test:a11y` und `npm run test:e2e` ausführen (nach `npm run build`)
212
+ 4. Pull Request öffnen
294
213
 
295
- Maintainer: [RELEASING.md](RELEASING.md) · [SECURITY.md](SECURITY.md)
214
+ Details: [CONTRIBUTING.de.md](CONTRIBUTING.de.md)
296
215
 
297
216
  ---
298
217
 
299
- ## Browser support
300
-
301
- VelinStyle ist **mobile-first**. Nutze einen **aktuellen Evergreen-Browser** (aktuelles Safari unter iOS, Chrome/Firefox unter Android und Desktop). OKLCH, Container Queries, `@layer` und Web Components brauchen moderne Engines. Viewport-`meta` für Mobile nicht vergessen. Ältere In-App-WebViews können Farben oder Layout falsch darstellen.
302
-
303
- ---
304
-
305
- ## License
218
+ ## Lizenz
306
219
 
307
220
  [MIT](LICENSE) — Copyright © 2026 VelinStyle
308
221
 
309
- ---
310
-
311
222
  <div align="center">
312
223
 
313
224
  Mit Sorgfalt fürs Web von [SkyliteDesign](https://github.com/SkyliteDesign)