Commit | Line | Data |
---|---|---|
2e2b26c0 AE |
1 | button { |
2 | all: unset; | |
53190c97 | 3 | |
da44171a | 4 | box-sizing: border-box; |
53190c97 | 5 | min-width: 0; |
5badf4ef AE |
6 | -webkit-user-select: none; |
7 | user-select: none; | |
2e2b26c0 | 8 | |
518625d3 | 9 | &:focus-visible { |
2e2b26c0 AE |
10 | outline: 5px auto -webkit-focus-ring-color; |
11 | } | |
610e43a5 AE |
12 | |
13 | &:not([disabled]) { | |
14 | cursor: pointer; | |
15 | } | |
2e2b26c0 AE |
16 | } |
17 | ||
b8eab696 AE |
18 | input[type="button"], |
19 | input[type="reset"], | |
20 | input[type="submit"], | |
ed8c9052 | 21 | .button, |
8a52619a TD |
22 | a.button { |
23 | // a.button is required to override link formatting, such as drop-down buttons | |
dbd859e1 | 24 | align-items: center; |
1a75e228 | 25 | background-color: var(--wcfButtonBackground); |
5f447401 | 26 | border-radius: var(--wcfBorderRadius); |
95cc4d01 | 27 | border-width: 0; |
1a75e228 | 28 | color: var(--wcfButtonText); |
dbd859e1 AE |
29 | // `0.25em` is the average width of a space that previously separated elements. |
30 | column-gap: 0.25em; | |
b8eab696 | 31 | cursor: pointer; |
dbd859e1 | 32 | display: inline-flex; |
bec1bb2e | 33 | font-weight: 400; |
ff5eacc8 | 34 | justify-content: center; |
c9f0d8b3 | 35 | margin: 0; |
4d194569 | 36 | padding: 8px 18px; |
fd704e3a | 37 | text-align: center; |
7540e2d5 | 38 | text-decoration: none; |
8a52619a | 39 | |
487db634 | 40 | // input elements do not inherit font family, size and line-height from body |
1a75e228 | 41 | font-family: var(--wcfFontFamily); |
5908f54f AE |
42 | @include wcfFontDefault; |
43 | @include wcfLineHeight; | |
8a52619a | 44 | |
a5956329 AE |
45 | // removes UA styling enforced by Safari on iOS |
46 | -webkit-appearance: none; | |
8a52619a | 47 | |
67b6b44e | 48 | @include userSelectNone; |
8a52619a | 49 | |
b8eab696 | 50 | .icon { |
7035df9a | 51 | color: inherit; |
b8eab696 | 52 | } |
8a52619a | 53 | |
aae38e97 | 54 | &.active { |
1a75e228 AE |
55 | background-color: var(--wcfButtonBackgroundActive); |
56 | color: var(--wcfButtonTextActive); | |
7540e2d5 | 57 | text-decoration: none; |
b8eab696 | 58 | } |
8a52619a | 59 | |
b8eab696 | 60 | &.small { |
4d194569 | 61 | padding: 6px 8px; |
8a52619a | 62 | |
5908f54f | 63 | @include wcfFontSmall; |
b8eab696 | 64 | } |
8a52619a | 65 | |
ccf4def3 MW |
66 | small { |
67 | color: inherit; | |
68 | } | |
b8eab696 AE |
69 | } |
70 | ||
192be450 AE |
71 | @media (pointer: coarse) { |
72 | input[type="button"], | |
73 | input[type="reset"], | |
74 | input[type="submit"], | |
75 | .button, | |
76 | a.button { | |
77 | padding: 10px 18px; | |
78 | ||
79 | &.small { | |
80 | padding: 8px; | |
81 | } | |
82 | } | |
83 | } | |
84 | ||
b8eab696 AE |
85 | input[type="button"].buttonPrimary, |
86 | input[type="submit"], | |
ed8c9052 | 87 | .button.buttonPrimary, |
8a52619a TD |
88 | a.button.buttonPrimary { |
89 | // a.button is required to override link formatting, such as dropdown buttons | |
1a75e228 AE |
90 | background-color: var(--wcfButtonPrimaryBackground); |
91 | color: var(--wcfButtonPrimaryText); | |
8a52619a | 92 | |
aae38e97 | 93 | &.active { |
1a75e228 AE |
94 | background-color: var(--wcfButtonPrimaryBackgroundActive); |
95 | color: var(--wcfButtonPrimaryTextActive); | |
f2b50825 AE |
96 | } |
97 | } | |
98 | ||
aae38e97 MS |
99 | /* hover states are only applied to non-touch devices to avoid "leftover" hover states after taps */ |
100 | html:not(.touch) { | |
aae38e97 MS |
101 | input[type="button"], |
102 | input[type="reset"], | |
103 | input[type="submit"], | |
104 | .button, | |
105 | a.button { | |
106 | &:hover { | |
1a75e228 AE |
107 | background-color: var(--wcfButtonBackgroundActive); |
108 | color: var(--wcfButtonTextActive); | |
aae38e97 MS |
109 | text-decoration: none; |
110 | } | |
111 | } | |
8a52619a | 112 | |
aae38e97 MS |
113 | input[type="button"].buttonPrimary, |
114 | input[type="submit"], | |
115 | .button.buttonPrimary, | |
8a52619a TD |
116 | a.button.buttonPrimary { |
117 | // a.button is required to override link formatting, such as dropdown buttons | |
aae38e97 | 118 | &:hover { |
1a75e228 AE |
119 | background-color: var(--wcfButtonPrimaryBackgroundActive); |
120 | color: var(--wcfButtonPrimaryTextActive); | |
aae38e97 MS |
121 | } |
122 | } | |
123 | } | |
124 | ||
63d349a3 | 125 | /* disabled state */ |
63d349a3 AE |
126 | input[type="button"], |
127 | input[type="reset"], | |
128 | input[type="submit"], | |
129 | .button, | |
130 | a.button { | |
131 | &:disabled, | |
132 | &.disabled { | |
1a75e228 AE |
133 | background-color: var(--wcfButtonDisabledBackground) !important; |
134 | color: var(--wcfButtonDisabledText) !important; | |
63d349a3 | 135 | cursor: not-allowed !important; |
b3fa7916 | 136 | pointer-events: none; |
63d349a3 AE |
137 | } |
138 | } | |
139 | ||
f2b50825 AE |
140 | /* force active state for buttons toggling a dropdown */ |
141 | .dropdownOpen { | |
f2b50825 AE |
142 | > input[type="button"], |
143 | > input[type="reset"], | |
144 | > input[type="submit"], | |
ed8c9052 AE |
145 | > .button, |
146 | > a.button { | |
1a75e228 AE |
147 | background-color: var(--wcfButtonBackgroundActive); |
148 | color: var(--wcfButtonTextActive); | |
f2b50825 | 149 | } |
8a52619a | 150 | |
f2b50825 AE |
151 | > input[type="button"].buttonPrimary, |
152 | > input[type="submit"], | |
ed8c9052 AE |
153 | > .button.buttonPrimary, |
154 | > a.button.buttonPrimary { | |
1a75e228 AE |
155 | background-color: var(--wcfButtonPrimaryBackgroundActive); |
156 | color: var(--wcfButtonPrimaryTextActive); | |
b8eab696 | 157 | } |
b8eab696 AE |
158 | } |
159 | ||
160 | .buttonList { | |
5908f54f | 161 | @include inlineList; |
8a52619a | 162 | |
b8eab696 | 163 | &.smallButtons .button { |
4d194569 | 164 | padding: 6px 8px; |
c8a79279 | 165 | |
5908f54f | 166 | @include wcfFontSmall; |
b8eab696 | 167 | } |
8a52619a | 168 | |
b8eab696 AE |
169 | /* members list */ |
170 | &.letters { | |
171 | margin-bottom: -10px; | |
8a52619a | 172 | |
b8eab696 | 173 | > li { |
efea49bc | 174 | flex: 0 0 auto; |
b8eab696 | 175 | margin-bottom: 10px; |
e2fa3bc1 | 176 | width: 10%; |
8a52619a | 177 | |
e2fa3bc1 MW |
178 | &.lettersReset { |
179 | width: auto; | |
180 | } | |
8a52619a | 181 | |
b8eab696 AE |
182 | > a { |
183 | display: block; | |
e01ff1d8 MW |
184 | min-width: -moz-min-content; |
185 | min-width: -webkit-min-content; | |
20f920dc | 186 | min-width: min-content; |
b8eab696 AE |
187 | text-align: center; |
188 | } | |
189 | } | |
190 | } | |
191 | } | |
192 | ||
7dce78a5 AE |
193 | .buttonList.iconList a { |
194 | color: var(--wcfButtonText); | |
195 | } | |
196 | ||
b8eab696 | 197 | .buttonGroupNavigation > ul { |
5908f54f | 198 | @include inlineList; |
b8eab696 AE |
199 | } |
200 | ||
201 | .buttonGroup { | |
6a4be890 | 202 | margin-bottom: -1px; |
8a52619a | 203 | |
5908f54f | 204 | @include inlineList; |
8a52619a | 205 | |
b8eab696 | 206 | > li { |
bd3c13dc | 207 | display: flex; |
6a4be890 | 208 | margin-bottom: 1px; |
8a52619a | 209 | |
b8eab696 | 210 | &:not(:last-child) { |
b1676884 | 211 | margin-right: 1px; |
b8eab696 | 212 | } |
8a52619a | 213 | |
b8eab696 | 214 | &:first-child .button { |
a1024030 MW |
215 | border-top-left-radius: var(--wcfBorderRadius); |
216 | border-bottom-left-radius: var(--wcfBorderRadius); | |
b8eab696 | 217 | } |
8a52619a | 218 | |
b8eab696 | 219 | &:last-child .button { |
a1024030 MW |
220 | border-top-right-radius: var(--wcfBorderRadius); |
221 | border-bottom-right-radius: var(--wcfBorderRadius); | |
b8eab696 | 222 | } |
8a52619a | 223 | |
b8eab696 AE |
224 | .button { |
225 | border-radius: 0; | |
f2b50825 | 226 | border-width: 0; |
b8eab696 AE |
227 | } |
228 | } | |
229 | } |