summaryrefslogtreecommitdiff
path: root/src/components/Switch.module.scss
blob: 835de87ba97ec872eeccbb5ae1b00f04fb2d7612 (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
50
// steal from https://codepen.io/joshnh/pen/hjbuH

$white: #fff;
// $green: #53d76a;
$grey: #d3d3d3;
$color-theme: #047aff;

input.switch[type='checkbox'] {
  appearance: none;
  outline: none;
  background-color: darken($white, 2%);
  border: 1px solid $grey;
  border-radius: 26px;
  box-shadow: inset 0 0 0 1px $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: $white;
    border: 1px solid $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: $color-theme;
    box-shadow: inset 0 0 0 13px $color-theme;
    padding-left: 18px;
    transition: border 0.25s, box-shadow 0.25s, padding 0.25s 0.15s;

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