Loading animation with keyframe for SCSS & Jade. Inspired by http://www.grafikart.fr/tutoriels/html-css/loaders-animes-496. Coding by François Lesenne http://macreart.com
A Pen by François Lesenne on CodePen.
| section.loaders | |
| span.loader.loader-quart | |
| | Loading... | |
| section.loaders.loaders-bg-2 | |
| span.loader.loader-double | |
| | Loading... | |
| section.loaders.loaders-bg-3 | |
| span.loader.loader-circles | |
| | Loading... | |
| section.loaders.loaders-bg-4 | |
| span.loader.loader-bars | |
| span | |
| | Loading... |
Loading animation with keyframe for SCSS & Jade. Inspired by http://www.grafikart.fr/tutoriels/html-css/loaders-animes-496. Coding by François Lesenne http://macreart.com
A Pen by François Lesenne on CodePen.
| // Loading animation with keyframe for SCSS & Jade | |
| // inspired by http://www.grafikart.fr/tutoriels/html-css/loaders-animes-496 | |
| // Coding by François Lesenne http://macreart.com |
| // $Var | |
| $bg-color-1: #4EBA6F; | |
| $bg-color-2: #2D95BF; | |
| $bg-color-3: #F15A5A; | |
| $bg-color-4: #955BA5; | |
| $color: #fff; | |
| // $Mixin | |
| @mixin size($width , $height: $width ) { | |
| width: $width; | |
| height: $height; | |
| } | |
| @mixin fontsize($size: 24, $base: 16) { | |
| font-size: $size + px; | |
| font-size: ($size / $base) * 1rem; | |
| } | |
| @mixin absPosition ($top: auto, $right: auto, $bottom: auto, $left: auto) { | |
| position: absolute; | |
| top: $top; | |
| right: $right; | |
| bottom: $bottom; | |
| left: $left; | |
| } | |
| @mixin opacity($opacity) { | |
| opacity: $opacity; | |
| $opacityIE: $opacity * 100; | |
| filter: alpha(opacity=$opacityIE); | |
| } | |
| @mixin animation($animation...) { | |
| -o-animation: $animation; | |
| -moz-animation: $animation; | |
| -webkit-animation: $animation; | |
| animation: $animation; | |
| } | |
| /* $Base */ | |
| body { | |
| margin: 0; | |
| padding: 0; | |
| font-family: sans-serif; | |
| @include fontsize(40); | |
| color: $color; | |
| text-align: center; | |
| } | |
| .loaders { | |
| height: 300px; | |
| line-height: 300px; | |
| background-color: $bg-color-1; | |
| } | |
| .loaders-bg-2 { background-color: $bg-color-2;} | |
| .loaders-bg-3 { background-color: $bg-color-3;} | |
| .loaders-bg-4 { background-color: $bg-color-4;} | |
| .loader { | |
| display: inline-block; | |
| position: relative; | |
| @include size(50px); | |
| vertical-align: middle; | |
| } | |
| /* $Loader Quadrant | |
| ========================================================================== */ | |
| .loader-quart { | |
| border-radius: 50px; | |
| border: 6px solid rgba(255,255,255,0.4); | |
| &:after { | |
| content: ''; | |
| @include absPosition(-6px, -6px, -6px, -6px); | |
| border-radius: 50px; | |
| border: 6px solid transparent; | |
| border-top-color: $color; | |
| @include animation(spin 1s linear infinite); | |
| } | |
| } | |
| /* $Loader Double circle | |
| ========================================================================== */ | |
| .loader-double { | |
| border-radius: 50px; | |
| border: 6px solid transparent; | |
| border-top-color: $color; | |
| border-bottom-color: $color; | |
| @include animation(spin 1.5s linear infinite); | |
| &:before, | |
| &:after { | |
| content: ''; | |
| @include absPosition(5px, 5px, 5px, 5px); | |
| border-radius: 50px; | |
| border: 6px solid transparent; | |
| border-top-color: $color; | |
| border-bottom-color: $color; | |
| @include opacity(0.6); | |
| @include animation(spinreverse 2s linear infinite); | |
| } | |
| &:before { | |
| top: 15px; | |
| left: 15px; | |
| bottom: 15px; | |
| right: 15px; | |
| @include animation(spinreverse 3s linear infinite); | |
| } | |
| } | |
| /* $Loader Multiple circle | |
| ========================================================================== */ | |
| .loader-circles { | |
| border-radius: 50px; | |
| border: 3px solid transparent; | |
| border-top-color: #fff; | |
| @include animation(spin 1s linear infinite); | |
| &:before, | |
| &:after { | |
| content: ''; | |
| @include absPosition(5px, 5px, 5px, 5px); | |
| border-radius: 50px; | |
| border: 3px solid transparent; | |
| border-top-color: $color; | |
| @include opacity(0.8); | |
| @include animation(spinreverse 5s linear infinite); | |
| } | |
| &:before { | |
| top: 12px; | |
| left: 12px; | |
| bottom: 12px; | |
| right: 12px; | |
| @include animation(spinreverse 10s linear infinite); | |
| } | |
| } | |
| /* $Loader Bars | |
| ========================================================================== */ | |
| .loader-bars:before, | |
| .loader-bars:after, | |
| .loader-bars span { | |
| content: ''; | |
| display: block; | |
| position: absolute; | |
| left: 0; | |
| top: 0; | |
| @include size(10px, 30px); | |
| background-color: $color; | |
| @include animation(grow 1.5s linear infinite); | |
| } | |
| .loader-bars:after { | |
| left: 15px; | |
| @include animation(grow 1.5s linear -.5s infinite); | |
| } | |
| .loader-bars span { | |
| left: 30px; | |
| @include animation(grow 1.5s linear -1s infinite); | |
| } | |
| @-webkit-keyframes grow { | |
| 0%{ -webkit-transform: scaleY(0); transform: scaleY(0); opacity: 0;} | |
| 50%{ -webkit-transform: scaleY(1); transform: scaleY(1); opacity: 1;} | |
| 100%{ -webkit-transform: scaleY(0); transform: scaleY(0); opacity: 0;} | |
| } | |
| @keyframes grow { | |
| 0%{ -webkit-transform: scaleY(0); transform: scaleY(0); opacity: 0;} | |
| 50%{ -webkit-transform: scaleY(1); transform: scaleY(1); opacity: 1;} | |
| 100%{ -webkit-transform: scaleY(0); transform: scaleY(0); opacity: 0;} | |
| } | |
| @-webkit-keyframes spin { | |
| 0%{ -webkit-transform: rotate(0deg); tranform: rotate(0deg);} | |
| 100%{ -webkit-transform: rotate(360deg); tranform: rotate(360deg);} | |
| } | |
| @keyframes spin { | |
| 0%{ -webkit-transform: rotate(0deg); tranform: rotate(0deg);} | |
| 100%{ -webkit-transform: rotate(360deg); tranform: rotate(360deg);} | |
| } | |
| @-webkit-keyframes spinreverse { | |
| 0%{ -webkit-transform: rotate(0deg); tranform: rotate(0deg);} | |
| 100%{ -webkit-transform: rotate(-360deg); tranform: rotate(-360deg);} | |
| } | |
| @keyframes spinreverse { | |
| 0%{ -webkit-transform: rotate(0deg); tranform: rotate(0deg);} | |
| 100%{ -webkit-transform: rotate(-360deg); tranform: rotate(-360deg);} | |
| } |