|
3 | 3 | color: $text-color;
|
4 | 4 | border: 1px solid $border-color;
|
5 | 5 |
|
6 |
| - svg { |
| 6 | + svg, |
| 7 | + svg>* { |
7 | 8 | stroke: $text-color;
|
8 | 9 | }
|
9 | 10 | }
|
10 | 11 |
|
| 12 | +@mixin pseudo-states($hover-bg-color, $active-bg-color) { |
| 13 | + $parent-selector: &; |
| 14 | + |
| 15 | + &:hover:enabled { |
| 16 | + background: $hover-bg-color; |
| 17 | + } |
| 18 | + |
| 19 | + &:active:enabled { |
| 20 | + background: $active-bg-color; |
| 21 | + } |
| 22 | +} |
| 23 | + |
11 | 24 | .button {
|
12 | 25 | // Reset the default styles
|
13 | 26 | background: none;
|
|
17 | 30 | text-decoration: none;
|
18 | 31 | text-transform: capitalize;
|
19 | 32 |
|
20 |
| - // &:focus, |
21 |
| - // &:active, |
22 |
| - // &:hover { |
23 |
| - // outline: unset; |
24 |
| - // // border: unset; |
25 |
| - // } |
26 |
| - |
27 |
| - // &:focus { |
28 |
| - // outline: auto; |
29 |
| - // } |
30 |
| - |
31 | 33 | &__primary {
|
32 | 34 | $border-color: transparent;
|
33 | 35 | $text-color: var(--N0);
|
34 | 36 |
|
35 | 37 | &--default {
|
36 | 38 | @include button-variant-styles(var(--B500), $text-color, $border-color);
|
37 |
| - |
38 |
| - &:hover { |
39 |
| - background: var(--B600); |
40 |
| - } |
41 |
| - |
42 |
| - &:active { |
43 |
| - background: var(--B700); |
44 |
| - } |
| 39 | + @include pseudo-states(var(--B600), var(--B700)); |
45 | 40 | }
|
46 | 41 |
|
47 | 42 | &--negative {
|
48 | 43 | @include button-variant-styles(var(--R500), $text-color, $border-color);
|
49 |
| - |
50 |
| - &:hover { |
51 |
| - background: var(--R600); |
52 |
| - } |
53 |
| - |
54 |
| - &:active { |
55 |
| - background: var(--R700); |
56 |
| - } |
| 44 | + @include pseudo-states(var(--R600), var(--R700)); |
57 | 45 | }
|
58 | 46 |
|
59 | 47 | &--positive {
|
60 | 48 | @include button-variant-styles(var(--G500), $text-color, $border-color);
|
61 |
| - |
62 |
| - &:hover { |
63 |
| - background: var(--G600); |
64 |
| - } |
65 |
| - |
66 |
| - &:active { |
67 |
| - background: var(--G700); |
68 |
| - } |
| 49 | + @include pseudo-states(var(--G600), var(--G700)); |
69 | 50 | }
|
70 | 51 |
|
71 | 52 | &--warning {
|
72 | 53 | $text-color: var(--N900);
|
73 | 54 |
|
74 | 55 | @include button-variant-styles(var(--Y500), $text-color, $border-color);
|
75 |
| - |
76 |
| - &:hover { |
77 |
| - background: var(--Y600); |
78 |
| - } |
79 |
| - |
80 |
| - &:active { |
81 |
| - background: var(--Y700); |
82 |
| - } |
| 56 | + @include pseudo-states(var(--Y600), var(--Y700)); |
83 | 57 | }
|
84 | 58 |
|
85 | 59 | &--neutral {
|
86 | 60 | @include button-variant-styles(var(--N500), $text-color, $border-color);
|
87 |
| - |
88 |
| - &:hover { |
89 |
| - background: var(--N600); |
90 |
| - } |
91 |
| - |
92 |
| - &:active { |
93 |
| - background: var(--N700); |
94 |
| - } |
| 61 | + @include pseudo-states(var(--N600), var(--N700)); |
95 | 62 | }
|
96 | 63 | }
|
97 | 64 |
|
|
101 | 68 |
|
102 | 69 | &--default {
|
103 | 70 | @include button-variant-styles($background, var(--B500), $border-color);
|
104 |
| - |
105 |
| - &:hover { |
106 |
| - background: var(--B100); |
107 |
| - } |
108 |
| - |
109 |
| - &:active { |
110 |
| - background: var(--B200); |
111 |
| - } |
| 71 | + @include pseudo-states(var(--B100), var(--B200)); |
112 | 72 | }
|
113 | 73 |
|
114 | 74 | &--negative {
|
115 | 75 | @include button-variant-styles($background, var(--R600), $border-color);
|
116 |
| - |
117 |
| - &:hover { |
118 |
| - background: var(--R100); |
119 |
| - } |
120 |
| - |
121 |
| - &:active { |
122 |
| - background: var(--R200); |
123 |
| - } |
| 76 | + @include pseudo-states(var(--R100), var(--R200)); |
124 | 77 | }
|
125 | 78 |
|
126 | 79 | &--positive {
|
127 | 80 | @include button-variant-styles($background, var(--G600), $border-color);
|
128 |
| - |
129 |
| - &:hover { |
130 |
| - background: var(--G100); |
131 |
| - } |
132 |
| - |
133 |
| - &:active { |
134 |
| - background: var(--G200); |
135 |
| - } |
| 81 | + @include pseudo-states(var(--G100), var(--G200)); |
136 | 82 | }
|
137 | 83 |
|
138 | 84 | &--warning {
|
139 | 85 | @include button-variant-styles($background, var(--Y700), $border-color);
|
140 |
| - |
141 |
| - &:hover { |
142 |
| - background: var(--Y100); |
143 |
| - } |
144 |
| - |
145 |
| - &:active { |
146 |
| - background: var(--Y200); |
147 |
| - } |
| 86 | + @include pseudo-states(var(--Y100), var(--Y200)); |
148 | 87 | }
|
149 | 88 |
|
150 | 89 | &--neutral {
|
151 | 90 | @include button-variant-styles($background, var(--N700), $border-color);
|
152 |
| - |
153 |
| - &:hover { |
154 |
| - background: var(--N100); |
155 |
| - } |
156 |
| - |
157 |
| - &:active { |
158 |
| - background: var(--N200); |
159 |
| - } |
| 91 | + @include pseudo-states(var(--N100), var(--N200)); |
160 | 92 | }
|
161 | 93 | }
|
162 | 94 |
|
|
188 | 120 |
|
189 | 121 | &__text {
|
190 | 122 | &--default {
|
191 |
| - |
192 |
| - &:hover { |
193 |
| - background: var(--B100); |
194 |
| - } |
195 |
| - |
196 |
| - &:active { |
197 |
| - background: var(--B200); |
198 |
| - } |
| 123 | + @include pseudo-states(var(--B100), var(--B200)); |
199 | 124 | }
|
200 | 125 |
|
201 | 126 | &--negative {
|
202 |
| - |
203 |
| - &:hover { |
204 |
| - background: var(--R100); |
205 |
| - } |
206 |
| - |
207 |
| - &:active { |
208 |
| - background: var(--R200); |
209 |
| - } |
| 127 | + @include pseudo-states(var(--R100), var(--R200)); |
210 | 128 | }
|
211 | 129 |
|
212 | 130 | &--positive {
|
213 |
| - |
214 |
| - &:hover { |
215 |
| - background: var(--G100); |
216 |
| - } |
217 |
| - |
218 |
| - &:active { |
219 |
| - background: var(--G200); |
220 |
| - } |
| 131 | + @include pseudo-states(var(--G100), var(--G200)); |
221 | 132 | }
|
222 | 133 |
|
223 | 134 | &--warning {
|
224 |
| - |
225 |
| - &:hover { |
226 |
| - background: var(--Y100); |
227 |
| - } |
228 |
| - |
229 |
| - &:active { |
230 |
| - background: var(--Y200); |
231 |
| - } |
| 135 | + @include pseudo-states(var(--Y100), var(--Y200)); |
232 | 136 | }
|
233 | 137 |
|
234 | 138 | &--neutral {
|
235 |
| - |
236 |
| - &:hover { |
237 |
| - background: var(--N100); |
238 |
| - } |
239 |
| - |
240 |
| - &:active { |
241 |
| - background: var(--N200); |
242 |
| - } |
| 139 | + @include pseudo-states(var(--N100), var(--N200)); |
243 | 140 | }
|
244 | 141 | }
|
245 | 142 |
|
|
0 commit comments