ui-style-kit-css 2.3.0 → 2.4.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 (120) hide show
  1. package/CHANGELOG.md +40 -2
  2. package/CONTRIBUTING.md +8 -1
  3. package/README.md +91 -42
  4. package/STYLE-MAP.md +9 -5
  5. package/dist/assets/bauhaus-barlow-OFL.txt +93 -0
  6. package/dist/assets/bauhaus-barlow-semibold.ttf +0 -0
  7. package/dist/assets/bauhaus-barlow.ttf +0 -0
  8. package/dist/assets/bauhaus-condensed-OFL.txt +93 -0
  9. package/dist/assets/bauhaus-condensed-bold.ttf +0 -0
  10. package/dist/assets/bauhaus-condensed-extrabold.ttf +0 -0
  11. package/dist/assets/bento-manrope-OFL.txt +93 -0
  12. package/dist/assets/bento-manrope.ttf +0 -0
  13. package/dist/assets/clay-grain.png +0 -0
  14. package/dist/assets/clay-rounded-OFL.txt +93 -0
  15. package/dist/assets/clay-rounded.ttf +0 -0
  16. package/dist/assets/neo-noir-corner-dark.png +0 -0
  17. package/dist/assets/neo-noir-corner-light.png +0 -0
  18. package/dist/assets/neo-noir-texture-dark.png +0 -0
  19. package/dist/assets/neo-noir-texture-light.png +0 -0
  20. package/dist/assets/organic-display-OFL.txt +93 -0
  21. package/dist/assets/organic-display.ttf +0 -0
  22. package/dist/assets/organic-icons-LICENSE.txt +21 -0
  23. package/dist/assets/organic-sans-OFL.txt +93 -0
  24. package/dist/assets/organic-sans.ttf +0 -0
  25. package/dist/ui-style-kit.css +47483 -15117
  26. package/dist/ui-style-kit.min.css +2 -2
  27. package/dist/ui-style-kit.visual.css +47344 -15106
  28. package/dist/ui-style-kit.visual.min.css +2 -2
  29. package/dist/ui-style-kit.with-bridge.css +47510 -15134
  30. package/dist/ui-style-kit.with-bridge.min.css +2 -2
  31. package/dist/visual/art-deco.css +2821 -279
  32. package/dist/visual/bauhaus.css +2 -4692
  33. package/dist/visual/bento.css +2 -4708
  34. package/dist/visual/brutalism.css +812 -224
  35. package/dist/visual/clay.css +2 -4786
  36. package/dist/visual/cyberpunk.css +2238 -267
  37. package/dist/visual/data-terminal.css +1671 -293
  38. package/dist/visual/editorial-luxe.css +1889 -243
  39. package/dist/visual/industrial-utility.css +2717 -255
  40. package/dist/visual/maximalist.css +1768 -447
  41. package/dist/visual/minimal-saas.css +1076 -382
  42. package/dist/visual/neo-noir.css +2 -4787
  43. package/dist/visual/neumorphism.css +1266 -388
  44. package/dist/visual/organic-modern.css +2 -4764
  45. package/dist/visual/paper-editorial.css +2551 -276
  46. package/dist/visual/retro-glass.css +2235 -319
  47. package/dist/visual/retrofuturism.css +1460 -382
  48. package/dist/visual/tactile.css +2251 -443
  49. package/dist/visual/technical-blueprint.css +2207 -285
  50. package/dist/visual/y2k.css +1481 -294
  51. package/docs/ART-DECO.md +80 -0
  52. package/docs/BAUHAUS.md +152 -0
  53. package/docs/BENTO.md +121 -0
  54. package/docs/CLAY.md +127 -0
  55. package/docs/DEMO-SHOWCASE.md +65 -0
  56. package/docs/ECOSYSTEM.md +4 -4
  57. package/docs/EDITORIAL-LUX.md +75 -0
  58. package/docs/INDUSTRIAL-UTILITY.md +131 -0
  59. package/docs/NATIVE-ELEMENTS.md +23 -17
  60. package/docs/NEO-NOIR.md +94 -0
  61. package/docs/ORGANIC-MODERN.md +91 -0
  62. package/docs/PAPER-EDITORIAL.md +63 -0
  63. package/docs/PUBLISHING.md +31 -10
  64. package/docs/RELEASE-2.4.0.md +88 -0
  65. package/docs/RETRO-GLASS.md +105 -0
  66. package/docs/STYLE-GUIDE.md +40 -25
  67. package/docs/TACTILE.md +38 -0
  68. package/docs/TECHNICAL-BLUEPRINT.md +60 -0
  69. package/docs/TOKENS.md +80 -3
  70. package/docs/superpowers/plans/2026-09-04-library-wide-theme-fallback-and-fidelity.md +331 -0
  71. package/docs/superpowers/specs/2026-09-04-library-wide-theme-fallback-and-fidelity-design.md +113 -0
  72. package/manifest.json +618 -27
  73. package/package.json +18 -10
  74. package/styles/art-deco.css +1397 -12
  75. package/styles/assets/bauhaus-barlow-OFL.txt +93 -0
  76. package/styles/assets/bauhaus-barlow-semibold.ttf +0 -0
  77. package/styles/assets/bauhaus-barlow.ttf +0 -0
  78. package/styles/assets/bauhaus-condensed-OFL.txt +93 -0
  79. package/styles/assets/bauhaus-condensed-bold.ttf +0 -0
  80. package/styles/assets/bauhaus-condensed-extrabold.ttf +0 -0
  81. package/styles/assets/bento-manrope-OFL.txt +93 -0
  82. package/styles/assets/bento-manrope.ttf +0 -0
  83. package/styles/assets/clay-grain.png +0 -0
  84. package/styles/assets/clay-rounded-OFL.txt +93 -0
  85. package/styles/assets/clay-rounded.ttf +0 -0
  86. package/styles/assets/neo-noir-corner-dark.png +0 -0
  87. package/styles/assets/neo-noir-corner-light.png +0 -0
  88. package/styles/assets/neo-noir-texture-dark.png +0 -0
  89. package/styles/assets/neo-noir-texture-light.png +0 -0
  90. package/styles/assets/organic-display-OFL.txt +93 -0
  91. package/styles/assets/organic-display.ttf +0 -0
  92. package/styles/assets/organic-icons-LICENSE.txt +21 -0
  93. package/styles/assets/organic-sans-OFL.txt +93 -0
  94. package/styles/assets/organic-sans.ttf +0 -0
  95. package/styles/bauhaus.css +878 -107
  96. package/styles/bento.css +1176 -108
  97. package/styles/brutalism.css +262 -11
  98. package/styles/clay.css +1303 -68
  99. package/styles/compat-layout.css +1 -2
  100. package/styles/components.css +105 -34
  101. package/styles/content-overflow.css +11 -5
  102. package/styles/cyberpunk.css +1852 -47
  103. package/styles/data-terminal.css +1116 -12
  104. package/styles/editorial-luxe.css +576 -12
  105. package/styles/industrial-utility.css +1771 -12
  106. package/styles/interactive-surface-bridge.css +30 -20
  107. package/styles/interactive-surface-theme.css +21 -11
  108. package/styles/maximalist.css +1214 -132
  109. package/styles/minimal-saas.css +459 -88
  110. package/styles/native-elements.css +347 -171
  111. package/styles/neo-noir.css +656 -14
  112. package/styles/neumorphism.css +1018 -146
  113. package/styles/organic-modern.css +688 -18
  114. package/styles/paper-editorial.css +1048 -12
  115. package/styles/retro-glass.css +635 -46
  116. package/styles/retrofuturism.css +944 -56
  117. package/styles/tactile.css +1810 -108
  118. package/styles/technical-blueprint.css +668 -17
  119. package/styles/theme-colors.css +2 -2
  120. package/styles/y2k.css +950 -42
@@ -17,17 +17,17 @@
17
17
 
18
18
  @layer ui-style-kit.retrofuturism {
19
19
  :root {
20
- --retro-font-sans: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
21
- --retro-font-display: Orbitron, Eurostile, "Bank Gothic", Rajdhani, Inter, ui-sans-serif, system-ui, sans-serif;
20
+ --retro-font-sans: "Avenir Next", Avenir, "Segoe UI", Trebuchet MS, Arial, sans-serif;
21
+ --retro-font-display: "Arial Narrow", "Aptos Narrow", Bahnschrift, "Roboto Condensed", "Franklin Gothic Medium", sans-serif;
22
22
  --retro-font-body: var(--retro-font-sans);
23
23
  --retro-font-heading: var(--retro-font-display);
24
- --retro-font-control: var(--retro-font-display);
24
+ --retro-font-control: Bahnschrift, "Arial Narrow", "Aptos Narrow", "Roboto Condensed", sans-serif;
25
25
  --retro-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
26
- --retro-radius-xs: .25rem;
27
- --retro-radius-sm: .5rem;
28
- --retro-radius-md: 0.75rem;
29
- --retro-radius-lg: 1rem;
30
- --retro-radius-xl: calc(1rem + .5rem);
26
+ --retro-radius-xs: .3rem;
27
+ --retro-radius-sm: .55rem;
28
+ --retro-radius-md: .8rem;
29
+ --retro-radius-lg: 1.25rem;
30
+ --retro-radius-xl: 2rem;
31
31
  --retro-radius-pill: 999px;
32
32
  --retro-space-1: .25rem;
33
33
  --retro-space-2: .5rem;
@@ -42,6 +42,29 @@
42
42
 
43
43
  [data-ui="retrofuturism"][data-mode="light"] {
44
44
  color-scheme: light;
45
+ --retro-fallback-bg-rgb: 245 247 250;
46
+ --retro-fallback-surface-rgb: 255 255 255;
47
+ --retro-fallback-surface-strong-rgb: 252 252 253;
48
+ --retro-fallback-surface-soft-rgb: 232 235 240;
49
+ --retro-fallback-text-rgb: 17 36 59;
50
+ --retro-fallback-text-muted-rgb: 90 104 119;
51
+ --retro-fallback-border-rgb: 200 207 217;
52
+ --retro-fallback-primary-rgb: 13 59 102;
53
+ --retro-fallback-primary-hover-rgb: 11 49 85;
54
+ --retro-fallback-primary-text-rgb: 255 255 255;
55
+ --retro-fallback-secondary-rgb: 214 43 43;
56
+ --retro-fallback-secondary-hover-rgb: 178 35 35;
57
+ --retro-fallback-secondary-text-rgb: 255 255 255;
58
+ --retro-fallback-accent-rgb: 233 90 90;
59
+ --retro-fallback-accent-text-rgb: 0 0 0;
60
+ --retro-fallback-success-rgb: 47 125 84;
61
+ --retro-fallback-success-text-rgb: 255 255 255;
62
+ --retro-fallback-warning-rgb: 164 106 0;
63
+ --retro-fallback-warning-text-rgb: 0 0 0;
64
+ --retro-fallback-danger-rgb: 198 40 40;
65
+ --retro-fallback-danger-text-rgb: 255 255 255;
66
+ --retro-fallback-link-rgb: 11 49 85;
67
+ --retro-fallback-focus-rgb: 214 43 43;
45
68
  --retro-panel-alpha: .98;
46
69
  --retro-panel-soft-alpha: .78;
47
70
  --retro-border-alpha: .58;
@@ -51,6 +74,29 @@
51
74
 
52
75
  [data-ui="retrofuturism"][data-mode="dark"] {
53
76
  color-scheme: dark;
77
+ --retro-fallback-bg-rgb: 8 17 28;
78
+ --retro-fallback-surface-rgb: 16 32 48;
79
+ --retro-fallback-surface-strong-rgb: 24 49 73;
80
+ --retro-fallback-surface-soft-rgb: 11 23 36;
81
+ --retro-fallback-text-rgb: 243 247 251;
82
+ --retro-fallback-text-muted-rgb: 188 200 213;
83
+ --retro-fallback-border-rgb: 71 96 121;
84
+ --retro-fallback-primary-rgb: 108 169 227;
85
+ --retro-fallback-primary-hover-rgb: 147 193 237;
86
+ --retro-fallback-primary-text-rgb: 0 0 0;
87
+ --retro-fallback-secondary-rgb: 255 106 106;
88
+ --retro-fallback-secondary-hover-rgb: 255 146 146;
89
+ --retro-fallback-secondary-text-rgb: 0 0 0;
90
+ --retro-fallback-accent-rgb: 255 154 154;
91
+ --retro-fallback-accent-text-rgb: 0 0 0;
92
+ --retro-fallback-success-rgb: 143 223 182;
93
+ --retro-fallback-success-text-rgb: 0 0 0;
94
+ --retro-fallback-warning-rgb: 255 210 122;
95
+ --retro-fallback-warning-text-rgb: 0 0 0;
96
+ --retro-fallback-danger-rgb: 255 143 143;
97
+ --retro-fallback-danger-text-rgb: 0 0 0;
98
+ --retro-fallback-link-rgb: 165 203 241;
99
+ --retro-fallback-focus-rgb: 255 106 106;
54
100
  --retro-panel-alpha: .92;
55
101
  --retro-panel-soft-alpha: .64;
56
102
  --retro-border-alpha: .52;
@@ -60,6 +106,29 @@
60
106
 
61
107
  [data-ui="retrofuturism"][data-mode="contrast"] {
62
108
  color-scheme: dark;
109
+ --retro-fallback-bg-rgb: 0 0 0;
110
+ --retro-fallback-surface-rgb: 6 16 26;
111
+ --retro-fallback-surface-strong-rgb: 10 29 48;
112
+ --retro-fallback-surface-soft-rgb: 0 0 0;
113
+ --retro-fallback-text-rgb: 255 255 255;
114
+ --retro-fallback-text-muted-rgb: 238 244 255;
115
+ --retro-fallback-border-rgb: 255 255 255;
116
+ --retro-fallback-primary-rgb: 102 181 255;
117
+ --retro-fallback-primary-hover-rgb: 255 255 255;
118
+ --retro-fallback-primary-text-rgb: 0 0 0;
119
+ --retro-fallback-secondary-rgb: 255 102 102;
120
+ --retro-fallback-secondary-hover-rgb: 255 255 255;
121
+ --retro-fallback-secondary-text-rgb: 0 0 0;
122
+ --retro-fallback-accent-rgb: 255 170 170;
123
+ --retro-fallback-accent-text-rgb: 0 0 0;
124
+ --retro-fallback-success-rgb: 0 255 144;
125
+ --retro-fallback-success-text-rgb: 0 0 0;
126
+ --retro-fallback-warning-rgb: 255 212 0;
127
+ --retro-fallback-warning-text-rgb: 0 0 0;
128
+ --retro-fallback-danger-rgb: 255 92 92;
129
+ --retro-fallback-danger-text-rgb: 0 0 0;
130
+ --retro-fallback-link-rgb: 140 198 255;
131
+ --retro-fallback-focus-rgb: 255 255 255;
63
132
  --retro-panel-alpha: 1;
64
133
  --retro-panel-soft-alpha: .92;
65
134
  --retro-border-alpha: 1;
@@ -67,8 +136,8 @@
67
136
  --retro-focus-alpha: .72;
68
137
  }
69
138
 
139
+ /** Preserves direct aliases for static extraction when a scheme is selected. */
70
140
  [data-ui="retrofuturism"][data-theme][data-mode] {
71
- /* Shared scheme aliases preserve the existing prefixed token API. */
72
141
  --retro-bg-rgb: var(--usk-bg-rgb);
73
142
  --retro-surface-rgb: var(--usk-surface-rgb);
74
143
  --retro-surface-strong-rgb: var(--usk-surface-strong-rgb);
@@ -83,15 +152,43 @@
83
152
  --retro-secondary-hover-rgb: var(--usk-secondary-hover-rgb);
84
153
  --retro-secondary-text-rgb: var(--usk-secondary-text-rgb);
85
154
  --retro-accent-rgb: var(--usk-accent-rgb);
86
- --retro-success-rgb: var(--usk-success-rgb);
87
- --retro-warning-rgb: var(--usk-warning-rgb);
88
- --retro-danger-rgb: var(--usk-danger-rgb);
89
- --retro-link-rgb: var(--usk-link-rgb);
90
155
  --retro-accent-text-rgb: var(--usk-accent-text-rgb);
156
+ --retro-success-rgb: var(--usk-success-rgb);
91
157
  --retro-success-text-rgb: var(--usk-success-text-rgb);
158
+ --retro-warning-rgb: var(--usk-warning-rgb);
92
159
  --retro-warning-text-rgb: var(--usk-warning-text-rgb);
160
+ --retro-danger-rgb: var(--usk-danger-rgb);
93
161
  --retro-danger-text-rgb: var(--usk-danger-text-rgb);
162
+ --retro-link-rgb: var(--usk-link-rgb);
94
163
  --retro-focus-rgb: var(--usk-focus-rgb);
164
+ }
165
+
166
+ [data-ui="retrofuturism"][data-mode] {
167
+ --usk-native-bg: var(--retro-bg);
168
+ /* Explicit schemes win; reference colors are used only when no scheme exists. */
169
+ --retro-bg-rgb: var(--usk-bg-rgb, var(--retro-fallback-bg-rgb));
170
+ --retro-surface-rgb: var(--usk-surface-rgb, var(--retro-fallback-surface-rgb));
171
+ --retro-surface-strong-rgb: var(--usk-surface-strong-rgb, var(--retro-fallback-surface-strong-rgb));
172
+ --retro-surface-soft-rgb: var(--usk-surface-soft-rgb, var(--retro-fallback-surface-soft-rgb));
173
+ --retro-text-rgb: var(--usk-text-rgb, var(--retro-fallback-text-rgb));
174
+ --retro-text-muted-rgb: var(--usk-text-muted-rgb, var(--retro-fallback-text-muted-rgb));
175
+ --retro-border-rgb: var(--usk-border-rgb, var(--retro-fallback-border-rgb));
176
+ --retro-primary-rgb: var(--usk-primary-rgb, var(--retro-fallback-primary-rgb));
177
+ --retro-primary-hover-rgb: var(--usk-primary-hover-rgb, var(--retro-fallback-primary-hover-rgb));
178
+ --retro-primary-text-rgb: var(--usk-primary-text-rgb, var(--retro-fallback-primary-text-rgb));
179
+ --retro-secondary-rgb: var(--usk-secondary-rgb, var(--retro-fallback-secondary-rgb));
180
+ --retro-secondary-hover-rgb: var(--usk-secondary-hover-rgb, var(--retro-fallback-secondary-hover-rgb));
181
+ --retro-secondary-text-rgb: var(--usk-secondary-text-rgb, var(--retro-fallback-secondary-text-rgb));
182
+ --retro-accent-rgb: var(--usk-accent-rgb, var(--retro-fallback-accent-rgb));
183
+ --retro-accent-text-rgb: var(--usk-accent-text-rgb, var(--retro-fallback-accent-text-rgb));
184
+ --retro-success-rgb: var(--usk-success-rgb, var(--retro-fallback-success-rgb));
185
+ --retro-success-text-rgb: var(--usk-success-text-rgb, var(--retro-fallback-success-text-rgb));
186
+ --retro-warning-rgb: var(--usk-warning-rgb, var(--retro-fallback-warning-rgb));
187
+ --retro-warning-text-rgb: var(--usk-warning-text-rgb, var(--retro-fallback-warning-text-rgb));
188
+ --retro-danger-rgb: var(--usk-danger-rgb, var(--retro-fallback-danger-rgb));
189
+ --retro-danger-text-rgb: var(--usk-danger-text-rgb, var(--retro-fallback-danger-text-rgb));
190
+ --retro-link-rgb: var(--usk-link-rgb, var(--retro-fallback-link-rgb));
191
+ --retro-focus-rgb: var(--usk-focus-rgb, var(--retro-fallback-focus-rgb));
95
192
  /* Native fallback selectors inherit visual identity through shared tokens. */
96
193
  --usk-native-surface: var(--retro-surface);
97
194
  --usk-native-surface-strong: var(--retro-surface-strong);
@@ -122,6 +219,57 @@
122
219
  --usk-native-border-width: 1px;
123
220
  --usk-native-field-gap: .5rem;
124
221
  --usk-native-panel-padding: var(--retro-space-5);
222
+ --usk-native-control-min-block-size: 3.1rem;
223
+ --usk-native-control-padding-block: .68rem;
224
+ --usk-native-control-padding-inline: .95rem;
225
+ --usk-native-subcontrol-padding-block: .5rem;
226
+ --usk-native-subcontrol-padding-inline: .72rem;
227
+ --usk-native-choice-size: 1.55rem;
228
+ --usk-native-choice-background: var(--retro-control-bg);
229
+ --usk-native-choice-border: 1px solid var(--retro-border);
230
+ --usk-native-checkbox-radius: .2rem;
231
+ --usk-native-radio-radius: 50%;
232
+ --usk-native-choice-shadow: 0 0 10px var(--retro-primary);
233
+ --usk-native-choice-checked-background: var(--retro-primary);
234
+ --usk-native-choice-mark-color: var(--retro-on-primary);
235
+ --usk-native-select-indicator-image: linear-gradient(45deg, transparent 50%, var(--retro-primary) 50%), linear-gradient(135deg, var(--retro-primary) 50%, transparent 50%);
236
+ --usk-native-select-indicator-size: 0.38rem 0.38rem, 0.38rem 0.38rem;
237
+ --usk-native-select-indicator-position: calc(100% - 1.16rem) 50%, calc(100% - 0.84rem) 50%;
238
+ --usk-native-select-padding-inline-end: 2.55rem;
239
+ --usk-native-range-track-size: .72rem;
240
+ --usk-native-range-track-background: var(--retro-surface-soft);
241
+ --usk-native-range-track-border: 1px solid var(--retro-border);
242
+ --usk-native-range-track-radius: .18rem;
243
+ --usk-native-range-track-shadow: 0 0 10px var(--retro-primary);
244
+ --usk-native-range-progress-background: var(--retro-primary);
245
+ --usk-native-range-thumb-size: 1.55rem;
246
+ --usk-native-range-thumb-background: var(--retro-surface-strong);
247
+ --usk-native-range-thumb-border: 1px solid var(--retro-border);
248
+ --usk-native-range-thumb-radius: 50%;
249
+ --usk-native-range-thumb-shadow: 0 0 10px var(--retro-primary);
250
+ --usk-native-progress-size: .82rem;
251
+ --usk-native-progress-track-background: var(--retro-surface-soft);
252
+ --usk-native-progress-track-border: 1px solid var(--retro-border);
253
+ --usk-native-progress-track-radius: .16rem;
254
+ --usk-native-progress-track-shadow: 0 0 10px var(--retro-primary);
255
+ --usk-native-progress-value-background: var(--retro-primary);
256
+ --usk-native-progress-value-radius: .16rem;
257
+ --usk-native-progress-value-shadow: 0 0 10px var(--retro-primary);
258
+ --usk-native-meter-optimum-background: var(--retro-success);
259
+ --usk-native-meter-suboptimum-background: var(--retro-warning);
260
+ --usk-native-meter-critical-background: var(--retro-danger);
261
+ --usk-native-file-button-background: var(--retro-primary);
262
+ --usk-native-file-button-border: 1px solid var(--retro-border);
263
+ --usk-native-file-button-radius: .2rem;
264
+ --usk-native-file-button-shadow: 0 0 10px var(--retro-primary);
265
+ --usk-native-color-swatch-border: 1px solid var(--retro-border);
266
+ --usk-native-color-swatch-radius: .2rem;
267
+ --usk-native-indicator-opacity: 0.77;
268
+ --usk-native-indicator-filter: none;
269
+ --usk-native-scrollbar-size: .78rem;
270
+ --usk-native-scrollbar-track: var(--retro-surface-soft);
271
+ --usk-native-scrollbar-thumb: var(--retro-primary);
272
+ --usk-native-scrollbar-radius: .16rem;
125
273
  --usk-native-shadow: 0 10px 30px rgb(0 0 0 / calc(var(--retro-shadow-alpha) * .72));
126
274
  --retro-bg: rgb(var(--retro-bg-rgb));
127
275
  --retro-surface: rgb(var(--retro-surface-rgb) / var(--retro-panel-alpha));
@@ -163,7 +311,7 @@
163
311
  }
164
312
 
165
313
  @supports (color: color-mix(in srgb, black, white)) {
166
- [data-ui="retrofuturism"][data-theme][data-mode] { --retro-border: color-mix(in srgb, rgb(var(--retro-border-rgb) / max(var(--retro-border-alpha), var(--usk-border-min-alpha))), var(--retro-text) var(--usk-border-text-mix)); }
314
+ [data-ui="retrofuturism"][data-mode] { --retro-border: color-mix(in srgb, rgb(var(--retro-border-rgb) / max(var(--retro-border-alpha), var(--usk-border-min-alpha))), var(--retro-text) var(--usk-border-text-mix)); }
167
315
  }
168
316
 
169
317
 
@@ -215,7 +363,7 @@
215
363
  [data-ui="retrofuturism"] *::before,
216
364
  [data-ui="retrofuturism"] *::after { box-sizing: border-box; }
217
365
 
218
- [data-ui="retrofuturism"][data-theme][data-mode] { background: var(--retro-theme-bg); background-size: var(--retro-theme-bg-size); }
366
+ [data-ui="retrofuturism"][data-mode] { background: var(--retro-theme-bg); background-size: var(--retro-theme-bg-size); }
219
367
 
220
368
  .retro-page { min-height: 100vh; padding: clamp(1rem, 4vw, 3rem); }
221
369
  .retro-container { width: min(100% - 2rem, 1200px); margin-inline: auto; }
@@ -282,7 +430,7 @@
282
430
  /* Theme-responsive component defaults */
283
431
  .retro-card, .retro-panel { background: var(--retro-card-bg); }
284
432
  .retro-toolbar, .retro-table-wrap { background: var(--retro-control-bg); }
285
- .retro-button:not(.retro-button-primary):not(.retro-button-secondary):not(.retro-button-danger):not(.retro-button-ghost), .retro-icon-button { background: var(--retro-control-bg); }
433
+ .retro-button:not(.retro-button-primary):not(.retro-button-secondary):not(.retro-button-danger):not(.retro-button-warning):not(.retro-button-ghost), .retro-icon-button { background: var(--retro-control-bg); }
286
434
  .retro-button, .retro-icon-button, .retro-badge, .retro-nav-link { font-family: var(--retro-font-control); }
287
435
 
288
436
 
@@ -377,44 +525,10 @@
377
525
 
378
526
 
379
527
  /* =========================================================
380
- Retrofuturism Console/Grid Overrides
528
+ Retrofuturism Loading Motion
381
529
  ========================================================= */
382
- [data-ui="retrofuturism"][data-theme][data-mode] {
383
- --retro-scanline-alpha: .055;
384
- --retro-grid-alpha: .12;
385
- --retro-glow-alpha: .34;
386
- }
387
- [data-ui="retrofuturism"] {
388
- background:
389
- radial-gradient(circle at 50% -10%, rgb(var(--retro-accent-rgb) / .16), transparent 34rem),
390
- radial-gradient(circle at 85% 12%, rgb(var(--retro-secondary-rgb) / .12), transparent 28rem),
391
- linear-gradient(180deg, rgb(255 255 255 / .025), rgb(0 0 0 / .08)),
392
- var(--retro-bg);
393
- }
394
- .retro-page {
395
- background-image:
396
- linear-gradient(to bottom, rgb(255 255 255 / var(--retro-scanline-alpha)) 0 1px, transparent 1px 4px),
397
- linear-gradient(90deg, rgb(var(--retro-border-rgb) / var(--retro-grid-alpha)) 1px, transparent 1px),
398
- linear-gradient(rgb(var(--retro-border-rgb) / var(--retro-grid-alpha)) 1px, transparent 1px);
399
- background-size: 100% 4px, 44px 44px, 44px 44px;
400
- }
401
- .retro-title, .retro-heading {
402
- text-transform: uppercase;
403
- letter-spacing: .07em;
404
- text-shadow: 0 0 12px rgb(var(--retro-primary-rgb) / .24), 0 0 26px rgb(var(--retro-accent-rgb) / .16);
405
- }
406
- .retro-surface, .retro-card, .retro-panel, .retro-toolbar, .retro-table-wrap {
407
- background:
408
- linear-gradient(180deg, rgb(255 255 255 / .1), rgb(255 255 255 / .02)),
409
- linear-gradient(135deg, rgb(var(--retro-primary-rgb) / .08), transparent 46%),
410
- var(--retro-surface);
411
- box-shadow:
412
- 0 18px 48px rgb(0 0 0 / var(--retro-shadow-alpha)),
413
- 0 0 0 1px rgb(var(--retro-border-rgb) / .2),
414
- 0 0 26px rgb(var(--retro-primary-rgb) / .14);
415
- }
416
- .retro-button-primary, .retro-badge-primary, .retro-nav-link.is-active {
417
- box-shadow: 0 0 0 1px rgb(var(--retro-primary-rgb) / .34), 0 0 22px rgb(var(--retro-primary-rgb) / .22);
530
+ [data-ui="retrofuturism"][data-mode] {
531
+ --retro-glow-alpha: .18;
418
532
  }
419
533
 
420
534
  /* Spinner geometry follows the retrofuturism preset's radar-style motion. */
@@ -551,7 +665,6 @@
551
665
  .retro-feature-strip {
552
666
  display: grid;
553
667
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
554
- overflow: hidden;
555
668
  background: var(--retro-card-bg);
556
669
  color: var(--retro-text);
557
670
  border: 1px solid var(--retro-border);
@@ -637,7 +750,9 @@
637
750
 
638
751
  /* Filled and framed actions read as paired instrument-panel controls. */
639
752
  .retro-button.retro-button-cut, .retro-button-cut {
753
+ min-block-size: 2.75rem;
640
754
  inline-size: min(100%, 18rem);
755
+ min-height: 2.75rem;
641
756
  min-inline-size: 6rem;
642
757
  max-inline-size: 100%;
643
758
  justify-self: center;
@@ -657,12 +772,12 @@
657
772
  border-radius: var(--retro-radius-lg);
658
773
  box-shadow: inset 0 0 0 1px rgb(var(--retro-surface-strong-rgb) / .7), 0 .75rem 1.6rem rgb(var(--retro-text-rgb) / .18);
659
774
  }
660
- [data-ui="retrofuturism"][data-theme][data-mode] :where(button:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class])) {
775
+ [data-ui="retrofuturism"][data-mode] :where(button:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class])) {
661
776
  border: 3px double var(--retro-primary);
662
777
  border-radius: var(--retro-radius-pill);
663
778
  box-shadow: inset 0 0 0 1px rgb(var(--retro-surface-strong-rgb) / .72), 0 .3rem .8rem rgb(var(--retro-primary-rgb) / .2);
664
779
  }
665
- [data-ui="retrofuturism"][data-theme][data-mode] :where(dialog) {
780
+ [data-ui="retrofuturism"][data-mode] :where(dialog) {
666
781
  border: 3px double var(--retro-border);
667
782
  border-radius: var(--retro-radius-lg);
668
783
  box-shadow: inset 0 0 0 1px rgb(var(--retro-surface-strong-rgb) / .72), 0 1rem 2.2rem rgb(var(--retro-text-rgb) / .24);
@@ -673,6 +788,603 @@
673
788
  border: .09em solid currentColor; border-radius: 50%; background: radial-gradient(circle, currentColor 0 .1em, transparent .12em), conic-gradient(currentColor, transparent 45%, currentColor); box-shadow: 0 0 0 .1em rgb(var(--retro-primary-rgb) / .2), 0 0 .45em rgb(var(--retro-accent-rgb) / .6); clip-path: circle(50%); animation: retro-spin 1.08s linear infinite;
674
789
  }
675
790
 
791
+ /* =========================================================
792
+ Atomic-Age Instrument Refinement
793
+ Theme channels supply paint while appliance geometry,
794
+ enamel depth, and calibrated controls establish identity.
795
+ ========================================================= */
796
+ [data-ui="retrofuturism"][data-mode="light"] {
797
+ --retro-enamel-opacity: .98;
798
+ --retro-recess-opacity: .82;
799
+ --retro-metal-highlight-alpha: .88;
800
+ --retro-metal-shadow-alpha: .3;
801
+ --retro-instrument-alpha: .22;
802
+ --retro-depth-alpha: .12;
803
+ }
804
+
805
+ [data-ui="retrofuturism"][data-mode="dark"] {
806
+ --retro-enamel-opacity: .94;
807
+ --retro-recess-opacity: .72;
808
+ --retro-metal-highlight-alpha: .56;
809
+ --retro-metal-shadow-alpha: .72;
810
+ --retro-instrument-alpha: .34;
811
+ --retro-depth-alpha: .3;
812
+ }
813
+
814
+ [data-ui="retrofuturism"][data-mode="contrast"] {
815
+ --retro-enamel-opacity: 1;
816
+ --retro-recess-opacity: 1;
817
+ --retro-metal-highlight-alpha: 1;
818
+ --retro-metal-shadow-alpha: 1;
819
+ --retro-instrument-alpha: .5;
820
+ --retro-depth-alpha: .5;
821
+ }
822
+
823
+ [data-ui="retrofuturism"][data-mode] {
824
+ --retro-instrument-radius-sm: .48rem;
825
+ --retro-instrument-radius: .72rem;
826
+ --retro-instrument-radius-lg: 1.35rem;
827
+ --retro-metal-edge: rgb(var(--retro-border-rgb) / max(.76, var(--retro-border-alpha)));
828
+ --retro-metal-rim: linear-gradient(
829
+ 180deg,
830
+ rgb(var(--retro-surface-strong-rgb) / var(--retro-metal-highlight-alpha)),
831
+ rgb(var(--retro-border-rgb) / .92) 28%,
832
+ rgb(var(--retro-text-rgb) / var(--retro-metal-shadow-alpha)) 52%,
833
+ rgb(var(--retro-surface-strong-rgb) / .78) 74%,
834
+ rgb(var(--retro-border-rgb) / .9)
835
+ );
836
+ --retro-enamel-bg: linear-gradient(
837
+ 155deg,
838
+ rgb(var(--retro-surface-strong-rgb) / var(--retro-enamel-opacity)),
839
+ rgb(var(--retro-surface-rgb) / var(--retro-panel-alpha)) 52%,
840
+ rgb(var(--retro-surface-soft-rgb) / var(--retro-recess-opacity))
841
+ );
842
+ --retro-recess-bg: linear-gradient(
843
+ 180deg,
844
+ rgb(var(--retro-text-rgb) / calc(var(--retro-instrument-alpha) * .72)),
845
+ rgb(var(--retro-secondary-rgb) / var(--retro-instrument-alpha))
846
+ ), var(--retro-surface-soft);
847
+ --retro-field-bg: linear-gradient(180deg, rgb(var(--retro-surface-strong-rgb) / .92), rgb(var(--retro-surface-rgb) / .98));
848
+ --retro-instrument-bg: linear-gradient(
849
+ 180deg,
850
+ rgb(var(--retro-secondary-rgb) / calc(var(--retro-instrument-alpha) + .1)),
851
+ rgb(var(--retro-primary-rgb) / var(--retro-instrument-alpha))
852
+ ), var(--retro-surface-soft);
853
+ --retro-action-bg: linear-gradient(
854
+ 180deg,
855
+ rgb(var(--retro-primary-hover-rgb)),
856
+ rgb(var(--retro-primary-rgb)) 62%,
857
+ rgb(var(--retro-primary-hover-rgb))
858
+ );
859
+ --retro-secondary-action-bg: linear-gradient(
860
+ 180deg,
861
+ rgb(var(--retro-surface-strong-rgb) / .22),
862
+ transparent 42%
863
+ ), var(--retro-secondary);
864
+ --retro-danger-action-bg: linear-gradient(
865
+ 180deg,
866
+ rgb(var(--retro-surface-strong-rgb) / .22),
867
+ transparent 42%
868
+ ), var(--retro-danger);
869
+ --retro-panel-shadow: inset 0 1px 0 rgb(var(--retro-surface-strong-rgb) / var(--retro-metal-highlight-alpha)), inset 0 -2px 0 rgb(var(--retro-text-rgb) / .14), 0 .45rem 1rem rgb(var(--retro-text-rgb) / var(--retro-depth-alpha));
870
+ --retro-control-shadow: inset 0 1px 0 rgb(var(--retro-surface-strong-rgb) / .82), inset 0 -2px 0 rgb(var(--retro-text-rgb) / .18), 0 .18rem .42rem rgb(var(--retro-text-rgb) / calc(var(--retro-depth-alpha) * .82));
871
+ --retro-recess-shadow: inset 0 .24rem .55rem rgb(var(--retro-text-rgb) / calc(var(--retro-depth-alpha) + .08)), inset 0 1px 0 rgb(var(--retro-surface-strong-rgb) / .48);
872
+ --retro-pressed-shadow: inset 0 .3rem .65rem rgb(var(--retro-text-rgb) / calc(var(--retro-depth-alpha) + .16)), inset 0 -1px 0 rgb(var(--retro-surface-strong-rgb) / .36);
873
+ --retro-jewel-shadow: inset 0 1px 0 rgb(var(--retro-surface-strong-rgb) / .76), 0 0 .55rem rgb(var(--retro-accent-rgb) / .34);
874
+ --retro-calibration-track: linear-gradient(90deg, var(--retro-secondary), var(--retro-primary) 48%, var(--retro-warning) 74%, var(--retro-danger));
875
+ --retro-progress-fill: repeating-linear-gradient(90deg, var(--retro-primary) 0 .82rem, rgb(var(--retro-accent-rgb) / .82) .82rem .94rem, rgb(var(--retro-surface-strong-rgb) / .34) .94rem 1.04rem);
876
+ --retro-theme-bg: linear-gradient(135deg, rgb(var(--retro-primary-rgb) / .11), transparent 38%), linear-gradient(315deg, rgb(var(--retro-secondary-rgb) / .09), transparent 42%), var(--retro-bg);
877
+ --retro-card-bg: var(--retro-enamel-bg);
878
+ --retro-control-bg: var(--retro-recess-bg);
879
+ --usk-native-surface: var(--retro-enamel-bg);
880
+ --usk-native-surface-strong: var(--retro-surface-strong);
881
+ --usk-native-surface-soft: var(--retro-recess-bg);
882
+ --usk-native-card-bg: var(--retro-enamel-bg);
883
+ --usk-native-control-bg: var(--retro-field-bg);
884
+ --usk-native-border: var(--retro-metal-edge);
885
+ --usk-native-radius-sm: var(--retro-instrument-radius-sm);
886
+ --usk-native-radius: var(--retro-instrument-radius-sm);
887
+ --usk-native-radius-lg: var(--retro-instrument-radius-lg);
888
+ --usk-native-shadow: var(--retro-control-shadow);
889
+ --usk-native-shadow-md: var(--retro-panel-shadow);
890
+ --usk-native-border-width: 2px;
891
+ --usk-native-panel-padding: 1.125rem;
892
+ --usk-native-control-min-block-size: 2.75rem;
893
+ --usk-native-control-padding-block: .58rem;
894
+ --usk-native-control-padding-inline: .82rem;
895
+ --usk-native-subcontrol-padding-block: .42rem;
896
+ --usk-native-subcontrol-padding-inline: .62rem;
897
+ --usk-native-choice-size: 1.18rem;
898
+ --usk-native-choice-background: var(--retro-recess-bg);
899
+ --usk-native-choice-border: 2px solid var(--retro-metal-edge);
900
+ --usk-native-checkbox-radius: .16rem;
901
+ --usk-native-radio-radius: 50%;
902
+ --usk-native-choice-shadow: var(--retro-recess-shadow);
903
+ --usk-native-choice-checked-background: var(--retro-action-bg);
904
+ --usk-native-select-indicator-image: linear-gradient(45deg, transparent 48%, var(--retro-text) 50%), linear-gradient(135deg, var(--retro-text) 50%, transparent 52%);
905
+ --usk-native-select-indicator-size: .42rem .42rem, .42rem .42rem;
906
+ --usk-native-select-indicator-position: calc(100% - 1.2rem) 50%, calc(100% - .87rem) 50%;
907
+ --usk-native-select-padding-inline-end: 2.7rem;
908
+ --usk-native-range-track-size: .38rem;
909
+ --usk-native-range-track-background: var(--retro-calibration-track);
910
+ --usk-native-range-track-border: 1px solid var(--retro-metal-edge);
911
+ --usk-native-range-track-radius: var(--retro-radius-pill);
912
+ --usk-native-range-track-shadow: var(--retro-recess-shadow);
913
+ --usk-native-range-progress-background: var(--retro-calibration-track);
914
+ --usk-native-range-thumb-size: 1.25rem;
915
+ --usk-native-range-thumb-background: var(--retro-metal-rim);
916
+ --usk-native-range-thumb-border: 3px double var(--retro-metal-edge);
917
+ --usk-native-range-thumb-radius: 50%;
918
+ --usk-native-range-thumb-shadow: var(--retro-control-shadow);
919
+ --usk-native-progress-size: 1rem;
920
+ --usk-native-progress-track-background: var(--retro-recess-bg);
921
+ --usk-native-progress-track-border: 3px double var(--retro-metal-edge);
922
+ --usk-native-progress-track-radius: var(--retro-radius-pill);
923
+ --usk-native-progress-track-shadow: var(--retro-recess-shadow);
924
+ --usk-native-progress-value-background: var(--retro-progress-fill);
925
+ --usk-native-progress-value-radius: var(--retro-radius-pill);
926
+ --usk-native-progress-value-shadow: var(--retro-jewel-shadow);
927
+ --usk-native-file-button-background: var(--retro-enamel-bg);
928
+ --usk-native-file-button-border: 2px solid var(--retro-metal-edge);
929
+ --usk-native-file-button-radius: var(--retro-instrument-radius-sm);
930
+ --usk-native-file-button-shadow: var(--retro-control-shadow);
931
+ --usk-native-color-swatch-border: 3px double var(--retro-metal-edge);
932
+ --usk-native-color-swatch-radius: 50%;
933
+ --usk-native-indicator-opacity: .9;
934
+ --usk-native-scrollbar-size: .9rem;
935
+ --usk-native-scrollbar-track: var(--retro-recess-bg);
936
+ --usk-native-scrollbar-thumb: var(--retro-metal-rim);
937
+ --usk-native-scrollbar-radius: var(--retro-radius-pill);
938
+ }
939
+
940
+ [data-ui="retrofuturism"] {
941
+ background: var(--retro-theme-bg);
942
+ }
943
+
944
+ .retro-page {
945
+ background-color: var(--retro-surface);
946
+ background-image: none;
947
+ border: 3px double var(--retro-metal-edge);
948
+ border-radius: var(--retro-radius-xl);
949
+ box-shadow: inset 0 0 0 .28rem rgb(var(--retro-surface-strong-rgb) / .48), inset 0 0 0 .42rem rgb(var(--retro-border-rgb) / .32), var(--retro-panel-shadow);
950
+ }
951
+
952
+ .retro-title { margin-block: .75rem;
953
+ font-family: var(--retro-font-display);
954
+ font-size: clamp(2.3rem, 6vw, 4.6rem);
955
+ font-stretch: condensed;
956
+ font-weight: 900;
957
+ line-height: .92;
958
+ letter-spacing: max(.026em, .5px);
959
+ text-transform: none;
960
+ text-shadow: none;
961
+ }
962
+
963
+ .retro-heading {
964
+ font-family: var(--retro-font-display);
965
+ font-stretch: condensed;
966
+ font-weight: 850;
967
+ line-height: 1;
968
+ letter-spacing: -.018em;
969
+ text-transform: none;
970
+ text-shadow: none;
971
+ }
972
+
973
+ .retro-kicker, .retro-eyebrow {
974
+ font-family: var(--retro-font-control);
975
+ font-size: .72rem;
976
+ font-weight: 800;
977
+ letter-spacing: .18em;
978
+ text-transform: uppercase;
979
+ }
980
+
981
+ .retro-label {
982
+ font-family: var(--retro-font-control);
983
+ font-size: .72rem;
984
+ font-weight: 800;
985
+ letter-spacing: .11em;
986
+ text-transform: uppercase;
987
+ }
988
+
989
+ .retro-surface, .retro-card, .retro-panel, .retro-toolbar, .retro-table-wrap {
990
+ background: var(--retro-enamel-bg);
991
+ border: 2px solid var(--retro-metal-edge);
992
+ border-radius: var(--retro-radius-lg);
993
+ box-shadow: var(--retro-panel-shadow);
994
+ }
995
+
996
+ .retro-card, .retro-panel {
997
+ padding: 1.125rem;
998
+ }
999
+
1000
+ .retro-toolbar {
1001
+ padding: .82rem 1rem;
1002
+ }
1003
+
1004
+ .retro-well, .retro-inset {
1005
+ background: var(--retro-recess-bg);
1006
+ border: 2px solid var(--retro-metal-edge);
1007
+ border-radius: var(--retro-instrument-radius);
1008
+ padding: .92rem;
1009
+ box-shadow: var(--retro-recess-shadow);
1010
+ }
1011
+
1012
+ .retro-hover-lift:hover {
1013
+ transform: translateY(-1px);
1014
+ box-shadow: inset 0 1px 0 rgb(var(--retro-surface-strong-rgb) / .9), 0 .7rem 1.15rem rgb(var(--retro-text-rgb) / calc(var(--retro-depth-alpha) + .06));
1015
+ }
1016
+
1017
+ .retro-button, .retro-icon-button {
1018
+ min-height: 2.75rem;
1019
+ padding: .62rem 1.15rem;
1020
+ background: var(--retro-enamel-bg);
1021
+ color: var(--retro-text);
1022
+ border: 3px double var(--retro-metal-edge);
1023
+ border-radius: var(--retro-radius-pill);
1024
+ box-shadow: var(--retro-control-shadow);
1025
+ font-family: var(--retro-font-control);
1026
+ font-size: .78rem;
1027
+ font-weight: 800;
1028
+ letter-spacing: .08em;
1029
+ text-transform: uppercase;
1030
+ }
1031
+
1032
+ .retro-button:hover, .retro-icon-button:hover {
1033
+ transform: translateY(-1px);
1034
+ border-color: var(--retro-primary);
1035
+ box-shadow: inset 0 1px 0 rgb(var(--retro-surface-strong-rgb) / .92), 0 .38rem .78rem rgb(var(--retro-primary-rgb) / .24);
1036
+ }
1037
+
1038
+ .retro-button:active, .retro-icon-button:active, .retro-button[aria-pressed="true"], .retro-icon-button[aria-pressed="true"], .retro-button.is-active, .retro-icon-button.is-active {
1039
+ transform: translateY(1px);
1040
+ box-shadow: var(--retro-pressed-shadow);
1041
+ }
1042
+
1043
+ .retro-button-primary {
1044
+ background: var(--retro-action-bg);
1045
+ color: var(--retro-on-primary);
1046
+ border-color: rgb(var(--retro-primary-hover-rgb) / .94);
1047
+ box-shadow: var(--retro-control-shadow), 0 0 0 1px rgb(var(--retro-primary-text-rgb) / .2);
1048
+ }
1049
+
1050
+ .retro-button-secondary {
1051
+ background: var(--retro-secondary-action-bg);
1052
+ color: var(--retro-on-secondary);
1053
+ border-color: var(--retro-secondary-hover);
1054
+ }
1055
+
1056
+ .retro-button-danger {
1057
+ background: var(--retro-danger-action-bg);
1058
+ color: var(--retro-on-danger);
1059
+ border-color: var(--retro-danger);
1060
+ }
1061
+
1062
+ .retro-button-ghost {
1063
+ background: transparent;
1064
+ color: var(--retro-text);
1065
+ box-shadow: inset 0 0 0 1px rgb(var(--retro-border-rgb) / .42);
1066
+ }
1067
+
1068
+ .retro-icon-button {
1069
+ inline-size: 2.75rem;
1070
+ padding: 0;
1071
+ }
1072
+
1073
+ .retro-input, .retro-textarea, .retro-select {
1074
+ min-height: 2.55rem;
1075
+ padding: .55rem .8rem;
1076
+ background: var(--retro-recess-bg);
1077
+ color: var(--retro-text);
1078
+ border: 2px solid var(--retro-metal-edge);
1079
+ border-radius: var(--retro-instrument-radius-sm);
1080
+ box-shadow: var(--retro-recess-shadow);
1081
+ font-family: var(--retro-font-body);
1082
+ }
1083
+
1084
+ .retro-input:focus, .retro-textarea:focus, .retro-select:focus {
1085
+ border-color: var(--retro-focus);
1086
+ box-shadow: var(--retro-recess-shadow), var(--retro-focus-ring);
1087
+ }
1088
+
1089
+ .retro-check-control, .retro-radio-control {
1090
+ inline-size: 1.18rem;
1091
+ block-size: 1.18rem;
1092
+ background: var(--retro-recess-bg);
1093
+ border: 2px solid var(--retro-metal-edge);
1094
+ box-shadow: var(--retro-recess-shadow);
1095
+ }
1096
+
1097
+ .retro-check input:checked + .retro-check-control, .retro-radio input:checked + .retro-radio-control {
1098
+ background: var(--retro-action-bg);
1099
+ border-color: var(--retro-primary);
1100
+ box-shadow: var(--retro-jewel-shadow), var(--retro-focus-ring);
1101
+ }
1102
+
1103
+ .retro-switch-track {
1104
+ inline-size: 3.35rem;
1105
+ block-size: 1.65rem;
1106
+ background: var(--retro-recess-bg);
1107
+ border: 2px solid var(--retro-metal-edge);
1108
+ border-radius: var(--retro-radius-pill);
1109
+ box-shadow: var(--retro-recess-shadow);
1110
+ }
1111
+
1112
+ .retro-switch-thumb {
1113
+ inset-block-start: .12rem;
1114
+ inset-inline-start: .14rem;
1115
+ inline-size: 1.18rem;
1116
+ block-size: 1.18rem;
1117
+ background: var(--retro-metal-rim);
1118
+ border: 2px solid var(--retro-metal-edge);
1119
+ box-shadow: var(--retro-control-shadow);
1120
+ }
1121
+
1122
+ .retro-switch input:checked + .retro-switch-track {
1123
+ background: var(--retro-instrument-bg);
1124
+ border-color: var(--retro-primary);
1125
+ }
1126
+
1127
+ .retro-switch input:checked + .retro-switch-track .retro-switch-thumb {
1128
+ left: calc(100% - 1.18rem - .14rem);
1129
+ background: var(--retro-action-bg);
1130
+ }
1131
+
1132
+ .retro-badge {
1133
+ min-height: 1.55rem;
1134
+ padding: .28rem .62rem;
1135
+ background: var(--retro-enamel-bg);
1136
+ border: 2px solid var(--retro-metal-edge);
1137
+ border-radius: var(--retro-radius-pill);
1138
+ box-shadow: var(--retro-control-shadow);
1139
+ font-family: var(--retro-font-control);
1140
+ font-size: .68rem;
1141
+ font-weight: 800;
1142
+ letter-spacing: .06em;
1143
+ text-transform: uppercase;
1144
+ }
1145
+
1146
+ .retro-badge-primary {
1147
+ background: linear-gradient(180deg, rgb(var(--retro-surface-rgb) / .22), transparent 48%), var(--retro-primary);
1148
+ color: var(--retro-on-primary);
1149
+ border-color: var(--retro-primary-hover);
1150
+ }
1151
+
1152
+ .retro-badge-secondary {
1153
+ background: linear-gradient(180deg, rgb(var(--retro-surface-rgb) / .22), transparent 48%), var(--retro-secondary);
1154
+ color: var(--retro-on-secondary);
1155
+ border-color: var(--retro-secondary-hover);
1156
+ }
1157
+
1158
+ .retro-badge-success {
1159
+ background: linear-gradient(180deg, rgb(var(--retro-surface-rgb) / .22), transparent 48%), var(--retro-success);
1160
+ color: var(--retro-on-success);
1161
+ border-color: var(--retro-success);
1162
+ }
1163
+
1164
+ .retro-badge-warning {
1165
+ background: linear-gradient(180deg, rgb(var(--retro-surface-rgb) / .22), transparent 48%), var(--retro-warning);
1166
+ color: var(--retro-on-warning);
1167
+ border-color: var(--retro-warning);
1168
+ }
1169
+
1170
+ .retro-badge-danger {
1171
+ background: linear-gradient(180deg, rgb(var(--retro-surface-rgb) / .22), transparent 48%), var(--retro-danger);
1172
+ color: var(--retro-on-danger);
1173
+ border-color: var(--retro-danger);
1174
+ }
1175
+
1176
+ .retro-nav {
1177
+ gap: .2rem;
1178
+ padding: .3rem;
1179
+ background: var(--retro-enamel-bg);
1180
+ border: 3px double var(--retro-metal-edge);
1181
+ border-radius: var(--retro-instrument-radius-lg);
1182
+ box-shadow: var(--retro-panel-shadow);
1183
+ }
1184
+
1185
+ .retro-nav-link {
1186
+ min-height: 2.45rem;
1187
+ padding: .58rem .9rem;
1188
+ border: 1px solid transparent;
1189
+ border-radius: var(--retro-instrument-radius);
1190
+ font-family: var(--retro-font-control);
1191
+ font-size: .74rem;
1192
+ font-weight: 800;
1193
+ letter-spacing: .08em;
1194
+ text-transform: uppercase;
1195
+ }
1196
+
1197
+ .retro-nav-link:hover {
1198
+ background: var(--retro-recess-bg);
1199
+ border-color: rgb(var(--retro-border-rgb) / .54);
1200
+ }
1201
+
1202
+ .retro-nav-link[aria-current="page"], .retro-nav-link.is-active {
1203
+ background: var(--retro-action-bg);
1204
+ color: var(--retro-on-primary);
1205
+ border-color: var(--retro-primary-hover);
1206
+ box-shadow: var(--retro-control-shadow);
1207
+ }
1208
+
1209
+ .retro-tooltip, [data-ui="retrofuturism"] :where(.ui-tooltip, [role="tooltip"], [data-tooltip]) {
1210
+ background: var(--retro-recess-bg);
1211
+ border: 2px solid var(--retro-metal-edge);
1212
+ border-radius: var(--retro-instrument-radius);
1213
+ box-shadow: var(--retro-panel-shadow);
1214
+ font-family: var(--retro-font-control);
1215
+ font-size: .7rem;
1216
+ letter-spacing: .08em;
1217
+ }
1218
+
1219
+ .retro-progress {
1220
+ height: 1.05rem;
1221
+ padding: .14rem;
1222
+ background: var(--retro-recess-bg);
1223
+ border: 3px double var(--retro-metal-edge);
1224
+ border-radius: var(--retro-radius-pill);
1225
+ box-shadow: var(--retro-recess-shadow);
1226
+ }
1227
+
1228
+ .retro-progress-bar {
1229
+ height: 100%;
1230
+ background: var(--retro-progress-fill);
1231
+ border-radius: var(--retro-radius-pill);
1232
+ box-shadow: var(--retro-jewel-shadow);
1233
+ }
1234
+
1235
+ .retro-alert {
1236
+ padding: .9rem 1rem;
1237
+ background: var(--retro-enamel-bg);
1238
+ border: 3px double var(--retro-metal-edge);
1239
+ border-radius: 1rem;
1240
+ box-shadow: var(--retro-panel-shadow);
1241
+ }
1242
+
1243
+ .retro-alert-success { border-inline-start: .45rem solid var(--retro-success); }
1244
+ .retro-alert-warning { border-inline-start: .45rem solid var(--retro-warning); }
1245
+ .retro-alert-danger { border-inline-start: .45rem solid var(--retro-danger); }
1246
+
1247
+ .retro-table-wrap {
1248
+ overflow: auto;
1249
+ background: var(--retro-enamel-bg);
1250
+ border-radius: var(--retro-radius-lg);
1251
+ box-shadow: var(--retro-panel-shadow);
1252
+ }
1253
+
1254
+ .retro-table {
1255
+ border-collapse: separate;
1256
+ border-spacing: 0;
1257
+ }
1258
+
1259
+ .retro-table th {
1260
+ padding: .62rem .78rem;
1261
+ background: var(--retro-instrument-bg);
1262
+ color: var(--retro-text);
1263
+ border-block-end: 2px solid var(--retro-metal-edge);
1264
+ box-shadow: inset 0 1px 0 rgb(var(--retro-surface-strong-rgb) / .58), inset 0 -1px 0 rgb(var(--retro-text-rgb) / .18);
1265
+ font-family: var(--retro-font-control);
1266
+ font-size: .7rem;
1267
+ font-weight: 800;
1268
+ letter-spacing: .09em;
1269
+ text-transform: uppercase;
1270
+ }
1271
+
1272
+ .retro-table td {
1273
+ padding: .68rem .78rem;
1274
+ color: var(--retro-text);
1275
+ border-block-end: 1px solid rgb(var(--retro-border-rgb) / .46);
1276
+ }
1277
+
1278
+ .retro-table tr:hover td {
1279
+ background: rgb(var(--retro-secondary-rgb) / .12);
1280
+ }
1281
+
1282
+ .retro-spinner, .retro-loading-spinner, [data-ui="retrofuturism"] :where(.ui-spinner, .loading-spinner, [data-loading-spinner]) {
1283
+ border: 3px double var(--retro-metal-edge);
1284
+ border-block-start-color: var(--retro-primary);
1285
+ border-inline-end-color: var(--retro-accent);
1286
+ background: var(--retro-recess-bg);
1287
+ box-shadow: var(--retro-control-shadow);
1288
+ }
1289
+
1290
+ .retro-card-service, .retro-card-feature, .retro-media-scrim, .retro-feature-strip, .retro-callout-bar {
1291
+ background: var(--retro-enamel-bg);
1292
+ border: 3px double var(--retro-metal-edge);
1293
+ border-radius: var(--retro-radius-lg);
1294
+ box-shadow: var(--retro-panel-shadow);
1295
+ }
1296
+
1297
+ .retro-card-service {
1298
+ padding: 1.1rem;
1299
+ text-align: start;
1300
+ }
1301
+
1302
+ .retro-card-feature {
1303
+ padding: 1rem;
1304
+ }
1305
+
1306
+ .retro-card-accent-edge {
1307
+ border-inline-start: .42rem solid var(--retro-primary);
1308
+ }
1309
+
1310
+ .retro-icon-medallion {
1311
+ background: var(--retro-metal-rim);
1312
+ color: var(--retro-text);
1313
+ border: 3px double var(--retro-metal-edge);
1314
+ box-shadow: var(--retro-control-shadow);
1315
+ }
1316
+
1317
+ .retro-button.retro-button-cut, .retro-button-cut {
1318
+ inline-size: min(100%, 18rem);
1319
+ min-inline-size: 6rem;
1320
+ max-inline-size: 100%;
1321
+ justify-self: center;
1322
+ justify-content: center;
1323
+ border-radius: var(--retro-radius-pill);
1324
+ clip-path: inset(0 round var(--retro-radius-pill));
1325
+ }
1326
+
1327
+ .retro-button.retro-button-outline-heavy, .retro-button-outline-heavy {
1328
+ background: var(--retro-enamel-bg);
1329
+ color: var(--retro-primary);
1330
+ border: 4px double var(--retro-metal-edge);
1331
+ border-radius: var(--retro-radius-pill);
1332
+ clip-path: inset(0 round var(--retro-radius-pill));
1333
+ box-shadow: var(--retro-control-shadow);
1334
+ }
1335
+
1336
+ .retro-badge-seal {
1337
+ inline-size: 5.5rem;
1338
+ min-inline-size: 5.5rem;
1339
+ aspect-ratio: 1.35;
1340
+ background: var(--retro-recess-bg);
1341
+ border: 4px double var(--retro-metal-edge);
1342
+ border-radius: 50%;
1343
+ box-shadow: var(--retro-recess-shadow);
1344
+ }
1345
+
1346
+ .retro-feature-item {
1347
+ padding: .82rem 1rem;
1348
+ border-inline-end: 1px solid var(--retro-metal-edge);
1349
+ }
1350
+
1351
+ .retro-callout-bar {
1352
+ padding: .9rem 1.1rem;
1353
+ }
1354
+
1355
+ .retro-media-scrim {
1356
+ background: var(--retro-recess-bg);
1357
+ }
1358
+
1359
+ [data-ui="retrofuturism"][data-mode] :where(button:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class])) {
1360
+ background: var(--retro-enamel-bg);
1361
+ color: var(--retro-text);
1362
+ border: 3px double var(--retro-metal-edge);
1363
+ border-radius: var(--retro-radius-pill);
1364
+ box-shadow: var(--retro-control-shadow);
1365
+ font-family: var(--retro-font-control);
1366
+ font-weight: 800;
1367
+ letter-spacing: .06em;
1368
+ text-transform: uppercase;
1369
+ }
1370
+
1371
+ [data-ui="retrofuturism"][data-mode] :where(button:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class])):active {
1372
+ box-shadow: var(--retro-pressed-shadow);
1373
+ }
1374
+
1375
+ [data-ui="retrofuturism"][data-mode] :where(dialog) {
1376
+ background: var(--retro-enamel-bg);
1377
+ color: var(--retro-text);
1378
+ border: 4px double var(--retro-metal-edge);
1379
+ border-radius: var(--retro-instrument-radius-lg);
1380
+ box-shadow: var(--retro-panel-shadow);
1381
+ }
1382
+
1383
+ [data-ui="retrofuturism"][data-mode="contrast"] :where(.retro-surface, .retro-card, .retro-panel, .retro-toolbar, .retro-table-wrap, .retro-well, .retro-input, .retro-textarea, .retro-select, .retro-alert) {
1384
+ border-color: var(--retro-text);
1385
+ box-shadow: inset 0 0 0 2px var(--retro-text);
1386
+ }
1387
+
676
1388
  @media (prefers-reduced-motion: reduce) {
677
1389
  [data-ui="retrofuturism"] *, [data-ui="retrofuturism"] *::before, [data-ui="retrofuturism"] *::after { scroll-behavior: auto !important; transition-duration: 1ms !important; animation-duration: 1ms !important; animation-iteration-count: 1 !important; }
678
1390
  }
@@ -689,3 +1401,179 @@
689
1401
  [data-ui="retrofuturism"] a { color: #000 !important; text-decoration: underline; }
690
1402
  }
691
1403
  }
1404
+
1405
+ @layer ui-style-kit.retrofuturism {
1406
+ /* Keeps semantic field states above preset-specific material paint. */
1407
+ .retro-input[aria-invalid="true"], .retro-textarea[aria-invalid="true"], .retro-select[aria-invalid="true"] { border-color: var(--retro-danger); box-shadow: 0 0 0 2px rgb(var(--retro-danger-rgb) / .2); }
1408
+ .retro-input[readonly], .retro-textarea[readonly] { border-style: dashed; filter: saturate(.72); opacity: .78; }
1409
+ /* Restores semantic action paint without flattening the enamel material. */
1410
+ .retro-button-primary { background: var(--retro-action-bg); color: var(--retro-on-primary); border-color: var(--retro-primary); }
1411
+ .retro-button-secondary { background: var(--retro-secondary-action-bg); color: var(--retro-on-secondary); border-color: var(--retro-secondary-hover); }
1412
+ .retro-button-danger { background: var(--retro-danger-action-bg); color: var(--retro-on-danger); border-color: var(--retro-danger); }
1413
+ .retro-button-ghost { background: transparent; color: var(--retro-primary); border-color: transparent; }
1414
+ }
1415
+
1416
+ @layer ui-style-kit.retrofuturism {
1417
+ /** Shared annotation fidelity keeps display rhythm and icon symbols readable. */
1418
+ .retro-feature-item > .retro-icon-medallion {
1419
+ inline-size: 2.5rem;
1420
+ block-size: 2.5rem;
1421
+ padding: 0;
1422
+ background: var(--retro-instrument-bg);
1423
+ font-size: 1.25rem;
1424
+ line-height: 1;
1425
+ }
1426
+ .retro-callout-bar > .retro-icon-medallion {
1427
+ inline-size: 3rem;
1428
+ min-inline-size: 3rem;
1429
+ block-size: 3rem;
1430
+ min-block-size: 3rem;
1431
+ padding: 0;
1432
+ background: var(--retro-instrument-bg);
1433
+ font-size: 1.5rem;
1434
+ font-weight: 800;
1435
+ line-height: 1;
1436
+ }
1437
+
1438
+ /** Renders loading as a luminous orbital instrument instead of a filled dial. */
1439
+ .retro-spinner, .retro-loading-spinner, [data-ui="retrofuturism"] :where(.ui-spinner, .loading-spinner, [data-loading-spinner]) {
1440
+ background: radial-gradient(circle at center, rgb(var(--retro-surface-rgb)) 0 30%, transparent 33%), conic-gradient(from -35deg, var(--retro-primary) 0 24%, transparent 25% 48%, var(--retro-secondary) 49% 72%, transparent 73%);
1441
+ box-shadow: inset 0 0 0 .18rem var(--retro-recess-bg), 0 0 0 .12rem rgb(var(--retro-border-rgb) / .44), 0 0 .65rem rgb(var(--retro-accent-rgb) / .34);
1442
+ }
1443
+
1444
+ /** Centers check glyphs independently from font baseline metrics. */
1445
+ .retro-check-control { position: relative; }
1446
+ .retro-check input:checked + .retro-check-control::after {
1447
+ position: absolute;
1448
+ inset: 0;
1449
+ display: grid;
1450
+ place-items: center;
1451
+ line-height: 1;
1452
+ }
1453
+
1454
+ /** Gives prefixed icon actions a legible console-symbol scale. */
1455
+ .retro-icon-button { font-size: 1.25rem; line-height: 1; }
1456
+
1457
+ /** Matches the reference console's compact rectangular action keys. */
1458
+ .retro-button {
1459
+ border: 3px double var(--retro-metal-edge);
1460
+ border-radius: var(--retro-instrument-radius-sm);
1461
+ }
1462
+ .retro-button-ghost {
1463
+ background: var(--retro-enamel-bg);
1464
+ color: var(--retro-text);
1465
+ border-color: var(--retro-metal-edge);
1466
+ box-shadow: var(--retro-control-shadow);
1467
+ }
1468
+ [data-ui="retrofuturism"][data-mode] :where(button:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class])) {
1469
+ border-radius: var(--retro-instrument-radius-sm);
1470
+ }
1471
+
1472
+ /** Coordinates recessed fields and selector indicators with calibrated hardware. */
1473
+ .retro-input, .retro-textarea, .retro-select {
1474
+ min-height: 2.75rem;
1475
+ background: var(--retro-field-bg);
1476
+ border-radius: var(--retro-instrument-radius-sm);
1477
+ box-shadow: var(--retro-recess-shadow);
1478
+ }
1479
+ [data-ui="retrofuturism"][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) {
1480
+ border-radius: var(--retro-instrument-radius-sm);
1481
+ }
1482
+ .retro-select, [data-ui="retrofuturism"][data-mode] select:not([multiple]) {
1483
+ -webkit-appearance: none;
1484
+ appearance: none;
1485
+ padding-inline-end: var(--usk-native-select-padding-inline-end);
1486
+ background-color: rgb(var(--retro-surface-rgb));
1487
+ background-image: var(--usk-native-select-indicator-image);
1488
+ background-repeat: no-repeat;
1489
+ background-position: var(--usk-native-select-indicator-position);
1490
+ background-size: var(--usk-native-select-indicator-size);
1491
+ }
1492
+
1493
+ /** Uses softly tinted status plates with a dedicated console lamp. */
1494
+ .retro-badge {
1495
+ --retro-badge-lamp: var(--retro-text-muted);
1496
+ min-height: 1.75rem;
1497
+ padding: .32rem .62rem;
1498
+ background: var(--retro-enamel-bg);
1499
+ color: var(--retro-text);
1500
+ border: 1px solid var(--retro-metal-edge);
1501
+ border-radius: var(--retro-instrument-radius-sm);
1502
+ box-shadow: var(--retro-control-shadow);
1503
+ }
1504
+ .retro-badge::before {
1505
+ content: "";
1506
+ inline-size: .5rem;
1507
+ block-size: .5rem;
1508
+ flex: 0 0 auto;
1509
+ background: var(--retro-badge-lamp);
1510
+ border: 1px solid var(--retro-metal-edge);
1511
+ border-radius: 50%;
1512
+ box-shadow: var(--retro-jewel-shadow);
1513
+ }
1514
+ .retro-badge-primary { --retro-badge-lamp: var(--retro-primary); background: linear-gradient(180deg, rgb(var(--retro-primary-rgb) / .18), transparent 62%), var(--retro-enamel-bg); color: var(--retro-text); }
1515
+ .retro-badge-secondary { --retro-badge-lamp: var(--retro-secondary); background: linear-gradient(180deg, rgb(var(--retro-secondary-rgb) / .18), transparent 62%), var(--retro-enamel-bg); color: var(--retro-text); }
1516
+ .retro-badge-success { --retro-badge-lamp: var(--retro-success); background: linear-gradient(180deg, rgb(var(--retro-success-rgb) / .18), transparent 62%), var(--retro-enamel-bg); color: var(--retro-text); }
1517
+ .retro-badge-warning { --retro-badge-lamp: var(--retro-warning); background: linear-gradient(180deg, rgb(var(--retro-warning-rgb) / .18), transparent 62%), var(--retro-enamel-bg); color: var(--retro-text); }
1518
+ .retro-badge-danger { --retro-badge-lamp: var(--retro-danger); background: linear-gradient(180deg, rgb(var(--retro-danger-rgb) / .18), transparent 62%), var(--retro-enamel-bg); color: var(--retro-text); }
1519
+
1520
+ /** Matches the reference summary table's compact framed ledger treatment. */
1521
+ .retro-table-wrap {
1522
+ background: var(--retro-enamel-bg);
1523
+ border: 2px solid var(--retro-metal-edge);
1524
+ border-radius: var(--retro-instrument-radius);
1525
+ box-shadow: var(--retro-control-shadow);
1526
+ }
1527
+ .retro-table {
1528
+ border: 1px solid var(--retro-metal-edge);
1529
+ border-radius: var(--retro-instrument-radius-sm);
1530
+ }
1531
+ .retro-table th {
1532
+ background: var(--retro-enamel-bg);
1533
+ border-block-end: 1px solid var(--retro-metal-edge);
1534
+ box-shadow: none;
1535
+ font-family: var(--retro-font-control);
1536
+ }
1537
+ .retro-table :where(th, td):not(:last-child) {
1538
+ border-inline-end: 1px solid rgb(var(--retro-border-rgb) / .46);
1539
+ }
1540
+
1541
+ /** Keeps native dialog content clear of the metallic appliance frame. */
1542
+ [data-ui="retrofuturism"][data-mode] dialog > form {
1543
+ display: grid;
1544
+ gap: .85rem;
1545
+ padding: 1.125rem;
1546
+ }
1547
+ [data-ui="retrofuturism"][data-mode] dialog > form > :where(h1, h2, h3, p) { margin: 0; }
1548
+ [data-ui="retrofuturism"][data-mode] dialog > form > :where(button, input[type="button"], input[type="submit"], input[type="reset"]) { justify-self: start; }
1549
+ /** Warning actions inherit preset geometry and use the paired semantic warning colors. */
1550
+ [data-ui="retrofuturism"][data-mode] .retro-button.retro-button-warning {
1551
+ background: linear-gradient(180deg, rgb(var(--retro-surface-rgb) / .22), transparent 48%), var(--retro-warning);
1552
+ color: var(--retro-on-warning);
1553
+ border-color: var(--retro-warning);
1554
+ text-shadow: none;
1555
+ }
1556
+
1557
+ }
1558
+
1559
+ /**
1560
+ * Preserves shared annotation fixture spacing and icon weight after reference
1561
+ * overrides append their compact source rules.
1562
+ */
1563
+ [data-ui="retrofuturism"][data-mode] .retro-title {
1564
+ margin-block: max(.75rem, 12px);
1565
+ letter-spacing: max(.026em, .5px);
1566
+ }
1567
+
1568
+ [data-ui="retrofuturism"][data-mode] .retro-feature-item > .retro-icon-medallion {
1569
+ font-size: 1.5rem;
1570
+ line-height: 1;
1571
+ }
1572
+
1573
+ [data-ui="retrofuturism"][data-mode] .retro-callout-bar > .retro-icon-medallion {
1574
+ min-inline-size: 4.5rem;
1575
+ min-block-size: 4.5rem;
1576
+ font-size: 2rem;
1577
+ font-weight: 800;
1578
+ line-height: 1;
1579
+ }