Skip to content

Instantly share code, notes, and snippets.

@Palmaswell
Created September 11, 2014 17:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Palmaswell/003a0d2ca19143097559 to your computer and use it in GitHub Desktop.
Save Palmaswell/003a0d2ca19143097559 to your computer and use it in GitHub Desktop.
CSS3 Atomic Spinner
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>CSS3 Atomic Spinner</title>
<style type="text/css">
.m-spinner {
position: absolute;
bottom: 0;
top: 0;
right: 0;
left: 0;
height: 10rem;
width: 10rem;
margin: auto;
overflow: auto;
z-index: -1;
-webkit-animation-name: rotate;
animation-name: rotate;
}
.m-spinner,
.m-spinner:before,
.m-spinner:after {
border-radius: 100%;
-webkit-animation-duration: 4s;
-moz-animation-duration: 4s;
-ms-animation-duration: 4s;
-o-animation-duration: 4s;
animation-duration: 4s;
-webkit-animation-iteration-count: infinite;
animation-iteration-count: infinite;
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in;
}
.m-spinner:before {
-webkit-animation-name: shell;
animation-name: shell;
}
.m-spinner:after {
-webkit-animation-name: shell2;
animation-name: shell2;
}
.m-spinner:before,
.m-spinner:after {
content: "";
position: absolute;
top: 0;
left: 0;
}
@-webkit-keyframes rotate {
0% {
-webkit-transform: rotateZ(0deg) scaleX(0) scaleY(0) translateZ(0);
transform: rotateZ(0deg) scaleX(0) scaleY(0) translateZ(0);
-webkit-box-shadow: inset 1rem 0 0 rgba(101, 137, 169, 0.8), inset 0 1rem 0 rgba(254, 235, 161, 0.8), inset -1rem 0 0 rgba(252, 154, 90, 0.8), inset 0 -1rem 0 rgba(182, 70, 51, 0.8);
box-shadow: inset 1rem 0 0 rgba(101, 137, 169, 0.8), inset 0 1rem 0 rgba(254, 235, 161, 0.8), inset -1rem 0 0 rgba(252, 154, 90, 0.8), inset 0 -1rem 0 rgba(182, 70, 51, 0.8);
}
85%,
100% {
-webkit-transform: rotateZ(4320deg) scaleX(2) scaleY(4) translateZ(0);
transform: rotateZ(4320deg) scaleX(2) scaleY(4) translateZ(0);
-webkit-box-shadow: inset 0 0 0 rgba(101, 137, 169, 0.2), inset 0 0 0 rgba(254, 235, 161, 0.2), inset 0 0 0 rgba(252, 154, 90, 0.2), inset 0 0 0 rgba(182, 70, 51, 0.2);
box-shadow: inset 0 0 0 rgba(101, 137, 169, 0.2), inset 0 0 0 rgba(254, 235, 161, 0.2), inset 0 0 0 rgba(252, 154, 90, 0.2), inset 0 0 0 rgba(182, 70, 51, 0.2);
}
}
@keyframes rotate {
0% {
-webkit-transform: rotateZ(0deg) scaleX(0) scaleY(0) translateZ(0);
transform: rotateZ(0deg) scaleX(0) scaleY(0) translateZ(0);
-webkit-box-shadow: inset 1rem 0 0 rgba(101, 137, 169, 0.8), inset 0 1rem 0 rgba(254, 235, 161, 0.8), inset -1rem 0 0 rgba(252, 154, 90, 0.8), inset 0 -1rem 0 rgba(182, 70, 51, 0.8);
box-shadow: inset 1rem 0 0 rgba(101, 137, 169, 0.8), inset 0 1rem 0 rgba(254, 235, 161, 0.8), inset -1rem 0 0 rgba(252, 154, 90, 0.8), inset 0 -1rem 0 rgba(182, 70, 51, 0.8);
}
85%,
100% {
-webkit-transform: rotateZ(4320deg) scaleX(2) scaleY(4) translateZ(0);
transform: rotateZ(4320deg) scaleX(2) scaleY(4) translateZ(0);
-webkit-box-shadow: inset 0 0 0 rgba(101, 137, 169, 0.2), inset 0 0 0 rgba(254, 235, 161, 0.2), inset 0 0 0 rgba(252, 154, 90, 0.2), inset 0 0 0 rgba(182, 70, 51, 0.2);
box-shadow: inset 0 0 0 rgba(101, 137, 169, 0.2), inset 0 0 0 rgba(254, 235, 161, 0.2), inset 0 0 0 rgba(252, 154, 90, 0.2), inset 0 0 0 rgba(182, 70, 51, 0.2);
}
}
@-webkit-keyframes shell {
0% {
-webkit-transform: scaleX(0) scaleY(0);
transform: scaleX(0) scaleY(0);
-webkit-box-shadow: inset 1rem 0 0 rgba(101, 137, 169, 0.8), inset 0 1rem 0 rgba(254, 235, 161, 0.8), inset -1rem 0 0 rgba(252, 154, 90, 0.8), inset 0 -1rem 0 rgba(182, 70, 51, 0.8);
box-shadow: inset 1rem 0 0 rgba(101, 137, 169, 0.8), inset 0 1rem 0 rgba(254, 235, 161, 0.8), inset -1rem 0 0 rgba(252, 154, 90, 0.8), inset 0 -1rem 0 rgba(182, 70, 51, 0.8);
}
75%,
100% {
-webkit-transform: scaleX(2) scaleY(4);
transform: scaleX(2) scaleY(4);
-webkit-box-shadow: inset 0 0 0 rgba(101, 137, 169, 0.2), inset 0 0 0 rgba(254, 235, 161, 0.2), inset 0 0 0 rgba(252, 154, 90, 0.2), inset 0 0 0 rgba(182, 70, 51, 0.2);
box-shadow: inset 0 0 0 rgba(101, 137, 169, 0.2), inset 0 0 0 rgba(254, 235, 161, 0.2), inset 0 0 0 rgba(252, 154, 90, 0.2), inset 0 0 0 rgba(182, 70, 51, 0.2);
}
}
@keyframes shell {
0% {
-webkit-transform: scaleX(0) scaleY(0);
transform: scaleX(0) scaleY(0);
-webkit-box-shadow: inset 1rem 0 0 rgba(101, 137, 169, 0.8), inset 0 1rem 0 rgba(254, 235, 161, 0.8), inset -1rem 0 0 rgba(252, 154, 90, 0.8), inset 0 -1rem 0 rgba(182, 70, 51, 0.8);
box-shadow: inset 1rem 0 0 rgba(101, 137, 169, 0.8), inset 0 1rem 0 rgba(254, 235, 161, 0.8), inset -1rem 0 0 rgba(252, 154, 90, 0.8), inset 0 -1rem 0 rgba(182, 70, 51, 0.8);
}
75%,
100% {
-webkit-transform: scaleX(2) scaleY(4);
transform: scaleX(2) scaleY(4);
-webkit-box-shadow: inset 0 0 0 rgba(101, 137, 169, 0.2), inset 0 0 0 rgba(254, 235, 161, 0.2), inset 0 0 0 rgba(252, 154, 90, 0.2), inset 0 0 0 rgba(182, 70, 51, 0.2);
box-shadow: inset 0 0 0 rgba(101, 137, 169, 0.2), inset 0 0 0 rgba(254, 235, 161, 0.2), inset 0 0 0 rgba(252, 154, 90, 0.2), inset 0 0 0 rgba(182, 70, 51, 0.2);
}
}
@-webkit-keyframes shell2 {
0% {
-webkit-transform: scaleX(0) scaleY(0);
transform: scaleX(0) scaleY(0);
-webkit-box-shadow: inset 1rem 0 0 rgba(101, 137, 169, 0.8), inset 0 1rem 0 rgba(254, 235, 161, 0.8), inset -1rem 0 0 rgba(252, 154, 90, 0.8), inset 0 -1rem 0 rgba(182, 70, 51, 0.8);
box-shadow: inset 1rem 0 0 rgba(101, 137, 169, 0.8), inset 0 1rem 0 rgba(254, 235, 161, 0.8), inset -1rem 0 0 rgba(252, 154, 90, 0.8), inset 0 -1rem 0 rgba(182, 70, 51, 0.8);
}
65%,
100% {
-webkit-transform: scaleX(2) scaleY(4);
transform: scaleX(2) scaleY(4);
-webkit-box-shadow: inset 0 0 0 rgba(101, 137, 169, 0.2), inset 0 0 0 rgba(254, 235, 161, 0.2), inset 0 0 0 rgba(252, 154, 90, 0.2), inset 0 0 0 rgba(182, 70, 51, 0.2);
box-shadow: inset 0 0 0 rgba(101, 137, 169, 0.2), inset 0 0 0 rgba(254, 235, 161, 0.2), inset 0 0 0 rgba(252, 154, 90, 0.2), inset 0 0 0 rgba(182, 70, 51, 0.2);
}
}
@keyframes shell2 {
0% {
-webkit-transform: scaleX(0) scaleY(0);
transform: scaleX(0) scaleY(0);
-webkit-box-shadow: inset 1rem 0 0 rgba(101, 137, 169, 0.8), inset 0 1rem 0 rgba(254, 235, 161, 0.8), inset -1rem 0 0 rgba(252, 154, 90, 0.8), inset 0 -1rem 0 rgba(182, 70, 51, 0.8);
box-shadow: inset 1rem 0 0 rgba(101, 137, 169, 0.8), inset 0 1rem 0 rgba(254, 235, 161, 0.8), inset -1rem 0 0 rgba(252, 154, 90, 0.8), inset 0 -1rem 0 rgba(182, 70, 51, 0.8);
}
65%,
100% {
-webkit-transform: scaleX(2) scaleY(4);
transform: scaleX(2) scaleY(4);
-webkit-box-shadow: inset 0 0 0 rgba(101, 137, 169, 0.2), inset 0 0 0 rgba(254, 235, 161, 0.2), inset 0 0 0 rgba(252, 154, 90, 0.2), inset 0 0 0 rgba(182, 70, 51, 0.2);
box-shadow: inset 0 0 0 rgba(101, 137, 169, 0.2), inset 0 0 0 rgba(254, 235, 161, 0.2), inset 0 0 0 rgba(252, 154, 90, 0.2), inset 0 0 0 rgba(182, 70, 51, 0.2);
}
}
</style>
</head>
<body>
<div class="m-spinner"></div>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment