ui-style-kit-css 2.1.0 → 2.3.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 (64) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +169 -54
  3. package/STYLE-MAP.md +55 -0
  4. package/dist/ui-style-kit.css +23744 -7015
  5. package/dist/ui-style-kit.min.css +2 -2
  6. package/dist/ui-style-kit.visual.css +22948 -6669
  7. package/dist/ui-style-kit.visual.min.css +2 -2
  8. package/dist/ui-style-kit.with-bridge.css +23941 -7205
  9. package/dist/ui-style-kit.with-bridge.min.css +2 -2
  10. package/dist/visual/art-deco.css +4776 -0
  11. package/dist/visual/bauhaus.css +1894 -147
  12. package/dist/visual/bento.css +1910 -166
  13. package/dist/visual/brutalism.css +1853 -98
  14. package/dist/visual/clay.css +4789 -0
  15. package/dist/visual/cyberpunk.css +1840 -94
  16. package/dist/visual/data-terminal.css +4804 -0
  17. package/dist/visual/editorial-luxe.css +4804 -0
  18. package/dist/visual/industrial-utility.css +4797 -0
  19. package/dist/visual/maximalist.css +1862 -112
  20. package/dist/visual/minimal-saas.css +1886 -147
  21. package/dist/visual/neo-noir.css +4790 -0
  22. package/dist/visual/neumorphism.css +1896 -151
  23. package/dist/visual/organic-modern.css +4767 -0
  24. package/dist/visual/paper-editorial.css +4799 -0
  25. package/dist/visual/retro-glass.css +1859 -93
  26. package/dist/visual/retrofuturism.css +1852 -113
  27. package/dist/visual/tactile.css +1851 -111
  28. package/dist/visual/technical-blueprint.css +4791 -0
  29. package/dist/visual/y2k.css +1840 -92
  30. package/docs/BRIDGE-MIGRATION.md +20 -0
  31. package/docs/ECOSYSTEM.md +39 -4
  32. package/docs/PUBLISHING.md +38 -13
  33. package/docs/STYLE-GUIDE.md +53 -13
  34. package/docs/TOKENS.md +50 -1
  35. package/docs/superpowers/plans/2026-08-29-preset-identity-system-refinement.md +649 -0
  36. package/docs/superpowers/specs/2026-08-29-preset-identity-system-refinement-design.md +212 -0
  37. package/manifest.json +482 -2
  38. package/package.json +77 -7
  39. package/styles/art-deco.css +683 -0
  40. package/styles/bauhaus.css +237 -3
  41. package/styles/bento.css +266 -7
  42. package/styles/brutalism.css +235 -3
  43. package/styles/clay.css +692 -0
  44. package/styles/components.css +608 -14
  45. package/styles/content-overflow.css +423 -4
  46. package/styles/cyberpunk.css +234 -3
  47. package/styles/data-terminal.css +691 -0
  48. package/styles/editorial-luxe.css +687 -0
  49. package/styles/industrial-utility.css +690 -0
  50. package/styles/interactive-surface-bridge.css +17 -10
  51. package/styles/interactive-surface-theme.css +17 -8
  52. package/styles/maximalist.css +238 -4
  53. package/styles/minimal-saas.css +234 -3
  54. package/styles/native-elements.css +80 -12
  55. package/styles/neo-noir.css +690 -0
  56. package/styles/neumorphism.css +234 -3
  57. package/styles/organic-modern.css +683 -0
  58. package/styles/paper-editorial.css +688 -0
  59. package/styles/retro-glass.css +242 -3
  60. package/styles/retrofuturism.css +233 -3
  61. package/styles/tactile.css +235 -3
  62. package/styles/technical-blueprint.css +686 -0
  63. package/styles/theme-colors.css +796 -5
  64. package/styles/y2k.css +237 -3
@@ -39,7 +39,7 @@
39
39
  --usk-native-control-padding-inline: .95rem;
40
40
  --usk-native-subcontrol-padding-block: .55rem;
41
41
  --usk-native-subcontrol-padding-inline: .8rem;
42
- --usk-native-track: color-mix(in srgb, var(--usk-native-border) 50%, transparent);
42
+ --usk-native-track: var(--usk-native-border);
43
43
  --usk-native-track-fill: var(--usk-native-primary);
44
44
  --usk-native-thumb: var(--usk-native-surface-strong);
45
45
  --usk-native-thumb-border: var(--usk-native-primary);
@@ -47,6 +47,22 @@
47
47
  --usk-native-shadow: none;
48
48
  --usk-native-shadow-md: var(--usk-native-shadow);
49
49
  --usk-native-focus-ring: 0 0 0 3px rgb(var(--usk-focus-rgb) / .28);
50
+ --usk-motion-duration: 140ms;
51
+ --usk-motion-easing: cubic-bezier(0.2, 0, 0.2, 1);
52
+
53
+ /* Shared semantic values are fully typed so optional companion and third-party consumers can use them directly. */
54
+ --ui-color-bg: rgb(var(--usk-bg-rgb));
55
+ --ui-color-surface: var(--usk-native-surface-strong);
56
+ --ui-color-text: var(--usk-native-text);
57
+ --ui-color-muted: var(--usk-native-text-muted);
58
+ --ui-color-primary: var(--usk-native-primary);
59
+ --ui-color-on-primary: var(--usk-native-on-primary);
60
+ --ui-color-border: var(--usk-native-border);
61
+ --ui-radius-control: var(--usk-native-radius);
62
+ --ui-shadow-control: var(--usk-native-shadow);
63
+ --ui-focus-color: var(--usk-native-focus);
64
+ --ui-motion-duration: var(--usk-motion-duration);
65
+ --ui-motion-easing: var(--usk-motion-easing);
50
66
  }
51
67
 
52
68
  [data-ui][data-theme][data-mode] :where(h1, h2, h3, h4, h5, h6) {
@@ -54,7 +70,10 @@
54
70
  font-family: var(--usk-native-font-heading);
55
71
  line-height: 1.15;
56
72
  margin: 0 0 .65em;
57
- text-wrap: balance;
73
+ }
74
+
75
+ @supports (text-wrap: balance) {
76
+ [data-ui][data-theme][data-mode] :where(h1, h2, h3, h4, h5, h6) { text-wrap: balance; }
58
77
  }
59
78
 
60
79
  [data-ui][data-theme][data-mode] :where(hgroup) {
@@ -102,7 +121,7 @@
102
121
  padding: .15em .35em;
103
122
  color: var(--usk-native-text);
104
123
  background: var(--usk-native-surface-soft);
105
- border: var(--usk-native-border-width) solid color-mix(in srgb, var(--usk-native-border) 62%, transparent);
124
+ border: var(--usk-native-border-width) solid var(--usk-native-border);
106
125
  border-radius: var(--usk-native-radius-sm);
107
126
  font-family: var(--usk-native-font-mono);
108
127
  font-size: .92em;
@@ -135,7 +154,7 @@
135
154
  [data-ui][data-theme][data-mode] :where(mark) {
136
155
  padding-inline: .15em;
137
156
  color: var(--usk-native-text);
138
- background: color-mix(in srgb, var(--usk-native-warning) 32%, transparent);
157
+ background: rgb(var(--usk-warning-rgb) / .32);
139
158
  border-radius: .2em;
140
159
  }
141
160
 
@@ -174,7 +193,7 @@
174
193
  min-inline-size: 0;
175
194
  margin: 0 0 1rem;
176
195
  padding: var(--usk-native-panel-padding);
177
- background: color-mix(in srgb, var(--usk-native-card-bg) 88%, transparent);
196
+ background: var(--usk-native-card-bg);
178
197
  border: var(--usk-native-border-width) solid var(--usk-native-border);
179
198
  border-radius: var(--usk-native-radius);
180
199
  }
@@ -202,7 +221,7 @@
202
221
  align-items: center;
203
222
  }
204
223
 
205
- [data-ui][data-theme][data-mode] :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]), textarea, select) {
224
+ [data-ui][data-theme][data-mode] :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="button"]):not([type="submit"]):not([type="reset"]), textarea, select) {
206
225
  width: 100%;
207
226
  min-block-size: var(--usk-native-control-min-block-size);
208
227
  padding: var(--usk-native-control-padding-block) var(--usk-native-control-padding-inline);
@@ -230,9 +249,16 @@
230
249
 
231
250
  [data-ui][data-theme][data-mode] :where(input, textarea, select, button) { font: inherit; }
232
251
 
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])) {
252
+ [data-ui][data-theme][data-mode] :where(button, input[type="button"], input[type="submit"], input[type="reset"]) {
253
+ -webkit-appearance: none;
254
+ appearance: none;
255
+ box-sizing: border-box;
234
256
  min-block-size: var(--usk-native-control-min-block-size);
235
257
  padding: .7rem 1rem;
258
+ font: inherit;
259
+ }
260
+
261
+ [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])) {
236
262
  color: var(--usk-native-on-primary);
237
263
  background: var(--usk-native-primary);
238
264
  border: var(--usk-native-border-width) solid var(--usk-native-primary);
@@ -242,6 +268,18 @@
242
268
  cursor: pointer;
243
269
  }
244
270
 
271
+ /* Busy controls reserve a stable lane for the preset-owned spinner glyph. */
272
+ [data-ui][data-theme][data-mode] :where(button[aria-busy="true"], input[type="button"][aria-busy="true"], input[type="submit"][aria-busy="true"], input[type="reset"][aria-busy="true"]) {
273
+ display: inline-flex;
274
+ align-items: center;
275
+ justify-content: center;
276
+ gap: .55rem;
277
+ }
278
+
279
+ [data-ui][data-theme][data-mode] :where(button[aria-busy="true"], input[type="button"][aria-busy="true"], input[type="submit"][aria-busy="true"], input[type="reset"][aria-busy="true"])::after {
280
+ flex: 0 0 1em;
281
+ }
282
+
245
283
  [data-ui][data-theme][data-mode] :where(button:not([class]):hover, input[type="button"]:not([class]):hover, input[type="submit"]:not([class]):hover, input[type="reset"]:not([class]):hover) {
246
284
  background: var(--usk-native-primary-hover);
247
285
  border-color: var(--usk-native-primary-hover);
@@ -357,7 +395,7 @@
357
395
  cursor: not-allowed;
358
396
  }
359
397
 
360
- [data-ui][data-theme][data-mode] :where(input:read-only, textarea:read-only) {
398
+ [data-ui][data-theme][data-mode] :where(input:read-only:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="button"]):not([type="submit"]):not([type="reset"]), textarea:read-only) {
361
399
  background: var(--usk-native-surface-soft);
362
400
  }
363
401
 
@@ -383,7 +421,7 @@
383
421
 
384
422
  [data-ui][data-theme][data-mode] :where(input:disabled, textarea:disabled, select:disabled, button:disabled, [aria-disabled="true"]) {
385
423
  color: var(--usk-native-text-muted);
386
- background: color-mix(in srgb, var(--usk-native-surface-soft) 72%, transparent);
424
+ background: var(--usk-native-surface-soft);
387
425
  border-color: var(--usk-native-border);
388
426
  box-shadow: none;
389
427
  opacity: .55;
@@ -415,7 +453,7 @@
415
453
 
416
454
  [data-ui][data-theme][data-mode] :where(th) {
417
455
  color: var(--usk-native-text);
418
- background: color-mix(in srgb, var(--usk-native-primary) 10%, transparent);
456
+ background: var(--usk-native-surface-soft);
419
457
  }
420
458
 
421
459
  [data-ui][data-theme][data-mode] :where(td) { color: var(--usk-native-text-muted); }
@@ -445,6 +483,8 @@
445
483
  box-shadow: var(--usk-native-shadow-md), 0 30px 80px rgb(0 0 0 / .42);
446
484
  }
447
485
 
486
+ [data-ui][data-theme][data-mode] :where(dialog p) { color: inherit; }
487
+
448
488
  [data-ui][data-theme][data-mode] :where(dialog)::backdrop { background: rgb(0 0 0 / .62); }
449
489
 
450
490
  [data-ui][data-theme][data-mode] :where(progress, meter) {
@@ -558,6 +598,32 @@
558
598
  [data-ui][data-theme][data-mode] ::-webkit-scrollbar-track { background: var(--usk-native-track); }
559
599
  [data-ui][data-theme][data-mode] ::-webkit-scrollbar-thumb { background: var(--usk-native-thumb-border); border-radius: 999px; }
560
600
 
601
+ @supports (color: color-mix(in srgb, black, white)) {
602
+ [data-ui][data-theme][data-mode] {
603
+ --usk-native-track: color-mix(in srgb, var(--usk-native-border) 50%, transparent);
604
+ }
605
+
606
+ [data-ui][data-theme][data-mode] :where(code, kbd, samp) {
607
+ border-color: color-mix(in srgb, var(--usk-native-border) 62%, transparent);
608
+ }
609
+
610
+ [data-ui][data-theme][data-mode] :where(mark) {
611
+ background: color-mix(in srgb, var(--usk-native-warning) 32%, transparent);
612
+ }
613
+
614
+ [data-ui][data-theme][data-mode] :where(fieldset) {
615
+ background: color-mix(in srgb, var(--usk-native-card-bg) 88%, transparent);
616
+ }
617
+
618
+ [data-ui][data-theme][data-mode] :where(input:disabled, textarea:disabled, select:disabled, button:disabled, [aria-disabled="true"]) {
619
+ background: color-mix(in srgb, var(--usk-native-surface-soft) 72%, transparent);
620
+ }
621
+
622
+ [data-ui][data-theme][data-mode] :where(th) {
623
+ background: color-mix(in srgb, var(--usk-native-primary) 10%, transparent);
624
+ }
625
+ }
626
+
561
627
  @media (prefers-reduced-motion: reduce) {
562
628
  [data-ui][data-theme][data-mode] :where(input[type="file"])::file-selector-button,
563
629
  [data-ui][data-theme][data-mode] :where(input[type="file"])::-webkit-file-upload-button {
@@ -566,8 +632,10 @@
566
632
  }
567
633
 
568
634
  @media (forced-colors: active) {
569
- [data-ui][data-theme][data-mode] :where(input, textarea, select, button, progress, meter) {
570
- forced-color-adjust: auto;
635
+ @supports (forced-color-adjust: auto) {
636
+ [data-ui][data-theme][data-mode] :where(input, textarea, select, button, progress, meter) {
637
+ forced-color-adjust: auto;
638
+ }
571
639
  }
572
640
 
573
641
  [data-ui][data-theme][data-mode] :where(input:user-invalid, textarea:user-invalid, select:user-invalid, [aria-invalid="true"], .is-invalid) {