|
22 | 22 | &--style-primary { |
23 | 23 | --color: var(--theme-elevation-0); |
24 | 24 | --bg-color: var(--theme-elevation-800); |
25 | | - --box-shadow: none; |
26 | 25 | --hover-bg: var(--theme-elevation-600); |
27 | 26 | --hover-color: var(--color); |
28 | 27 |
|
|
37 | 36 | &--style-secondary { |
38 | 37 | --color: var(--theme-text); |
39 | 38 | --bg-color: transparent; |
40 | | - --box-shadow: inset 0 0 0 1px var(--theme-elevation-800); |
| 39 | + --btn-border: 1px solid var(--theme-elevation-800); |
41 | 40 | --hover-color: var(--theme-elevation-600); |
42 | | - --hover-box-shadow: inset 0 0 0 1px var(--theme-elevation-400); |
| 41 | + --hover-btn-border: 1px solid var(--theme-elevation-400); |
43 | 42 |
|
44 | 43 | &.btn--disabled { |
45 | 44 | --color: var(--theme-elevation-200); |
46 | | - --box-shadow: inset 0 0 0 1px var(--theme-elevation-200); |
47 | | - --hover-box-shadow: inset 0 0 0 1px var(--theme-elevation-200); |
| 45 | + --btn-border: 1px solid var(--theme-elevation-200); |
| 46 | + --hover-btn-border: 1px solid var(--theme-elevation-200); |
48 | 47 | --hover-color: var(--color); |
49 | 48 | } |
50 | 49 | } |
51 | 50 |
|
| 51 | + &--style-dashed { |
| 52 | + --color: var(--theme-elevation-500); |
| 53 | + --bg-color: transparent; |
| 54 | + --hover-color: var(--theme-text); |
| 55 | + --btn-border: 1px dashed var(--theme-elevation-200); |
| 56 | + --hover-btn-border: 1px dashed var(--theme-elevation-400); |
| 57 | + |
| 58 | + &.btn--disabled { |
| 59 | + --color: var(--theme-elevation-250); |
| 60 | + --hover-color: var(--color); |
| 61 | + --hover-bg: transparent; |
| 62 | + --btn-border: 1px dashed var(--theme-elevation-200); |
| 63 | + --hover-btn-border: var(--btn-border); |
| 64 | + } |
| 65 | + } |
| 66 | + |
52 | 67 | &--style-pill { |
53 | 68 | --bg-color: var(--theme-elevation-150); |
54 | 69 | --color: var(--theme-elevation-800); |
|
86 | 101 | --color: var(--theme-text); |
87 | 102 | --bg-color: var(--theme-elevation-100); |
88 | 103 | --hover-bg: var(--theme-elevation-150); |
89 | | - --box-shadow: inset 0 0 0 1px var(--theme-elevation-200); |
90 | | - --hover-box-shadow: inset 0 0 0 1px var(--theme-elevation-250); |
| 104 | + --btn-border: 1px solid var(--theme-elevation-200); |
| 105 | + --hover-btn-border: 1px solid var(--theme-elevation-250); |
91 | 106 |
|
92 | 107 | &.btn--disabled { |
93 | 108 | --color: var(--theme-elevation-450); |
94 | | - --hover-box-shadow: var(--box-shadow); |
| 109 | + --hover-btn-border: var(--btn-border); |
95 | 110 | --hover-bg: var(--bg-color); |
96 | 111 | --hover-color: var(--color); |
97 | 112 | } |
|
105 | 120 |
|
106 | 121 | &.btn--disabled { |
107 | 122 | --btn-font-weight: 600; |
108 | | - --hover-box-shadow: var(--box-shadow); |
109 | 123 | --bg-color: var(--theme-elevation-100); |
110 | 124 | --hover-bg: var(--bg-color); |
111 | 125 | --hover-color: var(--color); |
|
121 | 135 | .popup-button { |
122 | 136 | color: var(--color, inherit); |
123 | 137 | background-color: var(--bg-color); |
124 | | - box-shadow: var(--box-shadow); |
| 138 | + border: var(--btn-border, 1px solid transparent); |
125 | 139 | border-radius: $style-radius-m; |
126 | 140 | align-items: center; |
127 | 141 |
|
|
143 | 157 | &:active { |
144 | 158 | background-color: var(--hover-bg); |
145 | 159 | color: var(--hover-color); |
146 | | - box-shadow: var(--hover-box-shadow); |
| 160 | + border: var(--hover-btn-border, 1px solid transparent); |
| 161 | + |
| 162 | + .btn__icon .stroke { |
| 163 | + stroke: var(--hover-color, currentColor); |
| 164 | + } |
| 165 | + .btn__icon .fill { |
| 166 | + fill: var(--hover-color, currentColor); |
| 167 | + } |
147 | 168 | } |
148 | 169 | } |
149 | 170 | } |
|
155 | 176 | &:focus, |
156 | 177 | &:active { |
157 | 178 | color: var(--hover-color); |
158 | | - box-shadow: var(--hover-box-shadow); |
159 | 179 | background-color: var(--hover-bg); |
| 180 | + border: var(--hover-btn-border, var(--btn-border, 1px solid transparent)); |
160 | 181 | } |
161 | 182 | } |
162 | 183 |
|
|
176 | 197 | --btn-icon-padding: 0px; // This will be needed when we make icons go edge to edge instead of having built in padding in the svg code |
177 | 198 | --btn-icon-content-gap: calc(var(--base) * 0.4); |
178 | 199 | --margin-block: calc(var(--base) * 1.2); |
179 | | - --btn-line-height: calc(var(--base) * 1.2); |
| 200 | + --btn-line-height: calc(var(--base) * 1.1); |
| 201 | + --btn-base-transition: 100ms cubic-bezier(0, 0.2, 0.2, 1); |
180 | 202 |
|
181 | 203 | border-radius: var(--style-radius-s); |
182 | 204 | font-size: var(--base-body-size); |
183 | 205 | font-family: var(--font-body); |
184 | 206 | font-weight: var(--btn-font-weight, normal); |
185 | 207 | margin-block: var(--margin-block); |
186 | 208 | line-height: var(--btn-line-height); |
187 | | - border: 0; |
| 209 | + border: var(--btn-border, 1px solid transparent); |
188 | 210 | cursor: pointer; |
189 | 211 | text-decoration: none; |
190 | | - transition-property: border, color, box-shadow, background; |
191 | | - transition-duration: 100ms; |
192 | | - transition-timing-function: cubic-bezier(0, 0.2, 0.2, 1); |
| 212 | + transition: border, color, background, var(--btn-base-transition); |
193 | 213 | padding: var(--btn-padding-block-start) var(--btn-padding-inline-end) |
194 | 214 | var(--btn-padding-block-end) var(--btn-padding-inline-start); |
195 | 215 | color: var(--color, inherit); |
196 | 216 | background-color: var(--bg-color, transparent); |
197 | | - box-shadow: var(--box-shadow, none); |
198 | 217 |
|
199 | 218 | &__icon { |
200 | 219 | width: 100%; |
|
271 | 290 | --btn-padding-inline-start: calc(var(--base) * 0.4); |
272 | 291 | --btn-padding-block-end: 0; |
273 | 292 |
|
274 | | - &.btn--icon-position-left { |
| 293 | + &:not(.btn--icon-only).btn--icon-position-left { |
275 | 294 | --btn-padding-inline-start: calc(var(--base) * 0.3); |
276 | 295 | } |
277 | 296 |
|
278 | | - &.btn--icon-position-right { |
| 297 | + &:not(.btn--icon-only).btn--icon-position-right { |
279 | 298 | --btn-padding-inline-end: calc(var(--base) * 0.3); |
280 | 299 | } |
281 | 300 |
|
|
292 | 311 | --btn-padding-inline-end: calc(var(--base) * 0.3); |
293 | 312 | --btn-padding-inline-start: calc(var(--base) * 0.3); |
294 | 313 | --btn-padding-block-end: 0; |
295 | | - &.btn--icon-position-left { |
| 314 | + &:not(.btn--icon-only).btn--icon-position-left { |
296 | 315 | --btn-padding-inline-start: calc(var(--base) * 0.2); |
297 | 316 | } |
298 | | - &.btn--icon-position-right { |
| 317 | + &:not(.btn--icon-only).btn--icon-position-right { |
299 | 318 | --btn-padding-inline-end: calc(var(--base) * 0.2); |
300 | 319 | } |
301 | 320 | &.btn--icon-style-with-border { |
|
305 | 324 |
|
306 | 325 | &--size-medium { |
307 | 326 | // --btn-icon-padding: 0px; |
308 | | - --btn-icon-size: calc(var(--base) * 1.2); |
| 327 | + --btn-icon-size: calc(var(--base) * 1.1); |
309 | 328 | --btn-icon-content-gap: calc(var(--base) * 0.2); |
310 | 329 | --btn-padding-block-start: calc(var(--base) * 0.2); |
311 | 330 | --btn-padding-inline-end: calc(var(--base) * 0.6); |
312 | 331 | --btn-padding-block-end: calc(var(--base) * 0.2); |
313 | 332 | --btn-padding-inline-start: calc(var(--base) * 0.6); |
314 | 333 |
|
315 | | - &.btn--icon-position-left { |
| 334 | + &:not(.btn--icon-only).btn--icon-position-left { |
316 | 335 | --btn-padding-inline-start: calc(var(--base) * 0.4); |
317 | 336 | } |
318 | 337 |
|
319 | | - &.btn--icon-position-right { |
| 338 | + &:not(.btn--icon-only).btn--icon-position-right { |
320 | 339 | --btn-padding-inline-end: calc(var(--base) * 0.4); |
321 | 340 | } |
322 | 341 |
|
|
334 | 353 | --btn-padding-inline-start: calc(var(--base) * 0.8); |
335 | 354 | --btn-padding-block-end: calc(var(--base) * 0.4); |
336 | 355 |
|
337 | | - &.btn--icon-position-left { |
| 356 | + &:not(.btn--icon-only).btn--icon-position-left { |
338 | 357 | --btn-padding-inline-start: calc(var(--base) * 0.6); |
339 | 358 | } |
340 | 359 |
|
341 | | - &.btn--icon-position-right { |
| 360 | + &:not(.btn--icon-only).btn--icon-position-right { |
342 | 361 | --btn-padding-inline-end: calc(var(--base) * 0.6); |
343 | 362 | } |
344 | 363 |
|
|
0 commit comments