@ecopages/radiant-themes 0.2.1 → 0.2.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 (39) hide show
  1. package/README.md +27 -15
  2. package/dist/compiled/themes/cloudflare/compact.css +40 -12
  3. package/dist/compiled/themes/cloudflare.css +40 -12
  4. package/dist/compiled/themes/github/compact.css +264 -67
  5. package/dist/compiled/themes/github.css +264 -67
  6. package/dist/compiled/themes/high-contrast/compact.css +88 -5
  7. package/dist/compiled/themes/high-contrast.css +88 -5
  8. package/dist/compiled/themes/macos/compact.css +674 -294
  9. package/dist/compiled/themes/macos-classic/compact.css +197 -25
  10. package/dist/compiled/themes/macos-classic.css +197 -25
  11. package/dist/compiled/themes/macos.css +674 -294
  12. package/dist/compiled/themes/material/compact.css +447 -132
  13. package/dist/compiled/themes/material.css +447 -132
  14. package/dist/compiled/themes/vercel/compact.css +104 -62
  15. package/dist/compiled/themes/vercel.css +104 -62
  16. package/dist/compiled/themes/vscode/compact.css +255 -40
  17. package/dist/compiled/themes/vscode.css +255 -40
  18. package/dist/compiled/themes/windows95/compact.css +260 -22
  19. package/dist/compiled/themes/windows95.css +260 -22
  20. package/dist/tokens/colors/github.css +32 -0
  21. package/dist/tokens/colors/macos.css +65 -25
  22. package/dist/tokens/colors/material.css +61 -20
  23. package/dist/tokens/colors/vercel.css +43 -39
  24. package/dist/tokens/colors/vscode.css +48 -4
  25. package/dist/tokens/colors/windows95.css +10 -5
  26. package/dist/tokens/components/cloudflare.css +55 -5
  27. package/dist/tokens/components/github.css +258 -40
  28. package/dist/tokens/components/high-contrast.css +93 -5
  29. package/dist/tokens/components/macos-classic.css +262 -24
  30. package/dist/tokens/components/macos.css +537 -106
  31. package/dist/tokens/components/material.css +354 -25
  32. package/dist/tokens/components/vercel.css +77 -15
  33. package/dist/tokens/components/vscode.css +248 -27
  34. package/dist/tokens/components/windows95.css +304 -19
  35. package/dist/tokens/roles/github.css +12 -12
  36. package/dist/tokens/roles/macos.css +97 -93
  37. package/dist/tokens/roles/material.css +65 -65
  38. package/dist/tokens/roles/vercel.css +3 -3
  39. package/package.json +3 -3
@@ -1,10 +1,14 @@
1
1
  @reference 'tailwindcss';
2
2
 
3
+ /**
4
+ * @remarks Font stacks follow the workbench defaults: the system UI font on macOS, Segoe WPC and Segoe UI on Windows,
5
+ * and Menlo or Consolas in the editor. Controls are 26px tall with 2px corners.
6
+ */
3
7
  :root,
4
8
  :root[data-rui-theme='vscode'] {
5
- --font-sans: 'Segoe UI', system-ui, sans-serif;
6
- --font-heading: 'Segoe UI', system-ui, sans-serif;
7
- --font-mono: 'Cascadia Code', Consolas, Menlo, Monaco, 'Courier New', monospace;
9
+ --font-sans: -apple-system, BlinkMacSystemFont, 'Segoe WPC', 'Segoe UI', system-ui, Ubuntu, 'Droid Sans', sans-serif;
10
+ --font-heading: -apple-system, BlinkMacSystemFont, 'Segoe WPC', 'Segoe UI', system-ui, Ubuntu, 'Droid Sans', sans-serif;
11
+ --font-mono: Menlo, Monaco, Consolas, 'Droid Sans Mono', 'Courier New', monospace;
8
12
  --rui-border-alpha: 100%;
9
13
  --border-radius-xs: 0.125rem;
10
14
  --border-radius-sm: 0.1875rem;
@@ -13,34 +17,101 @@
13
17
  --border-radius-xl: 0.5rem;
14
18
  --border-radius-2xl: 0.75rem;
15
19
  --border-radius-3xl: 1rem;
16
- --radius-control: var(--border-radius-sm);
20
+ --radius-control: var(--border-radius-xs);
17
21
  --radius-container: var(--border-radius-md);
22
+ --size-control-sm: 1.5rem;
23
+ --size-control-md: 1.625rem;
24
+ --size-control-lg: 2rem;
25
+ --text-control: 0.8125rem;
26
+ --sheen-image: none;
27
+ }
28
+
29
+ /**
30
+ * @remarks Tooltips are workbench hovers: the widget fill, foreground text, and a hairline border. Unlayered to match
31
+ * the catalog's own tooltip defaults.
32
+ */
33
+ :root rui-tooltip {
34
+ --rui-tooltip-surface: var(--color-vscode-widget);
35
+ --rui-tooltip-color: var(--color-vscode-fg);
36
+ --rui-tooltip-radius: var(--border-radius-sm);
37
+ --rui-tooltip-shadow: 0 0 0 1px var(--color-vscode-menu-border), 0 2px 8px var(--color-vscode-widget-shadow);
18
38
  }
19
39
 
20
40
  @layer components {
41
+ :root .rui-button {
42
+ @apply rounded-control border border-transparent font-normal shadow-none;
43
+ }
44
+
45
+ :root .rui-button--filled {
46
+ border-color: var(--color-vscode-button-border);
47
+ background-color: var(--color-vscode-blue);
48
+ color: #ffffff;
49
+ }
50
+
51
+ :root .rui-button--filled:hover:not(:disabled) {
52
+ background-color: var(--color-vscode-blue-hover);
53
+ }
54
+
55
+ :root .rui-button--filled:active:not(:disabled),
56
+ :root .rui-button--filled[aria-pressed='true'] {
57
+ background-color: var(--color-vscode-blue-active);
58
+ }
59
+
21
60
  /**
22
- * @remarks VS Code's dark buttons pair `#0078d4` with white text. `--primary` stays the lighter link blue so primary
23
- * text keeps its contrast on the editor background.
61
+ * @remarks VS Code has no outline button; its secondary button is a grey fill with the same hairline border as the
62
+ * primary one.
24
63
  */
25
- :root.dark .rui-button--filled {
26
- background-color: #0078d4;
27
- color: #ffffff;
64
+ :root .rui-button--outline {
65
+ border-color: var(--color-vscode-button-border);
66
+ background-color: var(--color-vscode-button-secondary);
67
+ color: var(--color-vscode-fg);
68
+ }
69
+
70
+ :root .rui-button--outline:hover:not(:disabled),
71
+ :root .rui-button--outline:active:not(:disabled) {
72
+ background-color: var(--color-vscode-button-secondary-hover);
28
73
  }
29
74
 
30
- :root.dark .rui-button--filled:hover:not(:disabled) {
31
- background-color: #026ec1;
75
+ /**
76
+ * @remarks Ghost buttons follow action bar items: 5px corners and a translucent hover fill.
77
+ */
78
+ :root .rui-button--ghost {
79
+ border-radius: 0.3125rem;
32
80
  }
33
81
 
34
- :root.dark .rui-button--filled:active:not(:disabled),
35
- :root.dark .rui-button--filled[aria-pressed='true'] {
36
- background-color: #005ba4;
82
+ :root .rui-button--ghost:hover:not(:disabled),
83
+ :root .rui-button--ghost:active:not(:disabled) {
84
+ background-color: var(--color-vscode-toolbar-hover);
37
85
  }
38
86
 
39
- :root .rui-button {
40
- @apply rounded-control border border-transparent font-medium shadow-none;
87
+ /**
88
+ * @remarks Focus is the workbench's 1px `focusBorder` outline: outside push buttons, and over the frame of fields so
89
+ * the border itself turns blue.
90
+ */
91
+ :root .rui-button:focus-visible,
92
+ :root .rui-tabs__tab:focus-visible {
93
+ outline: 1px solid var(--focus-ring);
94
+ outline-offset: 2px;
95
+ --tw-ring-shadow: 0 0 #0000;
96
+ --tw-ring-offset-shadow: 0 0 #0000;
97
+ }
98
+
99
+ :root .rui-input:focus-visible,
100
+ :root .rui-textarea:focus-visible,
101
+ :root .rui-combobox__control:focus-within,
102
+ :root .rui-number-field__group:focus-within,
103
+ :root .rui-input-group:focus-within,
104
+ :root .rui-select__control:focus-within {
105
+ outline: 1px solid var(--focus-ring);
106
+ outline-offset: -1px;
107
+ --tw-ring-shadow: 0 0 #0000;
108
+ --tw-ring-offset-shadow: 0 0 #0000;
109
+ }
110
+
111
+ :root .rui-input-group .rui-input:focus-visible {
112
+ outline: none;
41
113
  }
42
114
 
43
- :root .rui-button--outline,
44
115
  :root .rui-input,
45
116
  :root .rui-textarea,
46
117
  :root .rui-combobox__control,
@@ -50,31 +121,141 @@
50
121
  :root .rui-number-field__group,
51
122
  :root rui-date-input:where(:not([data-date-field-input], [data-range-start], [data-range-end])),
52
123
  :root .rui-select__control {
53
- @apply border-border bg-surface text-on-surface shadow-none;
124
+ @apply text-on-surface shadow-none;
54
125
  border-color: var(--rui-control-border-color);
126
+ background-color: var(--color-vscode-input);
55
127
  }
56
128
 
57
- :root .rui-button--outline:hover:not(:disabled),
58
- :root .rui-button--ghost:hover:not(:disabled) {
59
- @apply bg-surface-container-low;
129
+ :root .rui-checkbox__control {
130
+ @apply rounded-sm;
131
+ border-color: var(--rui-control-border-color);
132
+ background-color: var(--color-vscode-checkbox);
60
133
  }
61
134
 
62
- :root .rui-checkbox__control {
63
- @apply rounded-xs border-border bg-surface;
135
+ /**
136
+ * @remarks VS Code check boxes keep their fill when checked and draw the check mark in the foreground color.
137
+ */
138
+ :root .rui-checkbox__input:checked:not(:indeterminate):not([aria-checked='mixed']) + .rui-checkbox__control {
64
139
  border-color: var(--rui-control-border-color);
140
+ background-color: var(--color-vscode-checkbox);
141
+ }
142
+
143
+ :root .rui-checkbox__input:checked:not(:indeterminate):not([aria-checked='mixed']) + .rui-checkbox__control::after {
144
+ color: var(--color-vscode-fg);
145
+ }
146
+
147
+ :root .rui-badge {
148
+ @apply rounded-full;
149
+ }
150
+
151
+ :root .rui-badge--muted {
152
+ background-color: var(--color-vscode-badge);
153
+ color: var(--color-vscode-badge-fg);
154
+ }
155
+
156
+ :root .rui-listbox__option:hover:not([aria-disabled='true']):not([data-active]):not([aria-selected='true']) {
157
+ background-color: var(--color-vscode-list-hover);
65
158
  }
66
159
 
67
160
  :root .rui-listbox__option[aria-selected='true'],
68
161
  :root .rui-menu-button__item[aria-checked='true'],
162
+ :root .rui-sidebar__menu-button[aria-current='page'],
69
163
  :root .rui-sidebar__menu-button--active {
70
164
  @apply bg-primary-container text-on-primary-container;
71
165
  }
72
166
 
167
+ /**
168
+ * @remarks Widgets (dialogs, hovers, pickers, suggest lists) share the editor widget fill, a hairline border, and
169
+ * the soft 8px `widget.shadow`.
170
+ */
73
171
  :root .rui-dialog__surface,
74
- :root .rui-popover-host,
75
- :root .rui-select__listbox,
172
+ :root .rui-popover:where(:not(.rui-popover--listbox)),
173
+ :root .rui-hover-card__content,
76
174
  :root .rui-calendar {
77
- @apply rounded-container border border-border bg-surface shadow-lg;
175
+ @apply rounded-container border text-on-surface;
176
+ border-color: var(--color-vscode-widget-border);
177
+ background-color: var(--color-vscode-widget);
178
+ box-shadow: 0 0 8px 2px var(--color-vscode-widget-shadow);
179
+ }
180
+
181
+ :root .rui-select__listbox,
182
+ :root .rui-combobox__listbox {
183
+ @apply rounded-control border text-on-surface;
184
+ border-color: var(--rui-control-border-color);
185
+ background-color: var(--color-vscode-menu);
186
+ box-shadow: 0 0 8px 2px var(--color-vscode-widget-shadow);
187
+ }
188
+
189
+ /**
190
+ * @remarks Menus use `menu.background`, `menu.border`, and the blue `menu.selectionBackground` with white text for
191
+ * the hovered or focused item.
192
+ */
193
+ :root .rui-menu-button__menu,
194
+ :root .rui-menubar__menu {
195
+ @apply border text-on-surface;
196
+ --rui-menu-item-hover: var(--color-vscode-blue);
197
+ border-color: var(--color-vscode-menu-border);
198
+ border-radius: 0.3125rem;
199
+ background-color: var(--color-vscode-menu);
200
+ box-shadow: 0 2px 8px var(--color-vscode-widget-shadow);
201
+ }
202
+
203
+ :root .rui-menu-button__item:focus-visible:not([aria-disabled='true']),
204
+ :root .rui-menu-button__item[aria-expanded='true'],
205
+ :root .rui-menubar__menu-item:focus-visible,
206
+ :root .rui-menubar__menu-item[aria-expanded='true'] {
207
+ background-color: var(--color-vscode-blue);
208
+ color: #ffffff;
209
+ outline: none;
210
+ --tw-ring-shadow: 0 0 #0000;
211
+ }
212
+
213
+ :root .rui-menu-button__item[aria-haspopup='menu']::after,
214
+ :root .rui-menubar__menu-item[aria-haspopup='menu']::after {
215
+ color: inherit;
216
+ }
217
+
218
+ @media (hover: hover) and (pointer: fine) {
219
+ :root .rui-menu-button__item:hover:not([aria-disabled='true']),
220
+ :root .rui-menubar__menu-item:hover:not(:disabled):not([aria-disabled='true']) {
221
+ background-color: var(--color-vscode-blue);
222
+ color: #ffffff;
223
+ }
224
+ }
225
+
226
+ /**
227
+ * @remarks Boxed tabs follow editor tabs: inactive tabs sit on the tab strip fill with a dimmed label and a
228
+ * separating border, and the active tab takes the editor fill with `tab.activeBorderTop` in the accent blue.
229
+ */
230
+ :root rui-tabs[variant='boxed'] {
231
+ @apply border border-border shadow-none;
232
+ background-color: var(--color-vscode-canvas);
233
+ }
234
+
235
+ :root rui-tabs[variant='boxed'] .rui-tabs__list {
236
+ @apply gap-0 border-b border-border p-0;
237
+ background-color: var(--color-vscode-subtle);
238
+ }
239
+
240
+ :root rui-tabs[variant='boxed'] .rui-tabs__tab {
241
+ @apply relative border-0 border-r border-border text-sm font-normal opacity-100;
242
+ height: 2.1875rem;
243
+ margin-bottom: -1px;
244
+ padding-inline: 0.625rem;
245
+ background-color: var(--color-vscode-subtle);
246
+ color: var(--color-vscode-inactive-fg);
247
+ transition: none;
248
+ }
249
+
250
+ :root rui-tabs[variant='boxed'] .rui-tabs__tab[aria-selected='true'] {
251
+ @apply font-normal;
252
+ background-color: var(--color-vscode-canvas);
253
+ color: var(--color-vscode-fg);
254
+ box-shadow: inset 0 1px 0 var(--color-vscode-blue);
255
+ }
256
+
257
+ :root rui-tabs[variant='boxed'] .rui-tabs__panel {
258
+ background-color: var(--color-vscode-canvas);
78
259
  }
79
260
 
80
261
  /**
@@ -95,10 +276,50 @@
95
276
  }
96
277
 
97
278
  :root .rui-treegrid__row:not(.rui-treegrid__row--header):hover .rui-treegrid__cell:not([aria-selected='true']) {
98
- @apply bg-surface-container-low;
279
+ background-color: var(--color-vscode-list-hover);
99
280
  }
100
281
 
101
282
  :root .rui-treegrid__cell[aria-selected='true'] {
102
283
  @apply bg-primary-container text-on-primary-container;
103
284
  }
104
285
  }
286
+
287
+ /**
288
+ * @remarks Scrollbars are square, track-less sliders in the translucent `scrollbarSlider` colors. Firefox receives the
289
+ * standard `scrollbar-color` fallback.
290
+ */
291
+ @supports (-moz-appearance: none) {
292
+ :root,
293
+ :root * {
294
+ scrollbar-width: thin;
295
+ scrollbar-color: var(--color-vscode-scrollbar) transparent;
296
+ }
297
+ }
298
+
299
+ :root::-webkit-scrollbar,
300
+ :root *::-webkit-scrollbar {
301
+ width: 10px;
302
+ height: 10px;
303
+ background-color: transparent;
304
+ }
305
+
306
+ :root::-webkit-scrollbar-thumb,
307
+ :root *::-webkit-scrollbar-thumb {
308
+ border-radius: 0;
309
+ background-color: var(--color-vscode-scrollbar);
310
+ }
311
+
312
+ :root::-webkit-scrollbar-thumb:hover,
313
+ :root *::-webkit-scrollbar-thumb:hover {
314
+ background-color: var(--color-vscode-scrollbar-hover);
315
+ }
316
+
317
+ :root::-webkit-scrollbar-thumb:active,
318
+ :root *::-webkit-scrollbar-thumb:active {
319
+ background-color: var(--color-vscode-scrollbar-active);
320
+ }
321
+
322
+ :root::-webkit-scrollbar-corner,
323
+ :root *::-webkit-scrollbar-corner {
324
+ background-color: transparent;
325
+ }