CSS3 Spinner
Uses multiple backgrounds, css gradients and animations to render.
by Jens Grochtdreis
HTML
<span class="loader">loading…</span>
CSS
body { background: #000; }
.loader {
width: 100px;
height: 100px;
white-space: nowrap;
text-indent: 110px;
overflow: hidden;
background: indianred;
background-image: -webkit-linear-gradient(transparent, indianred 50%), -webkit-linear-gradient(0, indianred 50%, #000 50%, indianred);
background-image: -moz-linear-gradient(transparent, indianred 50%), -moz-linear-gradient(0, indianred 50%, #000 50%, indianred);
background-image: -o-linear-gradient(transparent, indianred 50%), -o-linear-gradient(0, indianred 50%, #000 50%, indianred);
background-image: -ms-linear-gradient(transparent, indianred 50%), -ms-linear-gradient(0, indianred 50%, #000 50%, indianred);
background-image: linear-gradient(transparent, indianred 50%), linear-gradient(0, indianred 50%, #000 50%, indianred);
display: block;
position: absolute;
top: 50%;
left: 50%;
margin-top: -50px;
margin-left: -50px;
border-radius: 100px;
-webkit-animation: m 2s linear infinite;
-moz-animation: m 2s linear infinite;
}
.loader:before {
position: absolute;
content: "";
top: 0;
left: 0;
bottom: 0;
right: 0;
background: -webkit-radial-gradient(closest-side, black 60%, transparent 61%);
background: -moz-radial-gradient(closest-side, black 60%, transparent 61%);
background: -o-radial-gradient(closest-side, black 60%, transparent 61%);
background: radial-gradient(closest-side, black 60%, transparent 61%);
border-radius: 100px;
}
@-webkit-keyframes m { 0% { -webkit-transform: rotate(-360deg); } }
@-moz-keyframes m { 0% { -moz-transform: rotate(-360deg); } }
JavaScript
//Original: http://jsfiddle.net/nimbu/Lnba9/