ui-style-kit-css 2.0.3 → 2.1.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 (43) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +81 -15
  3. package/STYLE-MAP.md +9 -1
  4. package/dist/ui-style-kit.css +10563 -4496
  5. package/dist/ui-style-kit.min.css +7 -1
  6. package/dist/ui-style-kit.visual.css +11125 -0
  7. package/dist/ui-style-kit.visual.min.css +7 -0
  8. package/dist/ui-style-kit.with-bridge.css +10567 -4499
  9. package/dist/ui-style-kit.with-bridge.min.css +7 -1
  10. package/dist/visual/bauhaus.css +2948 -0
  11. package/dist/visual/bento.css +2967 -0
  12. package/dist/visual/brutalism.css +2731 -0
  13. package/dist/visual/cyberpunk.css +2757 -0
  14. package/dist/visual/maximalist.css +2955 -0
  15. package/dist/visual/minimal-saas.css +2946 -0
  16. package/dist/visual/neumorphism.css +2952 -0
  17. package/dist/visual/retro-glass.css +2768 -0
  18. package/dist/visual/retrofuturism.css +2939 -0
  19. package/dist/visual/tactile.css +2933 -0
  20. package/dist/visual/y2k.css +2729 -0
  21. package/docs/ECOSYSTEM.md +59 -0
  22. package/docs/NATIVE-ELEMENTS.md +52 -0
  23. package/docs/PUBLISHING.md +19 -4
  24. package/docs/TOKENS.md +13 -0
  25. package/manifest.json +436 -0
  26. package/package.json +33 -4
  27. package/styles/bauhaus.css +1 -0
  28. package/styles/bento.css +1 -0
  29. package/styles/brutalism.css +6 -5
  30. package/styles/compat-layout.css +88 -0
  31. package/styles/components.css +671 -0
  32. package/styles/content-overflow.css +292 -0
  33. package/styles/cyberpunk.css +3 -2
  34. package/styles/interactive-surface-bridge.css +5 -3
  35. package/styles/interactive-surface-theme.css +114 -0
  36. package/styles/maximalist.css +2 -1
  37. package/styles/minimal-saas.css +1 -0
  38. package/styles/native-elements.css +213 -10
  39. package/styles/neumorphism.css +1 -0
  40. package/styles/retro-glass.css +3 -2
  41. package/styles/retrofuturism.css +1 -0
  42. package/styles/tactile.css +1 -0
  43. package/styles/y2k.css +3 -2
@@ -0,0 +1,292 @@
1
+ /* =========================================================
2
+ UI Style Kit CSS - Shared Content Overflow Contract
3
+
4
+ Text-bearing layout wrappers and controls must shrink within
5
+ their parent wrapper instead of widening the page.
6
+ ========================================================= */
7
+
8
+ @layer ui-style-kit.content_overflow {
9
+ [data-ui][data-theme][data-mode] :where(
10
+ h1,
11
+ h2,
12
+ h3,
13
+ h4,
14
+ h5,
15
+ h6,
16
+ p,
17
+ a,
18
+ li,
19
+ dt,
20
+ dd,
21
+ figcaption,
22
+ blockquote,
23
+ label,
24
+ legend,
25
+ summary,
26
+ code,
27
+ kbd,
28
+ samp,
29
+ pre,
30
+ th,
31
+ td
32
+ ) {
33
+ max-inline-size: 100%;
34
+ min-inline-size: 0;
35
+ overflow-wrap: anywhere;
36
+ }
37
+
38
+ [data-ui][data-theme][data-mode] :where(
39
+ [class~="saas-page"],
40
+ [class~="saas-container"],
41
+ [class~="saas-section"],
42
+ [class~="saas-stack"],
43
+ [class~="saas-cluster"],
44
+ [class~="saas-grid"],
45
+ [class~="saas-split"],
46
+ [class~="saas-surface"],
47
+ [class~="saas-surface-sm"],
48
+ [class~="saas-surface-lg"],
49
+ [class~="saas-card"],
50
+ [class~="saas-panel"],
51
+ [class~="saas-toolbar"],
52
+ [class~="saas-well"],
53
+ [class~="saas-inset"],
54
+ [class~="saas-field"],
55
+ [class~="saas-alert"],
56
+ [class~="saas-table-wrap"],
57
+ [class~="saas-nav"],
58
+ [class~="bento-page"],
59
+ [class~="bento-container"],
60
+ [class~="bento-section"],
61
+ [class~="bento-stack"],
62
+ [class~="bento-cluster"],
63
+ [class~="bento-grid"],
64
+ [class~="bento-split"],
65
+ [class~="bento-surface"],
66
+ [class~="bento-surface-sm"],
67
+ [class~="bento-surface-lg"],
68
+ [class~="bento-card"],
69
+ [class~="bento-panel"],
70
+ [class~="bento-toolbar"],
71
+ [class~="bento-well"],
72
+ [class~="bento-inset"],
73
+ [class~="bento-field"],
74
+ [class~="bento-alert"],
75
+ [class~="bento-table-wrap"],
76
+ [class~="bento-nav"],
77
+ [class~="max-page"],
78
+ [class~="max-container"],
79
+ [class~="max-section"],
80
+ [class~="max-stack"],
81
+ [class~="max-cluster"],
82
+ [class~="max-grid"],
83
+ [class~="max-split"],
84
+ [class~="max-surface"],
85
+ [class~="max-surface-sm"],
86
+ [class~="max-surface-lg"],
87
+ [class~="max-card"],
88
+ [class~="max-panel"],
89
+ [class~="max-toolbar"],
90
+ [class~="max-well"],
91
+ [class~="max-inset"],
92
+ [class~="max-field"],
93
+ [class~="max-alert"],
94
+ [class~="max-table-wrap"],
95
+ [class~="max-nav"],
96
+ [class~="bau-page"],
97
+ [class~="bau-container"],
98
+ [class~="bau-section"],
99
+ [class~="bau-stack"],
100
+ [class~="bau-cluster"],
101
+ [class~="bau-grid"],
102
+ [class~="bau-split"],
103
+ [class~="bau-surface"],
104
+ [class~="bau-surface-sm"],
105
+ [class~="bau-surface-lg"],
106
+ [class~="bau-card"],
107
+ [class~="bau-panel"],
108
+ [class~="bau-toolbar"],
109
+ [class~="bau-well"],
110
+ [class~="bau-inset"],
111
+ [class~="bau-field"],
112
+ [class~="bau-alert"],
113
+ [class~="bau-table-wrap"],
114
+ [class~="bau-nav"],
115
+ [class~="tactile-page"],
116
+ [class~="tactile-container"],
117
+ [class~="tactile-section"],
118
+ [class~="tactile-stack"],
119
+ [class~="tactile-cluster"],
120
+ [class~="tactile-grid"],
121
+ [class~="tactile-split"],
122
+ [class~="tactile-surface"],
123
+ [class~="tactile-surface-sm"],
124
+ [class~="tactile-surface-lg"],
125
+ [class~="tactile-card"],
126
+ [class~="tactile-panel"],
127
+ [class~="tactile-toolbar"],
128
+ [class~="tactile-well"],
129
+ [class~="tactile-inset"],
130
+ [class~="tactile-field"],
131
+ [class~="tactile-alert"],
132
+ [class~="tactile-table-wrap"],
133
+ [class~="tactile-nav"],
134
+ [class~="neo-page"],
135
+ [class~="neo-container"],
136
+ [class~="neo-section"],
137
+ [class~="neo-stack"],
138
+ [class~="neo-cluster"],
139
+ [class~="neo-grid"],
140
+ [class~="neo-split"],
141
+ [class~="neo-surface"],
142
+ [class~="neo-surface-sm"],
143
+ [class~="neo-surface-lg"],
144
+ [class~="neo-card"],
145
+ [class~="neo-panel"],
146
+ [class~="neo-toolbar"],
147
+ [class~="neo-well"],
148
+ [class~="neo-inset"],
149
+ [class~="neo-field"],
150
+ [class~="neo-alert"],
151
+ [class~="neo-table-wrap"],
152
+ [class~="neo-nav"],
153
+ [class~="retro-page"],
154
+ [class~="retro-container"],
155
+ [class~="retro-section"],
156
+ [class~="retro-stack"],
157
+ [class~="retro-cluster"],
158
+ [class~="retro-grid"],
159
+ [class~="retro-split"],
160
+ [class~="retro-surface"],
161
+ [class~="retro-surface-sm"],
162
+ [class~="retro-surface-lg"],
163
+ [class~="retro-card"],
164
+ [class~="retro-panel"],
165
+ [class~="retro-toolbar"],
166
+ [class~="retro-well"],
167
+ [class~="retro-inset"],
168
+ [class~="retro-field"],
169
+ [class~="retro-alert"],
170
+ [class~="retro-table-wrap"],
171
+ [class~="retro-nav"],
172
+ [class~="brutal-page"],
173
+ [class~="brutal-container"],
174
+ [class~="brutal-section"],
175
+ [class~="brutal-stack"],
176
+ [class~="brutal-cluster"],
177
+ [class~="brutal-grid"],
178
+ [class~="brutal-surface"],
179
+ [class~="brutal-card"],
180
+ [class~="brutal-panel"],
181
+ [class~="brutal-toolbar"],
182
+ [class~="brutal-well"],
183
+ [class~="brutal-inset"],
184
+ [class~="brutal-field"],
185
+ [class~="brutal-alert"],
186
+ [class~="brutal-table-wrap"],
187
+ [class~="brutal-nav"],
188
+ [class~="cyber-page"],
189
+ [class~="cyber-container"],
190
+ [class~="cyber-section"],
191
+ [class~="cyber-stack"],
192
+ [class~="cyber-cluster"],
193
+ [class~="cyber-grid"],
194
+ [class~="cyber-surface"],
195
+ [class~="cyber-card"],
196
+ [class~="cyber-panel"],
197
+ [class~="cyber-toolbar"],
198
+ [class~="cyber-well"],
199
+ [class~="cyber-inset"],
200
+ [class~="cyber-field"],
201
+ [class~="cyber-alert"],
202
+ [class~="cyber-table-wrap"],
203
+ [class~="cyber-nav"],
204
+ [class~="y2k-page"],
205
+ [class~="y2k-container"],
206
+ [class~="y2k-section"],
207
+ [class~="y2k-stack"],
208
+ [class~="y2k-cluster"],
209
+ [class~="y2k-grid"],
210
+ [class~="y2k-surface"],
211
+ [class~="y2k-card"],
212
+ [class~="y2k-panel"],
213
+ [class~="y2k-toolbar"],
214
+ [class~="y2k-well"],
215
+ [class~="y2k-inset"],
216
+ [class~="y2k-field"],
217
+ [class~="y2k-alert"],
218
+ [class~="y2k-table-wrap"],
219
+ [class~="y2k-nav"],
220
+ [class~="rg-page"],
221
+ [class~="rg-container"],
222
+ [class~="rg-section"],
223
+ [class~="rg-stack"],
224
+ [class~="rg-cluster"],
225
+ [class~="rg-grid"],
226
+ [class~="rg-surface"],
227
+ [class~="rg-card"],
228
+ [class~="rg-panel"],
229
+ [class~="rg-toolbar"],
230
+ [class~="rg-well"],
231
+ [class~="rg-inset"],
232
+ [class~="rg-field"],
233
+ [class~="rg-alert"],
234
+ [class~="rg-table-wrap"],
235
+ [class~="rg-nav"]
236
+ ) {
237
+ max-inline-size: 100%;
238
+ min-inline-size: 0;
239
+ overflow-wrap: anywhere;
240
+ }
241
+
242
+ [data-ui][data-theme][data-mode] :where(
243
+ [class~="saas-button"],
244
+ [class~="saas-icon-button"],
245
+ [class~="saas-badge"],
246
+ [class~="saas-nav-link"],
247
+ [class~="bento-button"],
248
+ [class~="bento-icon-button"],
249
+ [class~="bento-badge"],
250
+ [class~="bento-nav-link"],
251
+ [class~="max-button"],
252
+ [class~="max-icon-button"],
253
+ [class~="max-badge"],
254
+ [class~="max-nav-link"],
255
+ [class~="bau-button"],
256
+ [class~="bau-icon-button"],
257
+ [class~="bau-badge"],
258
+ [class~="bau-nav-link"],
259
+ [class~="tactile-button"],
260
+ [class~="tactile-icon-button"],
261
+ [class~="tactile-badge"],
262
+ [class~="tactile-nav-link"],
263
+ [class~="neo-button"],
264
+ [class~="neo-icon-button"],
265
+ [class~="neo-badge"],
266
+ [class~="neo-nav-link"],
267
+ [class~="retro-button"],
268
+ [class~="retro-icon-button"],
269
+ [class~="retro-badge"],
270
+ [class~="retro-nav-link"],
271
+ [class~="brutal-button"],
272
+ [class~="brutal-icon-button"],
273
+ [class~="brutal-badge"],
274
+ [class~="brutal-nav-link"],
275
+ [class~="cyber-button"],
276
+ [class~="cyber-icon-button"],
277
+ [class~="cyber-badge"],
278
+ [class~="cyber-nav-link"],
279
+ [class~="y2k-button"],
280
+ [class~="y2k-icon-button"],
281
+ [class~="y2k-badge"],
282
+ [class~="y2k-nav-link"],
283
+ [class~="rg-button"],
284
+ [class~="rg-icon-button"],
285
+ [class~="rg-badge"],
286
+ [class~="rg-nav-link"]
287
+ ) {
288
+ max-inline-size: 100%;
289
+ min-inline-size: 0;
290
+ white-space: normal;
291
+ }
292
+ }
@@ -14,6 +14,7 @@
14
14
 
15
15
  @import url("./theme-colors.css");
16
16
  @import url("./native-elements.css");
17
+ @import url("./content-overflow.css");
17
18
 
18
19
  @layer ui-style-kit.cyberpunk {
19
20
  :root {
@@ -292,14 +293,14 @@
292
293
 
293
294
  .cyber-button, .cyber-icon-button { appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: var(--cyber-space-2); min-height: 2.85rem; padding: 0.75rem 1.1rem; background: linear-gradient(135deg, rgb(var(--cyber-primary-rgb) / 0.22), rgb(var(--cyber-accent-rgb) / 0.1)), var(--cyber-surface); color: var(--cyber-text); border: 1px solid rgb(var(--cyber-primary-rgb) / 0.7); border-radius: var(--cyber-radius-xs); box-shadow: var(--cyber-shadow-sm), 0 0 18px var(--cyber-glow-primary); font: inherit; font-family: var(--cyber-font-display); font-weight: 900; letter-spacing: 0.09em; cursor: pointer; text-decoration: none; clip-path: polygon(0 0, calc(100% - .75rem) 0, 100% .75rem, 100% 100%, .75rem 100%, 0 calc(100% - .75rem)); transition: transform var(--cyber-transition-fast), box-shadow var(--cyber-transition-fast), background var(--cyber-transition-fast); }
294
295
  .cyber-button:hover, .cyber-icon-button:hover { transform: translateY(-1px); box-shadow: var(--cyber-shadow-md), 0 0 26px var(--cyber-glow-primary); } .cyber-button:active, .cyber-icon-button:active, .cyber-button.is-active, .cyber-button[aria-pressed="true"] { transform: translateY(1px); box-shadow: inset 0 0 18px rgb(0 0 0 / 0.22), 0 0 18px var(--cyber-glow-primary); }
295
- .cyber-button-primary { background: linear-gradient(135deg, rgb(255 255 255 / 0.14), transparent), var(--cyber-primary); color: var(--cyber-on-primary); } .cyber-button-primary:hover { background: var(--cyber-primary-hover); } .cyber-button-secondary { background: linear-gradient(135deg, rgb(255 255 255 / 0.14), transparent), var(--cyber-secondary); color: var(--cyber-on-secondary); border-color: rgb(var(--cyber-secondary-rgb) / 0.7); } .cyber-button-secondary:hover { background: var(--cyber-secondary-hover); } .cyber-button-danger { background: var(--cyber-danger); color: #fff; } .cyber-icon-button { width: 2.85rem; padding: 0; }
296
+ .cyber-button-primary { background: linear-gradient(135deg, rgb(255 255 255 / 0.14), transparent), var(--cyber-primary); color: var(--cyber-on-primary); } .cyber-button-primary:hover { background: var(--cyber-primary-hover); } .cyber-button-secondary { background: linear-gradient(135deg, rgb(255 255 255 / 0.14), transparent), var(--cyber-secondary); color: var(--cyber-on-secondary); border-color: rgb(var(--cyber-secondary-rgb) / 0.7); } .cyber-button-secondary:hover { background: var(--cyber-secondary-hover); } .cyber-button-danger { background: var(--cyber-danger); color: var(--cyber-on-danger); } .cyber-icon-button { width: 2.85rem; padding: 0; }
296
297
 
297
298
  .cyber-field { display: flex; flex-direction: column; gap: var(--cyber-space-2); } .cyber-label { font-family: var(--cyber-font-heading); text-transform: uppercase; letter-spacing: 0.14em; font-weight: 800; font-size: 0.8rem; }
298
299
  .cyber-input, .cyber-textarea, .cyber-select { width: 100%; min-height: 2.9rem; padding: 0.8rem 1rem; background: var(--cyber-surface-soft); color: var(--cyber-text); border: 1px solid rgb(var(--cyber-border-rgb) / 0.58); border-radius: var(--cyber-radius-xs); box-shadow: inset 0 0 18px rgb(0 0 0 / 0.2); font: inherit; outline: none; } .cyber-textarea { min-height: 8rem; resize: vertical; }
299
300
  .cyber-input:focus, .cyber-textarea:focus, .cyber-select:focus { border-color: var(--cyber-focus); box-shadow: 0 0 0 2px rgb(var(--cyber-focus-rgb) / 0.24), 0 0 24px rgb(var(--cyber-focus-rgb) / 0.24), inset 0 0 18px rgb(0 0 0 / 0.2); } .cyber-help-text { color: var(--cyber-text-muted); font-size: 0.9rem; }
300
301
 
301
302
  .cyber-badge { display: inline-flex; align-items: center; min-height: 1.8rem; padding: 0.35rem 0.75rem; background: var(--cyber-surface); color: var(--cyber-text); border: 1px solid rgb(var(--cyber-primary-rgb) / 0.7); box-shadow: 0 0 16px var(--cyber-glow-primary); font-size: 0.78rem; font-weight: 900; letter-spacing: 0.1em; clip-path: polygon(.5rem 0, 100% 0, calc(100% - .5rem) 100%, 0 100%); }
302
- .cyber-badge-primary { background: var(--cyber-primary); color: var(--cyber-on-primary); } .cyber-badge-secondary { background: var(--cyber-secondary); color: var(--cyber-on-secondary); } .cyber-badge-success { background: var(--cyber-success); color: #fff; } .cyber-badge-warning { background: var(--cyber-warning); color: #111; } .cyber-badge-danger { background: var(--cyber-danger); color: #fff; }
303
+ .cyber-badge-primary { background: var(--cyber-primary); color: var(--cyber-on-primary); } .cyber-badge-secondary { background: var(--cyber-secondary); color: var(--cyber-on-secondary); } .cyber-badge-success { background: var(--cyber-success); color: var(--cyber-on-success); } .cyber-badge-warning { background: var(--cyber-warning); color: var(--cyber-on-warning); } .cyber-badge-danger { background: var(--cyber-danger); color: var(--cyber-on-danger); }
303
304
 
304
305
  .cyber-nav { display: flex; flex-wrap: wrap; gap: var(--cyber-space-2); padding: var(--cyber-space-2); background: var(--cyber-surface); border: 1px solid var(--cyber-border); border-radius: var(--cyber-radius-md); box-shadow: var(--cyber-shadow-md), 0 0 22px var(--cyber-glow-primary); } .cyber-nav-link { display: inline-flex; min-height: 2.5rem; align-items: center; padding: 0.65rem 1rem; color: var(--cyber-text-muted); border: 1px solid transparent; border-radius: var(--cyber-radius-xs); text-decoration: none; font-weight: 900; letter-spacing: 0.08em; } .cyber-nav-link:hover { color: var(--cyber-text); border-color: rgb(var(--cyber-primary-rgb) / 0.48); } .cyber-nav-link.is-active, .cyber-nav-link[aria-current="page"] { background: var(--cyber-primary); color: var(--cyber-on-primary); border-color: var(--cyber-primary); box-shadow: 0 0 18px var(--cyber-glow-primary); }
305
306
  /* Tooltips use compact contrast surfaces that stay readable across theme modes. */
@@ -1,8 +1,10 @@
1
1
  /* =========================================================
2
- UI Style Kit CSS x Interactive Surface CSS Bridge
2
+ UI Style Kit CSS x Interactive Surface CSS Bridge (Deprecated)
3
3
 
4
- This optional bridge maps shared UI Style Kit semantic roles to
5
- interactive-surface-css tokens and supplies visible state layers.
4
+ This legacy bridge maps shared UI Style Kit semantic roles to
5
+ interactive-surface-css tokens and continues to own visible states.
6
+ New integrations should use interactive-surface-theme.css with
7
+ interactive-surface-css/state-core.css instead.
6
8
  The flow follows scheme tokens -> mode roles -> bridge tokens ->
7
9
  surface behavior, avoiding per-theme and per-preset token maps.
8
10
  ========================================================= */
@@ -0,0 +1,114 @@
1
+ /* =========================================================
2
+ UI Style Kit CSS x Interactive Surface CSS Theme Bridge
3
+
4
+ This bridge owns public paint and geometry tokens only.
5
+ Interactive Surface state-core.css remains the sole owner of
6
+ hover, focus, active, disabled, and reduced-motion behavior.
7
+ ========================================================= */
8
+
9
+ :where([data-ui][data-theme][data-mode]) .interactive-surface {
10
+ --interactive-surface-border-width: 1px;
11
+ --interactive-surface-bg: rgb(var(--usk-surface-strong-rgb, var(--usk-surface-rgb, 255 255 255)));
12
+ --interactive-surface-fg: rgb(var(--usk-text-rgb, 18 18 18));
13
+ --interactive-surface-border-color: rgb(var(--usk-border-rgb, 128 128 128) / .72);
14
+ --interactive-surface-focus-ring-color: rgb(var(--usk-focus-rgb, var(--usk-primary-rgb, 72 120 255)));
15
+ --interactive-surface-radius: .85rem;
16
+ --interactive-surface-light-icon-color: rgb(var(--usk-warning-rgb, var(--usk-accent-rgb, 255 190 72)));
17
+ --interactive-surface-dark-icon-color: rgb(var(--usk-text-rgb, 18 18 18));
18
+ --interactive-surface-accessibility-icon-color: var(--interactive-surface-focus-ring-color);
19
+ --interactive-surface-light-icon-color-dark: var(--interactive-surface-light-icon-color);
20
+ --interactive-surface-dark-icon-color-dark: var(--interactive-surface-dark-icon-color);
21
+ --interactive-surface-accessibility-icon-color-dark: var(--interactive-surface-accessibility-icon-color);
22
+ --interactive-surface-variant-primary-bg: rgb(var(--usk-primary-rgb, 72 120 255));
23
+ --interactive-surface-variant-primary-fg: rgb(var(--usk-primary-text-rgb, var(--usk-bg-rgb, 255 255 255)));
24
+ --interactive-surface-variant-primary-border-color: rgb(var(--usk-primary-rgb, 72 120 255));
25
+ --interactive-surface-variant-secondary-bg: rgb(var(--usk-secondary-rgb, var(--usk-surface-soft-rgb, 96 112 128)));
26
+ --interactive-surface-variant-secondary-fg: rgb(var(--usk-secondary-text-rgb, var(--usk-text-rgb, 18 18 18)));
27
+ --interactive-surface-variant-secondary-border-color: rgb(var(--usk-secondary-rgb, 96 112 128));
28
+ --interactive-surface-variant-accent-bg: rgb(var(--usk-accent-rgb, var(--usk-primary-rgb, 72 120 255)));
29
+ --interactive-surface-variant-accent-fg: rgb(var(--usk-accent-text-rgb, var(--usk-bg-rgb, 255 255 255)));
30
+ --interactive-surface-variant-accent-border-color: rgb(var(--usk-accent-rgb, var(--usk-primary-rgb, 72 120 255)));
31
+ --interactive-surface-variant-subtle-bg: rgb(var(--usk-surface-soft-rgb, var(--usk-surface-rgb, 244 244 244)));
32
+ --interactive-surface-variant-subtle-fg: rgb(var(--usk-text-rgb, 18 18 18));
33
+ --interactive-surface-variant-subtle-border-color: rgb(var(--usk-border-rgb, 128 128 128) / .64);
34
+ --interactive-surface-variant-warning-bg: rgb(var(--usk-warning-rgb, 255 190 72));
35
+ --interactive-surface-variant-warning-fg: rgb(var(--usk-warning-text-rgb, var(--usk-bg-rgb, 18 18 18)));
36
+ --interactive-surface-variant-warning-border-color: rgb(var(--usk-warning-rgb, 255 190 72));
37
+ --interactive-surface-variant-danger-bg: rgb(var(--usk-danger-rgb, 210 72 72));
38
+ --interactive-surface-variant-danger-fg: rgb(var(--usk-danger-text-rgb, 255 255 255));
39
+ --interactive-surface-variant-danger-border-color: rgb(var(--usk-danger-rgb, 210 72 72));
40
+ --interactive-surface-level-1-bg: var(--interactive-surface-variant-subtle-bg);
41
+ --interactive-surface-level-1-border-color: var(--interactive-surface-variant-subtle-border-color);
42
+ --interactive-surface-level-1-shadow: 0 1px 2px rgb(var(--usk-bg-rgb, 0 0 0) / .18);
43
+ --interactive-surface-level-2-bg: var(--interactive-surface-bg);
44
+ --interactive-surface-level-2-border-color: var(--interactive-surface-border-color);
45
+ --interactive-surface-level-2-shadow: 0 8px 20px rgb(var(--usk-bg-rgb, 0 0 0) / .22);
46
+ --interactive-surface-level-3-bg: color-mix(in srgb, var(--interactive-surface-bg) 82%, var(--interactive-surface-variant-primary-bg));
47
+ --interactive-surface-level-3-border-color: color-mix(in srgb, var(--interactive-surface-variant-primary-border-color) 72%, var(--interactive-surface-border-color));
48
+ --interactive-surface-level-3-shadow: 0 14px 34px rgb(var(--usk-bg-rgb, 0 0 0) / .3), 0 0 0 1px color-mix(in srgb, var(--interactive-surface-variant-primary-border-color) 34%, transparent);
49
+ --interactive-surface-level-bg: var(--interactive-surface-level-1-bg);
50
+ --interactive-surface-level-border-color: var(--interactive-surface-level-1-border-color);
51
+ --interactive-surface-level-shadow: var(--interactive-surface-level-1-shadow);
52
+
53
+ box-sizing: border-box;
54
+ border: var(--interactive-surface-border-width) solid var(--interactive-surface-level-border-color, var(--interactive-surface-border-color));
55
+ border-radius: var(--interactive-surface-radius);
56
+ background-color: var(--interactive-surface-level-bg, var(--interactive-surface-bg));
57
+ box-shadow: var(--interactive-surface-level-shadow, none);
58
+ color: var(--interactive-surface-fg);
59
+ }
60
+
61
+ :where([data-ui][data-theme][data-mode]) .interactive-surface[data-surface-variant="primary"] {
62
+ --interactive-surface-bg: var(--interactive-surface-variant-primary-bg);
63
+ --interactive-surface-fg: var(--interactive-surface-variant-primary-fg);
64
+ --interactive-surface-border-color: var(--interactive-surface-variant-primary-border-color);
65
+ }
66
+
67
+ :where([data-ui][data-theme][data-mode]) .interactive-surface[data-surface-variant="secondary"] {
68
+ --interactive-surface-bg: var(--interactive-surface-variant-secondary-bg);
69
+ --interactive-surface-fg: var(--interactive-surface-variant-secondary-fg);
70
+ --interactive-surface-border-color: var(--interactive-surface-variant-secondary-border-color);
71
+ }
72
+
73
+ :where([data-ui][data-theme][data-mode]) .interactive-surface[data-surface-variant="accent"] {
74
+ --interactive-surface-bg: var(--interactive-surface-variant-accent-bg);
75
+ --interactive-surface-fg: var(--interactive-surface-variant-accent-fg);
76
+ --interactive-surface-border-color: var(--interactive-surface-variant-accent-border-color);
77
+ }
78
+
79
+ :where([data-ui][data-theme][data-mode]) .interactive-surface[data-surface-variant="subtle"] {
80
+ --interactive-surface-bg: var(--interactive-surface-variant-subtle-bg);
81
+ --interactive-surface-fg: var(--interactive-surface-variant-subtle-fg);
82
+ --interactive-surface-border-color: var(--interactive-surface-variant-subtle-border-color);
83
+ }
84
+
85
+ :where([data-ui][data-theme][data-mode]) .interactive-surface[data-surface-variant="warning"] {
86
+ --interactive-surface-bg: var(--interactive-surface-variant-warning-bg);
87
+ --interactive-surface-fg: var(--interactive-surface-variant-warning-fg);
88
+ --interactive-surface-border-color: var(--interactive-surface-variant-warning-border-color);
89
+ }
90
+
91
+ :where([data-ui][data-theme][data-mode]) .interactive-surface[data-surface-variant="danger"] {
92
+ --interactive-surface-bg: var(--interactive-surface-variant-danger-bg);
93
+ --interactive-surface-fg: var(--interactive-surface-variant-danger-fg);
94
+ --interactive-surface-border-color: var(--interactive-surface-variant-danger-border-color);
95
+ }
96
+
97
+ /* Level selectors select paint depth without taking ownership of interaction states. */
98
+ :where([data-ui][data-theme][data-mode]) .interactive-surface[data-surface-level="1"] {
99
+ --interactive-surface-level-bg: var(--interactive-surface-level-1-bg);
100
+ --interactive-surface-level-border-color: var(--interactive-surface-level-1-border-color);
101
+ --interactive-surface-level-shadow: var(--interactive-surface-level-1-shadow);
102
+ }
103
+
104
+ :where([data-ui][data-theme][data-mode]) .interactive-surface[data-surface-level="2"] {
105
+ --interactive-surface-level-bg: var(--interactive-surface-level-2-bg);
106
+ --interactive-surface-level-border-color: var(--interactive-surface-level-2-border-color);
107
+ --interactive-surface-level-shadow: var(--interactive-surface-level-2-shadow);
108
+ }
109
+
110
+ :where([data-ui][data-theme][data-mode]) .interactive-surface[data-surface-level="3"] {
111
+ --interactive-surface-level-bg: var(--interactive-surface-level-3-bg);
112
+ --interactive-surface-level-border-color: var(--interactive-surface-level-3-border-color);
113
+ --interactive-surface-level-shadow: var(--interactive-surface-level-3-shadow);
114
+ }
@@ -13,6 +13,7 @@
13
13
 
14
14
  @import url("./theme-colors.css");
15
15
  @import url("./native-elements.css");
16
+ @import url("./content-overflow.css");
16
17
 
17
18
  @layer ui-style-kit.maximalist {
18
19
  :root {
@@ -369,7 +370,7 @@
369
370
  .max-skip-link:focus { transform: translateY(0); }
370
371
 
371
372
  /* Maximalist-specific expressive helpers */
372
- .max-sticker { display: inline-flex; align-items: center; padding: .45rem .8rem; background: var(--max-accent); color: #111; border: 3px solid var(--max-border); border-radius: var(--max-radius-pill); box-shadow: 5px 5px 0 rgb(var(--max-border-rgb) / .8); font-weight: 950; transform: rotate(-2deg); }
373
+ .max-sticker { display: inline-flex; align-items: center; padding: .45rem .8rem; background: var(--max-accent); color: var(--max-on-accent); border: 3px solid var(--max-border); border-radius: var(--max-radius-pill); box-shadow: 5px 5px 0 rgb(var(--max-border-rgb) / .8); font-weight: 950; transform: rotate(-2deg); }
373
374
  .max-callout { padding: var(--max-space-6); background: linear-gradient(135deg, var(--max-primary), var(--max-accent)); color: var(--max-on-primary); border: 3px solid var(--max-border); border-radius: var(--max-radius-xl); box-shadow: 10px 10px 0 rgb(var(--max-border-rgb) / .85); }
374
375
  .max-wiggle:hover { animation: max-wiggle 420ms ease both; }
375
376
  @keyframes max-wiggle { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(-1.5deg); } 75% { transform: rotate(1.5deg); } }
@@ -13,6 +13,7 @@
13
13
 
14
14
  @import url("./theme-colors.css");
15
15
  @import url("./native-elements.css");
16
+ @import url("./content-overflow.css");
16
17
 
17
18
  @layer ui-style-kit.minimal_saas {
18
19
  :root {