summaryrefslogtreecommitdiff
path: root/src/components/Switch.module.css
blob: 2199c743a8bd2b1e5ae0d5e58d2ed6c4c3be00ab (plain)
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
43
44
45
46
47
48
49
/* steal from https://codepen.io/joshnh/pen/hjbuH */

input.switch[type='checkbox'] {
  --white: #fff;
  --grey: #d3d3d3;
  --color-theme: #047aff;

  appearance: none;
  outline: none;
  background-color: darken(var(--white), 2%);
  border: 1px solid var(--grey);
  border-radius: 26px;
  box-shadow: inset 0 0 0 1px var(--grey);
  cursor: pointer;
  height: 28px;
  position: relative;
  transition: border 0.25s 0.15s, box-shadow 0.25s 0.3s, padding 0.25s;
  width: 44px;
  vertical-align: top;

  &:after {
    background-color: var(--white);
    border: 1px solid var(--grey);
    border-radius: 24px;
    box-shadow: inset 0 -3px 3px hsla(0, 0%, 0%, 0.025),
      0 1px 4px hsla(0, 0%, 0%, 0.15), 0 4px 4px hsla(0, 0%, 0%, 0.1);
    content: '';
    display: block;
    height: 26px;
    left: 0;
    position: absolute;
    right: 16px;
    top: 0;
    transition: border 0.25s 0.15s, left 0.25s 0.1s, right 0.15s 0.175s;
  }
  &:checked {
    border-color: var(--color-theme);
    box-shadow: inset 0 0 0 13px var(--color-theme);
    padding-left: 18px;
    transition: border 0.25s, box-shadow 0.25s, padding 0.25s 0.15s;

    &:after {
      border-color: var(--color-theme);
      left: 16px;
      right: 0;
      transition: border 0.25s, left 0.15s 0.25s, right 0.25s 0.175s;
    }
  }
}