blob: ae8c2765fa07250bc94de9d4c7dab451b2b536e5 [file] [log] [blame]
@mixin marginTransition {
-webkit-transition: margin 0.4s, background 0.4s;
-moz-transition: margin 0.4s, background 0.4s;
-o-transition: margin 0.4s, background 0.4s;
transition: margin 0.4s, background 0.4s;
}
@mixin borderRadius {
-webkit-border-radius: 60px;
-moz-border-radius: 60px;
border-radius: 60px;
}
.toggle-switch {
position: absolute;
left: 20px;
height: 1px;
width: 1px;
opacity: 0;
}
.toggle-switch + label {
display: block;
position: relative;
cursor: pointer;
outline: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.toggle label {
text-indent: -9999px;
transform: translateY(-50%); // keeps switch centered
}
input.toggle-switch__round-flat + label {
padding: 2px;
width: 50px;
height: 30px;
background-color: $border-color-02;
@include borderRadius;
@include marginTransition;
}
input.toggle-switch__round-flat:focus + label {
box-shadow: 0 0 4px 4px $primary-accent;
}
input.toggle-switch__round-flat + label:before, input.toggle-switch__round-flat + label:after {
display: block;
position: absolute;
content: "";
}
input.toggle-switch__round-flat + label:before {
top: 2px;
left: 2px;
bottom: 2px;
right: 2px;
background-color: $primary-light;
@include borderRadius;
@include marginTransition;
}
input.toggle-switch__round-flat + label:after {
top: 4px;
left: 4px;
bottom: 4px;
width: 20px;
background-color: $border-color-02;
-webkit-border-radius: 52px;
-moz-border-radius: 52px;
border-radius: 52px;
@include marginTransition;
}
input.toggle-switch__round-flat:checked + label {
background-color: $primary-accent;
}
input.toggle-switch__round-flat:checked + label:before {
background-color: $background-02;
}
input.toggle-switch__round-flat:checked + label:after {
margin-left: 20px;
background-color: $primary-accent;
}