Css Toggle Button
by amindunited
HTML
<div class="container">
<h1>
Toggle Button
</h1>
<div class="grid">
<div class="toggle">
<div class="toggle-background">
</div>
<div class="toggle-button">
</div>
</div>
</div>
</div>
CSS
* {
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica,
Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
background-color: #ededed;
}
.container {
margin: 15px;
padding: 15px;
background-color: white;
border-radius: 3px;
border: solid 1px gray;
}
.grid {
display: grid;
}
.toggle {
position: relative;
display: block;
width: 24px;
height: 16px;
}
.toggle-background {
width: 100%;
height: 50%;
background-color: #8b0000;
transition: background-color 200ms linear;
border-radius: 4px;
margin: 4px;
margin-left: 4px;
margin-right: 4px;
}
.toggle .toggle-button {
transition: left 200ms ease-in-out, background-color 200ms linear;
border-radius: 50%;
position: absolute;
top: 0px;
left: 0%;
width: 16px;
height: 16px;
border: solid 1px darkgray;
background-color: #e1e1e1;
}
.toggle.on .toggle-background {
background-color: #90ee90;
}
.toggle.on .toggle-button {
/* transition: left 200ms ease-in-out, background-color 1200ms linear; */
left: calc(100% - 8px);
border: solid 1px gray;
background-color: #88e1e1;
}
JavaScript
const toggle = document.querySelector('.toggle');
toggle.addEventListener('click', (e) => {
console.log('e? ', e);
toggle.classList.toggle('on');
});