Usage
HTML
<div class="la-ball-atom">
<div></div>
<div></div>
<div></div>
<div></div>
</div>
CSS
/*!
* Load Awesome v1.1.0 (http://github.danielcardoso.net/load-awesome/)
* Copyright 2015 Daniel Cardoso <@DanielCardoso>
* Licensed under MIT
*/
.la-ball-atom,
.la-ball-atom > div {
position: relative;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.la-ball-atom {
display: block;
font-size: 0;
color: #fff;
}
.la-ball-atom.la-dark {
color: #333;
}
.la-ball-atom > div {
display: inline-block;
float: none;
background-color: currentColor;
border: 0 solid currentColor;
}
.la-ball-atom {
width: 32px;
height: 32px;
}
.la-ball-atom > div:nth-child(1) {
position: absolute;
top: 50%;
left: 50%;
z-index: 1;
width: 60%;
height: 60%;
background: #aaa;
border-radius: 100%;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
-webkit-animation: ball-atom-shrink 4.5s infinite linear;
-moz-animation: ball-atom-shrink 4.5s infinite linear;
-o-animation: ball-atom-shrink 4.5s infinite linear;
animation: ball-atom-shrink 4.5s infinite linear;
}
.la-ball-atom > div:not(:nth-child(1)) {
position: absolute;
left: 0;
z-index: 0;
width: 100%;
height: 100%;
background: none;
-webkit-animation: ball-atom-zindex 1.5s 0s infinite steps(2, end);
-moz-animation: ball-atom-zindex 1.5s 0s infinite steps(2, end);
-o-animation: ball-atom-zindex 1.5s 0s infinite steps(2, end);
animation: ball-atom-zindex 1.5s 0s infinite steps(2, end);
}
.la-ball-atom > div:not(:nth-child(1)):before {
position: absolute;
top: 0;
left: 0;
width: 10px;
height: 10px;
margin-top: -5px;
margin-left: -5px;
content: "";
background: currentColor;
border-radius: 50%;
opacity: .75;
-webkit-animation: ball-atom-position 1.5s 0s infinite ease, ball-atom-size 1.5s 0s infinite ease;
-moz-animation: ball-atom-position 1.5s 0s infinite ease, ball-atom-size 1.5s 0s infinite ease;
-o-animation: ball-atom-position 1.5s 0s infinite ease, ball-atom-size 1.5s 0s infinite ease;
animation: ball-atom-position 1.5s 0s infinite ease, ball-atom-size 1.5s 0s infinite ease;
}
.la-ball-atom > div:nth-child(2) {
-webkit-animation-delay: .75s;
-moz-animation-delay: .75s;
-o-animation-delay: .75s;
animation-delay: .75s;
}
.la-ball-atom > div:nth-child(2):before {
-webkit-animation-delay: 0s, -1.125s;
-moz-animation-delay: 0s, -1.125s;
-o-animation-delay: 0s, -1.125s;
animation-delay: 0s, -1.125s;
}
.la-ball-atom > div:nth-child(3) {
-webkit-transform: rotate(120deg);
-moz-transform: rotate(120deg);
-ms-transform: rotate(120deg);
-o-transform: rotate(120deg);
transform: rotate(120deg);
-webkit-animation-delay: -.25s;
-moz-animation-delay: -.25s;
-o-animation-delay: -.25s;
animation-delay: -.25s;
}
.la-ball-atom > div:nth-child(3):before {
-webkit-animation-delay: -1s, -.75s;
-moz-animation-delay: -1s, -.75s;
-o-animation-delay: -1s, -.75s;
animation-delay: -1s, -.75s;
}
.la-ball-atom > div:nth-child(4) {
-webkit-transform: rotate(240deg);
-moz-transform: rotate(240deg);
-ms-transform: rotate(240deg);
-o-transform: rotate(240deg);
transform: rotate(240deg);
-webkit-animation-delay: .25s;
-moz-animation-delay: .25s;
-o-animation-delay: .25s;
animation-delay: .25s;
}
.la-ball-atom > div:nth-child(4):before {
-webkit-animation-delay: -.5s, -.125s;
-moz-animation-delay: -.5s, -.125s;
-o-animation-delay: -.5s, -.125s;
animation-delay: -.5s, -.125s;
}
.la-ball-atom.la-sm {
width: 16px;
height: 16px;
}
.la-ball-atom.la-sm > div:not(:nth-child(1)):before {
width: 4px;
height: 4px;
margin-top: -2px;
margin-left: -2px;
}
.la-ball-atom.la-2x {
width: 64px;
height: 64px;
}
.la-ball-atom.la-2x > div:not(:nth-child(1)):before {
width: 20px;
height: 20px;
margin-top: -10px;
margin-left: -10px;
}
.la-ball-atom.la-3x {
width: 96px;
height: 96px;
}
.la-ball-atom.la-3x > div:not(:nth-child(1)):before {
width: 30px;
height: 30px;
margin-top: -15px;
margin-left: -15px;
}
/*
* Animations
*/
@-webkit-keyframes ball-atom-position {
50% {
top: 100%;
left: 100%;
}
}
@-moz-keyframes ball-atom-position {
50% {
top: 100%;
left: 100%;
}
}
@-o-keyframes ball-atom-position {
50% {
top: 100%;
left: 100%;
}
}
@keyframes ball-atom-position {
50% {
top: 100%;
left: 100%;
}
}
@-webkit-keyframes ball-atom-size {
50% {
-webkit-transform: scale(.5, .5);
transform: scale(.5, .5);
}
}
@-moz-keyframes ball-atom-size {
50% {
-moz-transform: scale(.5, .5);
transform: scale(.5, .5);
}
}
@-o-keyframes ball-atom-size {
50% {
-o-transform: scale(.5, .5);
transform: scale(.5, .5);
}
}
@keyframes ball-atom-size {
50% {
-webkit-transform: scale(.5, .5);
-moz-transform: scale(.5, .5);
-o-transform: scale(.5, .5);
transform: scale(.5, .5);
}
}
@-webkit-keyframes ball-atom-zindex {
50% {
z-index: 10;
}
}
@-moz-keyframes ball-atom-zindex {
50% {
z-index: 10;
}
}
@-o-keyframes ball-atom-zindex {
50% {
z-index: 10;
}
}
@keyframes ball-atom-zindex {
50% {
z-index: 10;
}
}
@-webkit-keyframes ball-atom-shrink {
50% {
-webkit-transform: translate(-50%, -50%) scale(.8, .8);
transform: translate(-50%, -50%) scale(.8, .8);
}
}
@-moz-keyframes ball-atom-shrink {
50% {
-moz-transform: translate(-50%, -50%) scale(.8, .8);
transform: translate(-50%, -50%) scale(.8, .8);
}
}
@-o-keyframes ball-atom-shrink {
50% {
-o-transform: translate(-50%, -50%) scale(.8, .8);
transform: translate(-50%, -50%) scale(.8, .8);
}
}
@keyframes ball-atom-shrink {
50% {
-webkit-transform: translate(-50%, -50%) scale(.8, .8);
-moz-transform: translate(-50%, -50%) scale(.8, .8);
-o-transform: translate(-50%, -50%) scale(.8, .8);
transform: translate(-50%, -50%) scale(.8, .8);
}
}