@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.
- package/README.de.md +135 -224
- package/README.md +134 -223
- package/cli/blueprint.js +8 -0
- package/cli/blueprints/bottom-nav-mobile.html +17 -0
- package/cli/blueprints/cookie-consent.html +9 -0
- package/cli/blueprints/empty-state.html +5 -0
- package/cli/blueprints/filter-bar.html +15 -0
- package/cli/blueprints/notification-center.html +13 -0
- package/cli/blueprints/onboarding.html +23 -0
- package/cli/blueprints/pricing-table.html +20 -0
- package/cli/blueprints/settings-panel.html +20 -0
- package/cli/cli-manifest.json +97 -0
- package/cli/docgen/extract-a11y.js +89 -0
- package/cli/docgen/extract-attributes.js +95 -0
- package/cli/docgen/extract-cli.js +50 -0
- package/cli/docgen/extract-components.js +175 -0
- package/cli/docgen/extract-meta.js +32 -0
- package/cli/docgen/extract-rules.js +76 -0
- package/cli/docgen/extract-tokens.js +79 -0
- package/cli/docgen/extract-utilities.js +75 -0
- package/cli/docgen/markdown.js +43 -0
- package/cli/docs-generate.js +196 -0
- package/cli/index.js +236 -5
- package/cli/layout-audit.js +325 -0
- package/cli/meta.js +97 -0
- package/cli/perf-audit.js +174 -0
- package/cli/pii-scanner.js +134 -0
- package/cli/scaffold-recipes.json +70 -0
- package/cli/scaffold.js +155 -0
- package/cli/scanner-rules-data.js +62 -0
- package/cli/scanner.js +136 -1
- package/cli/search-index.js +163 -0
- package/cli/tokens-build.js +21 -1
- package/cli/tokens-validate.js +69 -0
- package/components/a11y-entry.js +42 -0
- package/components/a11y-utils.js +71 -0
- package/components/focus-manager.js +45 -8
- package/components/index.js +40 -11
- package/components/runtime/component-loaders.js +43 -0
- package/components/runtime/index.js +77 -0
- package/components/runtime-entry.js +10 -0
- package/components/sanitize.js +135 -28
- package/components/shadow-a11y-styles.js +18 -0
- package/components/velin-accordion.js +12 -0
- package/components/velin-announcer.js +35 -0
- package/components/velin-bottom-nav.js +108 -0
- package/components/velin-carousel.js +2 -2
- package/components/velin-code-block.js +142 -0
- package/components/velin-combobox.js +149 -0
- package/components/velin-command.js +142 -0
- package/components/velin-copy.js +18 -5
- package/components/velin-counter.js +155 -0
- package/components/velin-dialog.js +9 -1
- package/components/velin-email.js +94 -0
- package/components/velin-flip.js +220 -0
- package/components/velin-icon.js +99 -22
- package/components/velin-lightbox.js +8 -3
- package/components/velin-live-dot.js +90 -0
- package/components/velin-menubar.js +83 -0
- package/components/velin-modal.js +6 -3
- package/components/velin-popover.js +34 -2
- package/components/velin-rating.js +91 -0
- package/components/velin-reveal.js +22 -0
- package/components/velin-scroll-top.js +1 -1
- package/components/velin-search.js +267 -0
- package/components/velin-secure-field.js +99 -0
- package/components/velin-segmented-control.js +108 -0
- package/components/velin-sheet.js +107 -0
- package/components/velin-sparkline.js +227 -0
- package/components/{velin-stepper-wc.js → velin-stepper.js} +37 -8
- package/components/velin-theme-toggle.js +284 -60
- package/components/velin-toast.js +4 -0
- package/components/{velin-tooltip-wc.js → velin-tooltip.js} +22 -3
- package/core/a11y/component-contracts.json +221 -0
- package/core/attributes/index.js +6 -0
- package/core/attributes/registry.js +268 -0
- package/core/highlight/highlight.js +114 -0
- package/core/highlight/index.js +29 -0
- package/core/highlight/languages/_utils.js +52 -0
- package/core/highlight/languages/blade.js +16 -0
- package/core/highlight/languages/css.js +26 -0
- package/core/highlight/languages/html.js +17 -0
- package/core/highlight/languages/js.js +58 -0
- package/core/highlight/languages/json.js +14 -0
- package/core/highlight/languages/markdown.js +16 -0
- package/core/highlight/languages/php.js +39 -0
- package/core/highlight/languages/plain.js +7 -0
- package/core/highlight/languages/shell.js +33 -0
- package/core/highlight/languages/sql.js +20 -0
- package/core/highlight/languages/typescript.js +28 -0
- package/core/highlight/observe.js +53 -0
- package/core/highlight/registry.js +107 -0
- package/core/highlight/render.js +35 -0
- package/core/highlight/types.js +28 -0
- package/core/meta/build.js +293 -0
- package/core/meta/index.js +17 -0
- package/core/meta/schema.js +49 -0
- package/core/motion/effects.js +54 -0
- package/core/motion/index.js +76 -0
- package/core/motion/scheduler.js +72 -0
- package/core/motion/scroll.js +32 -0
- package/core/motion/stagger.js +24 -0
- package/core/search/docs-url.js +96 -0
- package/core/search/engine.js +139 -0
- package/core/search/highlight.js +48 -0
- package/core/search/index.js +126 -0
- package/core/search/providers.js +36 -0
- package/core/search/types.js +61 -0
- package/core/search/worker-client.js +56 -0
- package/core/search/worker.js +20 -0
- package/dist/chunks/a11y-utils-IRC7LOPF.js +16 -0
- package/dist/chunks/attributes-3BZLI7XF.js +364 -0
- package/dist/chunks/attributes-4N5JP4CG.js +364 -0
- package/dist/chunks/attributes-5Q2WXGRC.js +374 -0
- package/dist/chunks/attributes-AIR7SVLK.js +364 -0
- package/dist/chunks/attributes-BGRN5XZO.js +364 -0
- package/dist/chunks/attributes-BVSQAYLR.js +364 -0
- package/dist/chunks/attributes-CDYFUY7Y.js +364 -0
- package/dist/chunks/attributes-JMYJZBPE.js +364 -0
- package/dist/chunks/attributes-R5JY3X4O.js +374 -0
- package/dist/chunks/attributes-STYCS3O5.js +391 -0
- package/dist/chunks/attributes-TNSPQTHX.js +374 -0
- package/dist/chunks/attributes-TPANLMLF.js +391 -0
- package/dist/chunks/blade-LIQLVKZQ.js +19 -0
- package/dist/chunks/browser-MRKYZPEH.js +1149 -0
- package/dist/chunks/chunk-2354NEBP.js +109 -0
- package/dist/chunks/chunk-2VNA7G7S.js +109 -0
- package/dist/chunks/chunk-42VVPW6N.js +132 -0
- package/dist/chunks/chunk-7FFAMRFV.js +44 -0
- package/dist/chunks/chunk-7MCGPHVC.js +69 -0
- package/dist/chunks/chunk-AQLRJSGG.js +109 -0
- package/dist/chunks/chunk-EWPSDMQT.js +109 -0
- package/dist/chunks/chunk-F7OLHTGX.js +22 -0
- package/dist/chunks/chunk-J472ERN2.js +242 -0
- package/dist/chunks/chunk-LA7264K4.js +85 -0
- package/dist/chunks/chunk-M5CHQVP6.js +61 -0
- package/dist/chunks/chunk-MKZP2TBH.js +89 -0
- package/dist/chunks/chunk-QTJJ3DPO.js +109 -0
- package/dist/chunks/chunk-RDE3QE7Z.js +89 -0
- package/dist/chunks/chunk-RSMRR27R.js +109 -0
- package/dist/chunks/chunk-RZQVWFHW.js +109 -0
- package/dist/chunks/chunk-SRL6EWHP.js +109 -0
- package/dist/chunks/chunk-U4XHMZ7D.js +109 -0
- package/dist/chunks/chunk-V5YIUA6G.js +109 -0
- package/dist/chunks/chunk-XIET2VSZ.js +109 -0
- package/dist/chunks/chunk-XYLJ2GCB.js +205 -0
- package/dist/chunks/chunk-Z4JYQ2XX.js +51 -0
- package/dist/chunks/chunk-ZPSPKUYD.js +109 -0
- package/dist/chunks/css-MQ5YU77P.js +28 -0
- package/dist/chunks/highlight-GJHHV4KM.js +37 -0
- package/dist/chunks/highlight-XTHRKBA3.js +37 -0
- package/dist/chunks/html-ZODC4DLQ.js +20 -0
- package/dist/chunks/js-MNSNYTJU.js +7 -0
- package/dist/chunks/json-VEM2HFH3.js +17 -0
- package/dist/chunks/markdown-E7OPGS3S.js +19 -0
- package/dist/chunks/php-MLL7T3LT.js +41 -0
- package/dist/chunks/plain-LJJDC5TN.js +8 -0
- package/dist/chunks/runtime-entry.js +14 -0
- package/dist/chunks/shell-QTRK4U4E.js +35 -0
- package/dist/chunks/sql-PPWLHGJ2.js +23 -0
- package/dist/chunks/typescript-JT3CCYWL.js +30 -0
- package/dist/chunks/velin-accordion-FBIPAEXG.js +105 -0
- package/dist/chunks/velin-accordion-QAQO7BI7.js +117 -0
- package/dist/chunks/velin-announcer-PVTXXCWR.js +33 -0
- package/dist/chunks/velin-bottom-nav-2N2TYWOF.js +86 -0
- package/dist/chunks/velin-bottom-nav-7GEMPIM6.js +86 -0
- package/dist/chunks/velin-bottom-nav-CTU6FFZV.js +101 -0
- package/dist/chunks/velin-bottom-nav-N3DFQR66.js +86 -0
- package/dist/chunks/velin-carousel-Y5VCOABZ.js +213 -0
- package/dist/chunks/velin-carousel-ZTBANFQQ.js +213 -0
- package/dist/chunks/velin-code-block-ASUBTAQV.js +119 -0
- package/dist/chunks/velin-code-block-CIAURDRJ.js +132 -0
- package/dist/chunks/velin-code-block-TSUKPY4C.js +123 -0
- package/dist/chunks/velin-code-block-Y6CM726Q.js +119 -0
- package/dist/chunks/velin-collapse-5XYBUIID.js +80 -0
- package/dist/chunks/velin-combobox-2KDTCQ7N.js +155 -0
- package/dist/chunks/velin-combobox-NXS4QB4R.js +155 -0
- package/dist/chunks/velin-combobox-UGA56HP3.js +155 -0
- package/dist/chunks/velin-command-CKDNO4BW.js +148 -0
- package/dist/chunks/velin-command-M7RNHUPR.js +136 -0
- package/dist/chunks/velin-command-ONKO2A3J.js +136 -0
- package/dist/chunks/velin-command-TMLSRGIU.js +136 -0
- package/dist/chunks/velin-copy-G2TZ5YBB.js +81 -0
- package/dist/chunks/velin-copy-NYDBOKXT.js +81 -0
- package/dist/chunks/velin-copy-T5KDTDXP.js +81 -0
- package/dist/chunks/velin-countdown-4ZVDGK4R.js +101 -0
- package/dist/chunks/velin-countdown-5XSTN3BH.js +101 -0
- package/dist/chunks/velin-countdown-7AIY66CU.js +101 -0
- package/dist/chunks/velin-counter-ISCTEAHI.js +118 -0
- package/dist/chunks/velin-counter-L5FYJF7A.js +121 -0
- package/dist/chunks/velin-dialog-D2GUHSCD.js +144 -0
- package/dist/chunks/velin-dialog-ELFOZIXZ.js +152 -0
- package/dist/chunks/velin-dialog-GTTZI564.js +147 -0
- package/dist/chunks/velin-dialog-IJLFDXAJ.js +144 -0
- package/dist/chunks/velin-dialog-TNS3WXMB.js +144 -0
- package/dist/chunks/velin-drawer-BE6TYN3H.js +130 -0
- package/dist/chunks/velin-drawer-DLL2GLT6.js +130 -0
- package/dist/chunks/velin-drawer-MJS6WCF7.js +130 -0
- package/dist/chunks/velin-dropdown-PLUIFA5M.js +172 -0
- package/dist/chunks/velin-email-N5B5ZYTE.js +90 -0
- package/dist/chunks/velin-email-NTM6DG3V.js +90 -0
- package/dist/chunks/velin-email-RBX6ZR4S.js +90 -0
- package/dist/chunks/velin-haptic-4QQTM3RK.js +50 -0
- package/dist/chunks/velin-icon-7M76DOPB.js +164 -0
- package/dist/chunks/velin-icon-KZO3IEHG.js +164 -0
- package/dist/chunks/velin-icon-WTFPG2DD.js +191 -0
- package/dist/chunks/velin-icon-ZTSKUOVN.js +193 -0
- package/dist/chunks/velin-lightbox-6E7CAATP.js +149 -0
- package/dist/chunks/velin-lightbox-I75U6JF4.js +140 -0
- package/dist/chunks/velin-lightbox-QOTB4PRL.js +140 -0
- package/dist/chunks/velin-lightbox-UCD6N7HF.js +140 -0
- package/dist/chunks/velin-live-dot-RJHX2DGY.js +74 -0
- package/dist/chunks/velin-live-dot-XHUZCIDZ.js +67 -0
- package/dist/chunks/velin-menubar-I426AED2.js +86 -0
- package/dist/chunks/velin-menubar-J66JXRWW.js +86 -0
- package/dist/chunks/velin-menubar-SFEXJE56.js +86 -0
- package/dist/chunks/velin-modal-2HOBXE6F.js +176 -0
- package/dist/chunks/velin-modal-5HYNNNUI.js +176 -0
- package/dist/chunks/velin-modal-AEOTZ67O.js +177 -0
- package/dist/chunks/velin-modal-GLI2XZZB.js +176 -0
- package/dist/chunks/velin-persist-DFPL3QP4.js +110 -0
- package/dist/chunks/velin-popover-EXINRIGJ.js +145 -0
- package/dist/chunks/velin-popover-HQW6Q2Y6.js +172 -0
- package/dist/chunks/velin-popover-OXX7MRZ6.js +145 -0
- package/dist/chunks/velin-popover-T72HK3DF.js +151 -0
- package/dist/chunks/velin-popover-YKCCROJG.js +145 -0
- package/dist/chunks/velin-progress-ring-E4YRLZHH.js +66 -0
- package/dist/chunks/velin-rating-6CDBI6DG.js +91 -0
- package/dist/chunks/velin-rating-N4DI2XNL.js +91 -0
- package/dist/chunks/velin-rating-XRQJV4LO.js +91 -0
- package/dist/chunks/velin-scroll-top-F2FCZNYD.js +58 -0
- package/dist/chunks/velin-scroll-top-OHYVVHHY.js +58 -0
- package/dist/chunks/velin-scrollspy-OKCT4FDV.js +50 -0
- package/dist/chunks/velin-search-2XRQFBCS.js +556 -0
- package/dist/chunks/velin-search-4YHJWYSS.js +556 -0
- package/dist/chunks/velin-search-7B4KJ6TX.js +557 -0
- package/dist/chunks/velin-search-LWHY23Q5.js +474 -0
- package/dist/chunks/velin-secure-field-6PV7RZDJ.js +95 -0
- package/dist/chunks/velin-secure-field-H7FSBUJW.js +95 -0
- package/dist/chunks/velin-secure-field-OFNAXCDP.js +95 -0
- package/dist/chunks/velin-segmented-control-EKL4E3BL.js +109 -0
- package/dist/chunks/velin-segmented-control-GYD5BIXQ.js +109 -0
- package/dist/chunks/velin-segmented-control-PQX6LKOJ.js +109 -0
- package/dist/chunks/velin-sheet-3OGI4HD7.js +119 -0
- package/dist/chunks/velin-sheet-OUK6572T.js +119 -0
- package/dist/chunks/velin-sheet-R2Y67X6H.js +119 -0
- package/dist/chunks/velin-sparkline-GVEANJVW.js +184 -0
- package/dist/chunks/velin-sparkline-KDA3GQAN.js +162 -0
- package/dist/chunks/velin-sparkline-XVTFC6GE.js +181 -0
- package/dist/chunks/velin-stepper-2ZIHLKGM.js +141 -0
- package/dist/chunks/velin-stepper-7ECRUYHD.js +148 -0
- package/dist/chunks/velin-stepper-FYEUEWE6.js +141 -0
- package/dist/chunks/velin-stepper-X54WGHDG.js +141 -0
- package/dist/chunks/velin-stepper-wc-QU3KRVQR.js +133 -0
- package/dist/chunks/velin-tabs-5UQ5ZVMV.js +138 -0
- package/dist/chunks/velin-theme-toggle-32J2CBNC.js +291 -0
- package/dist/chunks/velin-theme-toggle-BNNS7WLV.js +285 -0
- package/dist/chunks/velin-theme-toggle-NO7V4TWI.js +285 -0
- package/dist/chunks/velin-theme-toggle-QELCJM2Q.js +291 -0
- package/dist/chunks/velin-toast-OMMOA2DK.js +109 -0
- package/dist/chunks/velin-toast-RCZ4CSUC.js +109 -0
- package/dist/chunks/velin-toast-RSF2IHT3.js +113 -0
- package/dist/chunks/velin-toast-WEUBTJG6.js +109 -0
- package/dist/chunks/velin-tooltip-664IOHZA.js +112 -0
- package/dist/chunks/velin-tooltip-BDHGRTQB.js +112 -0
- package/dist/chunks/velin-tooltip-HVUOKNVX.js +112 -0
- package/dist/chunks/velin-tooltip-wc-LXDVT6DE.js +103 -0
- package/dist/chunks/worker-client-R6DBYPFT.js +46 -0
- package/dist/llms.test.txt +40 -0
- package/dist/llms.txt +40 -0
- package/dist/search-index.json +1773 -0
- package/dist/search-index.test.json +1773 -0
- package/dist/themes/brutalist.min.css +1 -1
- package/dist/themes/midnight.min.css +1 -1
- package/dist/themes/pastel.min.css +1 -1
- package/dist/themes/retro.min.css +1 -1
- package/dist/themes/sunset.min.css +1 -1
- package/dist/velin-agent.json +684 -0
- package/dist/velin-agent.test.json +684 -0
- package/dist/velinstyle-components.iife.js +7959 -2199
- package/dist/velinstyle-components.js +7982 -2174
- package/dist/velinstyle-components.min.js +521 -90
- package/dist/velinstyle.css +1290 -282
- package/dist/velinstyle.d.ts +54 -0
- package/dist/velinstyle.min.css +1 -1
- package/examples/search-index.schema.json +33 -0
- package/package.json +57 -10
- package/src/a11y/authentication.css +37 -0
- package/src/a11y/consistent-help.css +22 -0
- package/src/a11y/dragging-alternatives.css +30 -0
- package/src/a11y/focus-appearance.css +20 -0
- package/src/a11y/high-contrast-aaa.css +16 -26
- package/src/a11y/security.css +18 -0
- package/src/a11y/skip-link.css +3 -1
- package/src/a11y/sr-only.css +1 -1
- package/src/base/reset.css +0 -25
- package/src/base/wc-placeholder.css +102 -0
- package/src/components/attributes.css +42 -0
- package/src/components/highlight.css +182 -0
- package/src/components/input-group.css +1 -2
- package/src/components/nav.css +151 -151
- package/src/components/search.css +95 -0
- package/src/components/stepper.css +2 -4
- package/src/components/timeline.css +1 -2
- package/src/components/tooltip.css +2 -4
- package/src/layout/container.css +5 -5
- package/src/layout/grid.css +8 -8
- package/src/layout/patterns.css +5 -5
- package/src/themes/brutalist.css +2 -11
- package/src/themes/corporate.css +0 -9
- package/src/themes/earth.css +0 -9
- package/src/themes/forest.css +0 -9
- package/src/themes/midnight.css +1 -10
- package/src/themes/neon.css +0 -9
- package/src/themes/nordic.css +0 -9
- package/src/themes/ocean.css +0 -9
- package/src/themes/pastel.css +1 -10
- package/src/themes/retro.css +2 -11
- package/src/themes/sharp.css +0 -7
- package/src/themes/soft.css +0 -7
- package/src/themes/sunset.css +1 -10
- package/src/tokens/color.css +45 -46
- package/src/tokens/fonts.css +10 -0
- package/src/tokens/motion.css +7 -0
- package/src/tokens/typography.css +4 -5
- package/src/utilities/animation.css +99 -3
- package/src/utilities/chart-animation.css +101 -0
- package/src/utilities/display.css +3 -3
- package/src/utilities/divide.css +2 -6
- package/src/utilities/filter-effects.css +103 -0
- package/src/utilities/responsive.css +4 -4
- package/src/utilities/safe-area.css +39 -0
- package/src/utilities/scroll-animation.css +34 -0
- package/src/utilities/spacing.css +17 -8
- package/src/utilities/text.css +4 -1
- package/src/velinstyle.css +12 -0
package/README.de.md
CHANGED
|
@@ -1,21 +1,26 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
```
|
|
4
|
+
██╗ ██╗███████╗██╗ ██╗███╗ ██╗███████╗████████╗██╗ ██╗██╗ ███████╗
|
|
5
|
+
██║ ██║██╔════╝██║ ██║████╗ ██║██╔════╝╚══██╔══╝██║ ██║██║ ██╔════╝
|
|
6
|
+
██║ ██║█████╗ ██║ ██║██╔██╗ ██║███████╗ ██║ ███████║██║ █████╗
|
|
7
|
+
╚██╗ ██╔╝██╔══╝ ██║ ██║██║╚██╗██║╚════██║ ██║ ██╔══██║██║ ██╔══╝
|
|
8
|
+
╚████╔╝ ███████╗███████╗██║██║ ╚████║███████║ ██║ ██║ ██║███████╗███████╗
|
|
9
|
+
╚═══╝ ╚══════╝╚══════╝╚═╝╚═╝ ╚═══╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝
|
|
10
|
+
```
|
|
9
11
|
|
|
10
12
|
[](LICENSE)
|
|
11
|
-
[](docs/a11y.html)
|
|
13
|
-
[]()
|
|
14
|
-
[]()
|
|
13
|
+
[](https://github.com/SkyliteDesign/velinstyle/releases/tag/v0.9.0)
|
|
15
14
|
[](https://www.npmjs.com/package/@birdapi/velinstyle)
|
|
16
|
-
[](https://velinstyle.info/docs/a11y.html)
|
|
16
|
+
[](https://github.com/SkyliteDesign/velinstyle/stargazers)
|
|
17
|
+
[](CONTRIBUTING.de.md)
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm i @birdapi/velinstyle
|
|
21
|
+
```
|
|
17
22
|
|
|
18
|
-
[
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
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> & <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
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
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
|
-
##
|
|
106
|
-
|
|
107
|
-
### <span>①</span> Installation
|
|
54
|
+
## Installation
|
|
108
55
|
|
|
109
56
|
```bash
|
|
110
|
-
npm
|
|
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
|
-
|
|
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
|
-
|
|
70
|
+
**CDN (Version pinnen):**
|
|
131
71
|
|
|
132
72
|
```html
|
|
133
|
-
<
|
|
134
|
-
<
|
|
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
|
-
|
|
77
|
+
Nach dem Klonen: `npm install && npm run build` — `dist/` wird erzeugt, nicht committet.
|
|
141
78
|
|
|
142
79
|
---
|
|
143
80
|
|
|
144
|
-
##
|
|
81
|
+
## Quickstart
|
|
145
82
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
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><p class="velin-text-muted">Hallo VelinStyle</p></velin-code-block>
|
|
95
|
+
</body>
|
|
96
|
+
</html>
|
|
97
|
+
```
|
|
156
98
|
|
|
157
99
|
---
|
|
158
100
|
|
|
159
|
-
##
|
|
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
|
-
|
|
|
103
|
+
| Export | Beschreibung |
|
|
172
104
|
| --- | --- |
|
|
173
|
-
|
|
|
174
|
-
|
|
|
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
|
-
##
|
|
179
|
-
|
|
180
|
-
Alle Befehle: `npx velinstyle <befehl>` · `npx velinstyle --help`
|
|
181
|
-
|
|
182
|
-
<details>
|
|
183
|
-
<summary><strong>Projekt & Build</strong> — <code>init</code>, <code>build</code>, <code>themes</code>, <code>add</code></summary>
|
|
113
|
+
## Web Components
|
|
184
114
|
|
|
185
|
-
-
|
|
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 <komponente>`** — 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
|
-
|
|
117
|
+
Beispiele: `velin-modal`, `velin-search`, `velin-code-block`, `velin-drawer`, `velin-stepper`, `velin-tooltip`, `velin-toast`, `velin-persist`.
|
|
191
118
|
|
|
192
|
-
|
|
193
|
-
|
|
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
|
-
|
|
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 & 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
|
-
|
|
124
|
+
## CLI
|
|
213
125
|
|
|
214
|
-
|
|
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
|
-
|
|
134
|
+
Außerdem: `npx velinstyle docs generate` — Markdown-Referenz unter `docs/generated/`.
|
|
217
135
|
|
|
218
|
-
|
|
219
|
-
<summary><strong>prefix</strong> — Klassen-Codemod & JSON-Maps</summary>
|
|
136
|
+
---
|
|
220
137
|
|
|
221
|
-
|
|
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
|
-
|
|
140
|
+
VelinStyle bringt **Security-Tooling mit**, nicht als Nachgedanke:
|
|
226
141
|
|
|
227
|
-
|
|
228
|
-
|
|
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
|
-
-
|
|
231
|
-
- **`npx velinstyle blueprint <name> -o datei.html`**
|
|
146
|
+
[Security-Dokumentation](https://velinstyle.info/docs/extend/security.html)
|
|
232
147
|
|
|
233
|
-
|
|
148
|
+
---
|
|
234
149
|
|
|
235
|
-
|
|
150
|
+
## Velin-Meta
|
|
236
151
|
|
|
237
|
-
|
|
238
|
-
<summary><strong>tokens build</strong> — Design-Tokens → CSS</summary>
|
|
152
|
+
Maschinenlesbarer Kontext für **Cursor, Copilot und eigene Agenten**:
|
|
239
153
|
|
|
240
|
-
|
|
241
|
-
|
|
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
|
-
|
|
158
|
+
[Velin-Meta-Guide](https://velinstyle.info/docs/guides/velin-meta.html)
|
|
245
159
|
|
|
246
160
|
---
|
|
247
161
|
|
|
248
|
-
##
|
|
162
|
+
## Doku & Website
|
|
249
163
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
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
|
-
|
|
169
|
+
---
|
|
255
170
|
|
|
256
|
-
|
|
257
|
-
- [@velinstyle/react](packages/react) — experimentelle dünne React-Wrapper
|
|
171
|
+
## Changelog
|
|
258
172
|
|
|
259
|
-
|
|
173
|
+
Alle Releases, Breaking Changes und Migrationsschritte: [CHANGELOG.md](CHANGELOG.md).
|
|
260
174
|
|
|
261
|
-
|
|
262
|
-
- [A11y-Patterns](docs/a11y-patterns/index.html) · [Security](docs/security.html)
|
|
175
|
+
---
|
|
263
176
|
|
|
264
|
-
|
|
265
|
-
<td width="50%" valign="top">
|
|
177
|
+
## Vergleich
|
|
266
178
|
|
|
267
|
-
|
|
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
|
-
|
|
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
|
-
|
|
193
|
+
## Live-Demos
|
|
278
194
|
|
|
279
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
205
|
+
## Mitwirken
|
|
288
206
|
|
|
289
|
-
|
|
207
|
+
PRs sind willkommen.
|
|
290
208
|
|
|
291
|
-
1.
|
|
292
|
-
2.
|
|
293
|
-
3.
|
|
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
|
-
|
|
214
|
+
Details: [CONTRIBUTING.de.md](CONTRIBUTING.de.md)
|
|
296
215
|
|
|
297
216
|
---
|
|
298
217
|
|
|
299
|
-
##
|
|
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)
|