Skip to content

Instantly share code, notes, and snippets.

Last active July 29, 2020 02:21
What would you like to do?
Neumorphic Toggle
<label class="label">
<div class="toggle">
<input class="toggle-state" type="checkbox" name="check" value="check" />
<div class="indicator"></div>
<div class="label-text">no more emails plz</div>
body {
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
font-family: 'IBM Plex Sans Condensed', sans-serif;
font-weight: 300;
background-color: #ecf0f3;
.label {
display: inline-flex;
align-items: center;
cursor: pointer;
color: #394a56;
.label-text {
margin-left: 16px;
.toggle {
isolation: isolate;
position: relative;
height: 30px;
width: 60px;
border-radius: 15px;
overflow: hidden;
-8px -4px 8px 0px #ffffff,
8px 4px 12px 0px #d1d9e6,
4px 4px 4px 0px #d1d9e6 inset,
-4px -4px 4px 0px #ffffff inset;
.toggle-state {
display: none;
.indicator {
height: 100%;
width: 200%;
background: #ecf0f3;
border-radius: 15px;
transform: translate3d(-75%, 0, 0);
transition: transform 0.4s cubic-bezier(0.85, 0.05, 0.18, 1.35);
-8px -4px 8px 0px #ffffff,
8px 4px 12px 0px #d1d9e6;
.toggle-state:checked ~ .indicator {
transform: translate3d(25%, 0, 0);
<link href=";display=swap" rel="stylesheet" />
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment