/* steal from https://codepen.io/joshnh/pen/hjbuH */ input.switch[type='checkbox'] { --white: #fff; --grey: #d3d3d3; --color-theme: #047aff; appearance: none; outline: none; background-color: darken(var(--white), 2%); border: 1px solid var(--grey); border-radius: 26px; box-shadow: inset 0 0 0 1px var(--grey); cursor: pointer; height: 28px; position: relative; transition: border 0.25s 0.15s, box-shadow 0.25s 0.3s, padding 0.25s; width: 44px; vertical-align: top; &:after { background-color: var(--white); border: 1px solid var(--grey); border-radius: 24px; box-shadow: inset 0 -3px 3px hsla(0, 0%, 0%, 0.025), 0 1px 4px hsla(0, 0%, 0%, 0.15), 0 4px 4px hsla(0, 0%, 0%, 0.1); content: ''; display: block; height: 26px; left: 0; position: absolute; right: 16px; top: 0; transition: border 0.25s 0.15s, left 0.25s 0.1s, right 0.15s 0.175s; } &:checked { border-color: var(--color-theme); box-shadow: inset 0 0 0 13px var(--color-theme); padding-left: 18px; transition: border 0.25s, box-shadow 0.25s, padding 0.25s 0.15s; &:after { border-color: var(--color-theme); left: 16px; right: 0; transition: border 0.25s, left 0.15s 0.25s, right 0.25s 0.175s; } } }