@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.
- package/README.md +96 -2
- package/dist/compiled/themes/cloudflare/compact.css +848 -0
- package/dist/compiled/themes/cloudflare.css +831 -0
- package/dist/compiled/themes/github/compact.css +819 -0
- package/dist/compiled/themes/github.css +802 -0
- package/dist/compiled/themes/high-contrast/compact.css +707 -0
- package/dist/compiled/themes/high-contrast.css +690 -0
- package/dist/compiled/themes/macos/compact.css +815 -0
- package/dist/compiled/themes/macos-classic/compact.css +1083 -0
- package/dist/compiled/themes/macos-classic.css +1066 -0
- package/dist/compiled/themes/macos.css +798 -0
- package/dist/compiled/themes/material/compact.css +634 -0
- package/dist/compiled/themes/material.css +617 -0
- package/dist/compiled/themes/vercel/compact.css +811 -0
- package/dist/compiled/themes/vercel.css +794 -0
- package/dist/compiled/themes/vscode/compact.css +763 -0
- package/dist/compiled/themes/vscode.css +746 -0
- package/dist/compiled/themes/windows95/compact.css +959 -0
- package/dist/compiled/themes/windows95.css +942 -0
- package/dist/foundation.css +11 -0
- package/dist/themes/cloudflare/compact.css +2 -0
- package/dist/themes/cloudflare.css +4 -0
- package/dist/themes/github/compact.css +2 -0
- package/dist/themes/github.css +4 -0
- package/dist/themes/high-contrast/compact.css +2 -0
- package/dist/themes/high-contrast.css +4 -0
- package/dist/themes/macos/compact.css +2 -0
- package/dist/themes/macos-classic/compact.css +2 -0
- package/dist/themes/macos-classic.css +4 -0
- package/dist/themes/macos.css +4 -0
- package/dist/themes/material/compact.css +2 -0
- package/dist/themes/material.css +4 -0
- package/dist/themes/vercel/compact.css +2 -0
- package/dist/themes/vercel.css +4 -0
- package/dist/themes/vscode/compact.css +2 -0
- package/dist/themes/vscode.css +4 -0
- package/dist/themes/windows95/compact.css +2 -0
- package/dist/themes/windows95.css +4 -0
- package/dist/tokens/colors/cloudflare.css +53 -0
- package/dist/tokens/colors/github.css +33 -0
- package/dist/tokens/colors/high-contrast.css +53 -0
- package/dist/tokens/colors/macos-classic.css +66 -0
- package/dist/tokens/colors/macos.css +40 -0
- package/dist/tokens/colors/material.css +25 -0
- package/dist/tokens/colors/vercel.css +71 -0
- package/dist/tokens/colors/vscode.css +31 -0
- package/dist/tokens/colors/windows95.css +54 -0
- package/dist/tokens/components/cloudflare.css +147 -0
- package/dist/tokens/components/github.css +111 -0
- package/dist/tokens/components/high-contrast.css +108 -0
- package/dist/tokens/components/macos-classic.css +587 -0
- package/dist/tokens/components/macos.css +225 -0
- package/dist/tokens/components/material.css +82 -0
- package/dist/tokens/components/vercel.css +150 -0
- package/dist/tokens/components/vscode.css +72 -0
- package/dist/tokens/components/windows95.css +433 -0
- package/dist/tokens/roles/cloudflare.css +150 -0
- package/dist/tokens/roles/github.css +150 -0
- package/dist/tokens/roles/high-contrast.css +155 -0
- package/dist/tokens/roles/macos-classic.css +142 -0
- package/dist/tokens/roles/macos.css +155 -0
- package/dist/tokens/roles/material.css +144 -0
- package/dist/tokens/roles/vercel.css +141 -0
- package/dist/tokens/roles/vscode.css +143 -0
- package/dist/tokens/roles/windows95.css +142 -0
- package/package.json +144 -3
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
@reference 'tailwindcss';
|
|
2
|
+
|
|
3
|
+
:root, :root[data-rui-theme='macos'] {
|
|
4
|
+
--font-sans: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial, sans-serif;
|
|
5
|
+
--font-heading: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial, sans-serif;
|
|
6
|
+
--font-mono: 'SFMono-Regular', Menlo, Monaco, monospace;
|
|
7
|
+
--border-radius-xs: 0.375rem;
|
|
8
|
+
--border-radius-sm: 0.5rem;
|
|
9
|
+
--border-radius-md: 0.5rem;
|
|
10
|
+
--border-radius-lg: 0.625rem;
|
|
11
|
+
--border-radius-xl: 0.75rem;
|
|
12
|
+
--border-radius-2xl: 1rem;
|
|
13
|
+
--border-radius-3xl: 1.25rem;
|
|
14
|
+
--radius-control: var(--border-radius-md);
|
|
15
|
+
--radius-container: var(--border-radius-lg);
|
|
16
|
+
--rui-border-alpha: 100%;
|
|
17
|
+
--focus-ring-width: 3px;
|
|
18
|
+
--focus-ring-offset: 3px;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@layer components {
|
|
22
|
+
/**
|
|
23
|
+
* @remarks macOS fills dark destructive buttons with a saturated red and white text; `--error` stays the lighter
|
|
24
|
+
* red used for error text on dark surfaces.
|
|
25
|
+
*/
|
|
26
|
+
:root.dark .rui-button--destructive {
|
|
27
|
+
background-color: #d93036;
|
|
28
|
+
color: #ffffff;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
:root.dark .rui-button--destructive:hover:not(:disabled) {
|
|
32
|
+
background-color: #c9302c;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
:root.dark .rui-button--destructive:active:not(:disabled) {
|
|
36
|
+
background-color: #b62324;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @remarks macOS dark push buttons use the accent blue with white text. `#0a6cd6` keeps the system blue's hue at
|
|
41
|
+
* 5:1 contrast, and `--primary` stays the lighter accent for primary text.
|
|
42
|
+
*/
|
|
43
|
+
:root.dark .rui-button--filled {
|
|
44
|
+
background-color: #0a6cd6;
|
|
45
|
+
color: #ffffff;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
:root.dark .rui-button--filled:hover:not(:disabled) {
|
|
49
|
+
background-color: #0a64c8;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
:root.dark .rui-button--filled:active:not(:disabled),
|
|
53
|
+
:root.dark .rui-button--filled[aria-pressed='true'] {
|
|
54
|
+
background-color: #0a5bb5;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
:root .rui-button {
|
|
58
|
+
@apply rounded-control border border-transparent font-medium shadow-none;
|
|
59
|
+
transition-duration: var(--duration-fast);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
:root .rui-button--filled,
|
|
63
|
+
:root .rui-button--destructive {
|
|
64
|
+
@apply shadow-sm;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
:root .rui-button--outline {
|
|
68
|
+
@apply border-border bg-surface text-on-surface;
|
|
69
|
+
border-color: var(--rui-control-border-color);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
:root .rui-button--outline:hover:not(:disabled),
|
|
73
|
+
:root .rui-button--ghost:hover:not(:disabled) {
|
|
74
|
+
@apply bg-surface-container-low;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
:root .rui-input,
|
|
78
|
+
:root .rui-textarea,
|
|
79
|
+
:root .rui-autocomplete__input,
|
|
80
|
+
:root .rui-combobox__input,
|
|
81
|
+
:root .rui-date-field__input,
|
|
82
|
+
:root .rui-date-input__segment,
|
|
83
|
+
:root .rui-number-field__input,
|
|
84
|
+
:root .rui-select__control {
|
|
85
|
+
@apply rounded-control border-border bg-surface text-on-surface shadow-none;
|
|
86
|
+
border-color: var(--rui-control-border-color);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
:root .rui-checkbox__control,
|
|
90
|
+
:root .rui-radio__control {
|
|
91
|
+
@apply border-border bg-surface;
|
|
92
|
+
border-color: var(--rui-control-border-color);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
:root .rui-switch {
|
|
96
|
+
--rui-switch-track: color-mix(in oklab, var(--on-background) 14%, transparent);
|
|
97
|
+
--rui-switch-track-hover: color-mix(in oklab, var(--on-background) 20%, transparent);
|
|
98
|
+
--rui-switch-thumb: #ffffff;
|
|
99
|
+
--rui-switch-thumb-on: #ffffff;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
:root .rui-switch__track {
|
|
103
|
+
@apply rounded-pill;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
:root .rui-switch__thumb {
|
|
107
|
+
box-shadow:
|
|
108
|
+
0 0 0 0.5px rgb(0 0 0 / 0.12),
|
|
109
|
+
0 1px 2px rgb(0 0 0 / 0.24);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
:root .rui-checkbox__control {
|
|
113
|
+
@apply rounded-xs;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
:root .rui-listbox__option[aria-selected='true'],
|
|
117
|
+
:root .rui-menu-button__item[aria-checked='true'],
|
|
118
|
+
:root .rui-menubar__menu-item[aria-checked='true'],
|
|
119
|
+
:root .rui-tree__node[aria-selected='true'],
|
|
120
|
+
:root .rui-calendar__day[aria-selected='true'],
|
|
121
|
+
:root .rui-sidebar__menu-button--active,
|
|
122
|
+
:root .rui-navigation-menu__link-list a[aria-current='page'] {
|
|
123
|
+
@apply rounded-control bg-primary-container text-on-primary-container;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
:root .rui-dialog__surface,
|
|
127
|
+
:root .rui-popover-host,
|
|
128
|
+
:root .rui-hover-card__content,
|
|
129
|
+
:root .rui-menu-button__menu,
|
|
130
|
+
:root .rui-menubar__menu,
|
|
131
|
+
:root .rui-select__listbox,
|
|
132
|
+
:root .rui-combobox__listbox,
|
|
133
|
+
:root .rui-calendar,
|
|
134
|
+
:root rui-tabs[variant='boxed'] {
|
|
135
|
+
@apply rounded-container border border-border bg-surface shadow-lg;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
:root .rui-dialog__title,
|
|
139
|
+
:root .rui-calendar__header,
|
|
140
|
+
:root .rui-sidebar__header,
|
|
141
|
+
:root .rui-table__header {
|
|
142
|
+
@apply bg-surface-container-low text-on-surface font-semibold;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
:root rui-tabs[variant='boxed'] {
|
|
146
|
+
@apply rounded-container border border-border bg-surface shadow-sm;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
:root rui-tabs[variant='boxed'] .rui-tabs__list {
|
|
150
|
+
@apply gap-1 border-0 bg-surface-container-low px-1 py-1;
|
|
151
|
+
border-radius: var(--radius-control);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
:root rui-tabs[variant='boxed'] .rui-tabs__tab {
|
|
155
|
+
@apply rounded-control border-0 bg-transparent text-on-surface-container-low;
|
|
156
|
+
padding-inline: var(--rui-tabs-tab-padding-x);
|
|
157
|
+
padding-block: var(--rui-tabs-tab-padding-y);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
:root rui-tabs[variant='boxed'] .rui-tabs__tab[aria-selected='true'] {
|
|
161
|
+
@apply rounded-control bg-surface text-on-surface font-semibold shadow-sm;
|
|
162
|
+
border-bottom-color: transparent;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
:root rui-tabs[variant='boxed'] .rui-tabs__panel {
|
|
166
|
+
@apply rounded-none bg-surface;
|
|
167
|
+
padding: var(--rui-tabs-panel-padding);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
:root .rui-tabs__tab[aria-selected='true'] {
|
|
171
|
+
@apply rounded-pill bg-surface-container text-on-surface font-semibold;
|
|
172
|
+
border-bottom-color: transparent;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
:root .rui-alert,
|
|
176
|
+
:root .rui-toast__content {
|
|
177
|
+
@apply rounded-container border border-border bg-surface text-on-surface shadow-md;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
:root .rui-alert--info .rui-alert__icon {
|
|
181
|
+
color: var(--info);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
:root .rui-alert--success .rui-alert__icon {
|
|
185
|
+
color: var(--success);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
:root .rui-alert--warning .rui-alert__icon {
|
|
189
|
+
color: var(--warning);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
:root .rui-alert--error .rui-alert__icon {
|
|
193
|
+
color: var(--error);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
:root .rui-badge,
|
|
197
|
+
:root .rui-chip,
|
|
198
|
+
:root .rui-pagination__link {
|
|
199
|
+
@apply rounded-pill;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
:root .rui-table__row:nth-child(even),
|
|
203
|
+
:root .rui-grid__row:nth-child(even) {
|
|
204
|
+
@apply bg-surface-container-low;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
:root .rui-separator,
|
|
208
|
+
:root .rui-sidebar__separator {
|
|
209
|
+
@apply bg-border;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
:root .rui-slider__thumb {
|
|
213
|
+
@apply rounded-pill border border-surface bg-primary shadow-sm;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
:root .rui-meter__track,
|
|
217
|
+
:root .rui-slider__range-track {
|
|
218
|
+
@apply rounded-pill bg-surface-container;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
:root .rui-meter__fill,
|
|
222
|
+
:root .rui-slider__range-fill {
|
|
223
|
+
@apply rounded-pill bg-primary;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
@reference 'tailwindcss';
|
|
2
|
+
|
|
3
|
+
:root, :root[data-rui-theme='material'] {
|
|
4
|
+
--font-sans: Roboto, 'Noto Sans', ui-sans-serif, system-ui, sans-serif;
|
|
5
|
+
--font-heading: Roboto, 'Noto Sans', ui-sans-serif, system-ui, sans-serif;
|
|
6
|
+
--font-mono: 'Roboto Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
7
|
+
--rui-border-alpha: 100%;
|
|
8
|
+
--border-radius-xs: 0.25rem;
|
|
9
|
+
--border-radius-sm: 0.5rem;
|
|
10
|
+
--border-radius-md: 0.75rem;
|
|
11
|
+
--border-radius-lg: 1rem;
|
|
12
|
+
--border-radius-xl: 1.75rem;
|
|
13
|
+
--border-radius-2xl: 2rem;
|
|
14
|
+
--border-radius-3xl: 2.5rem;
|
|
15
|
+
--radius-control: var(--border-radius-xl);
|
|
16
|
+
--radius-container: var(--border-radius-lg);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@layer components {
|
|
20
|
+
:root .rui-button {
|
|
21
|
+
@apply rounded-control border border-transparent font-medium shadow-sm;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
:root .rui-button--filled,
|
|
25
|
+
:root .rui-button--destructive {
|
|
26
|
+
@apply shadow-md;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
:root .rui-button--outline {
|
|
30
|
+
@apply border-border bg-surface text-on-surface shadow-none;
|
|
31
|
+
border-color: var(--rui-control-border-color);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
:root .rui-button--ghost:hover:not(:disabled),
|
|
35
|
+
:root .rui-button--outline:hover:not(:disabled) {
|
|
36
|
+
@apply bg-surface-container-low;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
:root .rui-input,
|
|
40
|
+
:root .rui-textarea,
|
|
41
|
+
:root .rui-autocomplete__input,
|
|
42
|
+
:root .rui-combobox__input,
|
|
43
|
+
:root .rui-date-field__input,
|
|
44
|
+
:root .rui-date-input__segment,
|
|
45
|
+
:root .rui-number-field__input,
|
|
46
|
+
:root .rui-select__control {
|
|
47
|
+
@apply rounded-control border-border bg-surface text-on-surface shadow-none;
|
|
48
|
+
border-color: var(--rui-control-border-color);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
:root .rui-checkbox__control,
|
|
52
|
+
:root .rui-radio__control {
|
|
53
|
+
@apply border-border bg-surface;
|
|
54
|
+
border-color: var(--rui-control-border-color);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
:root .rui-checkbox__control {
|
|
58
|
+
@apply rounded-xs;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
:root .rui-dialog__surface,
|
|
62
|
+
:root .rui-popover-host,
|
|
63
|
+
:root .rui-hover-card__content,
|
|
64
|
+
:root .rui-select__listbox,
|
|
65
|
+
:root .rui-combobox__listbox,
|
|
66
|
+
:root .rui-calendar {
|
|
67
|
+
@apply rounded-container border border-border bg-surface shadow-lg;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
:root .rui-listbox__option[aria-selected='true'],
|
|
71
|
+
:root .rui-menu-button__item[aria-checked='true'],
|
|
72
|
+
:root .rui-calendar__day[aria-selected='true'],
|
|
73
|
+
:root .rui-sidebar__menu-button--active {
|
|
74
|
+
@apply rounded-control bg-primary-container text-on-primary-container;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
:root .rui-badge,
|
|
78
|
+
:root .rui-chip,
|
|
79
|
+
:root .rui-pagination__link {
|
|
80
|
+
@apply rounded-pill;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
: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;
|
|
5
|
+
--rui-border-alpha: 100%;
|
|
6
|
+
--border-radius-xs: 0.125rem;
|
|
7
|
+
--border-radius-sm: 0.25rem;
|
|
8
|
+
--border-radius-md: 0.375rem;
|
|
9
|
+
--border-radius-lg: 0.5rem;
|
|
10
|
+
--border-radius-xl: 0.75rem;
|
|
11
|
+
--border-radius-2xl: 1rem;
|
|
12
|
+
--border-radius-3xl: 1.25rem;
|
|
13
|
+
--radius-control: var(--border-radius-md);
|
|
14
|
+
--radius-container: var(--border-radius-xl);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@layer components {
|
|
18
|
+
/**
|
|
19
|
+
* @remarks Geist fills dark destructive buttons with a saturated red and white text; `--error` stays the lighter
|
|
20
|
+
* red used for error text on dark surfaces.
|
|
21
|
+
*/
|
|
22
|
+
:root.dark .rui-button--destructive {
|
|
23
|
+
background-color: #d93036;
|
|
24
|
+
color: #ffffff;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
:root.dark .rui-button--destructive:hover:not(:disabled) {
|
|
28
|
+
background-color: #c9302c;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
:root.dark .rui-button--destructive:active:not(:disabled) {
|
|
32
|
+
background-color: #b62324;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
:root .rui-button {
|
|
36
|
+
@apply rounded-control border border-transparent font-medium shadow-none;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
:root .rui-button--filled {
|
|
40
|
+
@apply bg-primary text-on-primary;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
:root .rui-button--filled:hover:not(:disabled) {
|
|
44
|
+
@apply bg-primary-light text-on-primary;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
:root .rui-button--outline {
|
|
48
|
+
@apply border-border bg-surface text-on-surface shadow-none;
|
|
49
|
+
border-color: var(--rui-control-border-color);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
:root .rui-button--outline:hover:not(:disabled),
|
|
53
|
+
:root .rui-button--ghost:hover:not(:disabled) {
|
|
54
|
+
@apply bg-surface-container-low;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
:root .rui-input,
|
|
58
|
+
:root .rui-textarea,
|
|
59
|
+
:root .rui-autocomplete__input,
|
|
60
|
+
:root .rui-combobox__input,
|
|
61
|
+
:root .rui-date-field__input,
|
|
62
|
+
:root .rui-date-input__segment,
|
|
63
|
+
:root .rui-number-field__input,
|
|
64
|
+
:root .rui-select__control {
|
|
65
|
+
@apply rounded-control border bg-surface text-on-surface shadow-none;
|
|
66
|
+
border-color: var(--rui-control-border-color);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
:root .rui-input:hover:not(:disabled),
|
|
70
|
+
:root .rui-textarea:hover:not(:disabled),
|
|
71
|
+
:root .rui-select__control:hover:not(:disabled) {
|
|
72
|
+
border-color: var(--rui-border-hover-color);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
:root .rui-input:active:not(:disabled),
|
|
76
|
+
:root .rui-textarea:active:not(:disabled),
|
|
77
|
+
:root .rui-select__control:active:not(:disabled) {
|
|
78
|
+
border-color: var(--rui-border-active-color);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
:root .rui-input:focus-visible,
|
|
82
|
+
:root .rui-textarea:focus-visible,
|
|
83
|
+
:root .rui-select__control:focus-visible {
|
|
84
|
+
border-color: var(--rui-border-active-color);
|
|
85
|
+
outline: 2px solid var(--focus-ring);
|
|
86
|
+
outline-offset: 2px;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
:root .rui-checkbox__control,
|
|
90
|
+
:root .rui-radio__control {
|
|
91
|
+
@apply border-border bg-surface;
|
|
92
|
+
border-color: var(--rui-control-border-color);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
:root .rui-dialog__surface,
|
|
96
|
+
:root .rui-popover-host,
|
|
97
|
+
:root .rui-hover-card__content,
|
|
98
|
+
:root .rui-menu-button__menu,
|
|
99
|
+
:root .rui-menubar__menu,
|
|
100
|
+
:root .rui-select__listbox,
|
|
101
|
+
:root .rui-combobox__listbox,
|
|
102
|
+
:root .rui-calendar,
|
|
103
|
+
:root rui-tabs[variant='boxed'] {
|
|
104
|
+
@apply rounded-container border border-border bg-surface shadow-sm;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
:root rui-tabs[variant='boxed'] .rui-tabs__list {
|
|
108
|
+
@apply border-b border-border bg-transparent px-2 pt-2;
|
|
109
|
+
gap: 0;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
:root rui-tabs[variant='boxed'] .rui-tabs__tab {
|
|
113
|
+
@apply rounded-none text-on-surface-container-low;
|
|
114
|
+
margin-bottom: -1px;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
:root rui-tabs[variant='boxed'] .rui-tabs__tab[aria-selected='true'] {
|
|
118
|
+
@apply bg-transparent text-on-surface font-semibold;
|
|
119
|
+
border-bottom-color: var(--primary);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
:root rui-tabs[variant='boxed'] .rui-tabs__panel {
|
|
123
|
+
@apply bg-surface;
|
|
124
|
+
padding: var(--rui-tabs-panel-padding);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
:root .rui-listbox__option:hover:not([aria-selected='true']):not([aria-disabled='true']):not([data-active]),
|
|
128
|
+
:root .rui-menu-button__item:hover:not([aria-checked='true']):not([aria-disabled='true']),
|
|
129
|
+
:root .rui-menubar__menu-item:hover:not([aria-expanded='true']):not([aria-disabled='true']) {
|
|
130
|
+
background-color: var(--color-vercel-component-2);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
:root .rui-table__header,
|
|
134
|
+
:root .rui-treegrid__row--header {
|
|
135
|
+
@apply bg-surface-container-low text-on-surface font-medium;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
:root .rui-alert {
|
|
139
|
+
@apply rounded-control shadow-none;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
:root .rui-toast__content {
|
|
143
|
+
@apply rounded-control border border-border bg-surface text-on-surface shadow-none;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
:root .rui-separator,
|
|
147
|
+
:root .rui-sidebar__separator {
|
|
148
|
+
@apply bg-border;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
@reference 'tailwindcss';
|
|
2
|
+
|
|
3
|
+
:root, :root[data-rui-theme='vscode'] {
|
|
4
|
+
--font-sans: 'Segoe UI', system-ui, sans-serif;
|
|
5
|
+
--font-heading: 'Segoe UI', system-ui, sans-serif;
|
|
6
|
+
--font-mono: 'Cascadia Code', Consolas, Menlo, Monaco, 'Courier New', monospace;
|
|
7
|
+
--rui-border-alpha: 100%;
|
|
8
|
+
--border-radius-xs: 0.125rem;
|
|
9
|
+
--border-radius-sm: 0.1875rem;
|
|
10
|
+
--border-radius-md: 0.25rem;
|
|
11
|
+
--border-radius-lg: 0.375rem;
|
|
12
|
+
--border-radius-xl: 0.5rem;
|
|
13
|
+
--border-radius-2xl: 0.75rem;
|
|
14
|
+
--border-radius-3xl: 1rem;
|
|
15
|
+
--radius-control: var(--border-radius-sm);
|
|
16
|
+
--radius-container: var(--border-radius-md);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@layer components {
|
|
20
|
+
/**
|
|
21
|
+
* @remarks VS Code's dark buttons pair `#0078d4` with white text. `--primary` stays the lighter link blue so primary
|
|
22
|
+
* text keeps its contrast on the editor background.
|
|
23
|
+
*/
|
|
24
|
+
:root.dark .rui-button--filled {
|
|
25
|
+
background-color: #0078d4;
|
|
26
|
+
color: #ffffff;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
:root.dark .rui-button--filled:hover:not(:disabled) {
|
|
30
|
+
background-color: #026ec1;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
:root.dark .rui-button--filled:active:not(:disabled),
|
|
34
|
+
:root.dark .rui-button--filled[aria-pressed='true'] {
|
|
35
|
+
background-color: #005ba4;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
:root .rui-button {
|
|
39
|
+
@apply rounded-control border border-transparent font-medium shadow-none;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
:root .rui-button--outline,
|
|
43
|
+
:root .rui-input,
|
|
44
|
+
:root .rui-textarea,
|
|
45
|
+
:root .rui-select__control {
|
|
46
|
+
@apply border-border bg-surface text-on-surface shadow-none;
|
|
47
|
+
border-color: var(--rui-control-border-color);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
:root .rui-button--outline:hover:not(:disabled),
|
|
51
|
+
:root .rui-button--ghost:hover:not(:disabled) {
|
|
52
|
+
@apply bg-surface-container-low;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
:root .rui-checkbox__control {
|
|
56
|
+
@apply rounded-xs border-border bg-surface;
|
|
57
|
+
border-color: var(--rui-control-border-color);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
:root .rui-listbox__option[aria-selected='true'],
|
|
61
|
+
:root .rui-menu-button__item[aria-checked='true'],
|
|
62
|
+
:root .rui-sidebar__menu-button--active {
|
|
63
|
+
@apply bg-primary-container text-on-primary-container;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
:root .rui-dialog__surface,
|
|
67
|
+
:root .rui-popover-host,
|
|
68
|
+
:root .rui-select__listbox,
|
|
69
|
+
:root .rui-calendar {
|
|
70
|
+
@apply rounded-container border border-border bg-surface shadow-lg;
|
|
71
|
+
}
|
|
72
|
+
}
|