ui-style-kit-css 2.0.4 → 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.
@@ -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
+ }
@@ -370,7 +370,7 @@
370
370
  .max-skip-link:focus { transform: translateY(0); }
371
371
 
372
372
  /* Maximalist-specific expressive helpers */
373
- .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); }
374
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); }
375
375
  .max-wiggle:hover { animation: max-wiggle 420ms ease both; }
376
376
  @keyframes max-wiggle { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(-1.5deg); } 75% { transform: rotate(1.5deg); } }
@@ -34,8 +34,16 @@
34
34
  --usk-native-border-width: 1px;
35
35
  --usk-native-field-gap: .5rem;
36
36
  --usk-native-panel-padding: 1rem;
37
+ --usk-native-control-min-block-size: 2.75rem;
37
38
  --usk-native-control-padding-block: .72rem;
38
39
  --usk-native-control-padding-inline: .95rem;
40
+ --usk-native-subcontrol-padding-block: .55rem;
41
+ --usk-native-subcontrol-padding-inline: .8rem;
42
+ --usk-native-track: color-mix(in srgb, var(--usk-native-border) 50%, transparent);
43
+ --usk-native-track-fill: var(--usk-native-primary);
44
+ --usk-native-thumb: var(--usk-native-surface-strong);
45
+ --usk-native-thumb-border: var(--usk-native-primary);
46
+ --usk-native-indicator: var(--usk-native-primary);
39
47
  --usk-native-shadow: none;
40
48
  --usk-native-shadow-md: var(--usk-native-shadow);
41
49
  --usk-native-focus-ring: 0 0 0 3px rgb(var(--usk-focus-rgb) / .28);
@@ -49,6 +57,12 @@
49
57
  text-wrap: balance;
50
58
  }
51
59
 
60
+ [data-ui][data-theme][data-mode] :where(hgroup) {
61
+ display: grid;
62
+ gap: .35rem;
63
+ margin-block: 0 1rem;
64
+ }
65
+
52
66
  [data-ui][data-theme][data-mode] :where(h1) { font-size: clamp(2rem, 5vw, 3.5rem); }
53
67
  [data-ui][data-theme][data-mode] :where(h2) { font-size: clamp(1.55rem, 3vw, 2.35rem); }
54
68
  [data-ui][data-theme][data-mode] :where(h3) { font-size: clamp(1.25rem, 2vw, 1.65rem); }
@@ -148,6 +162,12 @@
148
162
  font-size: .9rem;
149
163
  }
150
164
 
165
+ [data-ui][data-theme][data-mode] :where(form) {
166
+ display: grid;
167
+ gap: var(--usk-native-field-gap);
168
+ min-inline-size: 0;
169
+ }
170
+
151
171
  [data-ui][data-theme][data-mode] :where(fieldset) {
152
172
  display: grid;
153
173
  gap: .9rem;
@@ -184,7 +204,7 @@
184
204
 
185
205
  [data-ui][data-theme][data-mode] :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]), textarea, select) {
186
206
  width: 100%;
187
- min-height: 2.75rem;
207
+ min-block-size: var(--usk-native-control-min-block-size);
188
208
  padding: var(--usk-native-control-padding-block) var(--usk-native-control-padding-inline);
189
209
  color: var(--usk-native-text);
190
210
  background: var(--usk-native-control-bg);
@@ -193,6 +213,16 @@
193
213
  font: inherit;
194
214
  }
195
215
 
216
+ [data-ui][data-theme][data-mode] :where(input, textarea, select, button) {
217
+ color-scheme: inherit;
218
+ accent-color: var(--usk-native-primary);
219
+ }
220
+
221
+ [data-ui][data-theme][data-mode] :where(input, textarea)::placeholder {
222
+ color: var(--usk-native-text-muted);
223
+ opacity: .78;
224
+ }
225
+
196
226
  [data-ui][data-theme][data-mode] :where(textarea) {
197
227
  min-height: 7rem;
198
228
  resize: vertical;
@@ -201,7 +231,7 @@
201
231
  [data-ui][data-theme][data-mode] :where(input, textarea, select, button) { font: inherit; }
202
232
 
203
233
  [data-ui][data-theme][data-mode] :where(button:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class])) {
204
- min-height: 2.75rem;
234
+ min-block-size: var(--usk-native-control-min-block-size);
205
235
  padding: .7rem 1rem;
206
236
  color: var(--usk-native-on-primary);
207
237
  background: var(--usk-native-primary);
@@ -218,16 +248,53 @@
218
248
  }
219
249
 
220
250
  [data-ui][data-theme][data-mode] :where(input[type="checkbox"], input[type="radio"]) {
221
- inline-size: 1.1rem;
222
- block-size: 1.1rem;
251
+ inline-size: 1.5rem;
252
+ block-size: 1.5rem;
223
253
  accent-color: var(--usk-native-primary);
224
254
  }
225
255
 
226
256
  [data-ui][data-theme][data-mode] :where(input[type="range"]) {
257
+ -webkit-appearance: none;
258
+ appearance: none;
227
259
  width: 100%;
260
+ min-block-size: 1.5rem;
261
+ background: transparent;
228
262
  accent-color: var(--usk-native-primary);
229
263
  }
230
264
 
265
+ [data-ui][data-theme][data-mode] :where(input[type="range"])::-webkit-slider-runnable-track {
266
+ block-size: .45rem;
267
+ background: var(--usk-native-track);
268
+ border-radius: 999px;
269
+ }
270
+
271
+ [data-ui][data-theme][data-mode] :where(input[type="range"])::-moz-range-track {
272
+ block-size: .45rem;
273
+ background: var(--usk-native-track);
274
+ border-radius: 999px;
275
+ }
276
+
277
+ [data-ui][data-theme][data-mode] :where(input[type="range"])::-webkit-slider-thumb {
278
+ -webkit-appearance: none;
279
+ appearance: none;
280
+ inline-size: 1.2rem;
281
+ block-size: 1.2rem;
282
+ margin-block-start: -.38rem;
283
+ background: var(--usk-native-thumb);
284
+ border: var(--usk-native-border-width) solid var(--usk-native-thumb-border);
285
+ border-radius: 999px;
286
+ box-shadow: var(--usk-native-shadow);
287
+ }
288
+
289
+ [data-ui][data-theme][data-mode] :where(input[type="range"])::-moz-range-thumb {
290
+ inline-size: 1.2rem;
291
+ block-size: 1.2rem;
292
+ background: var(--usk-native-thumb);
293
+ border: var(--usk-native-border-width) solid var(--usk-native-thumb-border);
294
+ border-radius: 999px;
295
+ box-shadow: var(--usk-native-shadow);
296
+ }
297
+
231
298
  [data-ui][data-theme][data-mode] :where(input[type="color"]) {
232
299
  inline-size: 3rem;
233
300
  block-size: 2.4rem;
@@ -237,12 +304,27 @@
237
304
  border-radius: var(--usk-native-radius-sm);
238
305
  }
239
306
 
307
+ [data-ui][data-theme][data-mode] :where(input[type="color"])::-webkit-color-swatch-wrapper {
308
+ padding: 0;
309
+ }
310
+
311
+ [data-ui][data-theme][data-mode] :where(input[type="color"])::-webkit-color-swatch {
312
+ border: 0;
313
+ border-radius: calc(var(--usk-native-radius-sm) / 1.5);
314
+ }
315
+
316
+ [data-ui][data-theme][data-mode] :where(input[type="color"])::-moz-color-swatch {
317
+ border: 0;
318
+ border-radius: calc(var(--usk-native-radius-sm) / 1.5);
319
+ }
320
+
240
321
  [data-ui][data-theme][data-mode] :where(input[type="file"]) { color: var(--usk-native-text-muted); }
241
322
 
242
323
  /* Keep pseudo-elements outside :where() because engines reject them inside selector-list arguments. */
243
- [data-ui][data-theme][data-mode] :where(input[type="file"])::file-selector-button {
324
+ [data-ui][data-theme][data-mode] :where(input[type="file"])::file-selector-button,
325
+ [data-ui][data-theme][data-mode] :where(input[type="file"])::-webkit-file-upload-button {
244
326
  margin-inline-end: .75rem;
245
- padding: .55rem .8rem;
327
+ padding: var(--usk-native-subcontrol-padding-block) var(--usk-native-subcontrol-padding-inline);
246
328
  color: var(--usk-native-on-primary);
247
329
  background: var(--usk-native-primary);
248
330
  border: var(--usk-native-border-width) solid var(--usk-native-primary);
@@ -251,15 +333,63 @@
251
333
  cursor: pointer;
252
334
  }
253
335
 
254
- [data-ui][data-theme][data-mode] :where(input:disabled, textarea:disabled, select:disabled, button:disabled, [aria-disabled="true"]) {
255
- opacity: .55;
336
+ [data-ui][data-theme][data-mode] :where(input[type="file"]:hover)::file-selector-button,
337
+ [data-ui][data-theme][data-mode] :where(input[type="file"]:hover)::-webkit-file-upload-button {
338
+ background: var(--usk-native-primary-hover);
339
+ border-color: var(--usk-native-primary-hover);
340
+ }
341
+
342
+ [data-ui][data-theme][data-mode] :where(input[type="file"]:focus-visible)::file-selector-button,
343
+ [data-ui][data-theme][data-mode] :where(input[type="file"]:focus-visible)::-webkit-file-upload-button {
344
+ box-shadow: var(--usk-native-focus-ring);
345
+ }
346
+
347
+ [data-ui][data-theme][data-mode] :where(input[type="file"]:active)::file-selector-button,
348
+ [data-ui][data-theme][data-mode] :where(input[type="file"]:active)::-webkit-file-upload-button {
349
+ filter: brightness(.96);
350
+ }
351
+
352
+ [data-ui][data-theme][data-mode] :where(input[type="file"]:disabled)::file-selector-button,
353
+ [data-ui][data-theme][data-mode] :where(input[type="file"]:disabled)::-webkit-file-upload-button {
354
+ color: var(--usk-native-text-muted);
355
+ background: var(--usk-native-surface-soft);
356
+ border-color: var(--usk-native-border);
256
357
  cursor: not-allowed;
257
358
  }
258
359
 
259
- [data-ui][data-theme][data-mode] :where(input:invalid, textarea:invalid, select:invalid, [aria-invalid="true"]) {
360
+ [data-ui][data-theme][data-mode] :where(input:read-only, textarea:read-only) {
361
+ background: var(--usk-native-surface-soft);
362
+ }
363
+
364
+ [data-ui][data-theme][data-mode] :where(input:required, textarea:required, select:required) {
365
+ box-shadow: inset .22rem 0 0 var(--usk-native-indicator);
366
+ }
367
+
368
+ [data-ui][data-theme][data-mode] :where(input:user-valid, textarea:user-valid, select:user-valid, .is-valid) {
369
+ border-color: var(--usk-native-success);
370
+ }
371
+
372
+ [data-ui][data-theme][data-mode] :where(input:user-invalid, textarea:user-invalid, select:user-invalid, [aria-invalid="true"], .is-invalid) {
260
373
  border-color: var(--usk-native-danger);
261
374
  }
262
375
 
376
+ [data-ui][data-theme][data-mode] :where(input[type="checkbox"]:indeterminate, input[type="radio"]:indeterminate) {
377
+ accent-color: var(--usk-native-warning);
378
+ }
379
+
380
+ [data-ui][data-theme][data-mode] :where(button:active, input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active) {
381
+ filter: brightness(.96);
382
+ }
383
+
384
+ [data-ui][data-theme][data-mode] :where(input:disabled, textarea:disabled, select:disabled, button:disabled, [aria-disabled="true"]) {
385
+ color: var(--usk-native-text-muted);
386
+ background: color-mix(in srgb, var(--usk-native-surface-soft) 72%, transparent);
387
+ border-color: var(--usk-native-border);
388
+ box-shadow: none;
389
+ opacity: .55;
390
+ cursor: not-allowed;
391
+ }
392
+
263
393
  [data-ui][data-theme][data-mode] :where(table) {
264
394
  width: 100%;
265
395
  margin: 1rem 0;
@@ -323,6 +453,32 @@
323
453
  accent-color: var(--usk-native-primary);
324
454
  }
325
455
 
456
+ [data-ui][data-theme][data-mode] :where(progress, meter)::-webkit-progress-bar,
457
+ [data-ui][data-theme][data-mode] :where(meter)::-webkit-meter-bar {
458
+ background: var(--usk-native-track);
459
+ border-radius: 999px;
460
+ }
461
+
462
+ [data-ui][data-theme][data-mode] :where(progress)::-webkit-progress-value,
463
+ [data-ui][data-theme][data-mode] :where(meter)::-webkit-meter-optimum-value {
464
+ background: var(--usk-native-track-fill);
465
+ border-radius: inherit;
466
+ }
467
+
468
+ [data-ui][data-theme][data-mode] :where(progress)::-moz-progress-bar,
469
+ [data-ui][data-theme][data-mode] :where(meter)::-moz-meter-bar {
470
+ background: var(--usk-native-track-fill);
471
+ border-radius: 999px;
472
+ }
473
+
474
+ [data-ui][data-theme][data-mode] :where(meter)::-webkit-meter-suboptimum-value {
475
+ background: var(--usk-native-warning);
476
+ }
477
+
478
+ [data-ui][data-theme][data-mode] :where(meter)::-webkit-meter-even-less-good-value {
479
+ background: var(--usk-native-danger);
480
+ }
481
+
326
482
  [data-ui][data-theme][data-mode] :where(main, section, header, footer, nav, article, aside, address) {
327
483
  color: var(--usk-native-text);
328
484
  }
@@ -348,6 +504,8 @@
348
504
 
349
505
  [data-ui][data-theme][data-mode] :where(dd) { margin: .25rem 0 .75rem 1.25rem; }
350
506
  [data-ui][data-theme][data-mode] :where(strong, b) { color: var(--usk-native-text); font-weight: 900; }
507
+ [data-ui][data-theme][data-mode] :where(u) { text-decoration-color: var(--usk-native-primary); text-decoration-thickness: .08em; text-underline-offset: .16em; }
508
+ [data-ui][data-theme][data-mode] :where(bdi, bdo) { color: var(--usk-native-text); unicode-bidi: isolate; }
351
509
  [data-ui][data-theme][data-mode] :where(em, i, cite, var, q) { color: var(--usk-native-text); }
352
510
  [data-ui][data-theme][data-mode] :where(ins) { color: var(--usk-native-text); text-decoration-color: var(--usk-native-success); }
353
511
  [data-ui][data-theme][data-mode] :where(del, s) { color: var(--usk-native-text); text-decoration-color: var(--usk-native-danger); }
@@ -355,6 +513,30 @@
355
513
  [data-ui][data-theme][data-mode] :where(optgroup, option) { color: var(--usk-native-text); background: var(--usk-native-surface); }
356
514
  [data-ui][data-theme][data-mode] :where(time, data, dfn, ruby) { color: var(--usk-native-text); }
357
515
  [data-ui][data-theme][data-mode] :where(search) { display: block; color: var(--usk-native-text); }
516
+ [data-ui][data-theme][data-mode] :where(selectedcontent) { color: var(--usk-native-text); }
517
+ [data-ui][data-theme][data-mode] :where(datalist) { display: none; }
518
+
519
+ [data-ui][data-theme][data-mode] :where(summary, li)::marker {
520
+ color: var(--usk-native-indicator);
521
+ }
522
+
523
+ [data-ui][data-theme][data-mode] :where(input[type="date"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"])::-webkit-calendar-picker-indicator {
524
+ opacity: .78;
525
+ accent-color: var(--usk-native-indicator);
526
+ }
527
+
528
+ [data-ui][data-theme][data-mode] :where(input[type="search"])::-webkit-search-cancel-button {
529
+ accent-color: var(--usk-native-indicator);
530
+ }
531
+
532
+ [data-ui][data-theme][data-mode] :where(input[type="number"])::-webkit-inner-spin-button,
533
+ [data-ui][data-theme][data-mode] :where(input[type="number"])::-webkit-outer-spin-button {
534
+ opacity: .72;
535
+ }
536
+
537
+ [data-ui][data-theme][data-mode] :where(select)::picker-icon {
538
+ color: var(--usk-native-indicator);
539
+ }
358
540
 
359
541
  [data-ui][data-theme][data-mode] :where(:focus-visible) {
360
542
  outline: 3px solid var(--usk-native-focus);
@@ -372,4 +554,24 @@
372
554
  [data-ui][data-theme][data-mode] :where([aria-busy="true"]) { cursor: progress; }
373
555
  [data-ui][data-theme][data-mode] :where([hidden]) { display: none !important; }
374
556
  [data-ui][data-theme][data-mode] ::selection { color: var(--usk-native-on-primary); background: var(--usk-native-primary); }
557
+ [data-ui][data-theme][data-mode] ::-webkit-scrollbar { inline-size: .75rem; block-size: .75rem; }
558
+ [data-ui][data-theme][data-mode] ::-webkit-scrollbar-track { background: var(--usk-native-track); }
559
+ [data-ui][data-theme][data-mode] ::-webkit-scrollbar-thumb { background: var(--usk-native-thumb-border); border-radius: 999px; }
560
+
561
+ @media (prefers-reduced-motion: reduce) {
562
+ [data-ui][data-theme][data-mode] :where(input[type="file"])::file-selector-button,
563
+ [data-ui][data-theme][data-mode] :where(input[type="file"])::-webkit-file-upload-button {
564
+ transition-duration: 1ms !important;
565
+ }
566
+ }
567
+
568
+ @media (forced-colors: active) {
569
+ [data-ui][data-theme][data-mode] :where(input, textarea, select, button, progress, meter) {
570
+ forced-color-adjust: auto;
571
+ }
572
+
573
+ [data-ui][data-theme][data-mode] :where(input:user-invalid, textarea:user-invalid, select:user-invalid, [aria-invalid="true"], .is-invalid) {
574
+ border-color: Mark;
575
+ }
576
+ }
375
577
  }