@ecopages/radiant-themes 0.2.1 → 0.2.3
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.
- package/README.md +27 -15
- package/dist/compiled/themes/cloudflare/compact.css +40 -12
- package/dist/compiled/themes/cloudflare.css +40 -12
- package/dist/compiled/themes/github/compact.css +264 -67
- package/dist/compiled/themes/github.css +264 -67
- package/dist/compiled/themes/high-contrast/compact.css +88 -5
- package/dist/compiled/themes/high-contrast.css +88 -5
- package/dist/compiled/themes/macos/compact.css +679 -294
- package/dist/compiled/themes/macos-classic/compact.css +197 -25
- package/dist/compiled/themes/macos-classic.css +197 -25
- package/dist/compiled/themes/macos.css +679 -294
- package/dist/compiled/themes/material/compact.css +447 -132
- package/dist/compiled/themes/material.css +447 -132
- package/dist/compiled/themes/vercel/compact.css +104 -62
- package/dist/compiled/themes/vercel.css +104 -62
- package/dist/compiled/themes/vscode/compact.css +255 -40
- package/dist/compiled/themes/vscode.css +255 -40
- package/dist/compiled/themes/windows95/compact.css +260 -22
- package/dist/compiled/themes/windows95.css +260 -22
- package/dist/tokens/colors/github.css +32 -0
- package/dist/tokens/colors/macos.css +65 -25
- package/dist/tokens/colors/material.css +61 -20
- package/dist/tokens/colors/vercel.css +43 -39
- package/dist/tokens/colors/vscode.css +48 -4
- package/dist/tokens/colors/windows95.css +10 -5
- package/dist/tokens/components/cloudflare.css +55 -5
- package/dist/tokens/components/github.css +258 -40
- package/dist/tokens/components/high-contrast.css +93 -5
- package/dist/tokens/components/macos-classic.css +262 -24
- package/dist/tokens/components/macos.css +542 -106
- package/dist/tokens/components/material.css +354 -25
- package/dist/tokens/components/vercel.css +77 -15
- package/dist/tokens/components/vscode.css +248 -27
- package/dist/tokens/components/windows95.css +304 -19
- package/dist/tokens/roles/github.css +12 -12
- package/dist/tokens/roles/macos.css +97 -93
- package/dist/tokens/roles/material.css +65 -65
- package/dist/tokens/roles/vercel.css +3 -3
- package/package.json +3 -3
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
@reference 'tailwindcss';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Material 3 shapes and elevation: full-radius buttons, 4px fields and menus, 8px chips, 12px cards, 28px dialogs,
|
|
5
|
+
* tonal surfaces instead of borders on overlays, and a 3px secondary focus indicator.
|
|
6
|
+
*/
|
|
7
|
+
:root,
|
|
8
|
+
:root[data-rui-theme='material'] {
|
|
4
9
|
--font-sans: Roboto, 'Noto Sans', ui-sans-serif, system-ui, sans-serif;
|
|
5
10
|
--font-heading: Roboto, 'Noto Sans', ui-sans-serif, system-ui, sans-serif;
|
|
6
11
|
--font-mono: 'Roboto Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
@@ -12,30 +17,185 @@
|
|
|
12
17
|
--border-radius-xl: 1.75rem;
|
|
13
18
|
--border-radius-2xl: 2rem;
|
|
14
19
|
--border-radius-3xl: 2.5rem;
|
|
15
|
-
--radius-control: var(--border-radius-
|
|
16
|
-
--radius-container: var(--border-radius-
|
|
20
|
+
--radius-control: var(--border-radius-xs);
|
|
21
|
+
--radius-container: var(--border-radius-md);
|
|
22
|
+
--focus-ring-width: 3px;
|
|
23
|
+
--focus-ring-offset: 2px;
|
|
24
|
+
--shadow-control: none;
|
|
25
|
+
--shadow-overlay: 0 1px 2px rgb(0 0 0 / 0.3), 0 2px 6px 2px rgb(0 0 0 / 0.15);
|
|
26
|
+
--shadow-modal: 0 1px 3px rgb(0 0 0 / 0.3), 0 4px 8px 3px rgb(0 0 0 / 0.15);
|
|
27
|
+
--sheen-image: none;
|
|
28
|
+
--material-state-hover: 8%;
|
|
29
|
+
--material-state-press: 10%;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @remarks Component knobs are declared unlayered on the host elements, so these overrides stay unlayered too.
|
|
34
|
+
*/
|
|
35
|
+
:root rui-switch {
|
|
36
|
+
--rui-switch-width: 3.25rem;
|
|
37
|
+
--rui-switch-height: 2rem;
|
|
38
|
+
--rui-switch-thumb-size: 1rem;
|
|
39
|
+
--rui-switch-track: var(--surface-container-highest);
|
|
40
|
+
--rui-switch-track-hover: var(--surface-container-highest);
|
|
41
|
+
--rui-switch-track-on: var(--primary);
|
|
42
|
+
--rui-switch-track-on-hover: var(--primary);
|
|
43
|
+
--rui-switch-thumb: var(--material-outline);
|
|
44
|
+
--rui-switch-thumb-on: var(--on-primary);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
:root rui-dialog {
|
|
48
|
+
--rui-dialog-radius: var(--border-radius-xl);
|
|
49
|
+
--rui-dialog-surface: var(--surface-container-high);
|
|
50
|
+
--rui-dialog-padding: 1.5rem;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
:root rui-tooltip {
|
|
54
|
+
--rui-tooltip-radius: var(--border-radius-xs);
|
|
55
|
+
--rui-tooltip-surface: var(--material-inverse-surface);
|
|
56
|
+
--rui-tooltip-color: var(--material-inverse-on-surface);
|
|
57
|
+
--rui-tooltip-shadow: none;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
:root rui-tabs {
|
|
61
|
+
--rui-tabs-indicator-width: 3px;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
:root rui-meter {
|
|
65
|
+
--rui-meter-height: 0.25rem;
|
|
66
|
+
--rui-meter-radius: var(--border-radius-full, 9999px);
|
|
67
|
+
--rui-meter-track-color: var(--secondary-container);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
:root rui-slider {
|
|
71
|
+
--rui-slider-track-size: 0.25rem;
|
|
72
|
+
--rui-slider-track-color: var(--secondary-container);
|
|
73
|
+
--rui-slider-thumb-background: var(--primary);
|
|
74
|
+
--rui-slider-thumb-border-color: var(--primary);
|
|
75
|
+
--rui-slider-thumb-radius: 9999px;
|
|
76
|
+
--rui-slider-thumb-shadow: var(--shadow-control);
|
|
17
77
|
}
|
|
18
78
|
|
|
19
79
|
@layer components {
|
|
80
|
+
/**
|
|
81
|
+
* @remarks The M3 handle grows from 16px off to 24px on (28px while pressed); the off track draws a 2px outline.
|
|
82
|
+
*/
|
|
83
|
+
:root .rui-switch__track {
|
|
84
|
+
border: 2px solid var(--rui-control-border-color);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
:root .rui-switch__input:checked + .rui-switch__track {
|
|
88
|
+
border-color: var(--primary);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
:root .rui-switch__thumb {
|
|
92
|
+
left: 0.375rem;
|
|
93
|
+
transition-property: left, right, width, height, background-color;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
:root .rui-switch__input:checked + .rui-switch__track .rui-switch__thumb {
|
|
97
|
+
right: 0.125rem;
|
|
98
|
+
width: 1.5rem;
|
|
99
|
+
height: 1.5rem;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
:root .rui-switch__track:active .rui-switch__thumb {
|
|
103
|
+
width: 1.75rem;
|
|
104
|
+
height: 1.75rem;
|
|
105
|
+
}
|
|
106
|
+
|
|
20
107
|
:root .rui-button {
|
|
21
|
-
@apply rounded-
|
|
108
|
+
@apply rounded-pill border border-transparent font-medium;
|
|
109
|
+
letter-spacing: 0.00625rem;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
:root .rui-button--sm {
|
|
113
|
+
padding-inline: 1rem;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
:root .rui-button--md {
|
|
117
|
+
padding-inline: 1.5rem;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
:root .rui-button--lg {
|
|
121
|
+
padding-inline: 2rem;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
:root .rui-button--square,
|
|
125
|
+
:root .rui-button--link,
|
|
126
|
+
:root .rui-button--none {
|
|
127
|
+
padding-inline: 0;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
:root .rui-button--filled:hover:not(:disabled) {
|
|
131
|
+
background-color: color-mix(in srgb, var(--on-primary) var(--material-state-hover), var(--primary));
|
|
132
|
+
box-shadow: var(--shadow-overlay);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
:root .rui-button--filled:active:not(:disabled) {
|
|
136
|
+
background-color: color-mix(in srgb, var(--on-primary) var(--material-state-press), var(--primary));
|
|
137
|
+
box-shadow: none;
|
|
22
138
|
}
|
|
23
139
|
|
|
24
|
-
:root .rui-button--
|
|
25
|
-
|
|
26
|
-
|
|
140
|
+
:root .rui-button--destructive:hover:not(:disabled) {
|
|
141
|
+
background-color: color-mix(in srgb, var(--on-error) var(--material-state-hover), var(--error));
|
|
142
|
+
box-shadow: var(--shadow-overlay);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
:root .rui-button--destructive:active:not(:disabled) {
|
|
146
|
+
background-color: color-mix(in srgb, var(--on-error) var(--material-state-press), var(--error));
|
|
147
|
+
box-shadow: none;
|
|
27
148
|
}
|
|
28
149
|
|
|
29
150
|
:root .rui-button--outline {
|
|
30
|
-
@apply
|
|
151
|
+
@apply bg-transparent shadow-none;
|
|
31
152
|
border-color: var(--rui-control-border-color);
|
|
153
|
+
color: var(--primary);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
:root .rui-button--ghost {
|
|
157
|
+
color: var(--primary);
|
|
32
158
|
}
|
|
33
159
|
|
|
34
|
-
:root .rui-button--
|
|
35
|
-
:root .rui-button--
|
|
36
|
-
|
|
160
|
+
:root .rui-button--outline:hover:not(:disabled),
|
|
161
|
+
:root .rui-button--ghost:hover:not(:disabled) {
|
|
162
|
+
background-color: color-mix(in srgb, var(--primary) var(--material-state-hover), transparent);
|
|
37
163
|
}
|
|
38
164
|
|
|
165
|
+
:root .rui-button--outline:active:not(:disabled),
|
|
166
|
+
:root .rui-button--ghost:active:not(:disabled) {
|
|
167
|
+
background-color: color-mix(in srgb, var(--primary) var(--material-state-press), transparent);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
:root .rui-button--outline[aria-pressed='true'],
|
|
171
|
+
:root .rui-button--ghost[aria-pressed='true'] {
|
|
172
|
+
@apply shadow-none ring-0;
|
|
173
|
+
background-color: var(--secondary-container);
|
|
174
|
+
color: var(--on-secondary-container);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
:root .rui-button:disabled {
|
|
178
|
+
opacity: 1;
|
|
179
|
+
background-color: color-mix(in srgb, var(--on-surface) 12%, transparent);
|
|
180
|
+
color: color-mix(in srgb, var(--on-surface) 38%, transparent);
|
|
181
|
+
box-shadow: none;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
:root .rui-button--outline:disabled {
|
|
185
|
+
background-color: transparent;
|
|
186
|
+
border-color: color-mix(in srgb, var(--on-surface) 12%, transparent);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
:root .rui-button--ghost:disabled,
|
|
190
|
+
:root .rui-button--link:disabled,
|
|
191
|
+
:root .rui-button--none:disabled {
|
|
192
|
+
background-color: transparent;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* @remarks Outlined text fields: a 1px outline that becomes a 2px primary outline while focused, drawn with an inset
|
|
197
|
+
* shadow so the field keeps its size.
|
|
198
|
+
*/
|
|
39
199
|
:root .rui-input,
|
|
40
200
|
:root .rui-textarea,
|
|
41
201
|
:root .rui-autocomplete__input,
|
|
@@ -46,39 +206,208 @@
|
|
|
46
206
|
:root .rui-number-field__group,
|
|
47
207
|
:root rui-date-input:where(:not([data-date-field-input], [data-range-start], [data-range-end])),
|
|
48
208
|
:root .rui-select__control {
|
|
49
|
-
@apply rounded-control
|
|
209
|
+
@apply rounded-control bg-surface shadow-none;
|
|
50
210
|
border-color: var(--rui-control-border-color);
|
|
211
|
+
color: var(--on-surface);
|
|
51
212
|
}
|
|
52
213
|
|
|
53
|
-
:root .rui-
|
|
54
|
-
:root .rui-
|
|
55
|
-
|
|
56
|
-
border-color: var(--
|
|
214
|
+
:root .rui-input:hover:not(:disabled),
|
|
215
|
+
:root .rui-textarea:hover:not(:disabled),
|
|
216
|
+
:root .rui-select__control:hover {
|
|
217
|
+
border-color: var(--on-surface);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
:root .rui-input:focus-visible,
|
|
221
|
+
:root .rui-textarea:focus-visible,
|
|
222
|
+
:root .rui-autocomplete__input:focus-visible,
|
|
223
|
+
:root .rui-combobox__control:focus-within,
|
|
224
|
+
:root .rui-date-field__group:focus-within,
|
|
225
|
+
:root .rui-date-range-picker__group:focus-within,
|
|
226
|
+
:root .rui-input-group:focus-within,
|
|
227
|
+
:root .rui-number-field__group:focus-within {
|
|
228
|
+
@apply ring-0 outline-none;
|
|
229
|
+
border-color: var(--primary);
|
|
230
|
+
box-shadow: inset 0 0 0 1px var(--primary);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
:root .rui-input::placeholder,
|
|
234
|
+
:root .rui-textarea::placeholder {
|
|
235
|
+
color: var(--material-on-surface-variant);
|
|
57
236
|
}
|
|
58
237
|
|
|
238
|
+
/**
|
|
239
|
+
* @remarks M3 check boxes are 18px with a 2px radius and a 2px on-surface-variant outline.
|
|
240
|
+
*/
|
|
59
241
|
:root .rui-checkbox__control {
|
|
60
|
-
@apply rounded-
|
|
242
|
+
@apply rounded-[2px];
|
|
243
|
+
width: 1.125rem;
|
|
244
|
+
height: 1.125rem;
|
|
245
|
+
border-width: 2px;
|
|
246
|
+
border-color: var(--material-on-surface-variant);
|
|
247
|
+
background-color: transparent;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
:root .rui-radio__control {
|
|
251
|
+
width: 1.25rem;
|
|
252
|
+
height: 1.25rem;
|
|
253
|
+
border-width: 2px;
|
|
254
|
+
border-color: var(--material-on-surface-variant);
|
|
255
|
+
background-color: transparent;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
:root .rui-radio__input:checked + .rui-radio__control::after {
|
|
259
|
+
width: 0.625rem;
|
|
260
|
+
height: 0.625rem;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
:root .rui-checkbox__input:checked:not(:indeterminate):not([aria-checked='mixed']) + .rui-checkbox__control::after {
|
|
264
|
+
width: 0.75rem;
|
|
265
|
+
height: 0.75rem;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
:root .rui-checkbox__input:indeterminate + .rui-checkbox__control,
|
|
269
|
+
:root .rui-checkbox__input[aria-checked='mixed'] + .rui-checkbox__control {
|
|
270
|
+
background-color: var(--primary);
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
:root .rui-checkbox__input:indeterminate + .rui-checkbox__control::after,
|
|
274
|
+
:root .rui-checkbox__input[aria-checked='mixed'] + .rui-checkbox__control::after {
|
|
275
|
+
@apply rounded-none;
|
|
276
|
+
background-color: var(--on-primary);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
:root .rui-dialog__surface {
|
|
280
|
+
@apply border-0;
|
|
281
|
+
background-color: var(--surface-container-high);
|
|
282
|
+
box-shadow: var(--shadow-modal);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
:root .rui-dialog__title {
|
|
286
|
+
@apply font-normal;
|
|
287
|
+
font-size: 1.5rem;
|
|
288
|
+
line-height: 2rem;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
:root .rui-popover {
|
|
292
|
+
--rui-popover-radius: var(--border-radius-xs);
|
|
293
|
+
--rui-popover-surface: var(--surface-container);
|
|
294
|
+
--rui-popover-border-color: transparent;
|
|
295
|
+
color: var(--on-surface);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
:root .rui-popover .rui-listbox {
|
|
299
|
+
background-color: transparent;
|
|
61
300
|
}
|
|
62
301
|
|
|
63
|
-
:root .rui-dialog__surface,
|
|
64
|
-
:root .rui-popover-host,
|
|
65
302
|
:root .rui-hover-card__content,
|
|
303
|
+
:root .rui-menu-button__menu,
|
|
304
|
+
:root .rui-menubar__menu,
|
|
66
305
|
:root .rui-select__listbox,
|
|
67
|
-
:root .rui-combobox__listbox
|
|
306
|
+
:root .rui-combobox__listbox {
|
|
307
|
+
@apply rounded-control border-0;
|
|
308
|
+
background-color: var(--surface-container);
|
|
309
|
+
color: var(--on-surface);
|
|
310
|
+
box-shadow: var(--shadow-overlay);
|
|
311
|
+
}
|
|
312
|
+
|
|
68
313
|
:root .rui-calendar {
|
|
69
|
-
@apply rounded-
|
|
314
|
+
@apply rounded-[1rem] border-0;
|
|
315
|
+
background-color: var(--surface-container-high);
|
|
316
|
+
box-shadow: var(--shadow-overlay);
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
:root .rui-calendar__day[aria-selected='true']:not([data-range-middle='true']) {
|
|
320
|
+
@apply rounded-pill;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
/**
|
|
324
|
+
* @remarks Toasts follow the M3 snackbar: inverse surface, 4px corners, and inverse-primary actions; the status
|
|
325
|
+
* color moves to the icon so text keeps inverse contrast.
|
|
326
|
+
*/
|
|
327
|
+
:root .rui-toast {
|
|
328
|
+
@apply rounded-control border-0;
|
|
329
|
+
background-color: var(--material-inverse-surface);
|
|
330
|
+
color: var(--material-inverse-on-surface);
|
|
331
|
+
box-shadow: var(--shadow-modal);
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
:root .rui-toast__action .rui-button {
|
|
335
|
+
color: var(--material-inverse-primary);
|
|
70
336
|
}
|
|
71
337
|
|
|
72
|
-
:root .rui-listbox__option[aria-selected='true'],
|
|
338
|
+
:root .rui-listbox__option[aria-selected='true']:not([aria-disabled='true']),
|
|
73
339
|
:root .rui-menu-button__item[aria-checked='true'],
|
|
74
|
-
:root .rui-
|
|
340
|
+
:root .rui-menubar__menu-item[aria-checked='true'],
|
|
341
|
+
:root .rui-tree__node[aria-selected='true'] {
|
|
342
|
+
@apply rounded-control;
|
|
343
|
+
background-color: var(--secondary-container);
|
|
344
|
+
background-image: none;
|
|
345
|
+
color: var(--on-secondary-container);
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
:root .rui-listbox__option[aria-selected='true'] .rui-listbox__option-indicator {
|
|
349
|
+
color: inherit;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* @remarks Navigation drawer items use the full-radius secondary-container active indicator.
|
|
354
|
+
*/
|
|
355
|
+
:root .rui-sidebar__menu-button {
|
|
356
|
+
@apply rounded-pill;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
:root .rui-sidebar__menu-button[aria-current='page'],
|
|
75
360
|
:root .rui-sidebar__menu-button--active {
|
|
76
|
-
|
|
361
|
+
background-color: var(--secondary-container);
|
|
362
|
+
color: var(--on-secondary-container);
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
:root .rui-tabs__tab {
|
|
366
|
+
@apply font-medium;
|
|
367
|
+
color: var(--material-on-surface-variant);
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
:root .rui-tabs__tab[aria-selected='true'],
|
|
371
|
+
:root rui-tabs[variant='boxed'] .rui-tabs__tab[aria-selected='true'] {
|
|
372
|
+
color: var(--primary);
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
:root rui-tabs[variant='boxed'] .rui-tabs__tab:not([aria-selected='true']) {
|
|
376
|
+
opacity: 1;
|
|
377
|
+
color: var(--material-on-surface-variant);
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
:root .rui-tabs__tab:hover {
|
|
381
|
+
background-color: color-mix(in srgb, var(--on-surface) var(--material-state-hover), transparent);
|
|
77
382
|
}
|
|
78
383
|
|
|
79
|
-
:root .rui-badge,
|
|
80
384
|
:root .rui-chip,
|
|
385
|
+
:root .rui-tag {
|
|
386
|
+
@apply rounded-[0.5rem];
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
:root .rui-chip--default,
|
|
390
|
+
:root .rui-tag {
|
|
391
|
+
border-color: var(--material-outline-variant);
|
|
392
|
+
background-color: transparent;
|
|
393
|
+
color: var(--material-on-surface-variant);
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
:root .rui-tag[aria-selected='true'] {
|
|
397
|
+
border-color: transparent;
|
|
398
|
+
background-color: var(--secondary-container);
|
|
399
|
+
background-image: none;
|
|
400
|
+
color: var(--on-secondary-container);
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
:root .rui-badge,
|
|
81
404
|
:root .rui-pagination__link {
|
|
82
405
|
@apply rounded-pill;
|
|
83
406
|
}
|
|
407
|
+
|
|
408
|
+
:root .rui-feed__article {
|
|
409
|
+
border-color: var(--material-outline-variant);
|
|
410
|
+
background-color: var(--surface);
|
|
411
|
+
}
|
|
412
|
+
|
|
84
413
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
@reference 'tailwindcss';
|
|
2
|
+
|
|
1
3
|
:where(:root), :root[data-rui-theme='vercel'] {
|
|
2
|
-
--font-sans: 'Geist Sans', ui-sans-serif, system-ui, sans-serif;
|
|
3
|
-
--font-heading: 'Geist Sans', ui-sans-serif, system-ui, sans-serif;
|
|
4
|
-
--font-mono: 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
4
|
+
--font-sans: Geist, 'Geist Sans', ui-sans-serif, system-ui, sans-serif;
|
|
5
|
+
--font-heading: Geist, 'Geist Sans', ui-sans-serif, system-ui, sans-serif;
|
|
6
|
+
--font-mono: 'Geist Mono', 'GeistMono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
5
7
|
--rui-border-alpha: 100%;
|
|
6
8
|
--border-radius-xs: 0.125rem;
|
|
7
9
|
--border-radius-sm: 0.25rem;
|
|
@@ -34,6 +36,7 @@
|
|
|
34
36
|
|
|
35
37
|
:root .rui-button {
|
|
36
38
|
@apply rounded-control border border-transparent font-medium shadow-none;
|
|
39
|
+
background-image: none;
|
|
37
40
|
}
|
|
38
41
|
|
|
39
42
|
:root .rui-button--filled {
|
|
@@ -51,7 +54,12 @@
|
|
|
51
54
|
|
|
52
55
|
:root .rui-button--outline:hover:not(:disabled),
|
|
53
56
|
:root .rui-button--ghost:hover:not(:disabled) {
|
|
54
|
-
|
|
57
|
+
background-color: var(--color-vercel-component-2);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
:root .rui-button--outline:active:not(:disabled),
|
|
61
|
+
:root .rui-button--ghost:active:not(:disabled) {
|
|
62
|
+
background-color: var(--color-vercel-component-3);
|
|
55
63
|
}
|
|
56
64
|
|
|
57
65
|
:root .rui-input,
|
|
@@ -95,17 +103,50 @@
|
|
|
95
103
|
}
|
|
96
104
|
|
|
97
105
|
:root .rui-dialog__surface,
|
|
98
|
-
:root .rui-popover-host,
|
|
99
106
|
:root .rui-hover-card__content,
|
|
100
|
-
:root .rui-menu-button__menu,
|
|
101
|
-
:root .rui-menubar__menu,
|
|
102
|
-
:root .rui-select__listbox,
|
|
103
|
-
:root .rui-combobox__listbox,
|
|
104
107
|
:root .rui-calendar,
|
|
105
108
|
:root rui-tabs[variant='boxed'] {
|
|
106
109
|
@apply rounded-container border border-border bg-surface shadow-sm;
|
|
107
110
|
}
|
|
108
111
|
|
|
112
|
+
:root .rui-popover {
|
|
113
|
+
--rui-popover-radius: var(--radius-container);
|
|
114
|
+
--rui-popover-surface: var(--color-vercel-background-1);
|
|
115
|
+
--rui-popover-border-color: var(--color-vercel-border-4);
|
|
116
|
+
--rui-popover-shadow: 0 4px 8px -4px rgb(0 0 0 / 0.04), 0 16px 24px -8px rgb(0 0 0 / 0.06);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
:root .rui-tooltip__content {
|
|
120
|
+
--rui-tooltip-radius: var(--radius-control);
|
|
121
|
+
--rui-tooltip-padding-x: 0.75rem;
|
|
122
|
+
--rui-tooltip-padding-y: 0.375rem;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Geist menus: a 12px floating panel with 8px padding and 6px rounded rows.
|
|
127
|
+
*/
|
|
128
|
+
:root .rui-menu-button__menu,
|
|
129
|
+
:root .rui-menubar__menu,
|
|
130
|
+
:root .rui-select__listbox,
|
|
131
|
+
:root .rui-combobox__listbox {
|
|
132
|
+
@apply rounded-container border border-border p-2;
|
|
133
|
+
background-color: var(--color-vercel-background-1);
|
|
134
|
+
box-shadow:
|
|
135
|
+
0 4px 8px -4px rgb(0 0 0 / 0.04),
|
|
136
|
+
0 16px 24px -8px rgb(0 0 0 / 0.06);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
:root .rui-select__listbox .rui-listbox,
|
|
140
|
+
:root .rui-combobox__listbox .rui-listbox {
|
|
141
|
+
@apply bg-transparent p-0;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
:root .rui-listbox__option,
|
|
145
|
+
:root .rui-menu-button__item,
|
|
146
|
+
:root .rui-menubar__menu-item {
|
|
147
|
+
@apply rounded-control;
|
|
148
|
+
}
|
|
149
|
+
|
|
109
150
|
:root rui-tabs[variant='boxed'] .rui-tabs__list {
|
|
110
151
|
@apply border-b border-border bg-transparent px-2 pt-2;
|
|
111
152
|
gap: 0;
|
|
@@ -117,7 +158,7 @@
|
|
|
117
158
|
}
|
|
118
159
|
|
|
119
160
|
:root rui-tabs[variant='boxed'] .rui-tabs__tab[aria-selected='true'] {
|
|
120
|
-
@apply bg-transparent text-on-surface font-
|
|
161
|
+
@apply bg-transparent text-on-surface font-medium;
|
|
121
162
|
border-bottom-color: var(--primary);
|
|
122
163
|
}
|
|
123
164
|
|
|
@@ -126,13 +167,33 @@
|
|
|
126
167
|
padding: var(--rui-tabs-panel-padding);
|
|
127
168
|
}
|
|
128
169
|
|
|
129
|
-
:root .rui-listbox__option:hover:not([aria-
|
|
170
|
+
:root .rui-listbox__option:hover:not([aria-disabled='true']),
|
|
171
|
+
:root .rui-listbox__option[data-active]:not([aria-disabled='true']),
|
|
130
172
|
:root .rui-menu-button__item:hover:not([aria-checked='true']):not([aria-disabled='true']),
|
|
131
173
|
:root .rui-menubar__menu-item:hover:not([aria-expanded='true']):not([aria-disabled='true']) {
|
|
174
|
+
background-color: var(--color-vercel-component-1);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* @remarks Geist marks the selected menu row with a check on a hover-strength fill, not an inverted fill, so the
|
|
179
|
+
* indicator uses the text color instead of `on-primary`.
|
|
180
|
+
*/
|
|
181
|
+
:root .rui-listbox__option[aria-selected='true']:not([aria-disabled='true']),
|
|
182
|
+
:root .rui-listbox__option[aria-selected='true']:focus-visible {
|
|
132
183
|
background-color: var(--color-vercel-component-2);
|
|
184
|
+
background-image: none;
|
|
185
|
+
color: var(--color-vercel-text-primary);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
:root .rui-listbox__option[aria-selected='true'] .rui-listbox__option-indicator {
|
|
189
|
+
color: var(--color-vercel-text-primary);
|
|
133
190
|
}
|
|
134
191
|
|
|
135
|
-
:root .rui-
|
|
192
|
+
:root .rui-listbox__option[aria-selected='true'][data-active]:not([aria-disabled='true']) {
|
|
193
|
+
--tw-ring-color: transparent;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
:root .rui-table__column,
|
|
136
197
|
:root .rui-treegrid__row--header {
|
|
137
198
|
@apply bg-surface-container-low text-on-surface font-medium;
|
|
138
199
|
}
|
|
@@ -141,12 +202,13 @@
|
|
|
141
202
|
@apply rounded-control shadow-none;
|
|
142
203
|
}
|
|
143
204
|
|
|
144
|
-
:root .rui-
|
|
145
|
-
@apply rounded-control
|
|
205
|
+
:root .rui-toast {
|
|
206
|
+
@apply rounded-control shadow-none;
|
|
207
|
+
background-image: none;
|
|
146
208
|
}
|
|
147
209
|
|
|
148
210
|
:root .rui-separator,
|
|
149
211
|
:root .rui-sidebar__separator {
|
|
150
212
|
@apply bg-border;
|
|
151
213
|
}
|
|
152
|
-
}
|
|
214
|
+
}
|