Animated Checkbox with CSS3 Powered Animation

Category: CSS & CSS3 , Form | June 11, 2014
Authortheigmo87
Last UpdateJune 11, 2014
LicenseMIT
Views13,353 views
Animated Checkbox with CSS3 Powered Animation

An animated checkbox made by Jimmy Gillam that animates the ‘check’ action using CSS3 transforms and keyframe animations. Only an input and a label, and no javascript needed! Or without an input, just add the class “checked” to start the animation. Tested with: IE9+, Chrome, FF

How to use it:

Create an input and a label for the animated checkbox.

<input type="checkbox" id="cbtest" />
<label for="cbtest" class="check-box"></label>

The CSS/CSS3 rules.

@-moz-keyframes 
dothabottomcheck {  0% {
 height: 0;
}
 100% {
 height: 50px;
}
}
@-webkit-keyframes 
dothabottomcheck {  0% {
 height: 0;
}
 100% {
 height: 50px;
}
}
@keyframes 
dothabottomcheck {  0% {
 height: 0;
}
 100% {
 height: 50px;
}
}
@keyframes 
dothatopcheck {  0% {
 height: 0;
}
 50% {
 height: 0;
}
 100% {
 height: 120px;
}
}
@-webkit-keyframes 
dothatopcheck {  0% {
 height: 0;
}
 50% {
 height: 0;
}
 100% {
 height: 120px;
}
}
@-moz-keyframes 
dothatopcheck {  0% {
 height: 0;
}
 50% {
 height: 0;
}
 100% {
 height: 120px;
}
}
input[type=checkbox] { display: none; }
.check-box {
  height: 100px;
  width: 100px;
  background-color: transparent;
  border: 10px solid black;
  border-radius: 5px;
  position: relative;
  display: inline-block;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  -moz-transition: border-color ease 0.2s;
  -o-transition: border-color ease 0.2s;
  -webkit-transition: border-color ease 0.2s;
  transition: border-color ease 0.2s;
  cursor: pointer;
}
.check-box::before,
.check-box::after {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  position: absolute;
  height: 0;
  width: 20px;
  background-color: #34b93d;
  display: inline-block;
  -moz-transform-origin: left top;
  -ms-transform-origin: left top;
  -o-transform-origin: left top;
  -webkit-transform-origin: left top;
  transform-origin: left top;
  border-radius: 5px;
  content: ' ';
  -webkit-transition: opacity ease .5;
  -moz-transition: opacity ease .5;
  transition: opacity ease .5;
}
.check-box::before {
  top: 72px;
  left: 41px;
  box-shadow: 0 0 0 5px #667788;
  -moz-transform: rotate(-135deg);
  -ms-transform: rotate(-135deg);
  -o-transform: rotate(-135deg);
  -webkit-transform: rotate(-135deg);
  transform: rotate(-135deg);
}
.check-box::after {
  top: 37px;
  left: 5px;
  -moz-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
}
input[type=checkbox]:checked + .check-box,
.check-box.checked { border-color: #34b93d; }
input[type=checkbox]:checked + .check-box::after,
.check-box.checked::after {
  height: 50px;
  -moz-animation: dothabottomcheck 0.2s ease 0s forwards;
  -o-animation: dothabottomcheck 0.2s ease 0s forwards;
  -webkit-animation: dothabottomcheck 0.2s ease 0s forwards;
  animation: dothabottomcheck 0.2s ease 0s forwards;
}
input[type=checkbox]:checked + .check-box::before,
.check-box.checked::before {
  height: 120px;
  -moz-animation: dothatopcheck 0.4s ease 0s forwards;
  -o-animation: dothatopcheck 0.4s ease 0s forwards;
  -webkit-animation: dothatopcheck 0.4s ease 0s forwards;
  animation: dothatopcheck 0.4s ease 0s forwards;
}

You Might Be Interested In:


Leave a Reply