Colorful Toggle Switches
Html
<div class="toggle-wrapper red">
<input class="toggle-checkbox" type="checkbox">
<div class="toggle-container">
<div class="toggle-ball"></div>
</div>
</div>
<div class="toggle-wrapper yellow">
<input class="toggle-checkbox" type="checkbox">
<div class="toggle-container">
<div class="toggle-ball"></div>
</div>
</div>
<div class="toggle-wrapper blue">
<input class="toggle-checkbox" type="checkbox">
<div class="toggle-container">
<div class="toggle-ball"></div>
</div>
</div>
Css
* {
margin: 0;
padding: 0;
box-sizing: border-box;
-webkit-tap-highlight-color: transparent;
outline: 1px solid transparent;
}
body {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 8px;
min-height: 100vh;
// resize for demo
font-size: 2em;
}
.toggle-wrapper {
display: inline-block;
position: relative;
border-radius: 3.125em;
overflow: hidden;
}
.toggle-checkbox {
-webkit-appearance: none;
appearance: none;
position: absolute;
z-index: 1;
top: 0;
left: 0;
width: 100%;
height: 100%;
cursor: pointer;
}
.toggle-container {
display: flex;
position: relative;
border-radius: inherit;
width: 2.5em;
height: 1.25em;
background-color: #d1d4dc;
box-shadow:
inset .0625em 0 0 #d4d2de,
inset -.0625em 0 0 #d4d2de,
inset .125em .25em .125em .25em #b5b5c3;
mask-image: radial-gradient(#fff, #000);
transition: all .4s;
.toggle-wrapper.red > .toggle-checkbox:checked + & {
background-color: #f5233c;
box-shadow:
inset .0625em 0 0 #f5233c,
inset -.0625em 0 0 #f5233c,
inset .125em .25em .125em .25em #d70026;
}
.toggle-wrapper.yellow > .toggle-checkbox:checked + & {
background-color: #fbc433;
box-shadow:
inset .0625em 0 0 #fbc433,
inset -.0625em 0 0 #fbc433,
inset .125em .25em .125em .25em #ee9902;
}
.toggle-wrapper.blue > .toggle-checkbox:checked + & {
background-color: #4588ff;
box-shadow:
inset .0625em 0 0 #4588ff,
inset -.0625em 0 0 #4588ff,
inset .125em .25em .125em .25em #3952f3;
}
}
.toggle-ball {
position: relative;
border-radius: 50%;
width: 1.25em;
height: 1.25em;
background-image:
radial-gradient(rgba(#fff, .6), rgba(#fff, 0) 16%),
radial-gradient(#d2d4dc, #babac2);
background-position: -.25em -.25em;
background-size: auto, calc(100% + .25em) calc(100% + .25em);
background-repeat: no-repeat;
box-shadow:
.25em .25em .25em #8d889e,
inset .0625em .0625em .25em #d1d1d6,
inset -.0625em -.0625em .25em #8c869e;
transition: transform .4s, box-shadow .4s;
&::after {
content: '';
position: absolute;
top: 0;
left: 0;
border-radius: 50%;
width: 100%;
height: 100%;
background-position: -.25em -.25em;
background-size: auto, calc(100% + .25em) calc(100% + .25em);
background-repeat: no-repeat;
opacity: 0;
transition: opacity .4s;
.toggle-wrapper.red > .toggle-container > & {
background-image:
radial-gradient(rgba(#fff, .6), rgba(#fff, 0) 16%),
radial-gradient(#ff2751, #e0022f);
box-shadow:
.25em .25em .25em #b70033,
inset .0625em .0625em .25em #fe7d7e,
inset -.0625em -.0625em .25em #870002;
}
.toggle-wrapper.yellow > .toggle-container > & {
background-image:
radial-gradient(rgba(#fff, .6), rgba(#fff, 0) 16%),
radial-gradient(#f5d05f, #d67f1b);
box-shadow:
.25em .25em .25em #bc6d00,
inset .0625em .0625em .25em #fff27a,
inset -.0625em -.0625em .25em #9f3901;
}
.toggle-wrapper.blue > .toggle-container > & {
background-image:
radial-gradient(rgba(#fff, .6), rgba(#fff, 0) 16%),
radial-gradient(#419efe, #4ba2ff);
box-shadow:
.25em .25em .25em #2634d0,
inset .0625em .0625em .25em #8dd5ff,
inset -.0625em -.0625em .25em #1500ac;
}
}
.toggle-wrapper > .toggle-checkbox:checked + .toggle-container > &::after {
opacity: 1;
}
.toggle-checkbox:checked + .toggle-container > & {
transform: translateX(100%);
}
}
Js
ثبت نظر خود
برای ثبت نظر باید ابتدا وارد حساب کاربری خود شوید.
ورود یا ثبت نامنظری ثبت نشده است