Prefix-free loading animation, inspired by Metro and Windows 8
A Pen by Girish Sharma on CodePen.
<div class="loader more"> | |
</div> |
Prefix-free loading animation, inspired by Metro and Windows 8
A Pen by Girish Sharma on CodePen.
/** | |
* Prefix-free loading animation, | |
* inspired by Metro and Windows 8 | |
*/ |
/** | |
* This work is licensed under the Creative Commons | |
* Attribution 3.0 Unported License. To view a copy | |
* of this license, visit http://creativecommons.org/licenses/by/3.0/. | |
* | |
* Author: Girish Sharma <[email protected]> | |
*/ | |
/* Demo specific styles begin */ | |
* {margin: 0; padding: 0;} | |
body { | |
background: #eee; | |
} | |
.loader { | |
top: 50%; | |
} | |
/* Demo specific styles end */ | |
/* Loader with three blocks */ | |
.loader, .loader:before, .loader:after { | |
display: inline-block; | |
width: 100%; | |
height: 10px; | |
position: absolute; | |
z-index: 100000; | |
animation: loading 4s cubic-bezier(.1,.85,.9,.15) infinite, loading-opacity 2s ease-in-out infinite alternate; | |
background: linear-gradient(to right, teal 0px, teal 10px, transparent 10px) no-repeat 0px 0px / 10px 10px; | |
content: ' '; | |
} | |
.loader { | |
animation-delay: .1s; | |
} | |
.loader:after { | |
animation-delay: .2s; | |
} | |
@keyframes loading-opacity { | |
0% { | |
opacity: 0; | |
} | |
50% { | |
opacity: 1; | |
} | |
100% { | |
opacity: 1; | |
} | |
} | |
@keyframes loading { | |
0% { | |
background-position: -50% 0px; | |
} | |
100% { | |
background-position: 150% 0px; | |
} | |
} | |
/* 2 more loading blocks */ | |
.loader.more:before, .loader.more:after { | |
content: ' ■'; | |
color: teal; | |
top: 0; | |
line-height: 6px; | |
font-size: 22px; | |
font-family: "Times New Roman"; | |
vertical-align: top; | |
animation: loading 4s cubic-bezier(.1,.85,.9,.15) infinite, loading-font 4s cubic-bezier(.1,.85,.9,.15) infinite !important; | |
} | |
.loader.more:before { | |
animation-delay: 0s,.2s !important; | |
} | |
.loader.more { | |
overflow: hidden; | |
opacity: 0; | |
animation: loading 4s cubic-bezier(.1,.85,.9,.15) infinite, loading-opacity 2s ease-in-out infinite alternate; | |
animation-delay: .6s,.4s !important; | |
} | |
.loader.more:after { | |
animation-delay: .4s,.8s !important; | |
} | |
@keyframes loading-font { | |
0% { | |
text-indent: calc(-50% - 5px); | |
} | |
100% { | |
text-indent: calc(150% - 10px); | |
} | |
} |