Simple Toggle Switch
A Pen by Saminou yengue kizidi on CodePen.
| <body> | |
| <div class="container"> | |
| <label class="switch"> | |
| <input type="checkbox" class="switch-input"> | |
| <span class="switch-label" data-on="On" data-off="Off"></span> | |
| <span class="switch-handle"></span> | |
| </label> | |
| <label class="switch"> | |
| <input type="checkbox" class="switch-input" checked> | |
| <span class="switch-label" data-on="On" data-off="Off"></span> | |
| <span class="switch-handle"></span> | |
| </label> | |
| <label class="switch switch-green"> | |
| <input type="checkbox" class="switch-input" checked> | |
| <span class="switch-label" data-on="On" data-off="Off"></span> | |
| <span class="switch-handle"></span> | |
| </label> | |
| </div> |
| /******************************************* | |
| ***** Simple Toggle Switch ***** | |
| ******************************************** | |
| ******************************************** | |
| ***** Orginal PSD by ***** | |
| ***** Luke Etheridge ***** | |
| ******************************************** | |
| ****************************************** | |
| **************************************************** | |
| ************************************************************** | |
| ************************************************************************ | |
| ***** http://dribbble.com/shots/1003682-Simple-Toggle-Switch-PSD ***** | |
| ************************************************************************ | |
| ************************************************************** | |
| **************************************************** | |
| ****************************************** |
Simple Toggle Switch
A Pen by Saminou yengue kizidi on CodePen.
| html, body, div, span, applet, object, iframe, | |
| h1, h2, h3, h4, h5, h6, p, blockquote, pre, | |
| a, abbr, acronym, address, big, cite, code, | |
| del, dfn, em, img, ins, kbd, q, s, samp, | |
| small, strike, strong, sub, sup, tt, var, | |
| b, u, i, center, | |
| dl, dt, dd, ol, ul, li, | |
| fieldset, form, label, legend, | |
| table, caption, tbody, tfoot, thead, tr, th, td, | |
| article, aside, canvas, details, embed, | |
| figure, figcaption, footer, header, hgroup, | |
| menu, nav, output, ruby, section, summary, | |
| time, mark, audio, video { | |
| margin: 0; | |
| padding: 0; | |
| border: 0; | |
| font-size: 100%; | |
| font: inherit; | |
| vertical-align: baseline; | |
| } | |
| article, aside, details, figcaption, figure, | |
| footer, header, hgroup, menu, nav, section { | |
| display: block; | |
| } | |
| body { | |
| line-height: 1; | |
| } | |
| ol, ul { | |
| list-style: none; | |
| } | |
| blockquote, q { | |
| quotes: none; | |
| } | |
| blockquote:before, blockquote:after, | |
| q:before, q:after { | |
| content: ''; | |
| content: none; | |
| } | |
| /* | |
| * Copyright (c) 2013 Thibaut Courouble | |
| * http://www.cssflow.com | |
| * | |
| * Licensed under the MIT License: | |
| * http://www.opensource.org/licenses/mit-license.php | |
| */ | |
| body { | |
| font: 13px/20px 'Helvetica Neue', Helvetica, Arial, sans-serif; | |
| color: #404040; | |
| background: white; | |
| } | |
| .container { | |
| margin: 50px auto; | |
| width: 280px; | |
| text-align: center; | |
| } | |
| .container > .switch { | |
| display: block; | |
| margin: 12px auto; | |
| } | |
| .switch { | |
| position: relative; | |
| display: inline-block; | |
| vertical-align: top; | |
| width: 56px; | |
| height: 20px; | |
| padding: 3px; | |
| background-color: white; | |
| border-radius: 18px; | |
| box-shadow: inset 0 -1px white, inset 0 1px 1px rgba(0, 0, 0, 0.05); | |
| cursor: pointer; | |
| background-image: -webkit-linear-gradient(top, #eeeeee, white 25px); | |
| background-image: -moz-linear-gradient(top, #eeeeee, white 25px); | |
| background-image: -o-linear-gradient(top, #eeeeee, white 25px); | |
| background-image: linear-gradient(to bottom, #eeeeee, white 25px); | |
| } | |
| .switch-input { | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| opacity: 0; | |
| } | |
| .switch-label { | |
| position: relative; | |
| display: block; | |
| height: inherit; | |
| font-size: 10px; | |
| text-transform: uppercase; | |
| background: #eceeef; | |
| border-radius: inherit; | |
| box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.12), inset 0 0 2px rgba(0, 0, 0, 0.15); | |
| -webkit-transition: 0.15s ease-out; | |
| -moz-transition: 0.15s ease-out; | |
| -o-transition: 0.15s ease-out; | |
| transition: 0.15s ease-out; | |
| -webkit-transition-property: opacity background; | |
| -moz-transition-property: opacity background; | |
| -o-transition-property: opacity background; | |
| transition-property: opacity background; | |
| } | |
| .switch-label:before, .switch-label:after { | |
| position: absolute; | |
| top: 50%; | |
| margin-top: -.5em; | |
| line-height: 1; | |
| -webkit-transition: inherit; | |
| -moz-transition: inherit; | |
| -o-transition: inherit; | |
| transition: inherit; | |
| } | |
| .switch-label:before { | |
| content: attr(data-off); | |
| right: 11px; | |
| color: #aaa; | |
| text-shadow: 0 1px rgba(255, 255, 255, 0.5); | |
| } | |
| .switch-label:after { | |
| content: attr(data-on); | |
| left: 11px; | |
| color: white; | |
| text-shadow: 0 1px rgba(0, 0, 0, 0.2); | |
| opacity: 0; | |
| } | |
| .switch-input:checked ~ .switch-label { | |
| background: #47a8d8; | |
| box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15), inset 0 0 3px rgba(0, 0, 0, 0.2); | |
| } | |
| .switch-input:checked ~ .switch-label:before { | |
| opacity: 0; | |
| } | |
| .switch-input:checked ~ .switch-label:after { | |
| opacity: 1; | |
| } | |
| .switch-handle { | |
| position: absolute; | |
| top: 4px; | |
| left: 4px; | |
| width: 18px; | |
| height: 18px; | |
| background: white; | |
| border-radius: 10px; | |
| box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.2); | |
| background-image: -webkit-linear-gradient(top, white 40%, #f0f0f0); | |
| background-image: -moz-linear-gradient(top, white 40%, #f0f0f0); | |
| background-image: -o-linear-gradient(top, white 40%, #f0f0f0); | |
| background-image: linear-gradient(to bottom, white 40%, #f0f0f0); | |
| -webkit-transition: left 0.15s ease-out; | |
| -moz-transition: left 0.15s ease-out; | |
| -o-transition: left 0.15s ease-out; | |
| transition: left 0.15s ease-out; | |
| } | |
| .switch-handle:before { | |
| content: ''; | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| margin: -6px 0 0 -6px; | |
| width: 12px; | |
| height: 12px; | |
| background: #f9f9f9; | |
| border-radius: 6px; | |
| box-shadow: inset 0 1px rgba(0, 0, 0, 0.02); | |
| background-image: -webkit-linear-gradient(top, #eeeeee, white); | |
| background-image: -moz-linear-gradient(top, #eeeeee, white); | |
| background-image: -o-linear-gradient(top, #eeeeee, white); | |
| background-image: linear-gradient(to bottom, #eeeeee, white); | |
| } | |
| .switch-input:checked ~ .switch-handle { | |
| left: 40px; | |
| box-shadow: -1px 1px 5px rgba(0, 0, 0, 0.2); | |
| } | |
| .switch-green > .switch-input:checked ~ .switch-label { | |
| background: #4fb845; | |
| } |