Pure CSS loader using shadows and keyframe animation.
Forked from Josh Bader's Pen Pure CSS Loader.
Compass version.
| <h1>Pure CSS Loader</h1> | |
| <div class="loader"></div> |
Pure CSS loader using shadows and keyframe animation.
Forked from Josh Bader's Pen Pure CSS Loader.
Compass version.
| @import "compass/css3"; | |
| html { | |
| height: 100%; | |
| font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; | |
| font-weight: 300; | |
| background: #222 -webkit-radial-gradient(50% 0, ellipse farthest-corner, #444 0%, #222 100%) | |
| } | |
| h1 { | |
| margin-top: 60px; | |
| color: #222; | |
| font-weight: normal; | |
| text-align: center; | |
| text-shadow: 0 1px 1px rgba(255,255,255,0.1); | |
| } | |
| $dot-num: 8; | |
| $dot-color: #fff; | |
| $dot-size: 8px; | |
| $dot-radius: 14px; | |
| @function cycle-box-shadow ($n: $dot-num, $color: $dot-color) { | |
| $deg: 360deg / $n; | |
| $opacity-diff: 0.8 / $n; | |
| $shadow: ''; | |
| @for $i from 1 through $n { | |
| @if $i != 1 { | |
| $shadow: $shadow + ','; | |
| } | |
| $shadow: '#{$shadow} ' + round($dot-radius * cos($deg * $i)) + ' ' + round($dot-radius * sin($deg * $i)) + ' ' + floor(0.5px * ($i - 1)) + ' ' + rgba($color, 1 - $i * $opacity-diff); | |
| } | |
| @return unquote($shadow); | |
| } | |
| .loader { | |
| width: $dot-size; | |
| height: $dot-size; | |
| margin: 40px auto; | |
| opacity: 0.5; | |
| border-radius: 50%; | |
| box-shadow: cycle-box-shadow(); | |
| transform-origin: 50%; | |
| animation: load .9s steps($dot-num, end) infinite; | |
| } | |
| @keyframes load { | |
| 0% { transform: rotate(0); } | |
| 100% { transform: rotate(360deg); } | |
| } |