Commit e53330c0a9c942559cb35b4342f22b01b6ab6b29
1 parent
25201c03
spinner
Showing
1 changed file
with
0 additions
and
330 deletions
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 | -} |