galaxy/Toggle-switches/BurgiSimon_breezy-donkey-2.html

120 lines
No EOL
2.2 KiB
HTML

<label class="switch">
<input type="checkbox" />
<span class="slider"></span>
</label>
<style>
/* From Uiverse.io by BurgiSimon - Tags: simple, animation, red, green, switch, animated, css, toggle switch */
/* The switch - the box around the slider */
.switch {
font-size: 17px;
position: relative;
display: inline-block;
width: 4.5em;
height: 2em;
}
/* Hide default HTML checkbox */
.switch input {
opacity: 0;
width: 0;
height: 0;
}
/* The slider */
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ff3636;
transition: 0.1s;
transition-delay: 0.2s;
border-radius: 30px;
}
.slider:before {
position: absolute;
content: "";
height: 1.4em;
width: 1.4em;
border-radius: 20px;
left: 0.3em;
bottom: 0.3em;
background-color: white;
transition-delay: 0.2s;
transition: 0.1s;
}
.switch input:checked + .slider {
transition-delay: 0.2s;
background-color: #00c763;
}
.switch input:focus + .slider {
transition-delay: 0.2s;
box-shadow: 0 0 1px #00c763;
}
.switch input:checked + .slider:before {
transform: translateX(2.5em);
transition-delay: 0.2s;
transition-duration: 0.1s;
}
/* Animation Right */
@keyframes slideRight {
0% {
transform: translateX(0) translateY(0);
}
20% {
transform: translateX(0.5em) translateY(-1.5em);
}
40% {
transform: translateX(1em) translateY(-1.75em); /* Highest Point */
}
60% {
transform: translateX(1.5em) translateY(-1.5em);
}
80% {
transform: translateX(2em) translateY(-1.25em);
}
100% {
transform: translateX(2.5em) translateY(0);
}
}
/* Slide Animation Left */
@keyframes slideLeft {
0% {
transform: translateX(2.5em) translateY(0);
}
20% {
transform: translateX(2em) translateY(-0.25em);
}
40% {
transform: translateX(1.5em) translateY(-0.5em); /* Highest Point */
}
60% {
transform: translateX(1em) translateY(-0.75em);
}
80% {
transform: translateX(0.5em) translateY(-0.5em);
}
100% {
transform: translateX(0) translateY(0);
}
}
.switch input:checked + .slider:before {
animation: slideRight 0.15s forwards;
}
.switch input:not(:checked) + .slider:before {
animation: slideLeft 0.15s forwards;
}
</style>