Works best in Chrome.
A Pen by Joshua Hibbert on CodePen.
| <hr> | |
| <input type="checkbox" checked> | |
| <hr> | |
| <input type="checkbox"> | |
| <hr> | |
| <input type="checkbox" checked> | |
| <hr> |
Works best in Chrome.
A Pen by Joshua Hibbert on CodePen.
| <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> |
| @import "compass/css3"; | |
| html { | |
| padding: 100px; | |
| text-align: center; | |
| } | |
| hr { | |
| background-color: #ccc; | |
| border: 0; | |
| height: 1px; | |
| margin: 8px; | |
| } | |
| $white: #fff; | |
| $green: #53d76a; | |
| $grey: #d3d3d3; | |
| input[type="checkbox"] { | |
| appearance: none; | |
| background-color: darken($white, 2%); | |
| border: 1px solid $grey; | |
| border-radius: 26px; | |
| box-shadow: inset 0 0 0 1px $grey; | |
| cursor: pointer; | |
| height: 28px; | |
| position: relative; | |
| transition: border .25s .15s, | |
| box-shadow .25s .3s, | |
| padding .25s; | |
| width: 44px; | |
| vertical-align: top; | |
| &:after { | |
| background-color: $white; | |
| border: 1px solid $grey; | |
| border-radius: 24px; | |
| box-shadow: inset 0 -3px 3px hsla(0,0%,0%,.025), | |
| 0 1px 4px hsla(0,0%,0%,.15), | |
| 0 4px 4px hsla(0,0%,0%,.1); | |
| content: ''; | |
| display: block; | |
| height: 24px; | |
| left: 0; | |
| position: absolute; | |
| right: 16px; | |
| top: 0; | |
| transition: border .25s .15s, | |
| left .25s .1s, | |
| right .15s .175s; | |
| } | |
| &:checked { | |
| border-color: $green; | |
| box-shadow: inset 0 0 0 13px $green; | |
| padding-left: 18px; | |
| transition: border .25s, | |
| box-shadow .25s, | |
| padding .25s .15s; | |
| &:after { | |
| border-color: $green; | |
| left: 16px; | |
| right: 0; | |
| transition: border .25s, | |
| left .15s .25s, | |
| right .25s .175s; | |
| } | |
| } | |
| } |