1 <!-- This version of the throbber is good for sizes less than 28x28dp,
2 which follow the stroke thickness calculation: 3 - (28 - diameter) / 16 -->
3 <svg version=
"1" xmlns=
"http://www.w3.org/2000/svg"
4 xmlns:
xlink=
"http://www.w3.org/1999/xlink"
5 width=
"16px" height=
"16px" viewBox=
"0 0 16 16">
6 <!-- 16= RADIUS*2 + STROKEWIDTH -->
8 <title>Material design circular activity spinner with CSS3 animation
</title>
9 <style type=
"text/css">
10 /**************************/
11 /* STYLES FOR THE SPINNER */
12 /**************************/
18 * ARCSIZE =
270 degrees (amount of circle the arc takes up)
19 * ARCTIME =
1333ms (time it takes to expand and contract arc)
20 * ARCSTARTROT =
216 degrees (how much the start location of the arc
21 * should rotate each time,
216 gives us a
22 *
5 pointed star shape (it's
360/
5 *
2).
23 * For a
7 pointed star, we might do
24 *
360/
7 *
3 =
154.286)
30 width:
16px; /*
2*RADIUS + STROKEWIDTH */
31 height:
16px; /*
2*RADIUS + STROKEWIDTH */
33 .qp-circular-loader-path {
34 stroke-dasharray:
32.4; /*
2*RADIUS*PI * ARCSIZE/
360 */
35 stroke-dashoffset:
32.4; /*
2*RADIUS*PI * ARCSIZE/
360 */
36 /* hides things initially */
39 /* SVG elements seem to have a different default origin */
40 .qp-circular-loader, .qp-circular-loader * {
41 -webkit-transform-origin:
50%
50%;
44 /* Rotating the whole thing */
45 @-webkit-keyframes rotate {
46 from {-webkit-transform: rotate(
0deg);}
47 to {-webkit-transform: rotate(
360deg);}
50 -webkit-animation-name: rotate;
51 -webkit-animation-duration:
1568.63ms; /*
360 * ARCTIME / (ARCSTARTROT + (
360-ARCSIZE)) */
52 -webkit-animation-iteration-count: infinite;
53 -webkit-animation-timing-function: linear;
56 /* Filling and unfilling the arc */
57 @-webkit-keyframes fillunfill {
59 stroke-dashoffset:
32.3 /*
2*RADIUS*PI * ARCSIZE/
360 -
0.1 */
60 /*
0.1 a bit of a magic constant here */
66 stroke-dashoffset: -
31.9 /* -(
2*RADIUS*PI * ARCSIZE/
360 -
0.5) */
67 /*
0.5 a bit of a magic constant here */
70 @-webkit-keyframes rot {
72 -webkit-transform: rotate(
0deg);
75 -webkit-transform: rotate(-
360deg);
78 @-webkit-keyframes colors {
86 .qp-circular-loader-path {
87 -webkit-animation-name: fillunfill, rot, colors;
88 -webkit-animation-duration:
1333ms,
5332ms,
5332ms; /* ARCTIME,
4*ARCTIME,
4*ARCTIME */
89 -webkit-animation-iteration-count: infinite, infinite, infinite;
90 -webkit-animation-timing-function: cubic-bezier(
0.4,
0.0,
0.2,
1), steps(
4), linear;
91 -webkit-animation-play-state: running, running, running;
92 -webkit-animation-fill-mode: forwards;
97 <!-- 2.25= STROKEWIDTH -->
98 <!-- 8 = RADIUS + STROKEWIDTH/2 -->
99 <!-- 6.875= RADIUS -->
100 <!-- 1.125= STROKEWIDTH/2 -->
101 <g class=
"qp-circular-loader">
102 <path class=
"qp-circular-loader-path" fill=
"none"
103 d=
"M 8,1.125 A 6.875,6.875 0 1 1 1.125,8" stroke-width=
"2.25"
104 stroke-linecap=
"round"></path>