ui-style-kit-css 1.2.2 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.md +44 -1
  2. package/CONTRIBUTING.md +6 -5
  3. package/README.md +141 -17
  4. package/STYLE-MAP.md +24 -0
  5. package/demo/assets/README.md +23 -0
  6. package/demo/assets/android-chrome-192x192.png +0 -0
  7. package/demo/assets/android-chrome-512x512.png +0 -0
  8. package/demo/assets/apple-touch-icon.png +0 -0
  9. package/demo/assets/browserconfig.xml +9 -0
  10. package/demo/assets/favicon-128x128.png +0 -0
  11. package/demo/assets/favicon-16x16.png +0 -0
  12. package/demo/assets/favicon-256x256.png +0 -0
  13. package/demo/assets/favicon-32x32.png +0 -0
  14. package/demo/assets/favicon-384x384.png +0 -0
  15. package/demo/assets/favicon-48x48.png +0 -0
  16. package/demo/assets/favicon-64x64.png +0 -0
  17. package/demo/assets/favicon-96x96.png +0 -0
  18. package/demo/assets/favicon-head-snippet.html +11 -0
  19. package/demo/assets/favicon-master-1024.png +0 -0
  20. package/demo/assets/favicon.ico +0 -0
  21. package/demo/assets/favicon.svg +26 -0
  22. package/demo/assets/mstile-150x150.png +0 -0
  23. package/demo/assets/safari-pinned-tab.svg +3 -0
  24. package/demo/assets/site.webmanifest +25 -0
  25. package/demo/index.html +1087 -73
  26. package/dist/ui-style-kit.css +2932 -8339
  27. package/dist/ui-style-kit.min.css +1 -1
  28. package/dist/ui-style-kit.with-bridge.css +5861 -0
  29. package/dist/ui-style-kit.with-bridge.min.css +1 -0
  30. package/docs/PUBLISHING.md +3 -3
  31. package/docs/STYLE-GUIDE.md +3 -1
  32. package/docs/TOKENS.md +215 -10
  33. package/package.json +17 -5
  34. package/styles/bauhaus.css +142 -702
  35. package/styles/bento.css +142 -701
  36. package/styles/brutalism.css +137 -702
  37. package/styles/cyberpunk.css +128 -699
  38. package/styles/interactive-surface-bridge.css +147 -311
  39. package/styles/maximalist.css +143 -702
  40. package/styles/minimal-saas.css +138 -701
  41. package/styles/native-elements.css +374 -0
  42. package/styles/neumorphism.css +144 -702
  43. package/styles/retro-glass.css +131 -702
  44. package/styles/retrofuturism.css +144 -702
  45. package/styles/tactile.css +142 -701
  46. package/styles/theme-colors.css +787 -0
  47. package/styles/y2k.css +122 -696
@@ -12,6 +12,9 @@
12
12
  ========================================================= */
13
13
 
14
14
 
15
+ @import url("./theme-colors.css");
16
+ @import url("./native-elements.css");
17
+
15
18
  @layer ui-style-kit.retro_glass {
16
19
  :root {
17
20
  --rg-radius-xs: 0.25rem;
@@ -35,6 +38,9 @@
35
38
 
36
39
  --rg-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
37
40
  --rg-font-display: Orbitron, Rajdhani, Eurostile, "Bank Gothic", var(--rg-font-sans);
41
+ --rg-font-body: var(--rg-font-sans);
42
+ --rg-font-heading: var(--rg-font-display);
43
+ --rg-font-control: var(--rg-font-display);
38
44
  --rg-font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
39
45
  }
40
46
 
@@ -72,19 +78,84 @@
72
78
  }
73
79
 
74
80
  [data-ui="retro-glass"][data-theme][data-mode] {
81
+ /* Shared scheme aliases preserve the existing prefixed token API. */
82
+ --rg-bg-rgb: var(--usk-bg-rgb);
83
+ --rg-surface-rgb: var(--usk-surface-rgb);
84
+ --rg-surface-strong-rgb: var(--usk-surface-strong-rgb);
85
+ --rg-surface-soft-rgb: var(--usk-surface-soft-rgb);
86
+ --rg-text-rgb: var(--usk-text-rgb);
87
+ --rg-text-muted-rgb: var(--usk-text-muted-rgb);
88
+ --rg-border-rgb: var(--usk-border-rgb);
89
+ --rg-primary-rgb: var(--usk-primary-rgb);
90
+ --rg-primary-hover-rgb: var(--usk-primary-hover-rgb);
91
+ --rg-primary-text-rgb: var(--usk-primary-text-rgb);
92
+ --rg-secondary-rgb: var(--usk-secondary-rgb);
93
+ --rg-secondary-hover-rgb: var(--usk-secondary-hover-rgb);
94
+ --rg-secondary-text-rgb: var(--usk-secondary-text-rgb);
95
+ --rg-accent-rgb: var(--usk-accent-rgb);
96
+ --rg-success-rgb: var(--usk-success-rgb);
97
+ --rg-warning-rgb: var(--usk-warning-rgb);
98
+ --rg-danger-rgb: var(--usk-danger-rgb);
99
+ --rg-link-rgb: var(--usk-link-rgb);
100
+ --rg-accent-text-rgb: var(--usk-accent-text-rgb);
101
+ --rg-success-text-rgb: var(--usk-success-text-rgb);
102
+ --rg-warning-text-rgb: var(--usk-warning-text-rgb);
103
+ --rg-danger-text-rgb: var(--usk-danger-text-rgb);
104
+ --rg-focus-rgb: var(--usk-focus-rgb);
105
+ /* Native fallback selectors inherit visual identity through shared tokens. */
106
+ --usk-native-surface: var(--rg-surface);
107
+ --usk-native-surface-strong: var(--rg-surface-strong);
108
+ --usk-native-surface-soft: var(--rg-surface-soft);
109
+ --usk-native-card-bg: var(--rg-card-bg);
110
+ --usk-native-control-bg: var(--rg-control-bg);
111
+ --usk-native-text: var(--rg-text);
112
+ --usk-native-text-muted: var(--rg-text-muted);
113
+ --usk-native-border: var(--rg-border);
114
+ --usk-native-primary: var(--rg-primary);
115
+ --usk-native-primary-hover: var(--rg-primary-hover);
116
+ --usk-native-on-primary: var(--rg-on-primary);
117
+ --usk-native-focus: var(--rg-focus);
118
+ --usk-native-success: var(--rg-success);
119
+ --usk-native-warning: var(--rg-warning);
120
+ --usk-native-danger: var(--rg-danger);
121
+ --usk-native-link: var(--rg-link);
122
+ --usk-native-font-body: var(--rg-font-body);
123
+ --usk-native-font-heading: var(--rg-font-heading);
124
+ --usk-native-font-control: var(--rg-font-control);
125
+ --usk-native-font-mono: var(--rg-font-mono);
126
+ --usk-native-radius-sm: var(--rg-radius-sm);
127
+ --usk-native-radius: var(--rg-radius-md);
128
+ --usk-native-radius-lg: var(--rg-radius-lg);
129
+ --usk-native-shadow: var(--rg-shadow-sm, none);
130
+ --usk-native-shadow-md: var(--rg-shadow-md, var(--usk-native-shadow));
131
+ --usk-native-focus-ring: var(--rg-focus-ring, 0 0 0 3px rgb(var(--rg-focus-rgb) / .28));
132
+ --usk-native-border-width: 1px;
133
+ --usk-native-field-gap: .5rem;
134
+ --usk-native-panel-padding: var(--rg-space-5);
135
+ --usk-native-shadow: 0 10px 30px rgb(0 0 0 / calc(var(--rg-shadow-alpha) * .72));
75
136
  --rg-bg: rgb(var(--rg-bg-rgb));
76
137
  --rg-surface: rgb(var(--rg-surface-rgb) / var(--rg-panel-alpha));
77
138
  --rg-surface-strong: rgb(var(--rg-surface-strong-rgb) / var(--rg-panel-strong-alpha));
78
139
  --rg-surface-soft: rgb(var(--rg-surface-soft-rgb) / var(--rg-panel-soft-alpha));
79
140
  --rg-text: rgb(var(--rg-text-rgb));
80
141
  --rg-text-muted: rgb(var(--rg-text-muted-rgb));
142
+ --rg-fg: var(--rg-text);
143
+ --rg-surface-fg: var(--rg-text);
144
+ --rg-muted: var(--rg-text-muted);
81
145
  --rg-border: rgb(var(--rg-border-rgb) / var(--rg-border-alpha));
146
+ --rg-control-fg: var(--rg-text);
82
147
  --rg-primary: rgb(var(--rg-primary-rgb));
83
148
  --rg-primary-hover: rgb(var(--rg-primary-hover-rgb));
84
149
  --rg-primary-text: rgb(var(--rg-primary-text-rgb));
85
150
  --rg-secondary: rgb(var(--rg-secondary-rgb));
86
151
  --rg-secondary-hover: rgb(var(--rg-secondary-hover-rgb));
87
152
  --rg-secondary-text: rgb(var(--rg-secondary-text-rgb));
153
+ --rg-on-primary: var(--rg-primary-text);
154
+ --rg-on-secondary: var(--rg-secondary-text);
155
+ --rg-on-accent: rgb(var(--rg-accent-text-rgb));
156
+ --rg-on-success: rgb(var(--rg-success-text-rgb));
157
+ --rg-on-warning: rgb(var(--rg-warning-text-rgb));
158
+ --rg-on-danger: rgb(var(--rg-danger-text-rgb));
88
159
  --rg-accent: rgb(var(--rg-accent-rgb));
89
160
  --rg-success: rgb(var(--rg-success-rgb));
90
161
  --rg-warning: rgb(var(--rg-warning-rgb));
@@ -97,707 +168,84 @@
97
168
  --rg-shadow-sm: 0 2px 8px rgb(0 0 0 / var(--rg-shadow-alpha));
98
169
  --rg-shadow-md: 0 10px 28px rgb(0 0 0 / calc(var(--rg-shadow-alpha) + 0.05));
99
170
  --rg-shadow-lg: 0 22px 60px rgb(0 0 0 / calc(var(--rg-shadow-alpha) + 0.12));
171
+ --rg-theme-bg-size: auto, auto, auto, 52px 52px, 52px 52px, auto;
172
+ --rg-theme-bg: radial-gradient(circle at 15% 15%, rgb(var(--rg-primary-rgb) / .18), transparent 28rem), radial-gradient(circle at 85% 10%, rgb(var(--rg-secondary-rgb) / .16), transparent 26rem), radial-gradient(circle at 50% 110%, rgb(var(--rg-accent-rgb) / .14), transparent 34rem), linear-gradient(90deg, rgb(var(--rg-border-rgb) / var(--rg-grid-alpha)) 1px, transparent 1px), linear-gradient(rgb(var(--rg-border-rgb) / var(--rg-grid-alpha)) 1px, transparent 1px), var(--rg-bg);
173
+ --rg-card-bg: linear-gradient(135deg, rgb(var(--rg-primary-rgb) / .10), rgb(var(--rg-accent-rgb) / .055) 42%, rgb(var(--rg-surface-strong-rgb) / var(--rg-panel-alpha)) 100%), var(--rg-surface);
174
+ --rg-control-bg: linear-gradient(180deg, rgb(var(--rg-surface-strong-rgb) / var(--rg-panel-alpha)), rgb(var(--rg-surface-soft-rgb) / var(--rg-panel-soft-alpha)));
175
+ --rg-spinner-track: rgb(var(--rg-border-rgb) / max(.28, calc(var(--rg-border-alpha) * .7)));
176
+ --rg-spinner-stroke: var(--rg-primary);
177
+ --rg-spinner-accent: var(--rg-accent);
100
178
  }
101
179
 
102
180
  /* =========================================================
103
181
  1. Midnight Gold
104
182
  ========================================================= */
105
183
 
106
- [data-ui="retro-glass"][data-theme="midnight-gold"][data-mode="light"] {
107
- --rg-bg-rgb: 246 243 234;
108
- --rg-surface-rgb: 255 250 240;
109
- --rg-surface-strong-rgb: 255 255 255;
110
- --rg-surface-soft-rgb: 237 230 211;
111
- --rg-text-rgb: 23 32 51;
112
- --rg-text-muted-rgb: 95 104 121;
113
- --rg-border-rgb: 214 200 165;
114
- --rg-primary-rgb: 184 135 47;
115
- --rg-primary-hover-rgb: 148 104 31;
116
- --rg-primary-text-rgb: 16 16 16;
117
- --rg-secondary-rgb: 34 49 79;
118
- --rg-secondary-hover-rgb: 23 36 60;
119
- --rg-secondary-text-rgb: 255 255 255;
120
- --rg-accent-rgb: 217 164 65;
121
- --rg-success-rgb: 47 125 84;
122
- --rg-warning-rgb: 167 106 0;
123
- --rg-danger-rgb: 185 63 63;
124
- --rg-link-rgb: 138 100 31;
125
- --rg-focus-rgb: 217 164 65;
126
- }
127
184
 
128
- [data-ui="retro-glass"][data-theme="midnight-gold"][data-mode="dark"] {
129
- --rg-bg-rgb: 7 17 31;
130
- --rg-surface-rgb: 16 27 45;
131
- --rg-surface-strong-rgb: 23 36 58;
132
- --rg-surface-soft-rgb: 12 22 39;
133
- --rg-text-rgb: 247 237 215;
134
- --rg-text-muted-rgb: 185 192 204;
135
- --rg-border-rgb: 57 72 97;
136
- --rg-primary-rgb: 214 168 79;
137
- --rg-primary-hover-rgb: 240 200 109;
138
- --rg-primary-text-rgb: 16 16 16;
139
- --rg-secondary-rgb: 111 134 184;
140
- --rg-secondary-hover-rgb: 146 167 209;
141
- --rg-secondary-text-rgb: 8 16 29;
142
- --rg-accent-rgb: 243 210 122;
143
- --rg-success-rgb: 107 214 156;
144
- --rg-warning-rgb: 255 203 91;
145
- --rg-danger-rgb: 255 123 123;
146
- --rg-link-rgb: 243 210 122;
147
- --rg-focus-rgb: 255 214 107;
148
- }
149
185
 
150
- [data-ui="retro-glass"][data-theme="midnight-gold"][data-mode="contrast"] {
151
- --rg-bg-rgb: 0 0 0;
152
- --rg-surface-rgb: 8 8 8;
153
- --rg-surface-strong-rgb: 17 17 17;
154
- --rg-surface-soft-rgb: 5 5 5;
155
- --rg-text-rgb: 255 255 255;
156
- --rg-text-muted-rgb: 245 245 245;
157
- --rg-border-rgb: 255 255 255;
158
- --rg-primary-rgb: 255 212 0;
159
- --rg-primary-hover-rgb: 255 255 255;
160
- --rg-primary-text-rgb: 0 0 0;
161
- --rg-secondary-rgb: 0 217 255;
162
- --rg-secondary-hover-rgb: 255 255 255;
163
- --rg-secondary-text-rgb: 0 0 0;
164
- --rg-accent-rgb: 255 234 0;
165
- --rg-success-rgb: 0 255 117;
166
- --rg-warning-rgb: 255 191 0;
167
- --rg-danger-rgb: 255 77 77;
168
- --rg-link-rgb: 0 217 255;
169
- --rg-focus-rgb: 255 255 255;
170
- }
171
186
 
172
187
  /* =========================================================
173
188
  2. Ocean Steel
174
189
  ========================================================= */
175
190
 
176
- [data-ui="retro-glass"][data-theme="ocean-steel"][data-mode="light"] {
177
- --rg-bg-rgb: 238 248 251;
178
- --rg-surface-rgb: 255 255 255;
179
- --rg-surface-strong-rgb: 248 253 255;
180
- --rg-surface-soft-rgb: 220 236 242;
181
- --rg-text-rgb: 16 36 46;
182
- --rg-text-muted-rgb: 78 101 112;
183
- --rg-border-rgb: 184 211 221;
184
- --rg-primary-rgb: 8 125 157;
185
- --rg-primary-hover-rgb: 6 100 126;
186
- --rg-primary-text-rgb: 255 255 255;
187
- --rg-secondary-rgb: 57 86 107;
188
- --rg-secondary-hover-rgb: 44 67 84;
189
- --rg-secondary-text-rgb: 255 255 255;
190
- --rg-accent-rgb: 21 184 200;
191
- --rg-success-rgb: 38 122 92;
192
- --rg-warning-rgb: 167 101 0;
193
- --rg-danger-rgb: 182 70 70;
194
- --rg-link-rgb: 6 100 126;
195
- --rg-focus-rgb: 21 184 200;
196
- }
197
191
 
198
- [data-ui="retro-glass"][data-theme="ocean-steel"][data-mode="dark"] {
199
- --rg-bg-rgb: 6 22 29;
200
- --rg-surface-rgb: 13 37 48;
201
- --rg-surface-strong-rgb: 20 52 66;
202
- --rg-surface-soft-rgb: 8 29 38;
203
- --rg-text-rgb: 233 251 255;
204
- --rg-text-muted-rgb: 167 192 201;
205
- --rg-border-rgb: 49 86 102;
206
- --rg-primary-rgb: 54 196 221;
207
- --rg-primary-hover-rgb: 115 227 244;
208
- --rg-primary-text-rgb: 4 18 22;
209
- --rg-secondary-rgb: 140 183 201;
210
- --rg-secondary-hover-rgb: 178 213 226;
211
- --rg-secondary-text-rgb: 6 22 29;
212
- --rg-accent-rgb: 83 240 255;
213
- --rg-success-rgb: 103 216 166;
214
- --rg-warning-rgb: 255 192 97;
215
- --rg-danger-rgb: 255 123 123;
216
- --rg-link-rgb: 115 227 244;
217
- --rg-focus-rgb: 83 240 255;
218
- }
219
192
 
220
- [data-ui="retro-glass"][data-theme="ocean-steel"][data-mode="contrast"] {
221
- --rg-bg-rgb: 0 8 10;
222
- --rg-surface-rgb: 0 16 20;
223
- --rg-surface-strong-rgb: 0 26 32;
224
- --rg-surface-soft-rgb: 0 0 0;
225
- --rg-text-rgb: 255 255 255;
226
- --rg-text-muted-rgb: 234 255 255;
227
- --rg-border-rgb: 255 255 255;
228
- --rg-primary-rgb: 0 229 255;
229
- --rg-primary-hover-rgb: 255 255 255;
230
- --rg-primary-text-rgb: 0 0 0;
231
- --rg-secondary-rgb: 255 255 0;
232
- --rg-secondary-hover-rgb: 255 255 255;
233
- --rg-secondary-text-rgb: 0 0 0;
234
- --rg-accent-rgb: 0 255 255;
235
- --rg-success-rgb: 0 255 144;
236
- --rg-warning-rgb: 255 208 0;
237
- --rg-danger-rgb: 255 59 59;
238
- --rg-link-rgb: 0 229 255;
239
- --rg-focus-rgb: 255 255 255;
240
- }
241
193
 
242
194
  /* =========================================================
243
195
  3. Forest Moss
244
196
  ========================================================= */
245
197
 
246
- [data-ui="retro-glass"][data-theme="forest-moss"][data-mode="light"] {
247
- --rg-bg-rgb: 242 247 239;
248
- --rg-surface-rgb: 255 255 255;
249
- --rg-surface-strong-rgb: 251 255 248;
250
- --rg-surface-soft-rgb: 226 234 219;
251
- --rg-text-rgb: 24 36 23;
252
- --rg-text-muted-rgb: 88 104 82;
253
- --rg-border-rgb: 197 211 186;
254
- --rg-primary-rgb: 63 125 58;
255
- --rg-primary-hover-rgb: 47 97 43;
256
- --rg-primary-text-rgb: 255 255 255;
257
- --rg-secondary-rgb: 106 95 56;
258
- --rg-secondary-hover-rgb: 81 73 43;
259
- --rg-secondary-text-rgb: 255 255 255;
260
- --rg-accent-rgb: 156 186 82;
261
- --rg-success-rgb: 47 125 84;
262
- --rg-warning-rgb: 154 106 0;
263
- --rg-danger-rgb: 173 69 69;
264
- --rg-link-rgb: 47 97 43;
265
- --rg-focus-rgb: 156 186 82;
266
- }
267
198
 
268
- [data-ui="retro-glass"][data-theme="forest-moss"][data-mode="dark"] {
269
- --rg-bg-rgb: 7 16 6;
270
- --rg-surface-rgb: 16 28 15;
271
- --rg-surface-strong-rgb: 26 42 24;
272
- --rg-surface-soft-rgb: 11 22 10;
273
- --rg-text-rgb: 237 247 232;
274
- --rg-text-muted-rgb: 180 197 173;
275
- --rg-border-rgb: 61 83 56;
276
- --rg-primary-rgb: 130 210 122;
277
- --rg-primary-hover-rgb: 162 237 153;
278
- --rg-primary-text-rgb: 7 16 6;
279
- --rg-secondary-rgb: 210 189 114;
280
- --rg-secondary-hover-rgb: 239 217 139;
281
- --rg-secondary-text-rgb: 20 16 6;
282
- --rg-accent-rgb: 185 239 107;
283
- --rg-success-rgb: 117 223 167;
284
- --rg-warning-rgb: 255 210 99;
285
- --rg-danger-rgb: 255 133 133;
286
- --rg-link-rgb: 162 237 153;
287
- --rg-focus-rgb: 185 239 107;
288
- }
289
199
 
290
- [data-ui="retro-glass"][data-theme="forest-moss"][data-mode="contrast"] {
291
- --rg-bg-rgb: 0 0 0;
292
- --rg-surface-rgb: 7 16 7;
293
- --rg-surface-strong-rgb: 11 25 11;
294
- --rg-surface-soft-rgb: 0 0 0;
295
- --rg-text-rgb: 255 255 255;
296
- --rg-text-muted-rgb: 240 255 240;
297
- --rg-border-rgb: 255 255 255;
298
- --rg-primary-rgb: 108 255 95;
299
- --rg-primary-hover-rgb: 255 255 255;
300
- --rg-primary-text-rgb: 0 0 0;
301
- --rg-secondary-rgb: 255 223 0;
302
- --rg-secondary-hover-rgb: 255 255 255;
303
- --rg-secondary-text-rgb: 0 0 0;
304
- --rg-accent-rgb: 182 255 0;
305
- --rg-success-rgb: 0 255 117;
306
- --rg-warning-rgb: 255 208 0;
307
- --rg-danger-rgb: 255 64 64;
308
- --rg-link-rgb: 108 255 95;
309
- --rg-focus-rgb: 255 255 255;
310
- }
311
200
 
312
201
  /* =========================================================
313
202
  4. Sunset Ember
314
203
  ========================================================= */
315
204
 
316
- [data-ui="retro-glass"][data-theme="sunset-ember"][data-mode="light"] {
317
- --rg-bg-rgb: 255 244 236;
318
- --rg-surface-rgb: 255 255 255;
319
- --rg-surface-strong-rgb: 255 250 246;
320
- --rg-surface-soft-rgb: 244 222 210;
321
- --rg-text-rgb: 42 23 17;
322
- --rg-text-muted-rgb: 118 88 77;
323
- --rg-border-rgb: 227 189 170;
324
- --rg-primary-rgb: 196 81 43;
325
- --rg-primary-hover-rgb: 159 63 32;
326
- --rg-primary-text-rgb: 255 255 255;
327
- --rg-secondary-rgb: 124 63 92;
328
- --rg-secondary-hover-rgb: 97 48 71;
329
- --rg-secondary-text-rgb: 255 255 255;
330
- --rg-accent-rgb: 230 154 58;
331
- --rg-success-rgb: 49 122 87;
332
- --rg-warning-rgb: 184 111 0;
333
- --rg-danger-rgb: 189 61 61;
334
- --rg-link-rgb: 159 63 32;
335
- --rg-focus-rgb: 230 154 58;
336
- }
337
205
 
338
- [data-ui="retro-glass"][data-theme="sunset-ember"][data-mode="dark"] {
339
- --rg-bg-rgb: 23 9 5;
340
- --rg-surface-rgb: 38 17 11;
341
- --rg-surface-strong-rgb: 53 25 18;
342
- --rg-surface-soft-rgb: 30 12 7;
343
- --rg-text-rgb: 255 240 232;
344
- --rg-text-muted-rgb: 208 177 165;
345
- --rg-border-rgb: 106 59 45;
346
- --rg-primary-rgb: 255 138 91;
347
- --rg-primary-hover-rgb: 255 173 138;
348
- --rg-primary-text-rgb: 26 8 3;
349
- --rg-secondary-rgb: 227 138 181;
350
- --rg-secondary-hover-rgb: 255 175 208;
351
- --rg-secondary-text-rgb: 26 7 18;
352
- --rg-accent-rgb: 255 193 102;
353
- --rg-success-rgb: 112 215 163;
354
- --rg-warning-rgb: 255 209 102;
355
- --rg-danger-rgb: 255 119 119;
356
- --rg-link-rgb: 255 173 138;
357
- --rg-focus-rgb: 255 193 102;
358
- }
359
206
 
360
- [data-ui="retro-glass"][data-theme="sunset-ember"][data-mode="contrast"] {
361
- --rg-bg-rgb: 0 0 0;
362
- --rg-surface-rgb: 18 4 0;
363
- --rg-surface-strong-rgb: 29 7 0;
364
- --rg-surface-soft-rgb: 0 0 0;
365
- --rg-text-rgb: 255 255 255;
366
- --rg-text-muted-rgb: 255 245 239;
367
- --rg-border-rgb: 255 255 255;
368
- --rg-primary-rgb: 255 106 0;
369
- --rg-primary-hover-rgb: 255 255 255;
370
- --rg-primary-text-rgb: 0 0 0;
371
- --rg-secondary-rgb: 255 79 184;
372
- --rg-secondary-hover-rgb: 255 255 255;
373
- --rg-secondary-text-rgb: 0 0 0;
374
- --rg-accent-rgb: 255 208 0;
375
- --rg-success-rgb: 0 255 144;
376
- --rg-warning-rgb: 255 191 0;
377
- --rg-danger-rgb: 255 48 48;
378
- --rg-link-rgb: 255 157 0;
379
- --rg-focus-rgb: 255 255 255;
380
- }
381
207
 
382
208
  /* =========================================================
383
209
  5. Royal Plum
384
210
  ========================================================= */
385
211
 
386
- [data-ui="retro-glass"][data-theme="royal-plum"][data-mode="light"] {
387
- --rg-bg-rgb: 248 241 251;
388
- --rg-surface-rgb: 255 255 255;
389
- --rg-surface-strong-rgb: 253 248 255;
390
- --rg-surface-soft-rgb: 234 220 240;
391
- --rg-text-rgb: 36 21 45;
392
- --rg-text-muted-rgb: 105 86 113;
393
- --rg-border-rgb: 213 187 221;
394
- --rg-primary-rgb: 123 63 160;
395
- --rg-primary-hover-rgb: 99 49 127;
396
- --rg-primary-text-rgb: 255 255 255;
397
- --rg-secondary-rgb: 63 76 154;
398
- --rg-secondary-hover-rgb: 48 58 119;
399
- --rg-secondary-text-rgb: 255 255 255;
400
- --rg-accent-rgb: 192 90 198;
401
- --rg-success-rgb: 49 124 92;
402
- --rg-warning-rgb: 166 106 0;
403
- --rg-danger-rgb: 183 65 95;
404
- --rg-link-rgb: 99 49 127;
405
- --rg-focus-rgb: 192 90 198;
406
- }
407
212
 
408
- [data-ui="retro-glass"][data-theme="royal-plum"][data-mode="dark"] {
409
- --rg-bg-rgb: 16 6 20;
410
- --rg-surface-rgb: 29 16 36;
411
- --rg-surface-strong-rgb: 42 23 52;
412
- --rg-surface-soft-rgb: 22 11 27;
413
- --rg-text-rgb: 250 236 255;
414
- --rg-text-muted-rgb: 200 176 209;
415
- --rg-border-rgb: 85 57 100;
416
- --rg-primary-rgb: 216 145 242;
417
- --rg-primary-hover-rgb: 235 184 255;
418
- --rg-primary-text-rgb: 19 6 23;
419
- --rg-secondary-rgb: 157 168 255;
420
- --rg-secondary-hover-rgb: 195 202 255;
421
- --rg-secondary-text-rgb: 8 11 31;
422
- --rg-accent-rgb: 255 156 246;
423
- --rg-success-rgb: 118 220 169;
424
- --rg-warning-rgb: 255 209 102;
425
- --rg-danger-rgb: 255 122 156;
426
- --rg-link-rgb: 235 184 255;
427
- --rg-focus-rgb: 255 156 246;
428
- }
429
213
 
430
- [data-ui="retro-glass"][data-theme="royal-plum"][data-mode="contrast"] {
431
- --rg-bg-rgb: 0 0 0;
432
- --rg-surface-rgb: 16 0 20;
433
- --rg-surface-strong-rgb: 26 0 34;
434
- --rg-surface-soft-rgb: 0 0 0;
435
- --rg-text-rgb: 255 255 255;
436
- --rg-text-muted-rgb: 255 240 255;
437
- --rg-border-rgb: 255 255 255;
438
- --rg-primary-rgb: 228 92 255;
439
- --rg-primary-hover-rgb: 255 255 255;
440
- --rg-primary-text-rgb: 0 0 0;
441
- --rg-secondary-rgb: 0 217 255;
442
- --rg-secondary-hover-rgb: 255 255 255;
443
- --rg-secondary-text-rgb: 0 0 0;
444
- --rg-accent-rgb: 255 0 245;
445
- --rg-success-rgb: 0 255 144;
446
- --rg-warning-rgb: 255 225 0;
447
- --rg-danger-rgb: 255 63 110;
448
- --rg-link-rgb: 228 92 255;
449
- --rg-focus-rgb: 255 255 255;
450
- }
451
214
 
452
215
  /* =========================================================
453
216
  6. Graphite Cyan
454
217
  ========================================================= */
455
218
 
456
- [data-ui="retro-glass"][data-theme="graphite-cyan"][data-mode="light"] {
457
- --rg-bg-rgb: 242 245 246;
458
- --rg-surface-rgb: 255 255 255;
459
- --rg-surface-strong-rgb: 249 251 252;
460
- --rg-surface-soft-rgb: 225 231 234;
461
- --rg-text-rgb: 23 29 33;
462
- --rg-text-muted-rgb: 93 104 112;
463
- --rg-border-rgb: 197 206 212;
464
- --rg-primary-rgb: 0 124 137;
465
- --rg-primary-hover-rgb: 0 99 110;
466
- --rg-primary-text-rgb: 255 255 255;
467
- --rg-secondary-rgb: 63 72 80;
468
- --rg-secondary-hover-rgb: 47 54 60;
469
- --rg-secondary-text-rgb: 255 255 255;
470
- --rg-accent-rgb: 34 184 199;
471
- --rg-success-rgb: 40 122 91;
472
- --rg-warning-rgb: 167 103 0;
473
- --rg-danger-rgb: 182 64 64;
474
- --rg-link-rgb: 0 99 110;
475
- --rg-focus-rgb: 34 184 199;
476
- }
477
219
 
478
- [data-ui="retro-glass"][data-theme="graphite-cyan"][data-mode="dark"] {
479
- --rg-bg-rgb: 8 11 13;
480
- --rg-surface-rgb: 18 24 28;
481
- --rg-surface-strong-rgb: 28 37 43;
482
- --rg-surface-soft-rgb: 13 17 20;
483
- --rg-text-rgb: 237 246 248;
484
- --rg-text-muted-rgb: 174 187 193;
485
- --rg-border-rgb: 59 72 79;
486
- --rg-primary-rgb: 62 217 232;
487
- --rg-primary-hover-rgb: 123 243 255;
488
- --rg-primary-text-rgb: 6 16 18;
489
- --rg-secondary-rgb: 170 181 188;
490
- --rg-secondary-hover-rgb: 210 219 224;
491
- --rg-secondary-text-rgb: 8 11 13;
492
- --rg-accent-rgb: 123 243 255;
493
- --rg-success-rgb: 110 218 165;
494
- --rg-warning-rgb: 255 200 97;
495
- --rg-danger-rgb: 255 125 125;
496
- --rg-link-rgb: 123 243 255;
497
- --rg-focus-rgb: 62 217 232;
498
- }
499
220
 
500
- [data-ui="retro-glass"][data-theme="graphite-cyan"][data-mode="contrast"] {
501
- --rg-bg-rgb: 0 0 0;
502
- --rg-surface-rgb: 7 7 7;
503
- --rg-surface-strong-rgb: 17 17 17;
504
- --rg-surface-soft-rgb: 0 0 0;
505
- --rg-text-rgb: 255 255 255;
506
- --rg-text-muted-rgb: 245 245 245;
507
- --rg-border-rgb: 255 255 255;
508
- --rg-primary-rgb: 0 240 255;
509
- --rg-primary-hover-rgb: 255 255 255;
510
- --rg-primary-text-rgb: 0 0 0;
511
- --rg-secondary-rgb: 242 242 242;
512
- --rg-secondary-hover-rgb: 255 255 255;
513
- --rg-secondary-text-rgb: 0 0 0;
514
- --rg-accent-rgb: 0 240 255;
515
- --rg-success-rgb: 0 255 117;
516
- --rg-warning-rgb: 255 208 0;
517
- --rg-danger-rgb: 255 64 64;
518
- --rg-link-rgb: 0 240 255;
519
- --rg-focus-rgb: 255 255 255;
520
- }
521
221
 
522
222
  /* =========================================================
523
223
  7. Desert Sage
524
224
  ========================================================= */
525
225
 
526
- [data-ui="retro-glass"][data-theme="desert-sage"][data-mode="light"] {
527
- --rg-bg-rgb: 248 242 231;
528
- --rg-surface-rgb: 255 255 255;
529
- --rg-surface-strong-rgb: 255 250 241;
530
- --rg-surface-soft-rgb: 234 223 205;
531
- --rg-text-rgb: 43 36 25;
532
- --rg-text-muted-rgb: 113 103 84;
533
- --rg-border-rgb: 215 198 167;
534
- --rg-primary-rgb: 140 106 61;
535
- --rg-primary-hover-rgb: 112 83 47;
536
- --rg-primary-text-rgb: 255 255 255;
537
- --rg-secondary-rgb: 95 118 85;
538
- --rg-secondary-hover-rgb: 72 92 64;
539
- --rg-secondary-text-rgb: 255 255 255;
540
- --rg-accent-rgb: 201 151 74;
541
- --rg-success-rgb: 81 125 72;
542
- --rg-warning-rgb: 166 107 0;
543
- --rg-danger-rgb: 174 74 63;
544
- --rg-link-rgb: 112 83 47;
545
- --rg-focus-rgb: 201 151 74;
546
- }
547
226
 
548
- [data-ui="retro-glass"][data-theme="desert-sage"][data-mode="dark"] {
549
- --rg-bg-rgb: 18 15 9;
550
- --rg-surface-rgb: 33 27 18;
551
- --rg-surface-strong-rgb: 47 40 27;
552
- --rg-surface-soft-rgb: 25 20 13;
553
- --rg-text-rgb: 248 239 223;
554
- --rg-text-muted-rgb: 199 186 163;
555
- --rg-border-rgb: 91 78 56;
556
- --rg-primary-rgb: 217 184 120;
557
- --rg-primary-hover-rgb: 240 211 154;
558
- --rg-primary-text-rgb: 21 16 6;
559
- --rg-secondary-rgb: 168 206 153;
560
- --rg-secondary-hover-rgb: 200 233 187;
561
- --rg-secondary-text-rgb: 9 20 7;
562
- --rg-accent-rgb: 241 196 110;
563
- --rg-success-rgb: 141 219 125;
564
- --rg-warning-rgb: 255 209 102;
565
- --rg-danger-rgb: 255 136 122;
566
- --rg-link-rgb: 240 211 154;
567
- --rg-focus-rgb: 241 196 110;
568
- }
569
227
 
570
- [data-ui="retro-glass"][data-theme="desert-sage"][data-mode="contrast"] {
571
- --rg-bg-rgb: 0 0 0;
572
- --rg-surface-rgb: 15 11 3;
573
- --rg-surface-strong-rgb: 26 18 5;
574
- --rg-surface-soft-rgb: 0 0 0;
575
- --rg-text-rgb: 255 255 255;
576
- --rg-text-muted-rgb: 255 248 232;
577
- --rg-border-rgb: 255 255 255;
578
- --rg-primary-rgb: 255 209 102;
579
- --rg-primary-hover-rgb: 255 255 255;
580
- --rg-primary-text-rgb: 0 0 0;
581
- --rg-secondary-rgb: 157 255 107;
582
- --rg-secondary-hover-rgb: 255 255 255;
583
- --rg-secondary-text-rgb: 0 0 0;
584
- --rg-accent-rgb: 255 176 0;
585
- --rg-success-rgb: 0 255 117;
586
- --rg-warning-rgb: 255 225 0;
587
- --rg-danger-rgb: 255 77 77;
588
- --rg-link-rgb: 255 209 102;
589
- --rg-focus-rgb: 255 255 255;
590
- }
591
228
 
592
229
  /* =========================================================
593
230
  8. Rose Quartz
594
231
  ========================================================= */
595
232
 
596
- [data-ui="retro-glass"][data-theme="rose-quartz"][data-mode="light"] {
597
- --rg-bg-rgb: 255 242 245;
598
- --rg-surface-rgb: 255 255 255;
599
- --rg-surface-strong-rgb: 255 248 250;
600
- --rg-surface-soft-rgb: 242 220 227;
601
- --rg-text-rgb: 43 21 29;
602
- --rg-text-muted-rgb: 118 90 99;
603
- --rg-border-rgb: 223 184 198;
604
- --rg-primary-rgb: 184 71 109;
605
- --rg-primary-hover-rgb: 150 55 87;
606
- --rg-primary-text-rgb: 255 255 255;
607
- --rg-secondary-rgb: 122 85 126;
608
- --rg-secondary-hover-rgb: 96 65 99;
609
- --rg-secondary-text-rgb: 255 255 255;
610
- --rg-accent-rgb: 223 125 157;
611
- --rg-success-rgb: 49 122 92;
612
- --rg-warning-rgb: 166 106 0;
613
- --rg-danger-rgb: 189 63 85;
614
- --rg-link-rgb: 150 55 87;
615
- --rg-focus-rgb: 223 125 157;
616
- }
617
233
 
618
- [data-ui="retro-glass"][data-theme="rose-quartz"][data-mode="dark"] {
619
- --rg-bg-rgb: 22 7 12;
620
- --rg-surface-rgb: 37 16 24;
621
- --rg-surface-strong-rgb: 53 24 36;
622
- --rg-surface-soft-rgb: 28 11 17;
623
- --rg-text-rgb: 255 240 244;
624
- --rg-text-muted-rgb: 210 174 185;
625
- --rg-border-rgb: 101 55 71;
626
- --rg-primary-rgb: 255 143 179;
627
- --rg-primary-hover-rgb: 255 182 205;
628
- --rg-primary-text-rgb: 24 6 13;
629
- --rg-secondary-rgb: 217 160 223;
630
- --rg-secondary-hover-rgb: 239 194 244;
631
- --rg-secondary-text-rgb: 22 6 24;
632
- --rg-accent-rgb: 255 173 197;
633
- --rg-success-rgb: 119 219 169;
634
- --rg-warning-rgb: 255 209 102;
635
- --rg-danger-rgb: 255 120 144;
636
- --rg-link-rgb: 255 182 205;
637
- --rg-focus-rgb: 255 173 197;
638
- }
639
234
 
640
- [data-ui="retro-glass"][data-theme="rose-quartz"][data-mode="contrast"] {
641
- --rg-bg-rgb: 0 0 0;
642
- --rg-surface-rgb: 18 0 6;
643
- --rg-surface-strong-rgb: 32 0 13;
644
- --rg-surface-soft-rgb: 0 0 0;
645
- --rg-text-rgb: 255 255 255;
646
- --rg-text-muted-rgb: 255 240 245;
647
- --rg-border-rgb: 255 255 255;
648
- --rg-primary-rgb: 255 79 147;
649
- --rg-primary-hover-rgb: 255 255 255;
650
- --rg-primary-text-rgb: 0 0 0;
651
- --rg-secondary-rgb: 240 0 255;
652
- --rg-secondary-hover-rgb: 255 255 255;
653
- --rg-secondary-text-rgb: 0 0 0;
654
- --rg-accent-rgb: 255 138 179;
655
- --rg-success-rgb: 0 255 144;
656
- --rg-warning-rgb: 255 225 0;
657
- --rg-danger-rgb: 255 48 48;
658
- --rg-link-rgb: 255 138 179;
659
- --rg-focus-rgb: 255 255 255;
660
- }
661
235
 
662
236
  /* =========================================================
663
237
  9. Cyber Lime
664
238
  ========================================================= */
665
239
 
666
- [data-ui="retro-glass"][data-theme="cyber-lime"][data-mode="light"] {
667
- --rg-bg-rgb: 244 250 237;
668
- --rg-surface-rgb: 255 255 255;
669
- --rg-surface-strong-rgb: 251 255 246;
670
- --rg-surface-soft-rgb: 226 239 211;
671
- --rg-text-rgb: 23 34 20;
672
- --rg-text-muted-rgb: 89 105 82;
673
- --rg-border-rgb: 198 216 179;
674
- --rg-primary-rgb: 95 159 31;
675
- --rg-primary-hover-rgb: 73 125 23;
676
- --rg-primary-text-rgb: 16 16 16;
677
- --rg-secondary-rgb: 20 127 134;
678
- --rg-secondary-hover-rgb: 14 98 104;
679
- --rg-secondary-text-rgb: 255 255 255;
680
- --rg-accent-rgb: 164 215 46;
681
- --rg-success-rgb: 47 125 84;
682
- --rg-warning-rgb: 156 104 0;
683
- --rg-danger-rgb: 179 65 65;
684
- --rg-link-rgb: 73 125 23;
685
- --rg-focus-rgb: 164 215 46;
686
- }
687
240
 
688
- [data-ui="retro-glass"][data-theme="cyber-lime"][data-mode="dark"] {
689
- --rg-bg-rgb: 5 11 5;
690
- --rg-surface-rgb: 13 24 12;
691
- --rg-surface-strong-rgb: 22 37 21;
692
- --rg-surface-soft-rgb: 8 17 8;
693
- --rg-text-rgb: 239 255 233;
694
- --rg-text-muted-rgb: 180 199 173;
695
- --rg-border-rgb: 57 82 54;
696
- --rg-primary-rgb: 168 255 61;
697
- --rg-primary-hover-rgb: 202 255 127;
698
- --rg-primary-text-rgb: 6 16 5;
699
- --rg-secondary-rgb: 61 235 242;
700
- --rg-secondary-hover-rgb: 134 248 255;
701
- --rg-secondary-text-rgb: 3 16 18;
702
- --rg-accent-rgb: 198 255 77;
703
- --rg-success-rgb: 111 240 168;
704
- --rg-warning-rgb: 255 218 98;
705
- --rg-danger-rgb: 255 119 119;
706
- --rg-link-rgb: 202 255 127;
707
- --rg-focus-rgb: 168 255 61;
708
- }
709
241
 
710
- [data-ui="retro-glass"][data-theme="cyber-lime"][data-mode="contrast"] {
711
- --rg-bg-rgb: 0 0 0;
712
- --rg-surface-rgb: 5 11 0;
713
- --rg-surface-strong-rgb: 11 22 0;
714
- --rg-surface-soft-rgb: 0 0 0;
715
- --rg-text-rgb: 255 255 255;
716
- --rg-text-muted-rgb: 244 255 232;
717
- --rg-border-rgb: 255 255 255;
718
- --rg-primary-rgb: 170 255 0;
719
- --rg-primary-hover-rgb: 255 255 255;
720
- --rg-primary-text-rgb: 0 0 0;
721
- --rg-secondary-rgb: 0 240 255;
722
- --rg-secondary-hover-rgb: 255 255 255;
723
- --rg-secondary-text-rgb: 0 0 0;
724
- --rg-accent-rgb: 204 255 0;
725
- --rg-success-rgb: 0 255 117;
726
- --rg-warning-rgb: 255 225 0;
727
- --rg-danger-rgb: 255 48 48;
728
- --rg-link-rgb: 170 255 0;
729
- --rg-focus-rgb: 255 255 255;
730
- }
731
242
 
732
243
  /* =========================================================
733
244
  10. Arctic Indigo
734
245
  ========================================================= */
735
246
 
736
- [data-ui="retro-glass"][data-theme="arctic-indigo"][data-mode="light"] {
737
- --rg-bg-rgb: 241 245 255;
738
- --rg-surface-rgb: 255 255 255;
739
- --rg-surface-strong-rgb: 248 251 255;
740
- --rg-surface-soft-rgb: 223 231 246;
741
- --rg-text-rgb: 20 27 46;
742
- --rg-text-muted-rgb: 88 100 122;
743
- --rg-border-rgb: 190 203 227;
744
- --rg-primary-rgb: 64 94 184;
745
- --rg-primary-hover-rgb: 49 72 148;
746
- --rg-primary-text-rgb: 255 255 255;
747
- --rg-secondary-rgb: 46 125 157;
748
- --rg-secondary-hover-rgb: 35 97 122;
749
- --rg-secondary-text-rgb: 255 255 255;
750
- --rg-accent-rgb: 123 147 232;
751
- --rg-success-rgb: 47 125 84;
752
- --rg-warning-rgb: 166 106 0;
753
- --rg-danger-rgb: 182 64 82;
754
- --rg-link-rgb: 49 72 148;
755
- --rg-focus-rgb: 123 147 232;
756
- }
757
247
 
758
- [data-ui="retro-glass"][data-theme="arctic-indigo"][data-mode="dark"] {
759
- --rg-bg-rgb: 6 10 22;
760
- --rg-surface-rgb: 16 24 43;
761
- --rg-surface-strong-rgb: 24 35 66;
762
- --rg-surface-soft-rgb: 10 16 32;
763
- --rg-text-rgb: 237 243 255;
764
- --rg-text-muted-rgb: 178 191 217;
765
- --rg-border-rgb: 58 75 120;
766
- --rg-primary-rgb: 145 168 255;
767
- --rg-primary-hover-rgb: 183 197 255;
768
- --rg-primary-text-rgb: 5 8 22;
769
- --rg-secondary-rgb: 118 216 243;
770
- --rg-secondary-hover-rgb: 165 234 255;
771
- --rg-secondary-text-rgb: 4 17 22;
772
- --rg-accent-rgb: 194 206 255;
773
- --rg-success-rgb: 114 219 166;
774
- --rg-warning-rgb: 255 209 102;
775
- --rg-danger-rgb: 255 125 145;
776
- --rg-link-rgb: 183 197 255;
777
- --rg-focus-rgb: 145 168 255;
778
- }
779
248
 
780
- [data-ui="retro-glass"][data-theme="arctic-indigo"][data-mode="contrast"] {
781
- --rg-bg-rgb: 0 0 0;
782
- --rg-surface-rgb: 3 8 22;
783
- --rg-surface-strong-rgb: 8 18 42;
784
- --rg-surface-soft-rgb: 0 0 0;
785
- --rg-text-rgb: 255 255 255;
786
- --rg-text-muted-rgb: 238 244 255;
787
- --rg-border-rgb: 255 255 255;
788
- --rg-primary-rgb: 111 140 255;
789
- --rg-primary-hover-rgb: 255 255 255;
790
- --rg-primary-text-rgb: 0 0 0;
791
- --rg-secondary-rgb: 0 217 255;
792
- --rg-secondary-hover-rgb: 255 255 255;
793
- --rg-secondary-text-rgb: 0 0 0;
794
- --rg-accent-rgb: 184 196 255;
795
- --rg-success-rgb: 0 255 144;
796
- --rg-warning-rgb: 255 225 0;
797
- --rg-danger-rgb: 255 63 95;
798
- --rg-link-rgb: 159 178 255;
799
- --rg-focus-rgb: 255 255 255;
800
- }
801
249
 
802
250
  /* =========================================================
803
251
  Retro Glass Base
@@ -814,94 +262,75 @@
814
262
  var(--rg-bg);
815
263
  background-size: auto, auto, auto, 52px 52px, 52px 52px, auto;
816
264
  color: var(--rg-text);
817
- font-family: var(--rg-font-sans);
265
+ font-family: var(--rg-font-body);
818
266
  }
819
267
  [data-ui="retro-glass"] *, [data-ui="retro-glass"] *::before, [data-ui="retro-glass"] *::after { box-sizing: border-box; }
820
- [data-ui="retro-glass"] a { color: var(--rg-link); text-underline-offset: 0.18em; } [data-ui="retro-glass"] ::selection { background: var(--rg-primary); color: var(--rg-primary-text); }
268
+ [data-ui="retro-glass"][data-theme][data-mode] { background: var(--rg-theme-bg); background-size: var(--rg-theme-bg-size); }
269
+ [data-ui="retro-glass"] a { color: var(--rg-link); text-underline-offset: 0.18em; } [data-ui="retro-glass"] ::selection { background: var(--rg-primary); color: var(--rg-on-primary); }
821
270
 
822
271
  .rg-page { min-height: 100vh; padding: clamp(1rem, 4vw, 3rem); } .rg-container { width: min(100% - 2rem, 1200px); margin-inline: auto; } .rg-stack { display: flex; flex-direction: column; gap: var(--rg-space-4); } .rg-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rg-space-3); } .rg-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: var(--rg-space-5); } .rg-section { padding: clamp(1.25rem, 4vw, 2.5rem); }
823
- .rg-title, .rg-heading, .rg-kicker, .rg-button, .rg-badge, .rg-nav-link { font-family: var(--rg-font-display); text-transform: uppercase; } .rg-title { margin: 0; font-size: clamp(2rem, 5vw, 3.8rem); line-height: 1.02; letter-spacing: .06em; text-shadow: 0 0 14px var(--rg-glow-primary), 0 0 34px var(--rg-glow-accent); } .rg-heading { margin: 0; font-size: clamp(1.25rem, 3vw, 2rem); letter-spacing: .06em; } .rg-kicker { margin: 0; color: var(--rg-primary); font-size: .8rem; font-weight: 900; letter-spacing: .18em; } .rg-subtitle, .rg-copy { margin: 0; color: var(--rg-text-muted); line-height: 1.65; } .rg-text-muted { color: var(--rg-text-muted); }
272
+ .rg-title, .rg-heading, .rg-kicker, .rg-button, .rg-badge, .rg-nav-link { font-family: var(--rg-font-heading); text-transform: uppercase; } .rg-title { margin: 0; font-size: clamp(2rem, 5vw, 3.8rem); line-height: 1.02; letter-spacing: .06em; text-shadow: 0 0 14px var(--rg-glow-primary), 0 0 34px var(--rg-glow-accent); } .rg-heading { margin: 0; font-size: clamp(1.25rem, 3vw, 2rem); letter-spacing: .06em; } .rg-kicker { margin: 0; color: var(--rg-primary); font-size: .8rem; font-weight: 900; letter-spacing: .18em; } .rg-subtitle, .rg-copy { margin: 0; color: var(--rg-text-muted); line-height: 1.65; } .rg-text-muted { color: var(--rg-text-muted); }
824
273
 
825
- .rg-card, .rg-panel, .rg-console, .rg-toolbar, .rg-table-wrap { position: relative; background: linear-gradient(135deg, rgb(255 255 255 / .18), rgb(255 255 255 / .04)), linear-gradient(135deg, rgb(var(--rg-primary-rgb) / .06), transparent 52%), var(--rg-surface); color: var(--rg-text); border: 1px solid var(--rg-border); border-top-color: rgb(255 255 255 / .28); border-left-color: rgb(255 255 255 / .2); border-radius: var(--rg-radius-xl); box-shadow: var(--rg-shadow-md), 0 0 28px var(--rg-glow-primary); backdrop-filter: blur(18px) saturate(150%); -webkit-backdrop-filter: blur(18px) saturate(150%); overflow: hidden; transition: transform var(--rg-transition-base), box-shadow var(--rg-transition-base), border-color var(--rg-transition-base); }
274
+ .rg-card, .rg-panel, .rg-console, .rg-toolbar, .rg-table-wrap { position: relative; background: linear-gradient(135deg, rgb(255 255 255 / .18), rgb(255 255 255 / .04)), linear-gradient(135deg, rgb(var(--rg-primary-rgb) / .06), transparent 52%), var(--rg-surface); color: var(--rg-text); border: 1px solid var(--rg-border); border-top-color: rgb(255 255 255 / .28); border-left-color: rgb(255 255 255 / .2); border-radius: var(--rg-radius-xl); box-shadow: var(--rg-shadow-md), 0 0 28px var(--rg-glow-primary); -webkit-backdrop-filter: blur(18px) saturate(150%); backdrop-filter: blur(18px) saturate(150%); overflow: hidden; transition: transform var(--rg-transition-base), box-shadow var(--rg-transition-base), border-color var(--rg-transition-base); }
826
275
  .rg-card::before, .rg-panel::before, .rg-console::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgb(255 255 255 / .1), transparent 30%), linear-gradient(90deg, transparent, rgb(var(--rg-accent-rgb) / .08), transparent); } .rg-card, .rg-panel, .rg-console { padding: var(--rg-space-6); } .rg-console { border-radius: var(--rg-radius-lg); box-shadow: var(--rg-shadow-lg), inset 0 0 28px rgb(var(--rg-primary-rgb) / .08), 0 0 32px var(--rg-glow-primary); } .rg-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--rg-space-4); padding: var(--rg-space-4); } .rg-hover-lift:hover { transform: translateY(-3px); border-color: rgb(var(--rg-primary-rgb) / .68); box-shadow: var(--rg-shadow-lg), 0 0 44px var(--rg-glow-primary), 0 0 60px var(--rg-glow-secondary); }
827
- .rg-inset, .rg-well { background: linear-gradient(180deg, rgb(0 0 0 / .08), rgb(255 255 255 / .04)), var(--rg-surface-soft); border: 1px solid rgb(var(--rg-border-rgb) / .36); border-radius: var(--rg-radius-lg); box-shadow: inset 0 8px 22px rgb(0 0 0 / .16); backdrop-filter: blur(12px) saturate(140%); -webkit-backdrop-filter: blur(12px) saturate(140%); } .rg-well { padding: var(--rg-space-5); }
276
+ .rg-inset, .rg-well { background: linear-gradient(180deg, rgb(0 0 0 / .08), rgb(255 255 255 / .04)), var(--rg-surface-soft); border: 1px solid rgb(var(--rg-border-rgb) / .36); border-radius: var(--rg-radius-lg); box-shadow: inset 0 8px 22px rgb(0 0 0 / .16); -webkit-backdrop-filter: blur(12px) saturate(140%); backdrop-filter: blur(12px) saturate(140%); } .rg-well { padding: var(--rg-space-5); }
828
277
 
829
- .rg-button, .rg-icon-button { appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: var(--rg-space-2); min-height: 2.85rem; padding: .75rem 1.1rem; background: linear-gradient(135deg, rgb(255 255 255 / .24), rgb(255 255 255 / .04)), var(--rg-surface); color: var(--rg-text); border: 1px solid rgb(var(--rg-border-rgb) / .56); border-top-color: rgb(255 255 255 / .32); border-radius: var(--rg-radius-md); box-shadow: var(--rg-shadow-sm); backdrop-filter: blur(14px) saturate(150%); -webkit-backdrop-filter: blur(14px) saturate(150%); font: inherit; font-family: var(--rg-font-display); font-weight: 900; letter-spacing: .08em; cursor: pointer; text-decoration: none; transition: transform var(--rg-transition-fast), box-shadow var(--rg-transition-fast), background var(--rg-transition-fast), border-color var(--rg-transition-fast); }
830
- .rg-button:hover, .rg-icon-button:hover { transform: translateY(-2px); border-color: rgb(var(--rg-primary-rgb) / .68); box-shadow: var(--rg-shadow-md), 0 0 24px var(--rg-glow-primary); } .rg-button:active, .rg-icon-button:active, .rg-button.is-active, .rg-button[aria-pressed="true"] { transform: translateY(1px); box-shadow: inset 0 8px 18px rgb(0 0 0 / .18), 0 0 18px var(--rg-glow-primary); } .rg-button-primary { background: linear-gradient(135deg, rgb(255 255 255 / .22), rgb(255 255 255 / .04)), var(--rg-primary); color: var(--rg-primary-text); border-color: rgb(var(--rg-primary-rgb) / .72); } .rg-button-primary:hover { background: var(--rg-primary-hover); } .rg-button-secondary { background: linear-gradient(135deg, rgb(255 255 255 / .22), rgb(255 255 255 / .04)), var(--rg-secondary); color: var(--rg-secondary-text); border-color: rgb(var(--rg-secondary-rgb) / .72); } .rg-button-secondary:hover { background: var(--rg-secondary-hover); } .rg-button-danger { background: var(--rg-danger); color: #fff; } .rg-icon-button { width: 2.85rem; padding: 0; }
278
+ .rg-button, .rg-icon-button { appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: var(--rg-space-2); min-height: 2.85rem; padding: .75rem 1.1rem; background: linear-gradient(135deg, rgb(255 255 255 / .24), rgb(255 255 255 / .04)), var(--rg-surface); color: var(--rg-text); border: 1px solid rgb(var(--rg-border-rgb) / .56); border-top-color: rgb(255 255 255 / .32); border-radius: var(--rg-radius-md); box-shadow: var(--rg-shadow-sm); -webkit-backdrop-filter: blur(14px) saturate(150%); backdrop-filter: blur(14px) saturate(150%); font: inherit; font-family: var(--rg-font-display); font-weight: 900; letter-spacing: .08em; cursor: pointer; text-decoration: none; transition: transform var(--rg-transition-fast), box-shadow var(--rg-transition-fast), background var(--rg-transition-fast), border-color var(--rg-transition-fast); }
279
+ .rg-button:hover, .rg-icon-button:hover { transform: translateY(-2px); border-color: rgb(var(--rg-primary-rgb) / .68); box-shadow: var(--rg-shadow-md), 0 0 24px var(--rg-glow-primary); } .rg-button:active, .rg-icon-button:active, .rg-button.is-active, .rg-button[aria-pressed="true"] { transform: translateY(1px); box-shadow: inset 0 8px 18px rgb(0 0 0 / .18), 0 0 18px var(--rg-glow-primary); } .rg-button-primary { background: linear-gradient(135deg, rgb(255 255 255 / .22), rgb(255 255 255 / .04)), var(--rg-primary); color: var(--rg-on-primary); border-color: rgb(var(--rg-primary-rgb) / .72); } .rg-button-primary:hover { background: var(--rg-primary-hover); } .rg-button-secondary { background: linear-gradient(135deg, rgb(255 255 255 / .22), rgb(255 255 255 / .04)), var(--rg-secondary); color: var(--rg-on-secondary); border-color: rgb(var(--rg-secondary-rgb) / .72); } .rg-button-secondary:hover { background: var(--rg-secondary-hover); } .rg-button-danger { background: var(--rg-danger); color: #fff; } .rg-icon-button { width: 2.85rem; padding: 0; }
831
280
 
832
- .rg-field { display: flex; flex-direction: column; gap: var(--rg-space-2); } .rg-label { font-family: var(--rg-font-display); text-transform: uppercase; letter-spacing: .12em; font-weight: 900; font-size: .8rem; } .rg-input, .rg-textarea, .rg-select { width: 100%; min-height: 2.9rem; padding: .8rem 1rem; background: linear-gradient(180deg, rgb(255 255 255 / .06), rgb(0 0 0 / .08)), var(--rg-surface-soft); color: var(--rg-text); border: 1px solid rgb(var(--rg-border-rgb) / .44); border-radius: var(--rg-radius-md); box-shadow: inset 0 8px 18px rgb(0 0 0 / .14); font: inherit; outline: none; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); } .rg-textarea { min-height: 8rem; resize: vertical; } .rg-input:focus, .rg-textarea:focus, .rg-select:focus { border-color: var(--rg-focus); box-shadow: inset 0 8px 18px rgb(0 0 0 / .14), 0 0 0 3px rgb(var(--rg-focus-rgb) / .24), 0 0 26px rgb(var(--rg-focus-rgb) / .22); } .rg-help-text { color: var(--rg-text-muted); font-size: .9rem; }
281
+ .rg-field { display: flex; flex-direction: column; gap: var(--rg-space-2); } .rg-label { font-family: var(--rg-font-heading); text-transform: uppercase; letter-spacing: .12em; font-weight: 900; font-size: .8rem; } .rg-input, .rg-textarea, .rg-select { width: 100%; min-height: 2.9rem; padding: .8rem 1rem; background: linear-gradient(180deg, rgb(255 255 255 / .06), rgb(0 0 0 / .08)), var(--rg-surface-soft); color: var(--rg-text); border: 1px solid rgb(var(--rg-border-rgb) / .44); border-radius: var(--rg-radius-md); box-shadow: inset 0 8px 18px rgb(0 0 0 / .14); font: inherit; outline: none; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); } .rg-textarea { min-height: 8rem; resize: vertical; } .rg-input:focus, .rg-textarea:focus, .rg-select:focus { border-color: var(--rg-focus); box-shadow: inset 0 8px 18px rgb(0 0 0 / .14), 0 0 0 3px rgb(var(--rg-focus-rgb) / .24), 0 0 26px rgb(var(--rg-focus-rgb) / .22); } .rg-help-text { color: var(--rg-text-muted); font-size: .9rem; }
833
282
 
834
- .rg-badge { display: inline-flex; align-items: center; min-height: 1.8rem; padding: .35rem .75rem; background: linear-gradient(135deg, rgb(255 255 255 / .2), rgb(255 255 255 / .04)), var(--rg-surface); color: var(--rg-text); border: 1px solid rgb(var(--rg-border-rgb) / .5); border-radius: var(--rg-radius-pill); box-shadow: var(--rg-shadow-sm); font-size: .78rem; font-weight: 900; letter-spacing: .08em; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); } .rg-badge-primary { background: var(--rg-primary); color: var(--rg-primary-text); } .rg-badge-secondary { background: var(--rg-secondary); color: var(--rg-secondary-text); } .rg-badge-success { background: var(--rg-success); color: #fff; } .rg-badge-warning { background: var(--rg-warning); color: #111; } .rg-badge-danger { background: var(--rg-danger); color: #fff; }
835
- .rg-nav { display: flex; flex-wrap: wrap; gap: var(--rg-space-2); padding: var(--rg-space-2); background: linear-gradient(135deg, rgb(255 255 255 / .18), rgb(255 255 255 / .04)), var(--rg-surface); border: 1px solid var(--rg-border); border-radius: var(--rg-radius-xl); box-shadow: var(--rg-shadow-md), 0 0 24px var(--rg-glow-primary); backdrop-filter: blur(18px) saturate(150%); -webkit-backdrop-filter: blur(18px) saturate(150%); } .rg-nav-link { display: inline-flex; min-height: 2.5rem; align-items: center; padding: .65rem 1rem; color: var(--rg-text-muted); border: 1px solid transparent; border-radius: var(--rg-radius-pill); text-decoration: none; font-weight: 900; letter-spacing: .08em; } .rg-nav-link:hover { color: var(--rg-text); background: rgb(255 255 255 / .1); border-color: rgb(var(--rg-primary-rgb) / .36); } .rg-nav-link.is-active, .rg-nav-link[aria-current="page"] { background: var(--rg-primary); color: var(--rg-primary-text); box-shadow: 0 0 22px var(--rg-glow-primary); }
283
+ .rg-badge { display: inline-flex; align-items: center; min-height: 1.8rem; padding: .35rem .75rem; background: linear-gradient(135deg, rgb(255 255 255 / .2), rgb(255 255 255 / .04)), var(--rg-surface); color: var(--rg-text); border: 1px solid rgb(var(--rg-border-rgb) / .5); border-radius: var(--rg-radius-pill); box-shadow: var(--rg-shadow-sm); font-size: .78rem; font-weight: 900; letter-spacing: .08em; -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); } .rg-badge-primary { background: var(--rg-primary); color: var(--rg-on-primary); } .rg-badge-secondary { background: var(--rg-secondary); color: var(--rg-on-secondary); } .rg-badge-success { background: var(--rg-success); color: #fff; } .rg-badge-warning { background: var(--rg-warning); color: #111; } .rg-badge-danger { background: var(--rg-danger); color: #fff; }
284
+ .rg-nav { display: flex; flex-wrap: wrap; gap: var(--rg-space-2); padding: var(--rg-space-2); background: linear-gradient(135deg, rgb(255 255 255 / .18), rgb(255 255 255 / .04)), var(--rg-surface); border: 1px solid var(--rg-border); border-radius: var(--rg-radius-xl); box-shadow: var(--rg-shadow-md), 0 0 24px var(--rg-glow-primary); -webkit-backdrop-filter: blur(18px) saturate(150%); backdrop-filter: blur(18px) saturate(150%); } .rg-nav-link { display: inline-flex; min-height: 2.5rem; align-items: center; padding: .65rem 1rem; color: var(--rg-text-muted); border: 1px solid transparent; border-radius: var(--rg-radius-pill); text-decoration: none; font-weight: 900; letter-spacing: .08em; } .rg-nav-link:hover { color: var(--rg-text); background: rgb(255 255 255 / .1); border-color: rgb(var(--rg-primary-rgb) / .36); } .rg-nav-link.is-active, .rg-nav-link[aria-current="page"] { background: var(--rg-primary); color: var(--rg-on-primary); box-shadow: 0 0 22px var(--rg-glow-primary); }
285
+ /* Tooltips use compact contrast surfaces that stay readable across theme modes. */
286
+ .rg-tooltip, [data-ui="retro-glass"] :where(.ui-tooltip, [role="tooltip"], [data-tooltip]) { display: inline-flex; align-items: center; gap: .45rem; max-inline-size: 16rem; padding: .62rem .88rem; background: linear-gradient(135deg, rgb(255 255 255 / .28), rgb(255 255 255 / .06)), var(--rg-surface); color: var(--rg-text); border: 1px solid rgb(255 255 255 / .34); border-radius: 38% 62% 48% 52% / 52% 42% 58% 48%; box-shadow: var(--rg-shadow-md), 0 0 1.25rem var(--rg-glow-primary); -webkit-backdrop-filter: blur(14px) saturate(145%); backdrop-filter: blur(14px) saturate(145%); font-size: .82rem; font-weight: 900; line-height: 1.3; letter-spacing: .04em; }
287
+ .rg-tooltip-arrow { inline-size: .6rem; block-size: .6rem; flex: 0 0 auto; background: rgb(255 255 255 / .38); border: 1px solid rgb(255 255 255 / .3); border-radius: 40% 60% 45% 55%; transform: rotate(45deg); }
836
288
  .rg-progress { width: 100%; height: .9rem; background: var(--rg-surface-soft); border: 1px solid rgb(var(--rg-border-rgb) / .4); border-radius: var(--rg-radius-pill); box-shadow: inset 0 8px 18px rgb(0 0 0 / .14); overflow: hidden; } .rg-progress-bar { height: 100%; width: var(--rg-progress-value, 50%); background: linear-gradient(90deg, var(--rg-primary), var(--rg-accent), var(--rg-secondary)); border-radius: inherit; box-shadow: 0 0 18px var(--rg-glow-primary); }
837
- .rg-alert { padding: var(--rg-space-4); background: var(--rg-surface); border: 1px solid var(--rg-border); border-radius: var(--rg-radius-lg); box-shadow: var(--rg-shadow-md), 0 0 22px var(--rg-glow-primary); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); } .rg-alert-title { margin: 0; font-family: var(--rg-font-display); text-transform: uppercase; } .rg-alert-body { margin: .5rem 0 0; color: var(--rg-text-muted); } .rg-alert-success { border-left: 4px solid var(--rg-success); } .rg-alert-warning { border-left: 4px solid var(--rg-warning); } .rg-alert-danger { border-left: 4px solid var(--rg-danger); }
838
- .rg-table-wrap { overflow: auto; } .rg-table { width: 100%; border-collapse: collapse; } .rg-table th, .rg-table td { padding: .9rem 1rem; border-bottom: 1px solid rgb(var(--rg-border-rgb) / .34); text-align: left; } .rg-table th { background: rgb(var(--rg-primary-rgb) / .1); font-family: var(--rg-font-display); text-transform: uppercase; letter-spacing: .1em; } .rg-table td { color: var(--rg-text-muted); }
289
+ .rg-alert { padding: var(--rg-space-4); background: var(--rg-surface); border: 1px solid var(--rg-border); border-radius: var(--rg-radius-lg); box-shadow: var(--rg-shadow-md), 0 0 22px var(--rg-glow-primary); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); } .rg-alert-title { margin: 0; font-family: var(--rg-font-heading); text-transform: uppercase; } .rg-alert-body { margin: .5rem 0 0; color: var(--rg-text-muted); } .rg-alert-success { border-left: 4px solid var(--rg-success); } .rg-alert-warning { border-left: 4px solid var(--rg-warning); } .rg-alert-danger { border-left: 4px solid var(--rg-danger); }
290
+ .rg-table-wrap { overflow: auto; } .rg-table { width: 100%; border-collapse: collapse; } .rg-table th, .rg-table td { padding: .9rem 1rem; border-bottom: 1px solid rgb(var(--rg-border-rgb) / .34); text-align: left; } .rg-table th { background: rgb(var(--rg-primary-rgb) / .1); font-family: var(--rg-font-heading); text-transform: uppercase; letter-spacing: .1em; } .rg-table td { color: var(--rg-text-muted); }
839
291
  .rg-text-primary { color: var(--rg-primary); } .rg-text-secondary { color: var(--rg-secondary); } .rg-text-accent { color: var(--rg-accent); } .rg-text-success { color: var(--rg-success); } .rg-text-warning { color: var(--rg-warning); } .rg-text-danger { color: var(--rg-danger); }
840
292
  @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { [data-ui="retro-glass"] { --rg-panel-alpha: .96; --rg-panel-strong-alpha: 1; --rg-panel-soft-alpha: .9; } }
841
293
  [data-ui="retro-glass"] :focus-visible { outline: 3px solid var(--rg-focus); outline-offset: 3px; }
842
294
  @media (prefers-reduced-motion: reduce) { [data-ui="retro-glass"] *, [data-ui="retro-glass"] *::before, [data-ui="retro-glass"] *::after { transition-duration: 1ms !important; animation-duration: 1ms !important; } }
843
295
 
844
- /* =========================================================
845
- Native HTML Coverage + CSS Accessibility Layer
846
- ========================================================= */
847
296
 
848
- .rg-sr-only,
849
- .rg-visually-hidden { position: absolute !important; inline-size: 1px !important; block-size: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; border: 0 !important; }
850
- .rg-skip-link { position: fixed; inset-block-start: 1rem; inset-inline-start: 1rem; z-index: 10000; transform: translateY(-150%); padding: .75rem 1rem; background: var(--rg-primary); color: var(--rg-primary-text); border: 1px solid var(--rg-border); border-radius: var(--rg-radius-sm); box-shadow: var(--rg-shadow-md); font-weight: 900; text-decoration: none; }
851
- .rg-skip-link:focus { transform: translateY(0); }
852
- .rg-divider { width: 100%; height: 1px; border: 0; margin: 1.5rem 0; background: var(--rg-border); }
853
-
854
- [data-ui="retro-glass"] :where(h1, h2, h3, h4, h5, h6) { color: var(--rg-text); font-family: var(--rg-font-display); line-height: 1.15; margin: 0 0 .65em; text-wrap: balance; }
855
- [data-ui="retro-glass"] :where(h1) { font-size: clamp(2rem, 5vw, 3.5rem); }
856
- [data-ui="retro-glass"] :where(h2) { font-size: clamp(1.55rem, 3vw, 2.35rem); }
857
- [data-ui="retro-glass"] :where(h3) { font-size: clamp(1.25rem, 2vw, 1.65rem); }
858
- [data-ui="retro-glass"] :where(p) { margin: 0 0 1rem; color: var(--rg-text-muted); line-height: 1.7; }
859
- [data-ui="retro-glass"] :where(a) { color: var(--rg-link); text-decoration-thickness: .08em; text-underline-offset: .18em; }
860
- [data-ui="retro-glass"] :where(a:hover) { color: var(--rg-primary-hover); }
861
- [data-ui="retro-glass"] :where(ul, ol) { margin: 0 0 1rem; padding-left: 1.35rem; color: var(--rg-text-muted); }
862
- [data-ui="retro-glass"] :where(li) { margin-block: .25rem; }
863
- [data-ui="retro-glass"] :where(blockquote) { margin: 1.25rem 0; padding: 1rem 1.25rem; color: var(--rg-text); background: var(--rg-surface-soft); border-left: .35rem solid var(--rg-primary); border-radius: var(--rg-radius-md); }
864
- [data-ui="retro-glass"] :where(code, kbd, samp) { font-family: var(--rg-font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace); font-size: .92em; background: var(--rg-surface-soft); color: var(--rg-text); border: 1px solid rgb(var(--rg-border-rgb) / .45); border-radius: var(--rg-radius-xs); padding: .15em .35em; }
865
- [data-ui="retro-glass"] :where(pre) { overflow: auto; margin: 1rem 0; padding: 1rem; background: var(--rg-surface-soft); color: var(--rg-text); border: 1px solid var(--rg-border); border-radius: var(--rg-radius-md); }
866
- [data-ui="retro-glass"] :where(pre code) { display: block; padding: 0; border: 0; background: transparent; }
867
- [data-ui="retro-glass"] :where(hr) { height: 1px; border: 0; margin: 2rem 0; background: var(--rg-border); }
868
- [data-ui="retro-glass"] :where(mark) { background: rgb(var(--rg-warning-rgb) / .32); color: var(--rg-text); border-radius: .2em; padding-inline: .15em; }
869
- [data-ui="retro-glass"] :where(small) { color: var(--rg-text-muted); }
870
- [data-ui="retro-glass"] :where(abbr[title]) { text-decoration: underline dotted var(--rg-primary); text-underline-offset: .18em; cursor: help; }
871
- [data-ui="retro-glass"] :where(img, picture, video, canvas, svg, iframe) { max-width: 100%; height: auto; }
872
- [data-ui="retro-glass"] :where(figure) { margin: 1.25rem 0; }
873
- [data-ui="retro-glass"] :where(figcaption) { margin-top: .5rem; color: var(--rg-text-muted); font-size: .9rem; }
874
- [data-ui="retro-glass"] :where(fieldset) { min-inline-size: 0; margin: 0 0 1rem; padding: 1rem; border: 1px solid var(--rg-border); border-radius: var(--rg-radius-md); }
875
- [data-ui="retro-glass"] :where(legend) { padding-inline: .35rem; color: var(--rg-text); font-weight: 900; }
876
- [data-ui="retro-glass"] :where(label) { color: var(--rg-text); font-weight: 750; }
877
- [data-ui="retro-glass"] :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]), textarea, select) { width: 100%; min-height: 2.75rem; padding: .72rem .95rem; background: var(--rg-surface-soft); color: var(--rg-text); border: 1px solid var(--rg-border); border-radius: var(--rg-radius-md); font: inherit; }
878
- [data-ui="retro-glass"] :where(textarea) { resize: vertical; min-height: 7rem; }
879
- [data-ui="retro-glass"] :where(input, textarea, select, button) { font: inherit; }
880
- [data-ui="retro-glass"] :where(button, input[type="button"], input[type="submit"], input[type="reset"]) { min-height: 2.75rem; padding: .7rem 1rem; background: var(--rg-primary); color: var(--rg-primary-text); border: 1px solid var(--rg-primary); border-radius: var(--rg-radius-md); font-weight: 850; cursor: pointer; }
881
- [data-ui="retro-glass"] :where(button:hover, input[type="button"]:hover, input[type="submit"]:hover, input[type="reset"]:hover) { background: var(--rg-primary-hover); border-color: var(--rg-primary-hover); }
882
- [data-ui="retro-glass"] :where(input[type="checkbox"], input[type="radio"]) { inline-size: 1.1rem; block-size: 1.1rem; accent-color: var(--rg-primary); }
883
- [data-ui="retro-glass"] :where(input[type="range"]) { width: 100%; accent-color: var(--rg-primary); }
884
- [data-ui="retro-glass"] :where(input[type="color"]) { inline-size: 3rem; block-size: 2.4rem; padding: .2rem; background: var(--rg-surface-soft); border: 1px solid var(--rg-border); border-radius: var(--rg-radius-sm); }
885
- [data-ui="retro-glass"] :where(input[type="file"]) { color: var(--rg-text-muted); }
886
- [data-ui="retro-glass"] :where(input[type="file"]::file-selector-button) { margin-inline-end: .75rem; padding: .55rem .8rem; border: 1px solid var(--rg-primary); border-radius: var(--rg-radius-sm); background: var(--rg-primary); color: var(--rg-primary-text); font-weight: 800; cursor: pointer; }
887
- [data-ui="retro-glass"] :where(input:disabled, textarea:disabled, select:disabled, button:disabled, [aria-disabled="true"]) { opacity: .55; cursor: not-allowed; }
888
- [data-ui="retro-glass"] :where(input:invalid, textarea:invalid, select:invalid, [aria-invalid="true"]) { border-color: var(--rg-danger); }
889
- [data-ui="retro-glass"] :where(table) { width: 100%; border-collapse: collapse; margin: 1rem 0; background: var(--rg-surface); border: 1px solid var(--rg-border); border-radius: var(--rg-radius-md); overflow: hidden; }
890
- [data-ui="retro-glass"] :where(caption) { caption-side: bottom; padding: .75rem; color: var(--rg-text-muted); font-size: .9rem; }
891
- [data-ui="retro-glass"] :where(th, td) { padding: .8rem .9rem; text-align: left; border-bottom: 1px solid var(--rg-border); }
892
- [data-ui="retro-glass"] :where(th) { color: var(--rg-text); background: rgb(var(--rg-primary-rgb) / .08); }
893
- [data-ui="retro-glass"] :where(td) { color: var(--rg-text-muted); }
894
- [data-ui="retro-glass"] :where(details) { margin: 1rem 0; padding: .9rem 1rem; background: var(--rg-surface); border: 1px solid var(--rg-border); border-radius: var(--rg-radius-md); }
895
- [data-ui="retro-glass"] :where(summary) { color: var(--rg-text); font-weight: 900; cursor: pointer; }
896
- [data-ui="retro-glass"] :where(dialog) { max-width: min(92vw, 42rem); padding: 0; background: var(--rg-surface-strong); color: var(--rg-text); border: 1px solid var(--rg-border); border-radius: var(--rg-radius-lg); box-shadow: 0 30px 80px rgb(0 0 0 / .42); }
897
- [data-ui="retro-glass"] :where(dialog::backdrop) { background: rgb(0 0 0 / .62); }
898
- [data-ui="retro-glass"] :where(progress, meter) { width: 100%; min-height: .9rem; accent-color: var(--rg-primary); }
899
- [data-ui="retro-glass"] :where(:focus-visible) { outline: 3px solid var(--rg-focus); outline-offset: 3px; box-shadow: 0 0 0 4px rgb(var(--rg-focus-rgb) / .28); }
900
- [data-ui="retro-glass"] :where(:target) { scroll-margin-top: 6rem; outline: 3px solid var(--rg-focus); outline-offset: .35rem; }
901
- [data-ui="retro-glass"] :where([aria-current="page"]) { font-weight: 900; }
902
- [data-ui="retro-glass"] :where([aria-busy="true"]) { cursor: progress; }
903
- [data-ui="retro-glass"] :where([hidden]) { display: none !important; }
904
- [data-ui="retro-glass"] ::selection { background: var(--rg-primary); color: var(--rg-primary-text); }
297
+ /* Theme-responsive component defaults */
298
+ .rg-card, .rg-panel { background: var(--rg-card-bg); }
299
+ .rg-toolbar, .rg-table-wrap { background: var(--rg-control-bg); }
300
+ .rg-button:not(.rg-button-primary):not(.rg-button-secondary):not(.rg-button-danger):not(.rg-button-ghost), .rg-icon-button { background: var(--rg-control-bg); }
301
+ .rg-button, .rg-icon-button, .rg-badge, .rg-nav-link { font-family: var(--rg-font-control); }
302
+
303
+ /* Spinner geometry follows the retro glass preset's translucent lens shape. */
304
+ .rg-spinner, .rg-loading-spinner, [data-ui="retro-glass"] :where(.ui-spinner, .loading-spinner, [data-loading-spinner]) {
305
+ display: inline-block;
306
+ inline-size: 2rem;
307
+ block-size: 2rem;
308
+ border: .12rem solid rgb(255 255 255 / .32);
309
+ border-block-start-color: var(--rg-spinner-stroke);
310
+ border-inline-end-color: var(--rg-spinner-accent);
311
+ border-radius: 38% 62% 48% 52%;
312
+ background: linear-gradient(135deg, rgb(255 255 255 / .32), transparent 46%), conic-gradient(from 35deg, var(--rg-spinner-stroke), transparent 40%, var(--rg-spinner-accent), var(--rg-spinner-track));
313
+ box-shadow: 0 0 1.35rem var(--rg-glow-primary), inset 0 0 .85rem rgb(255 255 255 / .18);
314
+ -webkit-backdrop-filter: blur(.4rem);
315
+ backdrop-filter: blur(.4rem);
316
+ vertical-align: -.2em;
317
+ animation: rg-spin .95s linear infinite;
318
+ }
319
+ .rg-spinner-sm { inline-size: 1rem; block-size: 1rem; border-width: .08rem; }
320
+ .rg-spinner-lg { inline-size: 3rem; block-size: 3rem; border-width: .2rem; }
321
+ .rg-button[aria-busy="true"], .rg-icon-button[aria-busy="true"], [data-ui="retro-glass"] :where(button[aria-busy="true"], input[type="button"][aria-busy="true"], input[type="submit"][aria-busy="true"], input[type="reset"][aria-busy="true"]) { gap: .55rem; cursor: progress; }
322
+ .rg-button[aria-busy="true"]::after, .rg-icon-button[aria-busy="true"]::after, [data-ui="retro-glass"] :where(button[aria-busy="true"], input[type="button"][aria-busy="true"], input[type="submit"][aria-busy="true"], input[type="reset"][aria-busy="true"])::after {
323
+ content: "";
324
+ display: inline-block;
325
+ inline-size: 1em;
326
+ block-size: 1em;
327
+ border: .16em solid rgb(var(--rg-primary-text-rgb) / .42);
328
+ border-block-start-color: currentColor;
329
+ border-radius: 50%;
330
+ animation: rg-spin .75s linear infinite;
331
+ }
332
+ @keyframes rg-spin { to { transform: rotate(360deg); } }
333
+
905
334
 
906
335
  @media (prefers-reduced-motion: reduce) {
907
336
  [data-ui="retro-glass"] *, [data-ui="retro-glass"] *::before, [data-ui="retro-glass"] *::after { scroll-behavior: auto !important; transition-duration: 1ms !important; animation-duration: 1ms !important; animation-iteration-count: 1 !important; }