Commit e53330c0a9c942559cb35b4342f22b01b6ab6b29

Authored by Renato De Donato
1 parent 25201c03

spinner

bower_components/paper-spinner/paper-spinner.css deleted
1 -/**  
2 -@license  
3 -Copyright (c) 2015 The Polymer Project Authors. All rights reserved.  
4 -This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt  
5 -The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt  
6 -The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt  
7 -Code distributed by Google as part of the polymer project is also  
8 -subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt  
9 -  
10 -*/  
11 -/**************************/  
12 -/* STYLES FOR THE SPINNER */  
13 -/**************************/  
14 -  
15 -/*  
16 - * Constants:  
17 - * STROKEWIDTH = 3px  
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 * 3).  
23 - * For a 7 pointed star, we might do  
24 - * 360/7 * 3 = 154.286)  
25 - * CONTAINERWIDTH = 28px  
26 - * SHRINK_TIME = 400ms  
27 - */  
28 -  
29 -:host {  
30 - display: inline-block;  
31 - position: relative;  
32 - width: 28px; /* CONTAINERWIDTH */  
33 - height: 28px; /* CONTAINERWIDTH */  
34 -}  
35 -  
36 -#spinnerContainer {  
37 - width: 100%;  
38 - height: 100%;  
39 -  
40 - /* The spinner does not have any contents that would have to be  
41 - * flipped if the direction changes. Always use ltr so that the  
42 - * style works out correctly in both cases. */  
43 - direction: ltr;  
44 -}  
45 -  
46 -#spinnerContainer.active {  
47 - /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */  
48 - -webkit-animation: container-rotate 1568ms linear infinite;  
49 - animation: container-rotate 1568ms linear infinite;  
50 -}  
51 -  
52 -@-webkit-keyframes container-rotate {  
53 - to { -webkit-transform: rotate(360deg) }  
54 -}  
55 -  
56 -@keyframes container-rotate {  
57 - to { transform: rotate(360deg) }  
58 -}  
59 -  
60 -.spinner-layer {  
61 - position: absolute;  
62 - width: 100%;  
63 - height: 100%;  
64 - opacity: 0;  
65 -}  
66 -  
67 -.layer-1 {  
68 - border-color: var(--paper-spinner-layer-1-color, --google-blue-500);  
69 -}  
70 -  
71 -.layer-2 {  
72 - border-color: var(--paper-spinner-layer-2-color, --google-red-500);  
73 -}  
74 -  
75 -.layer-3 {  
76 - border-color: var(--paper-spinner-layer-3-color, --google-yellow-500);  
77 -}  
78 -  
79 -.layer-4 {  
80 - border-color: var(--paper-spinner-layer-4-color, --google-blue-500);  
81 -}  
82 -  
83 -/**  
84 - * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee):  
85 - *  
86 - * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't  
87 - * guarantee that the animation will start _exactly_ after that value. So we avoid using  
88 - * animation-delay and instead set custom keyframes for each color (as layer-2undant as it  
89 - * seems).  
90 - *  
91 - * We write out each animation in full (instead of separating animation-name,  
92 - * animation-duration, etc.) because under the polyfill, Safari does not recognize those  
93 - * specific properties properly, treats them as -webkit-animation, and overrides the  
94 - * other animation rules. See https://github.com/Polymer/platform/issues/53.  
95 - */  
96 -.active .spinner-layer.layer-1 {  
97 - /* durations: 4 * ARCTIME */  
98 - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;  
99 - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;  
100 -}  
101 -  
102 -.active .spinner-layer.layer-2 {  
103 - /* durations: 4 * ARCTIME */  
104 - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;  
105 - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;  
106 -}  
107 -  
108 -.active .spinner-layer.layer-3 {  
109 - /* durations: 4 * ARCTIME */  
110 - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;  
111 - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;  
112 -}  
113 -  
114 -.active .spinner-layer.layer-4 {  
115 - /* durations: 4 * ARCTIME */  
116 - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;  
117 - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;  
118 -}  
119 -  
120 -@-webkit-keyframes fill-unfill-rotate {  
121 - 12.5% { -webkit-transform: rotate(135deg); } /* 0.5 * ARCSIZE */  
122 - 25% { -webkit-transform: rotate(270deg); } /* 1 * ARCSIZE */  
123 - 37.5% { -webkit-transform: rotate(405deg); } /* 1.5 * ARCSIZE */  
124 - 50% { -webkit-transform: rotate(540deg); } /* 2 * ARCSIZE */  
125 - 62.5% { -webkit-transform: rotate(675deg); } /* 2.5 * ARCSIZE */  
126 - 75% { -webkit-transform: rotate(810deg); } /* 3 * ARCSIZE */  
127 - 87.5% { -webkit-transform: rotate(945deg); } /* 3.5 * ARCSIZE */  
128 - to { -webkit-transform: rotate(1080deg); } /* 4 * ARCSIZE */  
129 -}  
130 -  
131 -@keyframes fill-unfill-rotate {  
132 - 12.5% { transform: rotate(135deg); } /* 0.5 * ARCSIZE */  
133 - 25% { transform: rotate(270deg); } /* 1 * ARCSIZE */  
134 - 37.5% { transform: rotate(405deg); } /* 1.5 * ARCSIZE */  
135 - 50% { transform: rotate(540deg); } /* 2 * ARCSIZE */  
136 - 62.5% { transform: rotate(675deg); } /* 2.5 * ARCSIZE */  
137 - 75% { transform: rotate(810deg); } /* 3 * ARCSIZE */  
138 - 87.5% { transform: rotate(945deg); } /* 3.5 * ARCSIZE */  
139 - to { transform: rotate(1080deg); } /* 4 * ARCSIZE */  
140 -}  
141 -  
142 -/**  
143 - * HACK: Even though the intention is to have the current .spinner-layer at  
144 - * `opacity: 1`, we set it to `opacity: 0.99` instead since this forces Chrome  
145 - * to do proper subpixel rendering for the elements being animated. This is  
146 - * especially visible in Chrome 39 on Ubuntu 14.04. See:  
147 - *  
148 - * - https://github.com/Polymer/paper-spinner/issues/9  
149 - * - https://code.google.com/p/chromium/issues/detail?id=436255  
150 - */  
151 -@-webkit-keyframes layer-1-fade-in-out {  
152 - from { opacity: 0.99; }  
153 - 25% { opacity: 0.99; }  
154 - 26% { opacity: 0; }  
155 - 89% { opacity: 0; }  
156 - 90% { opacity: 0.99; }  
157 - 100% { opacity: 0.99; }  
158 -}  
159 -  
160 -@keyframes layer-1-fade-in-out {  
161 - from { opacity: 0.99; }  
162 - 25% { opacity: 0.99; }  
163 - 26% { opacity: 0; }  
164 - 89% { opacity: 0; }  
165 - 90% { opacity: 0.99; }  
166 - 100% { opacity: 0.99; }  
167 -}  
168 -  
169 -@-webkit-keyframes layer-2-fade-in-out {  
170 - from { opacity: 0; }  
171 - 15% { opacity: 0; }  
172 - 25% { opacity: 0.99; }  
173 - 50% { opacity: 0.99; }  
174 - 51% { opacity: 0; }  
175 -}  
176 -  
177 -@keyframes layer-2-fade-in-out {  
178 - from { opacity: 0; }  
179 - 15% { opacity: 0; }  
180 - 25% { opacity: 0.99; }  
181 - 50% { opacity: 0.99; }  
182 - 51% { opacity: 0; }  
183 -}  
184 -  
185 -@-webkit-keyframes layer-3-fade-in-out {  
186 - from { opacity: 0; }  
187 - 40% { opacity: 0; }  
188 - 50% { opacity: 0.99; }  
189 - 75% { opacity: 0.99; }  
190 - 76% { opacity: 0; }  
191 -}  
192 -  
193 -@keyframes layer-3-fade-in-out {  
194 - from { opacity: 0; }  
195 - 40% { opacity: 0; }  
196 - 50% { opacity: 0.99; }  
197 - 75% { opacity: 0.99; }  
198 - 76% { opacity: 0; }  
199 -}  
200 -  
201 -@-webkit-keyframes layer-4-fade-in-out {  
202 - from { opacity: 0; }  
203 - 65% { opacity: 0; }  
204 - 75% { opacity: 0.99; }  
205 - 90% { opacity: 0.99; }  
206 - 100% { opacity: 0; }  
207 -}  
208 -  
209 -@keyframes layer-4-fade-in-out {  
210 - from { opacity: 0; }  
211 - 65% { opacity: 0; }  
212 - 75% { opacity: 0.99; }  
213 - 90% { opacity: 0.99; }  
214 - 100% { opacity: 0; }  
215 -}  
216 -  
217 -/**  
218 - * Patch the gap that appear between the two adjacent div.circle-clipper while the  
219 - * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11).  
220 - *  
221 - * Update: the gap no longer appears on Chrome when .spinner-layer's opacity is 0.99,  
222 - * but still does on Safari and IE.  
223 - */  
224 -.gap-patch {  
225 - position: absolute;  
226 - box-sizing: border-box;  
227 - top: 0;  
228 - left: 45%;  
229 - width: 10%;  
230 - height: 100%;  
231 - overflow: hidden;  
232 - border-color: inherit;  
233 -}  
234 -  
235 -.gap-patch .circle {  
236 - width: 1000%;  
237 - left: -450%;  
238 -}  
239 -  
240 -.circle-clipper {  
241 - display: inline-block;  
242 - position: relative;  
243 - width: 50%;  
244 - height: 100%;  
245 - overflow: hidden;  
246 - border-color: inherit;  
247 -}  
248 -  
249 -.circle-clipper .circle {  
250 - width: 200%;  
251 -}  
252 -  
253 -.circle {  
254 - box-sizing: border-box;  
255 - height: 100%;  
256 - border-width: 3px; /* STROKEWIDTH */  
257 - border-style: solid;  
258 - border-color: inherit;  
259 - border-bottom-color: transparent !important;  
260 - border-radius: 50%;  
261 - -webkit-animation: none;  
262 - animation: none;  
263 -  
264 - @apply(--layout-fit);  
265 -}  
266 -  
267 -.circle-clipper.left .circle {  
268 - border-right-color: transparent !important;  
269 - -webkit-transform: rotate(129deg);  
270 - transform: rotate(129deg);  
271 -}  
272 -  
273 -.circle-clipper.right .circle {  
274 - left: -100%;  
275 - border-left-color: transparent !important;  
276 - -webkit-transform: rotate(-129deg);  
277 - transform: rotate(-129deg);  
278 -}  
279 -  
280 -.active .circle-clipper.left .circle {  
281 - /* duration: ARCTIME */  
282 - -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;  
283 - animation: left-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;  
284 -}  
285 -  
286 -.active .circle-clipper.right .circle {  
287 - /* duration: ARCTIME */  
288 - -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;  
289 - animation: right-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;  
290 -}  
291 -  
292 -@-webkit-keyframes left-spin {  
293 - from { -webkit-transform: rotate(130deg); }  
294 - 50% { -webkit-transform: rotate(-5deg); }  
295 - to { -webkit-transform: rotate(130deg); }  
296 -}  
297 -  
298 -@keyframes left-spin {  
299 - from { transform: rotate(130deg); }  
300 - 50% { transform: rotate(-5deg); }  
301 - to { transform: rotate(130deg); }  
302 -}  
303 -  
304 -@-webkit-keyframes right-spin {  
305 - from { -webkit-transform: rotate(-130deg); }  
306 - 50% { -webkit-transform: rotate(5deg); }  
307 - to { -webkit-transform: rotate(-130deg); }  
308 -}  
309 -  
310 -@keyframes right-spin {  
311 - from { transform: rotate(-130deg); }  
312 - 50% { transform: rotate(5deg); }  
313 - to { transform: rotate(-130deg); }  
314 -}  
315 -  
316 -#spinnerContainer.cooldown {  
317 - /* duration: SHRINK_TIME */  
318 - -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0.0, 0.2, 1);  
319 - animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0.0, 0.2, 1);  
320 -}  
321 -  
322 -@-webkit-keyframes fade-out {  
323 - from { opacity: 0.99; }  
324 - to { opacity: 0; }  
325 -}  
326 -  
327 -@keyframes fade-out {  
328 - from { opacity: 0.99; }  
329 - to { opacity: 0; }  
330 -}