|
1 | | -.ui-Button { |
2 | | - display: inline-flex; |
3 | | - align-items: center; |
4 | | - justify-content: center; |
5 | | - flex-shrink: 0; |
6 | | - user-select: none; |
7 | | - vertical-align: top; |
8 | | - font-style: normal; |
9 | | - font-weight: var(--button-font-weight); |
10 | | - text-align: center; |
11 | | - white-space: nowrap; |
12 | | - height: var(--button-height); |
13 | | - padding-left: var(--button-padding-x); |
14 | | - padding-right: var(--button-padding-x); |
| 1 | +@layer components { |
| 2 | + .ui-Button { |
| 3 | + display: inline-flex; |
| 4 | + align-items: center; |
| 5 | + justify-content: center; |
| 6 | + flex-shrink: 0; |
| 7 | + user-select: none; |
| 8 | + vertical-align: top; |
| 9 | + font-style: normal; |
| 10 | + font-weight: var(--button-font-weight); |
| 11 | + text-align: center; |
| 12 | + white-space: nowrap; |
| 13 | + height: var(--button-height); |
| 14 | + padding-left: var(--button-padding-x); |
| 15 | + padding-right: var(--button-padding-x); |
| 16 | + gap: var(--button-gap); |
| 17 | + font-size: var(--button-font-size); |
| 18 | + line-height: var(--button-line-height); |
| 19 | + letter-spacing: var(--button-letter-spacing); |
| 20 | + border-radius: var(--button-radius); |
| 21 | + } |
15 | 22 | } |
16 | 23 |
|
17 | 24 | .ui-Button:where(.r-variant-ghost) { |
|
22 | 29 | --button-font-weight: var(--font-weight-medium); |
23 | 30 | } |
24 | 31 |
|
25 | | -.ui-Button:where([data-disabled]) { |
| 32 | +.ui-Button:where(:disabled, [data-disabled]) { |
26 | 33 | cursor: not-allowed; |
27 | 34 | } |
28 | 35 |
|
29 | 36 | .ui-Button:where(.r-size-1) { |
30 | | - gap: var(--space-1); |
31 | | - font-size: var(--font-size-1); |
32 | | - line-height: var(--line-height-1); |
33 | | - letter-spacing: var(--letter-spacing-1); |
34 | | - border-radius: max(var(--radius-1), var(--radius-full)); |
| 37 | + --button-gap: var(--space-1); |
| 38 | + --button-font-size: var(--font-size-1); |
| 39 | + --button-line-height: var(--line-height-1); |
| 40 | + --button-letter-spacing: var(--letter-spacing-1); |
| 41 | + --button-radius: max(var(--radius-1), var(--radius-full)); |
35 | 42 | --button-height: var(--space-5); |
36 | 43 | --button-padding-x: var(--space-2); |
37 | 44 | } |
38 | 45 | .ui-Button:where(.r-size-1):where(.r-variant-ghost) { |
39 | 46 | --button-ghost-padding-y: var(--space-1); |
40 | 47 | } |
41 | 48 | .ui-Button:where(.r-size-2) { |
42 | | - gap: var(--space-2); |
43 | | - font-size: var(--font-size-2); |
44 | | - line-height: var(--line-height-2); |
45 | | - letter-spacing: var(--letter-spacing-2); |
46 | | - border-radius: max(var(--radius-2), var(--radius-full)); |
| 49 | + --button-gap: var(--space-2); |
| 50 | + --button-font-size: var(--font-size-2); |
| 51 | + --button-line-height: var(--line-height-2); |
| 52 | + --button-letter-spacing: var(--letter-spacing-2); |
| 53 | + --button-radius: max(var(--radius-2), var(--radius-full)); |
47 | 54 | --button-height: var(--space-6); |
48 | 55 | --button-padding-x: var(--space-3); |
49 | 56 | } |
50 | 57 | .ui-Button:where(.r-size-2):where(.r-variant-ghost) { |
51 | | - gap: var(--space-1); |
| 58 | + --button-gap: var(--space-1); |
52 | 59 | --button-padding-x: var(--space-2); |
53 | 60 | --button-ghost-padding-y: var(--space-1); |
54 | 61 | } |
55 | 62 | .ui-Button:where(.r-size-3) { |
56 | | - gap: var(--space-3); |
57 | | - font-size: var(--font-size-3); |
58 | | - line-height: var(--line-height-3); |
59 | | - letter-spacing: var(--letter-spacing-3); |
60 | | - border-radius: max(var(--radius-3), var(--radius-full)); |
| 63 | + --button-gap: var(--space-3); |
| 64 | + --button-font-size: var(--font-size-3); |
| 65 | + --button-line-height: var(--line-height-3); |
| 66 | + --button-letter-spacing: var(--letter-spacing-3); |
| 67 | + --button-radius: max(var(--radius-3), var(--radius-full)); |
61 | 68 | --button-height: var(--space-7); |
62 | 69 | --button-padding-x: var(--space-4); |
63 | 70 | } |
64 | 71 | .ui-Button:where(.r-size-3):where(.r-variant-ghost) { |
65 | | - gap: var(--space-2); |
| 72 | + --button-gap: var(--space-2); |
66 | 73 | --button-padding-x: var(--space-3); |
67 | 74 | --button-ghost-padding-y: calc(var(--space-1) * 1.5); |
68 | 75 | } |
69 | 76 | .ui-Button:where(.r-size-4) { |
70 | | - gap: var(--space-3); |
71 | | - font-size: var(--font-size-4); |
72 | | - line-height: var(--line-height-4); |
73 | | - letter-spacing: var(--letter-spacing-4); |
74 | | - border-radius: max(var(--radius-4), var(--radius-full)); |
| 77 | + --button-gap: var(--space-3); |
| 78 | + --button-font-size: var(--font-size-4); |
| 79 | + --button-line-height: var(--line-height-4); |
| 80 | + --button-letter-spacing: var(--letter-spacing-4); |
| 81 | + --button-radius: max(var(--radius-4), var(--radius-full)); |
75 | 82 | --button-height: var(--space-8); |
76 | 83 | --button-padding-x: var(--space-5); |
77 | 84 | } |
78 | 85 | .ui-Button:where(.r-size-4):where(.r-variant-ghost) { |
79 | | - gap: var(--space-2); |
| 86 | + --button-gap: var(--space-2); |
80 | 87 | --button-padding-x: var(--space-4); |
81 | 88 | --button-ghost-padding-y: var(--space-2); |
82 | 89 | } |
|
119 | 126 | filter: var(--button-solid-high-contrast-hover-filter); |
120 | 127 | } |
121 | 128 | } |
122 | | -.ui-Button:where(.r-variant-solid):where([data-disabled]) { |
| 129 | +.ui-Button:where(.r-variant-solid):where(:disabled, [data-disabled]) { |
123 | 130 | color: var(--gray-a8); |
124 | 131 | background-color: var(--gray-a3); |
125 | 132 | outline: none; |
|
148 | 155 | .ui-Button:where(.r-variant-soft):where(:active) { |
149 | 156 | background-color: var(--accent-a5); |
150 | 157 | } |
151 | | -.ui-Button:where(.r-variant-soft):where([data-disabled]) { |
| 158 | +.ui-Button:where(.r-variant-soft):where(:disabled, [data-disabled]) { |
152 | 159 | color: var(--gray-a8); |
153 | 160 | background-color: var(--gray-a3); |
154 | 161 | } |
|
167 | 174 | .ui-Button:where(.r-variant-ghost):where(:active) { |
168 | 175 | background-color: var(--accent-a4); |
169 | 176 | } |
170 | | -.ui-Button:where(.r-variant-ghost):where([data-disabled]) { |
| 177 | +.ui-Button:where(.r-variant-ghost):where(:disabled, [data-disabled]) { |
171 | 178 | color: var(--gray-a8); |
172 | 179 | background-color: transparent; |
173 | 180 | } |
|
194 | 201 | outline: 2px solid var(--focus-8); |
195 | 202 | outline-offset: 2px; |
196 | 203 | } |
197 | | -.ui-Button:where(.r-variant-classic):where(:active:not([data-disabled])) { |
| 204 | +.ui-Button:where(.r-variant-classic):where(:active:not(:disabled, [data-disabled])) { |
198 | 205 | box-shadow: var(--shadow-1); |
199 | 206 | } |
200 | | -.ui-Button:where(.r-variant-classic):where([data-disabled]) { |
| 207 | +.ui-Button:where(.r-variant-classic):where(:disabled, [data-disabled]) { |
201 | 208 | color: var(--gray-a10); |
202 | 209 | background-color: var(--gray-a2); |
203 | 210 | } |
|
223 | 230 | .ui-Button:where(.r-variant-outline):where(:active) { |
224 | 231 | background-color: var(--accent-a4); |
225 | 232 | } |
226 | | -.ui-Button:where(.r-variant-outline):where([data-disabled]) { |
| 233 | +.ui-Button:where(.r-variant-outline):where(:disabled, [data-disabled]) { |
227 | 234 | color: var(--gray-a8); |
228 | 235 | box-shadow: inset 0 0 0 1px var(--gray-a7); |
229 | 236 | background-color: transparent; |
|
250 | 257 | .ui-Button:where(.r-variant-surface):where(:active) { |
251 | 258 | background-color: var(--accent-a4); |
252 | 259 | } |
253 | | -.ui-Button:where(.r-variant-surface):where([data-disabled]) { |
| 260 | +.ui-Button:where(.r-variant-surface):where(:disabled, [data-disabled]) { |
254 | 261 | color: var(--gray-a8); |
255 | 262 | box-shadow: inset 0 0 0 1px var(--gray-a6); |
256 | 263 | background-color: var(--gray-a2); |
|
0 commit comments