@keyframes a {
0% {
border-color: silver
}
to {
border-color: #3e97eb
}
}
.magic-checkbox,
.magic-radio {
position: absolute;
opacity: 0
}
.magic-checkbox[disabled],
.magic-radio[disabled] {
cursor: not-allowed
}
.magic-checkbox+label,
.magic-radio+label {
position: relative;
display: block;
padding-left: 30px;
cursor: pointer;
vertical-align: middle
}
.magic-checkbox+label:hover:before,
.magic-radio+label:hover:before {
animation-duration: .4s;
animation-fill-mode: both;
animation-name: a
}
.magic-checkbox+label:before,
.magic-radio+label:before {
position: absolute;
top: 0;
left: 0;
display: inline-block;
width: 20px;
height: 20px;
content: '';
border: 1px solid silver
}
.magic-checkbox+label:after,
.magic-radio+label:after {
position: absolute;
display: none;
content: ''
}
.magic-checkbox[disabled]+label,
.magic-radio[disabled]+label {
cursor: not-allowed;
color: #e4e4e4
}
.magic-checkbox[disabled]+label:after,
.magic-checkbox[disabled]+label:before,
.magic-checkbox[disabled]+label:hover,
.magic-radio[disabled]+label:after,
.magic-radio[disabled]+label:before,
.magic-radio[disabled]+label:hover {
cursor: not-allowed
}
.magic-checkbox[disabled]+label:hover:before,
.magic-radio[disabled]+label:hover:before {
border: 1px solid #e4e4e4;
animation-name: none
}
.magic-checkbox[disabled]+label:before,
.magic-radio[disabled]+label:before {
border-color: #e4e4e4
}
.magic-checkbox:checked+label:before,
.magic-radio:checked+label:before {
animation-name: none
}
.magic-checkbox:checked+label:after,
.magic-radio:checked+label:after {
display: block
}
.magic-radio+label:before {
border-radius: 50%
}
.magic-radio+label:after {
top: 6px;
left: 6px;
width: 8px;
height: 8px;
border-radius: 50%;
background: #3e97eb
}
.magic-radio:checked+label:before {
border: 1px solid #3e97eb
}
.magic-radio:checked[disabled]+label:before {
border: 1px solid #c9e2f9
}
.magic-radio:checked[disabled]+label:after {
background: #c9e2f9
}
.magic-checkbox+label:before {
border-radius: 3px
}
.magic-checkbox+label:after {
top: 2px;
left: 7px;
box-sizing: border-box;
width: 6px;
height: 12px;
transform: rotate(45deg);
border: 2px solid #fff;
border-top: 0;
border-left: 0
}
.magic-checkbox:checked+label:before {
border: #3e97eb;
background: #3e97eb
}
.magic-checkbox:checked[disabled]+label:before {
border: #c9e2f9;
background: #c9e2f9
}