ui-style-kit-css 1.0.4 → 1.2.2
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/CHANGELOG.md +16 -57
- package/CONTRIBUTING.md +24 -0
- package/README.md +102 -140
- package/SECURITY.md +18 -0
- package/STYLE-MAP.md +36 -0
- package/{index.html → demo/index.html} +6 -119
- package/dist/ui-style-kit.css +739 -28
- package/dist/ui-style-kit.min.css +1 -7
- package/docs/PUBLISHING.md +28 -0
- package/docs/STYLE-GUIDE.md +28 -0
- package/docs/TOKENS.md +71 -0
- package/package.json +80 -128
- package/styles/bauhaus.css +5 -2
- package/styles/bento.css +5 -2
- package/styles/brutalism.css +83 -2
- package/styles/cyberpunk.css +83 -2
- package/styles/interactive-surface-bridge.css +341 -0
- package/styles/maximalist.css +5 -2
- package/styles/minimal-saas.css +5 -2
- package/styles/neumorphism.css +5 -2
- package/styles/retro-glass.css +83 -2
- package/styles/retrofuturism.css +5 -2
- package/styles/tactile.css +5 -2
- package/styles/y2k.css +83 -2
- package/CODE_OF_CONDUCT.md +0 -64
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Publishing Guide
|
|
2
|
+
|
|
3
|
+
## Dry run
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
npm run check
|
|
7
|
+
npm run pack:dry-run
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
`npm run check` rebuilds dist CSS, runs stylelint, executes unit package checks, verifies contrast pairs, and confirms package metadata. `npm run pack:dry-run` shows the exact files that would publish.
|
|
11
|
+
|
|
12
|
+
## Publish
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npm publish
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
For GitHub releases, create or dispatch a release for the matching package tag, such as `v1.2.2`. The release workflows verify that `package.json`, `package-lock.json`, and `CHANGELOG.md` are aligned before publishing.
|
|
19
|
+
|
|
20
|
+
## Versioning
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm run release:patch
|
|
24
|
+
npm run release:minor
|
|
25
|
+
npm run release:major
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Use patch for fixes, minor for new themes/styles, and major for breaking public API changes.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Choosing a UI Style
|
|
2
|
+
|
|
3
|
+
| UI style | Best for |
|
|
4
|
+
|---|---|
|
|
5
|
+
| Minimal SaaS | Dashboards, admin tools, SaaS apps, documentation, internal systems |
|
|
6
|
+
| Bento UI | Landing pages, portfolio sections, feature pages, product showcases |
|
|
7
|
+
| Maximalist / Playful | Creators, entertainment brands, events, bold client sites |
|
|
8
|
+
| Bauhaus / Swiss Modern | Agencies, artists, editorial pages, design-forward brands |
|
|
9
|
+
| Tactile / Skeuomorphic | Premium sites, distinctive client interfaces, control-panel metaphors |
|
|
10
|
+
| Neumorphism | Soft dashboards, experimental UI, visual demos |
|
|
11
|
+
| Retrofuturism | Futuristic product pages, portfolios, technology showcases |
|
|
12
|
+
| Brutalism | Bold landing pages, anti-template websites, creative brands |
|
|
13
|
+
| Cyberpunk | Security, gaming, encryption, developer demos, nightlife/tech branding |
|
|
14
|
+
| Y2K | Nostalgic, playful, music/fashion/event sites |
|
|
15
|
+
| Retro Glass | Futuristic premium apps, glass dashboards, hero sections |
|
|
16
|
+
Use `data-mode="contrast"` for high-contrast variants and pair it with semantic HTML for best accessibility outcomes.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## Visual regression baseline
|
|
20
|
+
|
|
21
|
+
The repository includes optional Playwright visual smoke checks:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm install
|
|
25
|
+
npm run test:visual
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Run visual tests before major releases or after large CSS refactors.
|
package/docs/TOKENS.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Token Contract
|
|
2
|
+
|
|
3
|
+
Each UI style uses its own prefix, but the token shape is intentionally consistent.
|
|
4
|
+
|
|
5
|
+
## Prefixes
|
|
6
|
+
|
|
7
|
+
| UI style | Prefix |
|
|
8
|
+
|---|---:|
|
|
9
|
+
| Minimal SaaS | `saas` |
|
|
10
|
+
| Bento UI | `bento` |
|
|
11
|
+
| Maximalist / Playful | `max` |
|
|
12
|
+
| Bauhaus / Swiss Modern | `bau` |
|
|
13
|
+
| Skeuomorphic / Tactile | `tactile` |
|
|
14
|
+
| Neumorphism | `neo` |
|
|
15
|
+
| Retrofuturism | `retro` |
|
|
16
|
+
| Brutalism | `brutal` |
|
|
17
|
+
| Cyberpunk | `cyber` |
|
|
18
|
+
| Y2K | `y2k` |
|
|
19
|
+
| Retro Glass | `rg` |
|
|
20
|
+
|
|
21
|
+
## Stable token families
|
|
22
|
+
|
|
23
|
+
Replace `<prefix>` with the style prefix:
|
|
24
|
+
|
|
25
|
+
```css
|
|
26
|
+
--<prefix>-bg
|
|
27
|
+
--<prefix>-surface
|
|
28
|
+
--<prefix>-surface-strong
|
|
29
|
+
--<prefix>-surface-soft
|
|
30
|
+
--<prefix>-text
|
|
31
|
+
--<prefix>-text-muted
|
|
32
|
+
--<prefix>-border
|
|
33
|
+
--<prefix>-primary
|
|
34
|
+
--<prefix>-primary-hover
|
|
35
|
+
--<prefix>-primary-text
|
|
36
|
+
--<prefix>-secondary
|
|
37
|
+
--<prefix>-secondary-hover
|
|
38
|
+
--<prefix>-secondary-text
|
|
39
|
+
--<prefix>-accent
|
|
40
|
+
--<prefix>-success
|
|
41
|
+
--<prefix>-warning
|
|
42
|
+
--<prefix>-danger
|
|
43
|
+
--<prefix>-link
|
|
44
|
+
--<prefix>-focus
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Most systems also expose RGB source tokens such as:
|
|
48
|
+
|
|
49
|
+
```css
|
|
50
|
+
--<prefix>-primary-rgb
|
|
51
|
+
--<prefix>-border-rgb
|
|
52
|
+
--<prefix>-focus-rgb
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
These are useful for custom alpha effects:
|
|
56
|
+
|
|
57
|
+
```css
|
|
58
|
+
.my-component {
|
|
59
|
+
border-color: rgb(var(--saas-primary-rgb) / 0.35);
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Override example
|
|
64
|
+
|
|
65
|
+
```css
|
|
66
|
+
/* Consumer CSS is unlayered, so it overrides the library's layered rules cleanly. */
|
|
67
|
+
[data-ui="minimal-saas"][data-theme="arctic-indigo"] {
|
|
68
|
+
--saas-radius-md: 1rem;
|
|
69
|
+
--saas-primary-rgb: 72 91 255;
|
|
70
|
+
}
|
|
71
|
+
```
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ui-style-kit-css",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.2.2",
|
|
4
|
+
"description": "CSS theme and UI style preset library for accessible websites, dashboards, admin interfaces, and client-facing pages.",
|
|
5
5
|
"style": "dist/ui-style-kit.css",
|
|
6
6
|
"main": "dist/ui-style-kit.css",
|
|
7
7
|
"unpkg": "dist/ui-style-kit.min.css",
|
|
@@ -9,78 +9,106 @@
|
|
|
9
9
|
"files": [
|
|
10
10
|
"dist",
|
|
11
11
|
"styles",
|
|
12
|
-
"
|
|
12
|
+
"demo",
|
|
13
|
+
"docs",
|
|
13
14
|
"README.md",
|
|
14
15
|
"LICENSE",
|
|
15
16
|
"CHANGELOG.md",
|
|
16
|
-
"
|
|
17
|
+
"STYLE-MAP.md",
|
|
18
|
+
"CONTRIBUTING.md",
|
|
19
|
+
"SECURITY.md"
|
|
17
20
|
],
|
|
18
21
|
"keywords": [
|
|
19
22
|
"css",
|
|
20
23
|
"ui",
|
|
21
24
|
"themes",
|
|
25
|
+
"theme-system",
|
|
22
26
|
"style-kit",
|
|
23
27
|
"design-system",
|
|
28
|
+
"css-library",
|
|
24
29
|
"accessibility",
|
|
25
30
|
"color-themes",
|
|
31
|
+
"dark-mode",
|
|
32
|
+
"light-mode",
|
|
33
|
+
"high-contrast",
|
|
34
|
+
"dashboard",
|
|
35
|
+
"admin-panel",
|
|
36
|
+
"web-design",
|
|
37
|
+
"responsive-design",
|
|
38
|
+
"css-variables",
|
|
39
|
+
"custom-properties",
|
|
26
40
|
"bento",
|
|
27
|
-
"saas",
|
|
41
|
+
"minimal-saas",
|
|
28
42
|
"glassmorphism",
|
|
43
|
+
"skeuomorphism",
|
|
29
44
|
"neumorphism",
|
|
30
45
|
"cyberpunk",
|
|
31
46
|
"y2k",
|
|
32
47
|
"brutalism",
|
|
33
|
-
"retrofuturism"
|
|
48
|
+
"retrofuturism",
|
|
49
|
+
"bauhaus"
|
|
34
50
|
],
|
|
35
|
-
"scripts": {
|
|
36
|
-
"build": "node scripts/build-css.js",
|
|
37
|
-
"lint": "npm run lint:css",
|
|
38
|
-
"lint:css": "stylelint \"styles/**/*.css\"",
|
|
39
|
-
"lint:css:fix": "stylelint \"styles/**/*.css\" --fix",
|
|
40
|
-
"prepublishOnly": "npm run lint && npm run build && npm run test:unit",
|
|
41
|
-
"test": "npm run test:unit",
|
|
42
|
-
"test:ci": "npm run lint && npm run build && npm run test:unit && npm run test:e2e",
|
|
43
|
-
"test:e2e": "node scripts/playwright-cli.js test",
|
|
44
|
-
"test:e2e:headed": "node scripts/playwright-cli.js test --headed",
|
|
45
|
-
"test:e2e:install": "node scripts/playwright-cli.js install chromium",
|
|
46
|
-
"test:e2e:install:ci": "node scripts/playwright-cli.js install --with-deps chromium",
|
|
47
|
-
"test:e2e:ui": "node scripts/playwright-cli.js test --ui",
|
|
48
|
-
"test:unit": "node --test tests/package-integrity.test.js",
|
|
49
|
-
"verify": "npm run lint && npm run build && npm run test:unit && npm run test:e2e"
|
|
50
|
-
},
|
|
51
51
|
"license": "MIT",
|
|
52
|
-
"engines": {
|
|
53
|
-
"node": ">=18.18.0"
|
|
54
|
-
},
|
|
55
52
|
"sideEffects": [
|
|
56
53
|
"*.css"
|
|
57
54
|
],
|
|
58
55
|
"exports": {
|
|
59
56
|
".": "./dist/ui-style-kit.css",
|
|
60
57
|
"./css": "./dist/ui-style-kit.css",
|
|
58
|
+
"./css.css": "./dist/ui-style-kit.css",
|
|
61
59
|
"./min": "./dist/ui-style-kit.min.css",
|
|
60
|
+
"./min.css": "./dist/ui-style-kit.min.css",
|
|
61
|
+
"./dist/ui-style-kit.css": "./dist/ui-style-kit.css",
|
|
62
|
+
"./dist/ui-style-kit.min.css": "./dist/ui-style-kit.min.css",
|
|
63
|
+
"./package.json": "./package.json",
|
|
62
64
|
"./styles/minimal-saas": "./styles/minimal-saas.css",
|
|
65
|
+
"./styles/minimal-saas.css": "./styles/minimal-saas.css",
|
|
63
66
|
"./minimal-saas": "./styles/minimal-saas.css",
|
|
67
|
+
"./minimal-saas.css": "./styles/minimal-saas.css",
|
|
64
68
|
"./styles/bento": "./styles/bento.css",
|
|
69
|
+
"./styles/bento.css": "./styles/bento.css",
|
|
65
70
|
"./bento": "./styles/bento.css",
|
|
71
|
+
"./bento.css": "./styles/bento.css",
|
|
66
72
|
"./styles/maximalist": "./styles/maximalist.css",
|
|
73
|
+
"./styles/maximalist.css": "./styles/maximalist.css",
|
|
67
74
|
"./maximalist": "./styles/maximalist.css",
|
|
75
|
+
"./maximalist.css": "./styles/maximalist.css",
|
|
68
76
|
"./styles/bauhaus": "./styles/bauhaus.css",
|
|
77
|
+
"./styles/bauhaus.css": "./styles/bauhaus.css",
|
|
69
78
|
"./bauhaus": "./styles/bauhaus.css",
|
|
79
|
+
"./bauhaus.css": "./styles/bauhaus.css",
|
|
70
80
|
"./styles/tactile": "./styles/tactile.css",
|
|
81
|
+
"./styles/tactile.css": "./styles/tactile.css",
|
|
71
82
|
"./tactile": "./styles/tactile.css",
|
|
83
|
+
"./tactile.css": "./styles/tactile.css",
|
|
72
84
|
"./styles/neumorphism": "./styles/neumorphism.css",
|
|
85
|
+
"./styles/neumorphism.css": "./styles/neumorphism.css",
|
|
73
86
|
"./neumorphism": "./styles/neumorphism.css",
|
|
87
|
+
"./neumorphism.css": "./styles/neumorphism.css",
|
|
74
88
|
"./styles/retrofuturism": "./styles/retrofuturism.css",
|
|
89
|
+
"./styles/retrofuturism.css": "./styles/retrofuturism.css",
|
|
75
90
|
"./retrofuturism": "./styles/retrofuturism.css",
|
|
91
|
+
"./retrofuturism.css": "./styles/retrofuturism.css",
|
|
76
92
|
"./styles/brutalism": "./styles/brutalism.css",
|
|
93
|
+
"./styles/brutalism.css": "./styles/brutalism.css",
|
|
77
94
|
"./brutalism": "./styles/brutalism.css",
|
|
95
|
+
"./brutalism.css": "./styles/brutalism.css",
|
|
78
96
|
"./styles/cyberpunk": "./styles/cyberpunk.css",
|
|
97
|
+
"./styles/cyberpunk.css": "./styles/cyberpunk.css",
|
|
79
98
|
"./cyberpunk": "./styles/cyberpunk.css",
|
|
99
|
+
"./cyberpunk.css": "./styles/cyberpunk.css",
|
|
80
100
|
"./styles/y2k": "./styles/y2k.css",
|
|
101
|
+
"./styles/y2k.css": "./styles/y2k.css",
|
|
81
102
|
"./y2k": "./styles/y2k.css",
|
|
103
|
+
"./y2k.css": "./styles/y2k.css",
|
|
82
104
|
"./styles/retro-glass": "./styles/retro-glass.css",
|
|
83
|
-
"./retro-glass": "./styles/retro-glass.css"
|
|
105
|
+
"./styles/retro-glass.css": "./styles/retro-glass.css",
|
|
106
|
+
"./retro-glass": "./styles/retro-glass.css",
|
|
107
|
+
"./retro-glass.css": "./styles/retro-glass.css",
|
|
108
|
+
"./styles/interactive-surface-bridge": "./styles/interactive-surface-bridge.css",
|
|
109
|
+
"./styles/interactive-surface-bridge.css": "./styles/interactive-surface-bridge.css",
|
|
110
|
+
"./interactive-surface-bridge": "./styles/interactive-surface-bridge.css",
|
|
111
|
+
"./interactive-surface-bridge.css": "./styles/interactive-surface-bridge.css"
|
|
84
112
|
},
|
|
85
113
|
"repository": {
|
|
86
114
|
"type": "git",
|
|
@@ -90,110 +118,34 @@
|
|
|
90
118
|
"url": "https://github.com/Foscat/ui-style-kit-css/issues"
|
|
91
119
|
},
|
|
92
120
|
"homepage": "https://github.com/Foscat/ui-style-kit-css#readme",
|
|
121
|
+
"engines": {
|
|
122
|
+
"node": ">=20"
|
|
123
|
+
},
|
|
124
|
+
"type": "module",
|
|
93
125
|
"devDependencies": {
|
|
94
|
-
"@playwright/test": "^1.
|
|
95
|
-
"lightningcss": "^1.30.2",
|
|
126
|
+
"@playwright/test": "^1.60.0",
|
|
96
127
|
"stylelint": "^17.12.0"
|
|
97
128
|
},
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
"
|
|
101
|
-
"
|
|
102
|
-
"
|
|
103
|
-
"
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"
|
|
110
|
-
"
|
|
111
|
-
"
|
|
112
|
-
"
|
|
113
|
-
"
|
|
114
|
-
"
|
|
115
|
-
"cssesc": "~3.0.0",
|
|
116
|
-
"debug": "~4.4.3",
|
|
117
|
-
"dir-glob": "~3.0.1",
|
|
118
|
-
"emoji-regex": "~8.0.0",
|
|
119
|
-
"env-paths": "~2.2.1",
|
|
120
|
-
"error-ex": "~1.3.4",
|
|
121
|
-
"fast-deep-equal": "~3.1.3",
|
|
122
|
-
"fast-glob": "~3.3.3",
|
|
123
|
-
"fast-uri": "~3.1.2",
|
|
124
|
-
"fastest-levenshtein": "~1.0.16",
|
|
125
|
-
"fastq": "~1.20.1",
|
|
126
|
-
"file-entry-cache": "~11.1.3",
|
|
127
|
-
"fill-range": "~7.1.1",
|
|
128
|
-
"flat-cache": "~6.1.22",
|
|
129
|
-
"flatted": "~3.4.2",
|
|
130
|
-
"glob-parent": "~5.1.2",
|
|
131
|
-
"global-modules": "~2.0.0",
|
|
132
|
-
"global-prefix": "~3.0.0",
|
|
133
|
-
"globby": "~11.1.0",
|
|
134
|
-
"globjoin": "~0.1.4",
|
|
135
|
-
"has-flag": "~4.0.0",
|
|
136
|
-
"hashery": "~1.5.1",
|
|
137
|
-
"hookified": "~1.15.1",
|
|
138
|
-
"html-tags": "~3.3.1",
|
|
139
|
-
"ignore": "~7.0.5",
|
|
140
|
-
"import-fresh": "~3.3.1",
|
|
141
|
-
"imurmurhash": "~0.1.4",
|
|
142
|
-
"ini": "~1.3.8",
|
|
143
|
-
"is-arrayish": "~0.2.1",
|
|
144
|
-
"is-extglob": "~2.1.1",
|
|
145
|
-
"is-fullwidth-code-point": "~3.0.0",
|
|
146
|
-
"is-glob": "~4.0.3",
|
|
147
|
-
"is-number": "~7.0.0",
|
|
148
|
-
"is-plain-object": "~5.0.0",
|
|
149
|
-
"isexe": "~2.0.0",
|
|
150
|
-
"js-tokens": "~4.0.0",
|
|
151
|
-
"js-yaml": "~4.1.1",
|
|
152
|
-
"json-parse-even-better-errors": "~2.3.1",
|
|
153
|
-
"json-schema-traverse": "~1.0.0",
|
|
154
|
-
"keyv": "~5.6.0",
|
|
155
|
-
"kind-of": "~6.0.3",
|
|
156
|
-
"known-css-properties": "~0.37.0",
|
|
157
|
-
"lines-and-columns": "~1.2.4",
|
|
158
|
-
"lodash.truncate": "~4.4.2",
|
|
159
|
-
"mathml-tag-names": "~2.1.3",
|
|
160
|
-
"mdn-data": "~2.27.1",
|
|
161
|
-
"meow": "~13.2.0",
|
|
162
|
-
"merge2": "~1.4.1",
|
|
163
|
-
"micromatch": "~4.0.8",
|
|
164
|
-
"ms": "~2.1.3",
|
|
165
|
-
"nanoid": "~3.3.12",
|
|
166
|
-
"normalize-path": "~3.0.0",
|
|
167
|
-
"parent-module": "~1.0.1",
|
|
168
|
-
"parse-json": "~5.2.0",
|
|
169
|
-
"path-type": "~4.0.0",
|
|
170
|
-
"picocolors": "~1.1.1",
|
|
171
|
-
"picomatch": "~2.3.2",
|
|
172
|
-
"postcss": "~8.5.15",
|
|
173
|
-
"postcss-resolve-nested-selector": "~0.1.6",
|
|
174
|
-
"postcss-safe-parser": "~7.0.1",
|
|
175
|
-
"postcss-selector-parser": "~7.1.1",
|
|
176
|
-
"postcss-value-parser": "~4.2.0",
|
|
177
|
-
"qified": "~0.10.1",
|
|
178
|
-
"queue-microtask": "~1.2.3",
|
|
179
|
-
"require-from-string": "~2.0.2",
|
|
180
|
-
"resolve-from": "~5.0.0",
|
|
181
|
-
"reusify": "~1.1.0",
|
|
182
|
-
"run-parallel": "~1.2.0",
|
|
183
|
-
"signal-exit": "~4.1.0",
|
|
184
|
-
"slash": "~3.0.0",
|
|
185
|
-
"slice-ansi": "~4.0.0",
|
|
186
|
-
"source-map-js": "~1.2.1",
|
|
187
|
-
"string-width": "~4.2.3",
|
|
188
|
-
"strip-ansi": "~6.0.1",
|
|
189
|
-
"supports-color": "~7.2.0",
|
|
190
|
-
"supports-hyperlinks": "~3.2.0",
|
|
191
|
-
"svg-tags": "~1.0.0",
|
|
192
|
-
"table": "~6.9.0",
|
|
193
|
-
"to-regex-range": "~5.0.1",
|
|
194
|
-
"util-deprecate": "~1.0.2",
|
|
195
|
-
"which": "~1.3.1",
|
|
196
|
-
"write-file-atomic": "~5.0.1"
|
|
129
|
+
"scripts": {
|
|
130
|
+
"build": "node scripts/build.mjs",
|
|
131
|
+
"lint": "stylelint \"styles/**/*.css\"",
|
|
132
|
+
"check:contrast": "node scripts/check-contrast.mjs",
|
|
133
|
+
"check:package": "node scripts/check-package.mjs",
|
|
134
|
+
"test": "npm run test:unit",
|
|
135
|
+
"test:unit": "node --test tests/package-integrity.test.js",
|
|
136
|
+
"test:e2e": "playwright test --config playwright.config.js",
|
|
137
|
+
"test:e2e:install:ci": "playwright install --with-deps chromium",
|
|
138
|
+
"check": "npm run build && npm run lint && npm run test:unit && npm run check:contrast && npm run check:package",
|
|
139
|
+
"pack:dry-run": "npm pack --dry-run",
|
|
140
|
+
"prepack": "npm run check",
|
|
141
|
+
"prepublishOnly": "npm run check",
|
|
142
|
+
"release:patch": "npm version patch && npm publish",
|
|
143
|
+
"release:minor": "npm version minor && npm publish",
|
|
144
|
+
"release:major": "npm version major && npm publish",
|
|
145
|
+
"test:visual": "playwright test --config playwright.config.mjs tests/demo-visual.spec.mjs"
|
|
197
146
|
},
|
|
198
|
-
"author": "
|
|
147
|
+
"author": "Kyle Foster",
|
|
148
|
+
"publishConfig": {
|
|
149
|
+
"access": "public"
|
|
150
|
+
}
|
|
199
151
|
}
|
package/styles/bauhaus.css
CHANGED
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
<body data-ui="bauhaus" data-theme="cyber-lime" data-mode="contrast">
|
|
11
11
|
========================================================= */
|
|
12
12
|
|
|
13
|
+
|
|
14
|
+
@layer ui-style-kit.bauhaus {
|
|
13
15
|
:root {
|
|
14
16
|
--bau-font-sans: Helvetica Neue, Helvetica, Arial, ui-sans-serif, system-ui, sans-serif;
|
|
15
17
|
--bau-font-display: Helvetica Neue, Helvetica, Arial, ui-sans-serif, system-ui, sans-serif;
|
|
@@ -90,7 +92,7 @@
|
|
|
90
92
|
--bau-border-rgb: 214 200 165;
|
|
91
93
|
--bau-primary-rgb: 184 135 47;
|
|
92
94
|
--bau-primary-hover-rgb: 148 104 31;
|
|
93
|
-
--bau-primary-text-rgb:
|
|
95
|
+
--bau-primary-text-rgb: 16 16 16;
|
|
94
96
|
--bau-secondary-rgb: 34 49 79;
|
|
95
97
|
--bau-secondary-hover-rgb: 23 36 60;
|
|
96
98
|
--bau-secondary-text-rgb: 255 255 255;
|
|
@@ -618,7 +620,7 @@
|
|
|
618
620
|
--bau-border-rgb: 198 216 179;
|
|
619
621
|
--bau-primary-rgb: 95 159 31;
|
|
620
622
|
--bau-primary-hover-rgb: 73 125 23;
|
|
621
|
-
--bau-primary-text-rgb:
|
|
623
|
+
--bau-primary-text-rgb: 16 16 16;
|
|
622
624
|
--bau-secondary-rgb: 20 127 134;
|
|
623
625
|
--bau-secondary-hover-rgb: 14 98 104;
|
|
624
626
|
--bau-secondary-text-rgb: 255 255 255;
|
|
@@ -976,3 +978,4 @@
|
|
|
976
978
|
[data-ui="bauhaus"] * { box-shadow: none !important; text-shadow: none !important; }
|
|
977
979
|
[data-ui="bauhaus"] a { color: #000 !important; text-decoration: underline; }
|
|
978
980
|
}
|
|
981
|
+
}
|
package/styles/bento.css
CHANGED
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
<body data-ui="bento" data-theme="cyber-lime" data-mode="contrast">
|
|
11
11
|
========================================================= */
|
|
12
12
|
|
|
13
|
+
|
|
14
|
+
@layer ui-style-kit.bento {
|
|
13
15
|
:root {
|
|
14
16
|
--bento-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
15
17
|
--bento-font-display: Inter, ui-sans-serif, system-ui, sans-serif;
|
|
@@ -90,7 +92,7 @@
|
|
|
90
92
|
--bento-border-rgb: 214 200 165;
|
|
91
93
|
--bento-primary-rgb: 184 135 47;
|
|
92
94
|
--bento-primary-hover-rgb: 148 104 31;
|
|
93
|
-
--bento-primary-text-rgb:
|
|
95
|
+
--bento-primary-text-rgb: 16 16 16;
|
|
94
96
|
--bento-secondary-rgb: 34 49 79;
|
|
95
97
|
--bento-secondary-hover-rgb: 23 36 60;
|
|
96
98
|
--bento-secondary-text-rgb: 255 255 255;
|
|
@@ -618,7 +620,7 @@
|
|
|
618
620
|
--bento-border-rgb: 198 216 179;
|
|
619
621
|
--bento-primary-rgb: 95 159 31;
|
|
620
622
|
--bento-primary-hover-rgb: 73 125 23;
|
|
621
|
-
--bento-primary-text-rgb:
|
|
623
|
+
--bento-primary-text-rgb: 16 16 16;
|
|
622
624
|
--bento-secondary-rgb: 20 127 134;
|
|
623
625
|
--bento-secondary-hover-rgb: 14 98 104;
|
|
624
626
|
--bento-secondary-text-rgb: 255 255 255;
|
|
@@ -977,3 +979,4 @@
|
|
|
977
979
|
[data-ui="bento"] * { box-shadow: none !important; text-shadow: none !important; }
|
|
978
980
|
[data-ui="bento"] a { color: #000 !important; text-decoration: underline; }
|
|
979
981
|
}
|
|
982
|
+
}
|
package/styles/brutalism.css
CHANGED
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
<body data-ui="brutalism" data-theme="midnight-gold" data-mode="contrast">
|
|
12
12
|
========================================================= */
|
|
13
13
|
|
|
14
|
+
|
|
15
|
+
@layer ui-style-kit.brutalism {
|
|
14
16
|
:root {
|
|
15
17
|
--brutal-radius-xs: 0.25rem;
|
|
16
18
|
--brutal-radius-sm: 0.5rem;
|
|
@@ -111,7 +113,7 @@
|
|
|
111
113
|
--brutal-border-rgb: 214 200 165;
|
|
112
114
|
--brutal-primary-rgb: 184 135 47;
|
|
113
115
|
--brutal-primary-hover-rgb: 148 104 31;
|
|
114
|
-
--brutal-primary-text-rgb:
|
|
116
|
+
--brutal-primary-text-rgb: 16 16 16;
|
|
115
117
|
--brutal-secondary-rgb: 34 49 79;
|
|
116
118
|
--brutal-secondary-hover-rgb: 23 36 60;
|
|
117
119
|
--brutal-secondary-text-rgb: 255 255 255;
|
|
@@ -671,7 +673,7 @@
|
|
|
671
673
|
--brutal-border-rgb: 198 216 179;
|
|
672
674
|
--brutal-primary-rgb: 95 159 31;
|
|
673
675
|
--brutal-primary-hover-rgb: 73 125 23;
|
|
674
|
-
--brutal-primary-text-rgb:
|
|
676
|
+
--brutal-primary-text-rgb: 16 16 16;
|
|
675
677
|
--brutal-secondary-rgb: 20 127 134;
|
|
676
678
|
--brutal-secondary-hover-rgb: 14 98 104;
|
|
677
679
|
--brutal-secondary-text-rgb: 255 255 255;
|
|
@@ -909,3 +911,82 @@
|
|
|
909
911
|
|
|
910
912
|
[data-ui="brutalism"] :focus-visible { outline: 4px solid var(--brutal-focus); outline-offset: 3px; }
|
|
911
913
|
@media (prefers-reduced-motion: reduce) { [data-ui="brutalism"] *, [data-ui="brutalism"] *::before, [data-ui="brutalism"] *::after { transition-duration: 1ms !important; animation-duration: 1ms !important; } }
|
|
914
|
+
|
|
915
|
+
/* =========================================================
|
|
916
|
+
Native HTML Coverage + CSS Accessibility Layer
|
|
917
|
+
========================================================= */
|
|
918
|
+
|
|
919
|
+
.brutal-sr-only,
|
|
920
|
+
.brutal-visually-hidden { position: absolute !important; inline-size: 1px !important; block-size: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; border: 0 !important; }
|
|
921
|
+
.brutal-skip-link { position: fixed; inset-block-start: 1rem; inset-inline-start: 1rem; z-index: 10000; transform: translateY(-150%); padding: .75rem 1rem; background: var(--brutal-primary); color: var(--brutal-primary-text); border: 3px solid var(--brutal-border); border-radius: var(--brutal-radius-sm); box-shadow: var(--brutal-shadow-md); font-weight: 900; text-decoration: none; }
|
|
922
|
+
.brutal-skip-link:focus { transform: translateY(0); }
|
|
923
|
+
.brutal-divider { width: 100%; height: 1px; border: 0; margin: 1.5rem 0; background: var(--brutal-border); }
|
|
924
|
+
|
|
925
|
+
[data-ui="brutalism"] :where(h1, h2, h3, h4, h5, h6) { color: var(--brutal-text); font-family: var(--brutal-font-display); line-height: 1.15; margin: 0 0 .65em; text-wrap: balance; }
|
|
926
|
+
[data-ui="brutalism"] :where(h1) { font-size: clamp(2rem, 5vw, 3.5rem); }
|
|
927
|
+
[data-ui="brutalism"] :where(h2) { font-size: clamp(1.55rem, 3vw, 2.35rem); }
|
|
928
|
+
[data-ui="brutalism"] :where(h3) { font-size: clamp(1.25rem, 2vw, 1.65rem); }
|
|
929
|
+
[data-ui="brutalism"] :where(p) { margin: 0 0 1rem; color: var(--brutal-text-muted); line-height: 1.7; }
|
|
930
|
+
[data-ui="brutalism"] :where(a) { color: var(--brutal-link); text-decoration-thickness: .08em; text-underline-offset: .18em; }
|
|
931
|
+
[data-ui="brutalism"] :where(a:hover) { color: var(--brutal-primary-hover); }
|
|
932
|
+
[data-ui="brutalism"] :where(ul, ol) { margin: 0 0 1rem; padding-left: 1.35rem; color: var(--brutal-text-muted); }
|
|
933
|
+
[data-ui="brutalism"] :where(li) { margin-block: .25rem; }
|
|
934
|
+
[data-ui="brutalism"] :where(blockquote) { margin: 1.25rem 0; padding: 1rem 1.25rem; color: var(--brutal-text); background: var(--brutal-surface-soft); border-left: .35rem solid var(--brutal-primary); border-radius: var(--brutal-radius-md); }
|
|
935
|
+
[data-ui="brutalism"] :where(code, kbd, samp) { font-family: var(--brutal-font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace); font-size: .92em; background: var(--brutal-surface-soft); color: var(--brutal-text); border: 1px solid rgb(var(--brutal-border-rgb) / .45); border-radius: var(--brutal-radius-xs); padding: .15em .35em; }
|
|
936
|
+
[data-ui="brutalism"] :where(pre) { overflow: auto; margin: 1rem 0; padding: 1rem; background: var(--brutal-surface-soft); color: var(--brutal-text); border: 1px solid var(--brutal-border); border-radius: var(--brutal-radius-md); }
|
|
937
|
+
[data-ui="brutalism"] :where(pre code) { display: block; padding: 0; border: 0; background: transparent; }
|
|
938
|
+
[data-ui="brutalism"] :where(hr) { height: 1px; border: 0; margin: 2rem 0; background: var(--brutal-border); }
|
|
939
|
+
[data-ui="brutalism"] :where(mark) { background: rgb(var(--brutal-warning-rgb) / .32); color: var(--brutal-text); border-radius: .2em; padding-inline: .15em; }
|
|
940
|
+
[data-ui="brutalism"] :where(small) { color: var(--brutal-text-muted); }
|
|
941
|
+
[data-ui="brutalism"] :where(abbr[title]) { text-decoration: underline dotted var(--brutal-primary); text-underline-offset: .18em; cursor: help; }
|
|
942
|
+
[data-ui="brutalism"] :where(img, picture, video, canvas, svg, iframe) { max-width: 100%; height: auto; }
|
|
943
|
+
[data-ui="brutalism"] :where(figure) { margin: 1.25rem 0; }
|
|
944
|
+
[data-ui="brutalism"] :where(figcaption) { margin-top: .5rem; color: var(--brutal-text-muted); font-size: .9rem; }
|
|
945
|
+
[data-ui="brutalism"] :where(fieldset) { min-inline-size: 0; margin: 0 0 1rem; padding: 1rem; border: 3px solid var(--brutal-border); border-radius: var(--brutal-radius-md); }
|
|
946
|
+
[data-ui="brutalism"] :where(legend) { padding-inline: .35rem; color: var(--brutal-text); font-weight: 900; }
|
|
947
|
+
[data-ui="brutalism"] :where(label) { color: var(--brutal-text); font-weight: 750; }
|
|
948
|
+
[data-ui="brutalism"] :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]), textarea, select) { width: 100%; min-height: 2.75rem; padding: .72rem .95rem; background: var(--brutal-surface-soft); color: var(--brutal-text); border: 3px solid var(--brutal-border); border-radius: var(--brutal-radius-md); font: inherit; }
|
|
949
|
+
[data-ui="brutalism"] :where(textarea) { resize: vertical; min-height: 7rem; }
|
|
950
|
+
[data-ui="brutalism"] :where(input, textarea, select, button) { font: inherit; }
|
|
951
|
+
[data-ui="brutalism"] :where(button, input[type="button"], input[type="submit"], input[type="reset"]) { min-height: 2.75rem; padding: .7rem 1rem; background: var(--brutal-primary); color: var(--brutal-primary-text); border: 3px solid var(--brutal-primary); border-radius: var(--brutal-radius-md); font-weight: 850; cursor: pointer; }
|
|
952
|
+
[data-ui="brutalism"] :where(button:hover, input[type="button"]:hover, input[type="submit"]:hover, input[type="reset"]:hover) { background: var(--brutal-primary-hover); border-color: var(--brutal-primary-hover); }
|
|
953
|
+
[data-ui="brutalism"] :where(input[type="checkbox"], input[type="radio"]) { inline-size: 1.1rem; block-size: 1.1rem; accent-color: var(--brutal-primary); }
|
|
954
|
+
[data-ui="brutalism"] :where(input[type="range"]) { width: 100%; accent-color: var(--brutal-primary); }
|
|
955
|
+
[data-ui="brutalism"] :where(input[type="color"]) { inline-size: 3rem; block-size: 2.4rem; padding: .2rem; background: var(--brutal-surface-soft); border: 3px solid var(--brutal-border); border-radius: var(--brutal-radius-sm); }
|
|
956
|
+
[data-ui="brutalism"] :where(input[type="file"]) { color: var(--brutal-text-muted); }
|
|
957
|
+
[data-ui="brutalism"] :where(input[type="file"]::file-selector-button) { margin-inline-end: .75rem; padding: .55rem .8rem; border: 3px solid var(--brutal-primary); border-radius: var(--brutal-radius-sm); background: var(--brutal-primary); color: var(--brutal-primary-text); font-weight: 800; cursor: pointer; }
|
|
958
|
+
[data-ui="brutalism"] :where(input:disabled, textarea:disabled, select:disabled, button:disabled, [aria-disabled="true"]) { opacity: .55; cursor: not-allowed; }
|
|
959
|
+
[data-ui="brutalism"] :where(input:invalid, textarea:invalid, select:invalid, [aria-invalid="true"]) { border-color: var(--brutal-danger); }
|
|
960
|
+
[data-ui="brutalism"] :where(table) { width: 100%; border-collapse: collapse; margin: 1rem 0; background: var(--brutal-surface); border: 3px solid var(--brutal-border); border-radius: var(--brutal-radius-md); overflow: hidden; }
|
|
961
|
+
[data-ui="brutalism"] :where(caption) { caption-side: bottom; padding: .75rem; color: var(--brutal-text-muted); font-size: .9rem; }
|
|
962
|
+
[data-ui="brutalism"] :where(th, td) { padding: .8rem .9rem; text-align: left; border-bottom: 1px solid var(--brutal-border); }
|
|
963
|
+
[data-ui="brutalism"] :where(th) { color: var(--brutal-text); background: rgb(var(--brutal-primary-rgb) / .08); }
|
|
964
|
+
[data-ui="brutalism"] :where(td) { color: var(--brutal-text-muted); }
|
|
965
|
+
[data-ui="brutalism"] :where(details) { margin: 1rem 0; padding: .9rem 1rem; background: var(--brutal-surface); border: 3px solid var(--brutal-border); border-radius: var(--brutal-radius-md); }
|
|
966
|
+
[data-ui="brutalism"] :where(summary) { color: var(--brutal-text); font-weight: 900; cursor: pointer; }
|
|
967
|
+
[data-ui="brutalism"] :where(dialog) { max-width: min(92vw, 42rem); padding: 0; background: var(--brutal-surface-strong); color: var(--brutal-text); border: 3px solid var(--brutal-border); border-radius: var(--brutal-radius-lg); box-shadow: 0 30px 80px rgb(0 0 0 / .42); }
|
|
968
|
+
[data-ui="brutalism"] :where(dialog::backdrop) { background: rgb(0 0 0 / .62); }
|
|
969
|
+
[data-ui="brutalism"] :where(progress, meter) { width: 100%; min-height: .9rem; accent-color: var(--brutal-primary); }
|
|
970
|
+
[data-ui="brutalism"] :where(:focus-visible) { outline: 3px solid var(--brutal-focus); outline-offset: 3px; box-shadow: 0 0 0 4px rgb(var(--brutal-focus-rgb) / .28); }
|
|
971
|
+
[data-ui="brutalism"] :where(:target) { scroll-margin-top: 6rem; outline: 3px solid var(--brutal-focus); outline-offset: .35rem; }
|
|
972
|
+
[data-ui="brutalism"] :where([aria-current="page"]) { font-weight: 900; }
|
|
973
|
+
[data-ui="brutalism"] :where([aria-busy="true"]) { cursor: progress; }
|
|
974
|
+
[data-ui="brutalism"] :where([hidden]) { display: none !important; }
|
|
975
|
+
[data-ui="brutalism"] ::selection { background: var(--brutal-primary); color: var(--brutal-primary-text); }
|
|
976
|
+
|
|
977
|
+
@media (prefers-reduced-motion: reduce) {
|
|
978
|
+
[data-ui="brutalism"] *, [data-ui="brutalism"] *::before, [data-ui="brutalism"] *::after { scroll-behavior: auto !important; transition-duration: 1ms !important; animation-duration: 1ms !important; animation-iteration-count: 1 !important; }
|
|
979
|
+
}
|
|
980
|
+
@media (prefers-contrast: more) {
|
|
981
|
+
[data-ui="brutalism"] { --brutal-border-alpha: 1; }
|
|
982
|
+
}
|
|
983
|
+
@media (forced-colors: active) {
|
|
984
|
+
[data-ui="brutalism"] * { forced-color-adjust: auto; }
|
|
985
|
+
[data-ui="brutalism"] :where(:focus-visible) { outline: 3px solid CanvasText; box-shadow: none; }
|
|
986
|
+
}
|
|
987
|
+
@media print {
|
|
988
|
+
[data-ui="brutalism"] { background: #fff !important; color: #000 !important; }
|
|
989
|
+
[data-ui="brutalism"] * { box-shadow: none !important; text-shadow: none !important; }
|
|
990
|
+
[data-ui="brutalism"] a { color: #000 !important; text-decoration: underline; }
|
|
991
|
+
}
|
|
992
|
+
}
|