Web platform for sharing free data for ML and research

By using this site, you agree to have cookies stored on your device, strictly for functional purposes, such as storing your session and preferences.

Dismiss

 checkboxes.css

View raw Download
text/plain • 7.53 kiB
ASCII text
        
            
1
/* Checkbox */
2
3
input[type="checkbox"]:not(.switch) {
4
width: var(--size-checkbox);
5
height: var(--size-checkbox);
6
aspect-ratio: 1/1;
7
appearance: none; /* Remove browser default styles */
8
border: var(--border-checkbox);
9
border-radius: var(--radius-checkbox);
10
color: var(--color-checkbox-text);
11
background: var(--color-checkbox);
12
box-shadow: inset 0 0 0 0 transparent, var(--shadow-form);
13
/* Centre the checkmark */
14
display: inline-flex;
15
align-items: center;
16
justify-content: center;
17
position: relative;
18
cursor: pointer; /* a11y */
19
}
20
21
input[type="checkbox"]:not(.switch):hover {
22
box-shadow: inset 0 0 0 0 transparent, var(--shadow-form-hover);
23
border: var(--border-checkbox-hover);
24
background: var(--color-checkbox-hover);
25
color: var(--color-checkbox-hover-text);
26
}
27
28
input[type="checkbox"]:not(.switch):checked {
29
/* Box shadows are shown when printed */
30
box-shadow: inset 0 0 0 var(--size-checkbox) var(--color-checkbox-active), var(--shadow-form-checked);
31
border: var(--border-checkbox-checked);
32
color: var(--color-checkbox-active-text);
33
}
34
35
input[type="checkbox"]:not(.switch):checked:hover {
36
box-shadow: inset 0 0 0 var(--size-checkbox) var(--color-checkbox-active-hover), var(--shadow-form-checked-hover);
37
border: var(--border-checkbox-checked-hover);
38
color: var(--color-checkbox-active-hover-text);
39
}
40
41
input[type="checkbox"]:not(.switch):indeterminate {
42
/* Box shadows are shown when printed */
43
box-shadow: inset 0 0 0 var(--size-checkbox) var(--color-checkbox-indeterminate), var(--shadow-form-indeterminate);
44
border: var(--border-checkbox-indeterminate);
45
color: var(--color-checkbox-indeterminate-text);
46
}
47
48
input[type="checkbox"]:not(.switch):indeterminate:hover {
49
box-shadow: inset 0 0 0 var(--size-checkbox) var(--color-checkbox-indeterminate-hover), var(--shadow-form-indeterminate-hover);
50
border: var(--border-checkbox-indeterminate-hover);
51
color: var(--color-checkbox-active-hover-text);
52
}
53
54
input[type="checkbox"]:not(.switch):indeterminate:hover::after {
55
background: var(--color-checkbox-indeterminate-hover-text);
56
}
57
58
input[type="checkbox"]:not(.switch):indeterminate::after {
59
/* Position directly on top of the checkbox */
60
position: absolute;
61
width: var(--size-checkbox);
62
height: var(--size-checkbox);
63
content: "";
64
background: var(--color-checkbox-indeterminate-text);
65
/* Display the checkmark */
66
-webkit-mask: url("./icons/checkbox-indeterminate.svg");
67
mask: url("./icons/checkbox-indeterminate.svg");
68
}
69
70
input[type="checkbox"]:not(.switch):checked::after {
71
/* Position directly on top of the checkbox */
72
position: absolute;
73
width: var(--size-checkbox);
74
height: var(--size-checkbox);
75
content: "";
76
background: var(--color-checkbox-active-text);
77
/* Display the checkmark */
78
-webkit-mask: url("./icons/checkbox.svg");
79
mask: url("./icons/checkbox.svg");
80
}
81
82
input[type="checkbox"]:not(.switch):checked:hover::after {
83
background: var(--color-checkbox-active-hover-text);
84
}
85
86
label:has(input[type="checkbox"]) {
87
display: inline-flex; /* So they are aligned */
88
gap: var(--gap-label-checkbox);
89
align-items: center;
90
cursor: pointer; /* a11y */
91
}
92
93
/* Radio */
94
95
input[type="radio"]:not(.switch) {
96
width: var(--size-checkbox);
97
height: var(--size-checkbox);
98
aspect-ratio: 1/1;
99
appearance: none; /* Remove browser default styles */
100
border: var(--border-radio);
101
border-radius: var(--radius-radio);
102
color: var(--color-radio-text);
103
background: var(--color-radio);
104
box-shadow: inset 0 0 0 0 transparent, var(--shadow-form);
105
/* Centre the checkmark */
106
display: inline-flex;
107
align-items: center;
108
justify-content: center;
109
position: relative;
110
cursor: pointer; /* a11y */
111
}
112
113
input[type="radio"]:not(.switch):hover {
114
box-shadow: inset 0 0 0 0 transparent, var(--shadow-form-hover);
115
border: var(--border-radio-hover);
116
background: var(--color-radio-hover);
117
color: var(--color-radio-hover-text);
118
}
119
120
input[type="radio"]:not(.switch):checked {
121
/* Box shadows are shown when printed */
122
box-shadow: inset 0 0 0 var(--size-checkbox) var(--color-radio-active), var(--shadow-form-checked);
123
border: var(--border-radio-checked);
124
color: var(--color-radio-active-text);
125
}
126
127
input[type="radio"]:not(.switch):checked:hover {
128
box-shadow: inset 0 0 0 var(--size-checkbox) var(--color-radio-active-hover), var(--shadow-form-checked-hover);
129
border: var(--border-checkbox-checked-hover);
130
color: var(--color-radio-active-hover-text);
131
}
132
133
input[type="radio"]:not(.switch):checked:hover::after {
134
background: var(--color-radio-active-hover-text);
135
}
136
137
input[type="radio"]:not(.switch):checked::after {
138
/* Position directly on top of the checkbox */
139
position: absolute;
140
width: var(--size-checkbox);
141
height: var(--size-checkbox);
142
content: "";
143
background: var(--color-radio-active-text);
144
/* Display the checkmark */
145
-webkit-mask: url("./icons/radio.svg");
146
mask: url("./icons/radio.svg");
147
}
148
149
label:has(input[type="radio"]) {
150
display: inline-flex; /* So they are aligned */
151
gap: var(--gap-label-checkbox);
152
align-items: center;
153
cursor: pointer; /* a11y */
154
}
155
156
/* Checkbox - switch style */
157
158
:is(input[type="checkbox"], input[type=radio]).switch {
159
appearance: none;
160
width: var(--width-switch);
161
height: var(--height-switch);
162
background: var(--color-switch);
163
border-radius: var(--radius-switch);
164
cursor: pointer;
165
display: flex;
166
align-items: center;
167
justify-content: flex-start;
168
}
169
170
:is(input[type="checkbox"], input[type=radio]).switch:checked {
171
background: var(--color-switch-on);
172
border-radius: var(--radius-switch);
173
cursor: pointer;
174
display: flex;
175
align-items: center;
176
justify-content: flex-start;
177
}
178
179
:is(input[type="checkbox"], input[type=radio]).switch::after {
180
background: var(--color-switch-thumb);
181
box-shadow: var(--shadow-switch-thumb);
182
content: "";
183
width: var(--width-switch-thumb);
184
height: var(--height-switch-thumb);
185
border-radius: var(--radius-switch-thumb);
186
transform: translateX(calc(var(--padding-switch-thumb)));
187
}
188
189
:is(input[type="checkbox"], input[type=radio]).switch:checked::after {
190
background-color: var(--color-switch-thumb-on);
191
box-shadow: var(--shadow-switch-thumb-on);
192
border: var(--border-switch-thumb-on);
193
transform: translateX(calc(var(--width-switch) - var(--width-switch-thumb-on) - var(--padding-switch-thumb-on)));
194
border-radius: var(--radius-switch-thumb-on);
195
}
196
197
:is(input[type="checkbox"], input[type=radio]).switch:hover {
198
background-color: var(--color-switch-hover);
199
box-shadow: var(--shadow-switch-hover);
200
border: var(--border-switch-hover);
201
}
202
203
:is(input[type="checkbox"], input[type=radio]).switch:hover::after {
204
background-color: var(--color-switch-thumb-hover);
205
box-shadow: var(--shadow-switch-thumb-hover);
206
border: var(--border-switch-thumb-hover);
207
width: var(--width-switch-thumb-hover);
208
height: var(--height-switch-thumb-hover);
209
}
210
211
:is(input[type="checkbox"], input[type=radio]).switch:checked:hover {
212
background-color: var(--color-switch-on-hover);
213
box-shadow: var(--shadow-switch-on-hover);
214
border: var(--border-switch-on-hover);
215
}
216
217
:is(input[type="checkbox"], input[type=radio]).switch:checked:hover::after {
218
background-color: var(--color-switch-thumb-on-hover);
219
box-shadow: var(--shadow-switch-thumb-on-hover);
220
border: var(--border-switch-thumb-on-hover);
221
width: var(--width-switch-thumb-on-hover);
222
height: var(--height-switch-thumb-on-hover);
223
}
224