Pure SVG loading animation. Just my first exploration into SMIL. Very excited when I discovered easing using KeySplines and built in properties like opacity & rotate.
A Pen by Chris Kelley on CodePen.
Pure SVG loading animation. Just my first exploration into SMIL. Very excited when I discovered easing using KeySplines and built in properties like opacity & rotate.
A Pen by Chris Kelley on CodePen.
<h4>DC SVG Loader v.1</h4> | |
<div class="scene"> | |
<svg | |
version="1.1" | |
id="dc-spinner" | |
xmlns="http://www.w3.org/2000/svg" | |
x="0px" y="0px" | |
width:"38" | |
height:"38" | |
viewBox="0 0 38 38" | |
preserveAspectRatio="xMinYMin meet" | |
> | |
<text x="14" y="21" font-family="Monaco" font-size="2px" style="letter-spacing:0.6" fill="grey">LOADING | |
<animate | |
attributeName="opacity" | |
values="0;1;0" dur="1.8s" | |
repeatCount="indefinite"/> | |
</text> | |
<path fill="#373a42" d="M20,35c-8.271,0-15-6.729-15-15S11.729,5,20,5s15,6.729,15,15S28.271,35,20,35z M20,5.203 | |
C11.841,5.203,5.203,11.841,5.203,20c0,8.159,6.638,14.797,14.797,14.797S34.797,28.159,34.797,20 | |
C34.797,11.841,28.159,5.203,20,5.203z"> | |
</path> | |
<path fill="#373a42" d="M20,33.125c-7.237,0-13.125-5.888-13.125-13.125S12.763,6.875,20,6.875S33.125,12.763,33.125,20 | |
S27.237,33.125,20,33.125z M20,7.078C12.875,7.078,7.078,12.875,7.078,20c0,7.125,5.797,12.922,12.922,12.922 | |
S32.922,27.125,32.922,20C32.922,12.875,27.125,7.078,20,7.078z"> | |
</path> | |
<path fill="#2AA198" stroke="#2AA198" stroke-width="0.6027" stroke-miterlimit="10" d="M5.203,20 | |
c0-8.159,6.638-14.797,14.797-14.797V5C11.729,5,5,11.729,5,20s6.729,15,15,15v-0.203C11.841,34.797,5.203,28.159,5.203,20z"> | |
<animateTransform | |
attributeName="transform" | |
type="rotate" | |
from="0 20 20" | |
to="360 20 20" | |
calcMode="spline" | |
keySplines="0.4, 0, 0.2, 1" | |
keyTimes="0;1" | |
dur="2s" | |
repeatCount="indefinite" /> | |
</path> | |
<path fill="#859900" stroke="#859900" stroke-width="0.2027" stroke-miterlimit="10" d="M7.078,20 | |
c0-7.125,5.797-12.922,12.922-12.922V6.875C12.763,6.875,6.875,12.763,6.875,20S12.763,33.125,20,33.125v-0.203 | |
C12.875,32.922,7.078,27.125,7.078,20z"> | |
<animateTransform | |
attributeName="transform" | |
type="rotate" | |
from="0 20 20" | |
to="360 20 20" | |
dur="1.8s" | |
repeatCount="indefinite" /> | |
</path> | |
</svg> | |
</div> | |
<!--dc logo --> | |
<a class="dc-logo" href="http://digitalcraft.co" target="_blank"><svg version="1.1" id="digital-craft" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"width="43.43px" height="49.313px" viewBox="0 0 43.43 49.313" enable-background="new 0 0 43.43 49.313" xml:space="preserve"><path fill="rgba(0,0,0,0.4)" d="M42.08,11.34L23.065,0.362c-0.836-0.482-1.865-0.482-2.701,0L1.35,11.34C0.515,11.822,0,12.714,0,13.679v21.956c0,0.965,0.515,1.856,1.35,2.339l19.014,10.978c0.418,0.241,0.884,0.362,1.35,0.362c0.466,0,0.933-0.121,1.35-0.362L42.08,37.973c0.836-0.482,1.35-1.374,1.35-2.339V13.679C43.43,12.714,42.915,11.822,42.08,11.34z"/><polygon fill="#6E6F71" points="29.127,21.537 14.302,21.537 7.594,28.243 12.535,33.189 21.715,24.009 30.892,33.189 35.836,28.243"/><polygon fill="#00FFFE" points="34.529,17.905 25.492,17.905 21.715,14.126 17.937,17.905 8.9,17.905 8.9,20.078 34.529,20.078"/></svg></a> | |
/* Demo Styles - It's all in the SVG */ | |
html{ | |
height:100%; | |
min-height: 100%; | |
overflow:hidden; | |
body { | |
background: #222428; | |
background-size: 163px; | |
font: 14px/21px Monaco, sans-serif; | |
color: #999; | |
font-smoothing: antialiased; | |
text-size-adjust: 100%; | |
height:100%; | |
min-height: 100%; | |
a, a:visited{ | |
text-decoration:none; | |
color:#FF805F | |
} | |
h4{margin:0;color:#666;} | |
} | |
} | |
.scene { | |
width: 100%; | |
height: 100%; | |
perspective: 600; | |
display: -webkit-box; | |
display: -moz-box; | |
display: -ms-flexbox; | |
display: -webkit-flex; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
svg{ | |
width: 240px; | |
height: 240px; | |
} | |
} | |
.dc-logo { | |
position: fixed; | |
right: 10px; | |
bottom: 10px; | |
} | |
.dc-logo:hover { | |
svg{ | |
transform-origin: 50% 50%; | |
animation: arrow-spin 2.5s 0s cubic-bezier(0.165, 0.840, 0.440, 1.000) infinite; | |
} | |
&:hover{ | |
&:before { | |
content:'\2764'; | |
padding: 6px; | |
font: 10px/1 Monaco, sans-serif; | |
font-size:10px; | |
color: #00fffe; | |
text-transform:uppercase; | |
position: absolute; | |
left: -70px; | |
top: -30px; | |
white-space: nowrap; | |
z-index: 20px; | |
box-shadow: 0px 0px 4px #222; | |
background:rgba(0,0,0,0.4); | |
} | |
&:after { | |
content:'Digital Craft'; | |
padding: 6px; | |
font: 10px/1 Monaco, sans-serif; | |
font-size:10px; | |
color: #6E6F71; | |
text-transform:uppercase; | |
position: absolute; | |
right: 0; | |
top: -30px; | |
white-space: nowrap; | |
z-index: 20px; | |
box-shadow: 0px 0px 4px #222; | |
background:rgba(0,0,0,0.4); | |
background-image:none; | |
} | |
} | |
} | |
@keyframes arrow-spin { | |
50% { | |
transform: rotateY(360deg); | |
} | |
} |