Pure CSS Shiny animated checkboxes

Instead of creating a directive or jquery plugin, creating a silky looking checkbox can simply be done using :checked + whatever {}

by robhortn

HTML

<label class="switch"><input type="checkbox" checked><i></i> Boston</label>
    <br/><br/>
<label class="switch"><input type="checkbox"><i></i> St Louis</label>

CSS

.switch input {
    display: none;
}
.switch i {
    display: inline-block;
    cursor: pointer;
    padding-right: 20px;
    transition: all ease 0.2s;
    -webkit-transition: all ease 0.2s;
    border-radius: 20px;
    box-shadow: inset 0 0 1px rgba(0,0,0,.5);
}
.switch i:before {
    display: block;
    content: '';
    width: 20px;
    height: 20px;
    border-radius: 20px;
    background: white;
    box-shadow: 0 1px 2px rgba(0,0,0,.5);
}
.switch :checked + i {
    padding-right: 0;
    padding-left: 20px;
    box-shadow: inset 0 0 1px rgba(0,0,0,.5), inset 0 0 40px #64BD63;
    -webkit-box-shadow: inset 0 0 1px rgba(0,0,0,.5), inset 0 0 40px #64BD63;
}