-
Notifications
You must be signed in to change notification settings - Fork 0
/
toggle.css
42 lines (37 loc) · 817 Bytes
/
toggle.css
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
input:is([type="checkbox"], [type="radio"])[data-toggle] {
appearance: none;
position: relative;
display: inline-grid;
align-items: center;
padding: 0 0.75em;
background: var(--col-bg);
height: 1.65em;
width: 2.75em;
border-radius: 2em;
vertical-align: sub;
&:not([disabled], [aria-disabled]) {
cursor: pointer;
}
&::before {
content: "";
width: 1em;
height: 1em;
background: var(--col-fg);
border-radius: 1.2em;
top: 0.2em;
left: 0.2em;
transition: 0.1s ease-out transform, 0.1s ease-out background;
transform: translateX(-0.5em);
}
&:checked::before {
transform: translateX(0.5em);
background: var(--col-accent);
}
&:focus-visible {
outline: 0.125rem solid dodgerblue;
outline-offset: 0.125rem;
}
&:is([disabled], [aria-disabled]) {
filter: contrast(0.5);
}
}