@ecopages/radiant-themes 0.0.0-stage → 0.2.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 (66) hide show
  1. package/README.md +96 -2
  2. package/dist/compiled/themes/cloudflare/compact.css +848 -0
  3. package/dist/compiled/themes/cloudflare.css +831 -0
  4. package/dist/compiled/themes/github/compact.css +819 -0
  5. package/dist/compiled/themes/github.css +802 -0
  6. package/dist/compiled/themes/high-contrast/compact.css +707 -0
  7. package/dist/compiled/themes/high-contrast.css +690 -0
  8. package/dist/compiled/themes/macos/compact.css +815 -0
  9. package/dist/compiled/themes/macos-classic/compact.css +1083 -0
  10. package/dist/compiled/themes/macos-classic.css +1066 -0
  11. package/dist/compiled/themes/macos.css +798 -0
  12. package/dist/compiled/themes/material/compact.css +634 -0
  13. package/dist/compiled/themes/material.css +617 -0
  14. package/dist/compiled/themes/vercel/compact.css +811 -0
  15. package/dist/compiled/themes/vercel.css +794 -0
  16. package/dist/compiled/themes/vscode/compact.css +763 -0
  17. package/dist/compiled/themes/vscode.css +746 -0
  18. package/dist/compiled/themes/windows95/compact.css +959 -0
  19. package/dist/compiled/themes/windows95.css +942 -0
  20. package/dist/foundation.css +11 -0
  21. package/dist/themes/cloudflare/compact.css +2 -0
  22. package/dist/themes/cloudflare.css +4 -0
  23. package/dist/themes/github/compact.css +2 -0
  24. package/dist/themes/github.css +4 -0
  25. package/dist/themes/high-contrast/compact.css +2 -0
  26. package/dist/themes/high-contrast.css +4 -0
  27. package/dist/themes/macos/compact.css +2 -0
  28. package/dist/themes/macos-classic/compact.css +2 -0
  29. package/dist/themes/macos-classic.css +4 -0
  30. package/dist/themes/macos.css +4 -0
  31. package/dist/themes/material/compact.css +2 -0
  32. package/dist/themes/material.css +4 -0
  33. package/dist/themes/vercel/compact.css +2 -0
  34. package/dist/themes/vercel.css +4 -0
  35. package/dist/themes/vscode/compact.css +2 -0
  36. package/dist/themes/vscode.css +4 -0
  37. package/dist/themes/windows95/compact.css +2 -0
  38. package/dist/themes/windows95.css +4 -0
  39. package/dist/tokens/colors/cloudflare.css +53 -0
  40. package/dist/tokens/colors/github.css +33 -0
  41. package/dist/tokens/colors/high-contrast.css +53 -0
  42. package/dist/tokens/colors/macos-classic.css +66 -0
  43. package/dist/tokens/colors/macos.css +40 -0
  44. package/dist/tokens/colors/material.css +25 -0
  45. package/dist/tokens/colors/vercel.css +71 -0
  46. package/dist/tokens/colors/vscode.css +31 -0
  47. package/dist/tokens/colors/windows95.css +54 -0
  48. package/dist/tokens/components/cloudflare.css +147 -0
  49. package/dist/tokens/components/github.css +111 -0
  50. package/dist/tokens/components/high-contrast.css +108 -0
  51. package/dist/tokens/components/macos-classic.css +587 -0
  52. package/dist/tokens/components/macos.css +225 -0
  53. package/dist/tokens/components/material.css +82 -0
  54. package/dist/tokens/components/vercel.css +150 -0
  55. package/dist/tokens/components/vscode.css +72 -0
  56. package/dist/tokens/components/windows95.css +433 -0
  57. package/dist/tokens/roles/cloudflare.css +150 -0
  58. package/dist/tokens/roles/github.css +150 -0
  59. package/dist/tokens/roles/high-contrast.css +155 -0
  60. package/dist/tokens/roles/macos-classic.css +142 -0
  61. package/dist/tokens/roles/macos.css +155 -0
  62. package/dist/tokens/roles/material.css +144 -0
  63. package/dist/tokens/roles/vercel.css +141 -0
  64. package/dist/tokens/roles/vscode.css +143 -0
  65. package/dist/tokens/roles/windows95.css +142 -0
  66. package/package.json +144 -3
@@ -0,0 +1,433 @@
1
+ @reference 'tailwindcss';
2
+
3
+ /**
4
+ * @remarks Bevels follow the Windows 95 two-tone edges: an outer light and dark pair plus an inner highlight and shadow
5
+ * pair, drawn with inset shadows so they never change a control's box size.
6
+ */
7
+ :root, :root[data-rui-theme='windows95'] {
8
+ --font-sans: Tahoma, 'MS Sans Serif', Arial, sans-serif;
9
+ --font-heading: Tahoma, 'MS Sans Serif', Arial, sans-serif;
10
+ --font-mono: 'Lucida Console', Consolas, Menlo, Monaco, 'Courier New', monospace;
11
+ --border-radius-xs: 0;
12
+ --border-radius-sm: 0;
13
+ --border-radius-md: 0;
14
+ --border-radius-lg: 0;
15
+ --border-radius-xl: 0;
16
+ --border-radius-2xl: 0;
17
+ --border-radius-3xl: 0;
18
+ --radius-control: 0;
19
+ --radius-container: 0;
20
+ --rui-border-alpha: 100%;
21
+ --focus-ring-width: 2px;
22
+ --focus-ring-offset: 2px;
23
+ --windows95-raised:
24
+ inset -1px -1px var(--windows95-dark), inset 1px 1px var(--windows95-light),
25
+ inset -2px -2px var(--windows95-shadow), inset 2px 2px var(--windows95-highlight);
26
+ --windows95-pressed:
27
+ inset -1px -1px var(--windows95-light), inset 1px 1px var(--windows95-dark),
28
+ inset -2px -2px var(--windows95-highlight), inset 2px 2px var(--windows95-shadow);
29
+ --windows95-sunken:
30
+ inset -1px -1px var(--windows95-light), inset 1px 1px var(--windows95-shadow),
31
+ inset -2px -2px var(--windows95-highlight), inset 2px 2px var(--windows95-dark);
32
+ --windows95-raised-thin: inset -1px -1px var(--windows95-shadow), inset 1px 1px var(--windows95-light);
33
+ --windows95-sunken-thin: inset -1px -1px var(--windows95-light), inset 1px 1px var(--windows95-shadow);
34
+ }
35
+
36
+ @layer components {
37
+ :root .rui-switch {
38
+ --rui-switch-track: var(--windows95-field);
39
+ --rui-switch-track-hover: var(--windows95-field);
40
+ --rui-switch-track-on: var(--windows95-selection);
41
+ --rui-switch-track-on-hover: var(--windows95-selection);
42
+ --rui-switch-thumb: var(--windows95-face);
43
+ --rui-switch-thumb-on: var(--windows95-face);
44
+ }
45
+
46
+ :root .rui-button,
47
+ :root .rui-button--filled,
48
+ :root .rui-button--outline,
49
+ :root .rui-button--destructive {
50
+ @apply rounded-none font-normal;
51
+ border-color: transparent;
52
+ background-clip: padding-box;
53
+ background-color: var(--windows95-face);
54
+ background-image: none;
55
+ color: var(--windows95-text);
56
+ box-shadow: var(--windows95-raised);
57
+ transition: none;
58
+ }
59
+
60
+ :root .rui-button--filled {
61
+ border-color: var(--windows95-dark);
62
+ }
63
+
64
+ :root .rui-button--destructive {
65
+ color: var(--windows95-red);
66
+ }
67
+
68
+ /**
69
+ * @remarks Ghost, link, and bare buttons are text and icons, not push buttons: no bevel or minimum width.
70
+ */
71
+ :root .rui-button--ghost,
72
+ :root .rui-button--link,
73
+ :root .rui-button--none {
74
+ @apply rounded-none;
75
+ min-width: 0;
76
+ border-color: transparent;
77
+ background-color: transparent;
78
+ background-image: none;
79
+ color: var(--windows95-text);
80
+ box-shadow: none;
81
+ transition: none;
82
+ }
83
+
84
+ :root .rui-button--link,
85
+ :root .rui-button--link:hover:not(:disabled),
86
+ :root .rui-button--link:active:not(:disabled) {
87
+ background-color: transparent;
88
+ color: var(--windows95-blue-light);
89
+ box-shadow: none;
90
+ }
91
+
92
+ :root .rui-button--link:hover:not(:disabled) {
93
+ text-decoration: underline;
94
+ }
95
+
96
+ :root .rui-button:hover:not(:disabled),
97
+ :root .rui-button--filled:hover:not(:disabled),
98
+ :root .rui-button--outline:hover:not(:disabled),
99
+ :root .rui-button--destructive:hover:not(:disabled) {
100
+ background-color: var(--windows95-face);
101
+ }
102
+
103
+ :root .rui-button--ghost:hover:not(:disabled) {
104
+ background-color: transparent;
105
+ box-shadow: var(--windows95-raised-thin);
106
+ }
107
+
108
+ :root .rui-button:active:not(:disabled),
109
+ :root .rui-button--filled:active:not(:disabled),
110
+ :root .rui-button--outline:active:not(:disabled),
111
+ :root .rui-button--destructive:active:not(:disabled),
112
+ :root .rui-button[aria-pressed='true'] {
113
+ background-color: var(--windows95-face);
114
+ box-shadow: var(--windows95-pressed);
115
+ }
116
+
117
+ :root .rui-button--ghost:active:not(:disabled),
118
+ :root .rui-button--ghost[aria-pressed='true'] {
119
+ background-color: transparent;
120
+ box-shadow: var(--windows95-sunken-thin);
121
+ }
122
+
123
+ :root .rui-button:focus-visible {
124
+ outline: 1px dotted var(--windows95-text);
125
+ outline-offset: -5px;
126
+ }
127
+
128
+ :root .rui-button:disabled {
129
+ opacity: 1;
130
+ color: var(--windows95-shadow);
131
+ text-shadow: 1px 1px 0 var(--windows95-light);
132
+ }
133
+
134
+ :root .rui-input,
135
+ :root .rui-textarea,
136
+ :root .rui-autocomplete__input,
137
+ :root .rui-combobox__control,
138
+ :root .rui-date-field__group,
139
+ :root .rui-date-range-picker__group,
140
+ :root .rui-input-group,
141
+ :root .rui-number-field__group,
142
+ :root .rui-select__control {
143
+ @apply rounded-none;
144
+ border-color: transparent;
145
+ background-clip: padding-box;
146
+ background-color: var(--windows95-field);
147
+ color: var(--windows95-field-text);
148
+ box-shadow: var(--windows95-sunken);
149
+ }
150
+
151
+ :root .rui-input-group .rui-input,
152
+ :root .rui-combobox__input,
153
+ :root .rui-number-field__input {
154
+ background-color: transparent;
155
+ color: var(--windows95-field-text);
156
+ box-shadow: none;
157
+ }
158
+
159
+ :root .rui-input:focus-visible,
160
+ :root .rui-textarea:focus-visible,
161
+ :root .rui-select__control:focus-visible {
162
+ outline: 1px dotted var(--windows95-text);
163
+ outline-offset: 2px;
164
+ }
165
+
166
+ :root .rui-checkbox__control,
167
+ :root .rui-radio__control {
168
+ border-color: transparent;
169
+ background-color: var(--windows95-field);
170
+ box-shadow: var(--windows95-sunken);
171
+ }
172
+
173
+ :root .rui-checkbox__control {
174
+ @apply rounded-none;
175
+ width: 0.8125rem;
176
+ height: 0.8125rem;
177
+ }
178
+
179
+ :root .rui-checkbox__input:checked:not(:indeterminate):not([aria-checked='mixed']) + .rui-checkbox__control,
180
+ :root .rui-checkbox__input:indeterminate + .rui-checkbox__control,
181
+ :root .rui-checkbox__input[aria-checked='mixed'] + .rui-checkbox__control,
182
+ :root .rui-radio__input:checked + .rui-radio__control {
183
+ border-color: transparent;
184
+ background-color: var(--windows95-field);
185
+ }
186
+
187
+ :root .rui-checkbox__input:checked:not(:indeterminate):not([aria-checked='mixed']) + .rui-checkbox__control::after {
188
+ color: var(--windows95-field-text);
189
+ }
190
+
191
+ :root .rui-checkbox__input:indeterminate + .rui-checkbox__control::after,
192
+ :root .rui-checkbox__input[aria-checked='mixed'] + .rui-checkbox__control::after,
193
+ :root .rui-radio__input:checked + .rui-radio__control::after {
194
+ background-color: var(--windows95-field-text);
195
+ }
196
+
197
+ :root .rui-checkbox__input:indeterminate + .rui-checkbox__control::after,
198
+ :root .rui-checkbox__input[aria-checked='mixed'] + .rui-checkbox__control::after {
199
+ @apply rounded-none;
200
+ }
201
+
202
+ :root .rui-radio__control {
203
+ @apply rounded-full;
204
+ }
205
+
206
+ :root .rui-radio__input:checked + .rui-radio__control::after {
207
+ width: 0.25rem;
208
+ height: 0.25rem;
209
+ }
210
+
211
+ :root .rui-checkbox__input:focus-visible + .rui-checkbox__control,
212
+ :root .rui-radio__input:focus-visible + .rui-radio__control {
213
+ outline: 1px dotted var(--windows95-text);
214
+ outline-offset: 2px;
215
+ --tw-ring-shadow: 0 0 #0000;
216
+ }
217
+
218
+ :root .rui-switch__track {
219
+ @apply rounded-none;
220
+ border-color: transparent;
221
+ box-shadow: var(--windows95-sunken);
222
+ }
223
+
224
+ :root .rui-switch__thumb {
225
+ @apply rounded-none;
226
+ box-shadow: var(--windows95-raised);
227
+ }
228
+
229
+ :root .rui-feed__article {
230
+ @apply rounded-none border-0 text-on-surface;
231
+ background-color: var(--windows95-face);
232
+ box-shadow: var(--windows95-raised);
233
+ }
234
+
235
+ :root .rui-feed__article:hover {
236
+ background-color: var(--windows95-face);
237
+ }
238
+
239
+ :root .rui-listbox__option[aria-selected='true'],
240
+ :root .rui-menu-button__item[aria-checked='true'],
241
+ :root .rui-menubar__menu-item[aria-checked='true'],
242
+ :root .rui-tree__node[aria-selected='true'],
243
+ :root .rui-calendar__day[aria-selected='true'],
244
+ :root .rui-sidebar__menu-button--active,
245
+ :root .rui-navigation-menu__link-list a[aria-current='page'] {
246
+ background-color: var(--windows95-selection);
247
+ color: var(--windows95-selection-text);
248
+ }
249
+
250
+ :root .rui-menu-button__menu,
251
+ :root .rui-menubar__menu,
252
+ :root .rui-select__listbox,
253
+ :root .rui-combobox__listbox,
254
+ :root .rui-calendar,
255
+ :root .rui-dialog__surface,
256
+ :root .rui-popover-host,
257
+ :root .rui-hover-card__content {
258
+ @apply rounded-none border-0 bg-surface;
259
+ background-color: var(--windows95-face);
260
+ box-shadow: var(--windows95-raised);
261
+ }
262
+
263
+ :root .rui-select__listbox,
264
+ :root .rui-combobox__listbox {
265
+ background-color: var(--windows95-field);
266
+ color: var(--windows95-field-text);
267
+ box-shadow:
268
+ inset -1px -1px var(--windows95-dark),
269
+ inset 1px 1px var(--windows95-dark);
270
+ }
271
+
272
+ :root .rui-dialog__title,
273
+ :root .rui-calendar__header,
274
+ :root .rui-sidebar__header {
275
+ @apply font-bold;
276
+ background-color: var(--windows95-selection);
277
+ color: var(--windows95-selection-text);
278
+ }
279
+
280
+ :root .rui-dialog__title {
281
+ min-height: 1.5rem;
282
+ margin: calc(3px - var(--rui-dialog-padding)) calc(3px - var(--rui-dialog-padding)) var(--space-3);
283
+ padding: 0.1875rem 2rem 0.1875rem 0.25rem;
284
+ }
285
+
286
+ :root .rui-dialog__close {
287
+ @apply rounded-none border-0;
288
+ z-index: 1;
289
+ background-color: var(--windows95-face);
290
+ color: var(--windows95-text);
291
+ top: 0.375rem;
292
+ right: 0.375rem;
293
+ width: 1rem;
294
+ height: 0.875rem;
295
+ box-shadow: var(--windows95-raised);
296
+ }
297
+
298
+ :root rui-tabs[variant='boxed'] {
299
+ @apply overflow-visible rounded-none border-0 bg-transparent shadow-none;
300
+ }
301
+
302
+ :root rui-tabs[variant='boxed'] .rui-tabs__list {
303
+ @apply min-w-0 max-w-full overflow-x-auto overflow-y-clip border-0 bg-transparent px-0 pt-0.5;
304
+ gap: 0;
305
+ }
306
+
307
+ :root rui-tabs[variant='boxed'] .rui-tabs__tab {
308
+ @apply relative rounded-none border-0 text-on-surface font-normal;
309
+ z-index: 0;
310
+ margin-bottom: -2px;
311
+ background-color: var(--windows95-face);
312
+ box-shadow:
313
+ inset -1px 0 var(--windows95-dark),
314
+ inset 1px 1px var(--windows95-light),
315
+ inset -2px 0 var(--windows95-shadow),
316
+ inset 2px 2px var(--windows95-highlight);
317
+ }
318
+
319
+ :root rui-tabs[variant='boxed'] .rui-tabs__tab[aria-selected='true'] {
320
+ @apply font-normal;
321
+ z-index: 1;
322
+ margin-top: -2px;
323
+ padding-bottom: calc(var(--rui-tabs-tab-padding-y, 0.375rem) + 2px);
324
+ }
325
+
326
+ :root rui-tabs[variant='boxed'] .rui-tabs__panel {
327
+ @apply rounded-none border-0 text-on-surface;
328
+ position: relative;
329
+ z-index: 0;
330
+ background-color: var(--windows95-face);
331
+ box-shadow: var(--windows95-raised);
332
+ padding: var(--rui-tabs-panel-padding);
333
+ }
334
+
335
+ :root .rui-alert,
336
+ :root .rui-toast__content {
337
+ @apply rounded-none border-0 text-on-surface;
338
+ background-color: var(--windows95-face);
339
+ box-shadow: var(--windows95-raised);
340
+ }
341
+
342
+ :root .rui-alert--error .rui-alert__icon {
343
+ color: var(--windows95-red);
344
+ }
345
+
346
+ :root .rui-alert--warning .rui-alert__icon {
347
+ color: var(--windows95-amber);
348
+ }
349
+
350
+ :root .rui-table__header,
351
+ :root .rui-treegrid__row--header,
352
+ :root .rui-calendar__weekdays {
353
+ @apply font-normal;
354
+ background-color: var(--windows95-face);
355
+ }
356
+
357
+ :root .rui-table__header th,
358
+ :root .rui-table__header .rui-table__cell {
359
+ box-shadow: var(--windows95-raised-thin);
360
+ }
361
+
362
+ :root .rui-table,
363
+ :root .rui-grid {
364
+ background-color: var(--windows95-field);
365
+ color: var(--windows95-field-text);
366
+ }
367
+
368
+ :root .rui-badge,
369
+ :root .rui-chip,
370
+ :root .rui-pagination__link {
371
+ @apply rounded-none border-0 text-on-surface;
372
+ background-color: var(--windows95-face);
373
+ box-shadow: var(--windows95-raised-thin);
374
+ }
375
+
376
+ :root .rui-separator,
377
+ :root .rui-sidebar__separator {
378
+ background-color: var(--windows95-shadow);
379
+ box-shadow: 0 1px 0 var(--windows95-light);
380
+ }
381
+
382
+ :root .rui-slider__thumb,
383
+ :root .rui-number-field__stepper {
384
+ @apply rounded-none border-0;
385
+ background-color: var(--windows95-face);
386
+ box-shadow: var(--windows95-raised);
387
+ }
388
+
389
+ :root .rui-meter__track,
390
+ :root .rui-slider__range-track {
391
+ @apply rounded-none border-0;
392
+ background-color: var(--windows95-field);
393
+ box-shadow: var(--windows95-sunken-thin);
394
+ }
395
+
396
+ :root .rui-meter__fill {
397
+ @apply rounded-none;
398
+ background-color: var(--windows95-selection);
399
+ }
400
+
401
+ :root .rui-slider__range-fill {
402
+ @apply rounded-none;
403
+ background-color: transparent;
404
+ }
405
+ }
406
+
407
+ @media (prefers-contrast: more) {
408
+ @layer components {
409
+ :root .rui-input,
410
+ :root .rui-textarea,
411
+ :root .rui-autocomplete__input,
412
+ :root .rui-combobox__control,
413
+ :root .rui-date-field__group,
414
+ :root .rui-date-range-picker__group,
415
+ :root .rui-input-group,
416
+ :root .rui-number-field__group,
417
+ :root .rui-select__control,
418
+ :root .rui-checkbox__control,
419
+ :root .rui-radio__control,
420
+ :root .rui-switch__track {
421
+ border: 1px solid var(--windows95-field-text);
422
+ box-shadow: none;
423
+ }
424
+
425
+ :root .rui-button,
426
+ :root .rui-button--filled,
427
+ :root .rui-button--outline,
428
+ :root .rui-button--destructive {
429
+ border-color: var(--windows95-dark);
430
+ box-shadow: none;
431
+ }
432
+ }
433
+ }
@@ -0,0 +1,150 @@
1
+ :where(:root),
2
+ :root[data-rui-theme='cloudflare'] {
3
+ --gray-50: color-mix(in oklab, var(--color-cloudflare-canvas), var(--color-cloudflare-fg) 4%);
4
+ --gray-100: color-mix(in oklab, var(--color-cloudflare-canvas), var(--color-cloudflare-fg) 9%);
5
+ --gray-200: color-mix(in oklab, var(--color-cloudflare-canvas), var(--color-cloudflare-fg) 18%);
6
+ --gray-300: color-mix(in oklab, var(--color-cloudflare-canvas), var(--color-cloudflare-fg) 32%);
7
+ --gray-400: color-mix(in oklab, var(--color-cloudflare-canvas), var(--color-cloudflare-fg) 48%);
8
+ --gray-500: color-mix(in oklab, var(--color-cloudflare-canvas), var(--color-cloudflare-fg) 62%);
9
+ --gray-600: color-mix(in oklab, var(--color-cloudflare-canvas), var(--color-cloudflare-fg) 72%);
10
+ --gray-700: color-mix(in oklab, var(--color-cloudflare-canvas), var(--color-cloudflare-fg) 80%);
11
+ --gray-800: color-mix(in oklab, var(--color-cloudflare-canvas), var(--color-cloudflare-fg) 88%);
12
+ --gray-900: color-mix(in oklab, var(--color-cloudflare-canvas), var(--color-cloudflare-fg) 94%);
13
+ --gray-950: var(--color-cloudflare-fg);
14
+
15
+ --primary: var(--color-cloudflare-orange);
16
+ --on-primary: white;
17
+ --primary-light: var(--color-cloudflare-orange-bright);
18
+ --primary-dark: var(--color-cloudflare-orange-deep);
19
+ --primary-container: color-mix(in oklab, var(--color-cloudflare-orange-bright), white 88%);
20
+ --on-primary-container: color-mix(in oklab, var(--color-cloudflare-orange), black 45%);
21
+ --secondary: var(--color-cloudflare-recessed);
22
+ --on-secondary: var(--color-cloudflare-fg);
23
+ --secondary-light: var(--color-cloudflare-elevated);
24
+ --secondary-dark: color-mix(in oklab, var(--color-cloudflare-recessed), black 8%);
25
+ --secondary-container: var(--color-cloudflare-recessed);
26
+ --on-secondary-container: var(--color-cloudflare-fg);
27
+ --tertiary: var(--color-cloudflare-purple);
28
+ --on-tertiary: white;
29
+ --tertiary-container: color-mix(in oklab, var(--color-cloudflare-purple), white 90%);
30
+ --on-tertiary-container: color-mix(in oklab, var(--color-cloudflare-purple), black 60%);
31
+ --error: var(--color-cloudflare-red);
32
+ --on-error: white;
33
+ --error-light: color-mix(in oklab, var(--color-cloudflare-red), white 30%);
34
+ --error-dark: color-mix(in oklab, var(--color-cloudflare-red), black 30%);
35
+ --error-container: color-mix(in oklab, var(--color-cloudflare-red), white 91%);
36
+ --on-error-container: color-mix(in oklab, var(--color-cloudflare-red), black 60%);
37
+ --success: var(--color-cloudflare-green);
38
+ --on-success: white;
39
+ --success-light: color-mix(in oklab, var(--color-cloudflare-green), white 30%);
40
+ --success-dark: color-mix(in oklab, var(--color-cloudflare-green), black 30%);
41
+ --success-container: color-mix(in oklab, var(--color-cloudflare-green), white 90%);
42
+ --on-success-container: color-mix(in oklab, var(--color-cloudflare-green), black 60%);
43
+ --info: var(--color-cloudflare-blue);
44
+ --on-info: white;
45
+ --info-light: color-mix(in oklab, var(--color-cloudflare-blue), white 30%);
46
+ --info-dark: color-mix(in oklab, var(--color-cloudflare-blue), black 45%);
47
+ --info-container: color-mix(in oklab, var(--color-cloudflare-blue), white 90%);
48
+ --on-info-container: color-mix(in oklab, var(--color-cloudflare-blue), black 60%);
49
+ --warning: var(--color-cloudflare-amber-text);
50
+ --on-warning: white;
51
+ --warning-light: color-mix(in oklab, var(--color-cloudflare-amber-text), white 30%);
52
+ --warning-dark: color-mix(in oklab, var(--color-cloudflare-amber-text), black 30%);
53
+ --warning-container: color-mix(in oklab, var(--color-cloudflare-amber), white 88%);
54
+ --on-warning-container: color-mix(in oklab, var(--color-cloudflare-amber), black 60%);
55
+ --neutral: var(--color-cloudflare-muted-fg);
56
+ --surface: var(--color-cloudflare-base);
57
+ --on-surface: var(--color-cloudflare-fg);
58
+ --surface-container-lowest: var(--color-cloudflare-base);
59
+ --on-surface-container-lowest: var(--color-cloudflare-fg);
60
+ --surface-container-low: var(--color-cloudflare-elevated);
61
+ --on-surface-container-low: var(--color-cloudflare-fg);
62
+ --surface-container: var(--color-cloudflare-recessed);
63
+ --on-surface-container: var(--color-cloudflare-fg);
64
+ --surface-container-high: color-mix(in oklab, var(--color-cloudflare-recessed), var(--color-cloudflare-tint) 50%);
65
+ --on-surface-container-high: var(--color-cloudflare-fg);
66
+ --surface-container-highest: var(--color-cloudflare-tint);
67
+ --on-surface-container-highest: var(--color-cloudflare-fg);
68
+ --background: var(--color-cloudflare-canvas);
69
+ --on-background: var(--color-cloudflare-fg);
70
+ --rui-border-color: var(--color-cloudflare-border);
71
+ --rui-control-border-color: var(--color-cloudflare-border-strong);
72
+ --border: var(--rui-border-color);
73
+ --focus-ring: var(--color-cloudflare-blue-bright);
74
+ --on-focus-ring: white;
75
+ --link: var(--color-cloudflare-blue);
76
+ --overlay: oklch(0% 0 0 / 0.45);
77
+ --background-code: var(--color-cloudflare-recessed);
78
+ --on-background-code: var(--color-cloudflare-fg);
79
+ }
80
+
81
+ :where(.dark),
82
+ :root.dark[data-rui-theme='cloudflare'] {
83
+ --gray-50: color-mix(in oklab, var(--color-cloudflare-canvas), white 96%);
84
+ --gray-100: color-mix(in oklab, var(--color-cloudflare-canvas), white 91%);
85
+ --gray-200: color-mix(in oklab, var(--color-cloudflare-canvas), white 82%);
86
+ --gray-300: color-mix(in oklab, var(--color-cloudflare-canvas), white 68%);
87
+ --gray-400: color-mix(in oklab, var(--color-cloudflare-canvas), white 52%);
88
+ --gray-500: color-mix(in oklab, var(--color-cloudflare-canvas), white 38%);
89
+ --gray-600: color-mix(in oklab, var(--color-cloudflare-canvas), white 28%);
90
+ --gray-700: color-mix(in oklab, var(--color-cloudflare-canvas), white 20%);
91
+ --gray-800: color-mix(in oklab, var(--color-cloudflare-canvas), white 12%);
92
+ --gray-900: color-mix(in oklab, var(--color-cloudflare-canvas), white 6%);
93
+ --gray-950: var(--color-cloudflare-canvas);
94
+ --primary: var(--color-cloudflare-orange);
95
+ --on-primary: #1a1a1a;
96
+ --primary-light: var(--color-cloudflare-orange-bright);
97
+ --primary-dark: var(--color-cloudflare-orange-deep);
98
+ --primary-container: oklch(30% 0.07 55);
99
+ --on-primary-container: oklch(92% 0.05 65);
100
+ --secondary: var(--color-cloudflare-recessed);
101
+ --on-secondary: var(--color-cloudflare-fg);
102
+ --secondary-light: var(--color-cloudflare-base);
103
+ --secondary-dark: var(--color-cloudflare-tint);
104
+ --secondary-container: var(--color-cloudflare-recessed);
105
+ --on-secondary-container: var(--color-cloudflare-fg);
106
+ --tertiary: var(--color-cloudflare-purple);
107
+ --on-tertiary: oklch(20% 0.03 290);
108
+ --tertiary-container: oklch(32% 0.06 290);
109
+ --on-tertiary-container: oklch(92% 0.04 290);
110
+ --error: var(--color-cloudflare-red);
111
+ --on-error: oklch(20% 0.04 25);
112
+ --error-container: oklch(32% 0.08 25);
113
+ --on-error-container: oklch(92% 0.04 25);
114
+ --success: var(--color-cloudflare-green);
115
+ --on-success: oklch(16% 0.04 150);
116
+ --success-container: oklch(30% 0.06 150);
117
+ --on-success-container: oklch(91% 0.05 150);
118
+ --info: var(--color-cloudflare-blue);
119
+ --on-info: oklch(14% 0.04 255);
120
+ --info-container: oklch(28% 0.07 255);
121
+ --on-info-container: oklch(91% 0.04 255);
122
+ --warning: var(--color-cloudflare-amber-text);
123
+ --on-warning: oklch(22% 0.05 85);
124
+ --warning-container: oklch(33% 0.06 85);
125
+ --on-warning-container: oklch(94% 0.05 90);
126
+ --neutral: var(--color-cloudflare-muted-fg);
127
+ --surface: var(--color-cloudflare-base);
128
+ --on-surface: var(--color-cloudflare-fg);
129
+ --surface-container-lowest: var(--color-cloudflare-canvas);
130
+ --on-surface-container-lowest: var(--color-cloudflare-fg);
131
+ --surface-container-low: var(--color-cloudflare-elevated);
132
+ --on-surface-container-low: var(--color-cloudflare-fg);
133
+ --surface-container: var(--color-cloudflare-recessed);
134
+ --on-surface-container: var(--color-cloudflare-fg);
135
+ --surface-container-high: var(--color-cloudflare-base);
136
+ --on-surface-container-high: var(--color-cloudflare-fg);
137
+ --surface-container-highest: var(--color-cloudflare-tint);
138
+ --on-surface-container-highest: var(--color-cloudflare-fg);
139
+ --background: var(--color-cloudflare-canvas);
140
+ --on-background: var(--color-cloudflare-fg);
141
+ --rui-border-color: var(--color-cloudflare-border);
142
+ --rui-control-border-color: var(--color-cloudflare-border-strong);
143
+ --border: var(--rui-border-color);
144
+ --focus-ring: var(--color-cloudflare-blue-bright);
145
+ --on-focus-ring: oklch(14% 0.04 255);
146
+ --link: var(--color-cloudflare-blue-bright);
147
+ --overlay: oklch(0% 0 0 / 0.72);
148
+ --background-code: var(--color-cloudflare-recessed);
149
+ --on-background-code: var(--color-cloudflare-fg);
150
+ }