materialize-sass 0.95.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +14 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +50 -0
  6. data/Rakefile +1 -0
  7. data/app/assets/fonts/material-design-icons/LICENSE.txt +428 -0
  8. data/app/assets/fonts/material-design-icons/Material-Design-Icons.eot +0 -0
  9. data/app/assets/fonts/material-design-icons/Material-Design-Icons.svg +751 -0
  10. data/app/assets/fonts/material-design-icons/Material-Design-Icons.ttf +0 -0
  11. data/app/assets/fonts/material-design-icons/Material-Design-Icons.woff +0 -0
  12. data/app/assets/fonts/roboto/Roboto-Bold.ttf +0 -0
  13. data/app/assets/fonts/roboto/Roboto-Light.ttf +0 -0
  14. data/app/assets/fonts/roboto/Roboto-Medium.ttf +0 -0
  15. data/app/assets/fonts/roboto/Roboto-Regular.ttf +0 -0
  16. data/app/assets/fonts/roboto/Roboto-Thin.ttf +0 -0
  17. data/app/assets/javascripts/materialize-sprokets.js +21 -0
  18. data/app/assets/javascripts/materialize.js +5327 -0
  19. data/app/assets/javascripts/materialize/cards.js +19 -0
  20. data/app/assets/javascripts/materialize/collapsible.js +87 -0
  21. data/app/assets/javascripts/materialize/date_picker/picker.date.js +1427 -0
  22. data/app/assets/javascripts/materialize/date_picker/picker.js +1123 -0
  23. data/app/assets/javascripts/materialize/dropdown.js +168 -0
  24. data/app/assets/javascripts/materialize/forms.js +245 -0
  25. data/app/assets/javascripts/materialize/hammer.min.js +1 -0
  26. data/app/assets/javascripts/materialize/init.js +152 -0
  27. data/app/assets/javascripts/materialize/jquery.easing.1.3.js +205 -0
  28. data/app/assets/javascripts/materialize/jquery.hammer.js +33 -0
  29. data/app/assets/javascripts/materialize/jquery.timeago.min.js +1 -0
  30. data/app/assets/javascripts/materialize/leanModal.js +96 -0
  31. data/app/assets/javascripts/materialize/materialbox.js +237 -0
  32. data/app/assets/javascripts/materialize/parallax.js +50 -0
  33. data/app/assets/javascripts/materialize/prism.js +8 -0
  34. data/app/assets/javascripts/materialize/pushpin.js +87 -0
  35. data/app/assets/javascripts/materialize/scrollspy.js +287 -0
  36. data/app/assets/javascripts/materialize/sideNav.js +278 -0
  37. data/app/assets/javascripts/materialize/slider.js +257 -0
  38. data/app/assets/javascripts/materialize/tabs.js +130 -0
  39. data/app/assets/javascripts/materialize/toasts.js +100 -0
  40. data/app/assets/javascripts/materialize/tooltip.js +167 -0
  41. data/app/assets/javascripts/materialize/velocity.min.js +4 -0
  42. data/app/assets/javascripts/materialize/waves.js +335 -0
  43. data/app/assets/stylesheets/components/_buttons.scss +111 -0
  44. data/app/assets/stylesheets/components/_cards.scss +121 -0
  45. data/app/assets/stylesheets/components/_collapsible.scss +78 -0
  46. data/app/assets/stylesheets/components/_color.scss +411 -0
  47. data/app/assets/stylesheets/components/_dropdown.scss +31 -0
  48. data/app/assets/stylesheets/components/_form.scss +641 -0
  49. data/app/assets/stylesheets/components/_global.scss +582 -0
  50. data/app/assets/stylesheets/components/_grid.scss +119 -0
  51. data/app/assets/stylesheets/components/_icons-material-design.scss +2247 -0
  52. data/app/assets/stylesheets/components/_materialbox.scss +42 -0
  53. data/app/assets/stylesheets/components/_mixins.scss +5 -0
  54. data/app/assets/stylesheets/components/_modal.scss +50 -0
  55. data/app/assets/stylesheets/components/_navbar.scss +129 -0
  56. data/app/assets/stylesheets/components/_normalize.scss +427 -0
  57. data/app/assets/stylesheets/components/_prefixer.scss +417 -0
  58. data/app/assets/stylesheets/components/_preloader.scss +320 -0
  59. data/app/assets/stylesheets/components/_roboto.scss +28 -0
  60. data/app/assets/stylesheets/components/_sideNav.scss +143 -0
  61. data/app/assets/stylesheets/components/_slider.scss +87 -0
  62. data/app/assets/stylesheets/components/_table_of_contents.scss +33 -0
  63. data/app/assets/stylesheets/components/_tabs.scss +43 -0
  64. data/app/assets/stylesheets/components/_toast.scss +64 -0
  65. data/app/assets/stylesheets/components/_tooltip.scss +34 -0
  66. data/app/assets/stylesheets/components/_typography.scss +55 -0
  67. data/app/assets/stylesheets/components/_variables.scss +128 -0
  68. data/app/assets/stylesheets/components/_waves.scss +167 -0
  69. data/app/assets/stylesheets/components/date_picker/_default.date.scss +431 -0
  70. data/app/assets/stylesheets/components/date_picker/_default.scss +201 -0
  71. data/app/assets/stylesheets/components/date_picker/_default.time.scss +125 -0
  72. data/app/assets/stylesheets/materialize.scss +38 -0
  73. data/lib/materialize-sass.rb +8 -0
  74. data/lib/materialize-sass/version.rb +6 -0
  75. data/materialize-sass.gemspec +23 -0
  76. metadata +146 -0
@@ -0,0 +1,417 @@
1
+ //---------------------------------------------------
2
+ // Sass Prefixer
3
+ // -------------------------------------------------
4
+ // TABLE OF CONTENTS
5
+ // (*) denotes a syntax-sugar helper
6
+ // -------------------------------------------------
7
+ //
8
+ // animation($args)
9
+ // animation-delay($delay)
10
+ // animation-direction($direction)
11
+ // animation-duration($duration)
12
+ // animation-fill-mode($mode)
13
+ // animation-iteration-count($count)
14
+ // animation-name($name)
15
+ // animation-play-state($state)
16
+ // animation-timing-function($function)
17
+ // background-size($args)
18
+ // border-radius($args)
19
+ // box-shadow($args)
20
+ // inner-shadow($args) *
21
+ // box-sizing($args)
22
+ // border-box() *
23
+ // content-box() *
24
+ // columns($args)
25
+ // column-count($count)
26
+ // column-gap($gap)
27
+ // column-rule($args)
28
+ // column-width($width)
29
+ // flexbox()
30
+ // flex($args)
31
+ // order($args)
32
+ // align($args)
33
+ // justify-content($args)
34
+ // gradient($default,$start,$stop) *
35
+ // linear-gradient-top($default,$color1,$stop1,$color2,$stop2,[$color3,$stop3,$color4,$stop4])*
36
+ // linear-gradient-left($default,$color1,$stop1,$color2,$stop2,[$color3,$stop3,$color4,$stop4])*
37
+ // opacity($factor)
38
+ // transform($args)
39
+ // transform-origin($args)
40
+ // transform-style($style)
41
+ // rotate($deg)
42
+ // scale($factor)
43
+ // translate($x,$y)
44
+ // translate3d($x,$y,$z)
45
+ // translateHardware($x,$y) *
46
+ // text-shadow($args)
47
+ // transition($args)
48
+ // transition-delay($delay)
49
+ // transition-duration($duration)
50
+ // transition-property($property)
51
+ // transition-timing-function($function)
52
+
53
+
54
+ // Animation
55
+
56
+ @mixin animation($args) {
57
+ -webkit-animation: $args;
58
+ -moz-animation: $args;
59
+ -ms-animation: $args;
60
+ -o-animation: $args;
61
+ animation: $args;
62
+ }
63
+ @mixin animation-delay($delay) {
64
+ -webkit-animation-delay: $delay;
65
+ -moz-animation-delay: $delay;
66
+ -ms-animation-delay: $delay;
67
+ -o-animation-delay: $delay;
68
+ animation-delay: $delay;
69
+ }
70
+ @mixin animation-direction($direction) {
71
+ -webkit-animation-direction: $direction;
72
+ -moz-animation-direction: $direction;
73
+ -ms-animation-direction: $direction;
74
+ -o-animation-direction: $direction;
75
+ }
76
+ @mixin animation-duration($duration) {
77
+ -webkit-animation-duration: $duration;
78
+ -moz-animation-duration: $duration;
79
+ -ms-animation-duration: $duration;
80
+ -o-animation-duration: $duration;
81
+ }
82
+ @mixin animation-fill-mode($mode) {
83
+ -webkit-animation-fill-mode: $mode;
84
+ -moz-animation-fill-mode: $mode;
85
+ -ms-animation-fill-mode: $mode;
86
+ -o-animation-fill-mode: $mode;
87
+ animation-fill-mode: $mode;
88
+ }
89
+ @mixin animation-iteration-count($count) {
90
+ -webkit-animation-iteration-count: $count;
91
+ -moz-animation-iteration-count: $count;
92
+ -ms-animation-iteration-count: $count;
93
+ -o-animation-iteration-count: $count;
94
+ animation-iteration-count: $count;
95
+ }
96
+ @mixin animation-name($name) {
97
+ -webkit-animation-name: $name;
98
+ -moz-animation-name: $name;
99
+ -ms-animation-name: $name;
100
+ -o-animation-name: $name;
101
+ animation-name: $name;
102
+ }
103
+ @mixin animation-play-state($state) {
104
+ -webkit-animation-play-state: $state;
105
+ -moz-animation-play-state: $state;
106
+ -ms-animation-play-state: $state;
107
+ -o-animation-play-state: $state;
108
+ animation-play-state: $state;
109
+ }
110
+ @mixin animation-timing-function($function) {
111
+ -webkit-animation-timing-function: $function;
112
+ -moz-animation-timing-function: $function;
113
+ -ms-animation-timing-function: $function;
114
+ -o-animation-timing-function: $function;
115
+ animation-timing-function: $function;
116
+ }
117
+
118
+ // Keyframes
119
+ @mixin keyframes($animation-name) {
120
+ @-webkit-keyframes $animation-name {
121
+ @content;
122
+ }
123
+ @-moz-keyframes $animation-name {
124
+ @content;
125
+ }
126
+ @keyframes $animation-name {
127
+ @content;
128
+ }
129
+ }
130
+
131
+ // Backface-visibility
132
+
133
+ @mixin backface-visibility($args) {
134
+ -webkit-backface-visibility: $args;
135
+ -moz-backface-visibility: $args;
136
+ -ms-backface-visibility: $args;
137
+ backface-visibility: $args;
138
+ }
139
+
140
+
141
+ // Background Size
142
+
143
+ @mixin background-size($args) {
144
+ -webkit-background-size: $args;
145
+ background-size: $args;
146
+ }
147
+
148
+
149
+ // Border Radius
150
+
151
+ @mixin border-radius($args) {
152
+ -webkit-border-radius: $args;
153
+ -moz-border-radius: $args;
154
+ border-radius: $args;
155
+
156
+ background-clip: padding-box;
157
+ }
158
+
159
+
160
+ // Box Shadows
161
+
162
+ @mixin box-shadow($args) {
163
+ -webkit-box-shadow: $args;
164
+ -moz-box-shadow: $args;
165
+ box-shadow: $args;
166
+ }
167
+ @mixin inner-shadow($args) {
168
+ @include box-shadow(inset $args);
169
+ }
170
+
171
+
172
+ // Box Sizing
173
+
174
+ @mixin box-sizing($args) {
175
+ -webkit-box-sizing: $args;
176
+ -moz-box-sizing: $args;
177
+ box-sizing: $args;
178
+ }
179
+ @mixin border-box(){
180
+ @include box-sizing(border-box);
181
+ }
182
+ @mixin content-box(){
183
+ @include box-sizing(content-box);
184
+ }
185
+
186
+
187
+ // Columns
188
+
189
+ @mixin columns($args) {
190
+ -webkit-columns: $args;
191
+ -moz-columns: $args;
192
+ columns: $args;
193
+ }
194
+ @mixin column-count($count) {
195
+ -webkit-column-count: $count;
196
+ -moz-column-count: $count;
197
+ column-count: $count;
198
+ }
199
+ @mixin column-gap($gap) {
200
+ -webkit-column-gap: $gap;
201
+ -moz-column-gap: $gap;
202
+ column-gap: $gap;
203
+ }
204
+ @mixin column-width($width) {
205
+ -webkit-column-width: $width;
206
+ -moz-column-width: $width;
207
+ column-width: $width;
208
+ }
209
+ @mixin column-rule($args) {
210
+ -webkit-column-rule: $args;
211
+ -moz-column-rule: $args;
212
+ column-rule: $args;
213
+ }
214
+
215
+ // Filter
216
+ @mixin filter($args) {
217
+ -webkit-filter: $args;
218
+ -moz-filter: $args;
219
+ -o-filter: $args;
220
+ -ms-filter: $args;
221
+ }
222
+
223
+ // Flexbox
224
+ @mixin flexbox() {
225
+ display: -webkit-box;
226
+ display: -moz-box;
227
+ display: -ms-flexbox;
228
+ display: -webkit-flex;
229
+ display: flex;
230
+ }
231
+ @mixin flex($values) {
232
+ -webkit-box-flex: $values;
233
+ -moz-box-flex: $values;
234
+ -webkit-flex: $values;
235
+ -ms-flex: $values;
236
+ flex: $values;
237
+ }
238
+ @mixin order($val) {
239
+ -webkit-box-ordinal-group: $val;
240
+ -moz-box-ordinal-group: $val;
241
+ -ms-flex-order: $val;
242
+ -webkit-order: $val;
243
+ order: $val;
244
+ }
245
+ @mixin align($align) {
246
+ -webkit-flex-align: $align;
247
+ -ms-flex-align: $align;
248
+ -webkit-align-items: $align;
249
+ align-items: $align;
250
+ }
251
+ @mixin justify-content($val) {
252
+ -webkit-justify-content: $val;
253
+ justify-content: $val;
254
+ }
255
+ // Gradients
256
+
257
+ @mixin gradient($default: #F5F5F5, $start: #EEE, $stop: #FFF) {
258
+ @include linear-gradient-top($default,$start,0%,$stop,100%);
259
+ }
260
+ @mixin linear-gradient-top($default,$color1,$stop1,$color2,$stop2) {
261
+ background-color: $default;
262
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop($stop1, $color1), color-stop($stop2 $color2));
263
+ background-image: -webkit-linear-gradient(top, $color1 $stop1, $color2 $stop2);
264
+ background-image: -moz-linear-gradient(top, $color1 $stop1, $color2 $stop2);
265
+ background-image: -ms-linear-gradient(top, $color1 $stop1, $color2 $stop2);
266
+ background-image: -o-linear-gradient(top, $color1 $stop1, $color2 $stop2);
267
+ background-image: linear-gradient(top, $color1 $stop1, $color2 $stop2);
268
+ }
269
+ @mixin linear-gradient-top($default,$color1,$stop1,$color2,$stop2,$color3,$stop3) {
270
+ background-color: $default;
271
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop($stop1, $color1), color-stop($stop2 $color2), color-stop($stop3 $color3));
272
+ background-image: -webkit-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3);
273
+ background-image: -moz-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3);
274
+ background-image: -ms-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3);
275
+ background-image: -o-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3);
276
+ background-image: linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3);
277
+ }
278
+ @mixin linear-gradient-top($default,$color1,$stop1,$color2,$stop2,$color3,$stop3,$color4,$stop4) {
279
+ background-color: $default;
280
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop($stop1, $color1), color-stop($stop2 $color2), color-stop($stop3 $color3), color-stop($stop4 $color4));
281
+ background-image: -webkit-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4);
282
+ background-image: -moz-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4);
283
+ background-image: -ms-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4);
284
+ background-image: -o-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4);
285
+ background-image: linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4);
286
+ }
287
+ @mixin linear-gradient-left($default,$color1,$stop1,$color2,$stop2) {
288
+ background-color: $default;
289
+ background-image: -webkit-gradient(linear, left top, left top, color-stop($stop1, $color1), color-stop($stop2 $color2));
290
+ background-image: -webkit-linear-gradient(left, $color1 $stop1, $color2 $stop2);
291
+ background-image: -moz-linear-gradient(left, $color1 $stop1, $color2 $stop2);
292
+ background-image: -ms-linear-gradient(left, $color1 $stop1, $color2 $stop2);
293
+ background-image: -o-linear-gradient(left, $color1 $stop1, $color2 $stop2);
294
+ background-image: linear-gradient(left, $color1 $stop1, $color2 $stop2);
295
+ }
296
+ @mixin linear-gradient-left($default,$color1,$stop1,$color2,$stop2,$color3,$stop3) {
297
+ background-color: $default;
298
+ background-image: -webkit-gradient(linear, left top, left top, color-stop($stop1, $color1), color-stop($stop2 $color2), color-stop($stop3 $color3));
299
+ background-image: -webkit-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3);
300
+ background-image: -moz-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3);
301
+ background-image: -ms-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3);
302
+ background-image: -o-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3);
303
+ background-image: linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3);
304
+ }
305
+ @mixin linear-gradient-left($default,$color1,$stop1,$color2,$stop2,$color3,$stop3,$color4,$stop4) {
306
+ background-color: $default;
307
+ background-image: -webkit-gradient(linear, left top, left top, color-stop($stop1, $color1), color-stop($stop2 $color2), color-stop($stop3 $color3), color-stop($stop4 $color4));
308
+ background-image: -webkit-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4);
309
+ background-image: -moz-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4);
310
+ background-image: -ms-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4);
311
+ background-image: -o-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4);
312
+ background-image: linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4);
313
+ }
314
+
315
+
316
+ // Opacity
317
+
318
+ @mixin opacity($factor) {
319
+ $iefactor: $factor*100;
320
+ -ms-filter: "progid:DXImageTransform@mixin Microsoft@mixin Alpha(Opacity=${iefactor})";
321
+ filter: "alpha(opacity=(${iefactor}))";
322
+ -moz-opacity: $factor;
323
+ -khtml-opacity: $factor;
324
+ opacity: $factor;
325
+ }
326
+
327
+
328
+ // Text Shadow
329
+
330
+ @mixin text-shadow($args) {
331
+ text-shadow: $args;
332
+ }
333
+
334
+
335
+ // Transforms
336
+
337
+ @mixin transform($args) {
338
+ -webkit-transform: $args;
339
+ -moz-transform: $args;
340
+ -ms-transform: $args;
341
+ -o-transform: $args;
342
+ transform: $args;
343
+ }
344
+ @mixin transform-origin($args) {
345
+ -webkit-transform-origin: $args;
346
+ -moz-transform-origin: $args;
347
+ -ms-transform-origin: $args;
348
+ -o-transform-origin: $args;
349
+ transform-origin: $args;
350
+ }
351
+ @mixin transform-style($style) {
352
+ -webkit-transform-style: $style;
353
+ -moz-transform-style: $style;
354
+ -ms-transform-style: $style;
355
+ -o-transform-style: $style;
356
+ transform-style: $style;
357
+ }
358
+ @mixin rotate($deg:45deg){
359
+ @include transform(rotate($deg));
360
+ }
361
+ @mixin scale($factor:.5){
362
+ @include transform(scale($factor));
363
+ }
364
+ @mixin translate($x,$y){
365
+ @include transform(translate($x,$y));
366
+ }
367
+ @mixin translate3d($x,$y,$z) {
368
+ @include transform(translate3d($x,$y,$z));
369
+ }
370
+ @mixin translateHardware($x,$y) {
371
+ @include translate($x,$y);
372
+ -webkit-transform: translate3d($x,$y,0);
373
+ -moz-transform: translate3d($x,$y,0);
374
+ -o-transform: translate3d($x,$y,0);
375
+ -ms-transform: translate3d($x,$y,0);
376
+ transform: translate3d($x,$y,0);
377
+ }
378
+
379
+
380
+ // Transitions
381
+
382
+ @mixin transition($args:200ms) {
383
+ -webkit-transition: $args;
384
+ -moz-transition: $args;
385
+ -o-transition: $args;
386
+ -ms-transition: $args;
387
+ transition: $args;
388
+ }
389
+ @mixin transition-delay($delay:0) {
390
+ -webkit-transition-delay: $delay;
391
+ -moz-transition-delay: $delay;
392
+ -o-transition-delay: $delay;
393
+ -ms-transition-delay: $delay;
394
+ transition-delay: $delay;
395
+ }
396
+ @mixin transition-duration($duration:200ms) {
397
+ -webkit-transition-duration: $duration;
398
+ -moz-transition-duration: $duration;
399
+ -o-transition-duration: $duration;
400
+ -ms-transition-duration: $duration;
401
+ transition-duration: $duration;
402
+ }
403
+ @mixin transition-property($property:all) {
404
+ -webkit-transition-property: $property;
405
+ -moz-transition-property: $property;
406
+ -o-transition-property: $property;
407
+ -ms-transition-property: $property;
408
+ transition-property: $property;
409
+ }
410
+ @mixin transition-timing-function($function:ease) {
411
+ -webkit-transition-timing-function: $function;
412
+ -moz-transition-timing-function: $function;
413
+ -o-transition-timing-function: $function;
414
+ -ms-transition-timing-function: $function;
415
+ transition-timing-function: $function;
416
+ }
417
+
@@ -0,0 +1,320 @@
1
+ /*
2
+ @license
3
+ Copyright (c) 2014 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
+
30
+ .preloader-wrapper {
31
+ display: inline-block;
32
+ position: relative;
33
+ width: 48px;
34
+ height: 48px;
35
+
36
+ &.small {
37
+ width: 36px;
38
+ height: 36px;
39
+ }
40
+
41
+ &.big {
42
+ width: 64px;
43
+ height: 64px;
44
+ }
45
+
46
+ &.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
+
53
+ @-webkit-keyframes container-rotate {
54
+ to { -webkit-transform: rotate(360deg) }
55
+ }
56
+
57
+ @keyframes container-rotate {
58
+ to { transform: rotate(360deg) }
59
+ }
60
+
61
+ .spinner-layer {
62
+ position: absolute;
63
+ width: 100%;
64
+ height: 100%;
65
+ opacity: 0;
66
+ }
67
+
68
+ .spinner-blue {
69
+ border-color: #4285f4;
70
+ }
71
+
72
+ .spinner-red {
73
+ border-color: #db4437;
74
+ }
75
+
76
+ .spinner-yellow {
77
+ border-color: #f4b400;
78
+ }
79
+
80
+ .spinner-green {
81
+ border-color: #0f9d58;
82
+ }
83
+
84
+ /**
85
+ * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee):
86
+ *
87
+ * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't
88
+ * guarantee that the animation will start _exactly_ after that value. So we avoid using
89
+ * animation-delay and instead set custom keyframes for each color (as redundant as it
90
+ * seems).
91
+ *
92
+ * We write out each animation in full (instead of separating animation-name,
93
+ * animation-duration, etc.) because under the polyfill, Safari does not recognize those
94
+ * specific properties properly, treats them as -webkit-animation, and overrides the
95
+ * other animation rules. See https://github.com/Polymer/platform/issues/53.
96
+ */
97
+ .active .spinner-layer.spinner-blue {
98
+ /* durations: 4 * ARCTIME */
99
+ -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
100
+ animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
101
+ }
102
+
103
+ .active .spinner-layer.spinner-red {
104
+ /* durations: 4 * ARCTIME */
105
+ -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
106
+ animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
107
+ }
108
+
109
+ .active .spinner-layer.spinner-yellow {
110
+ /* durations: 4 * ARCTIME */
111
+ -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
112
+ animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
113
+ }
114
+
115
+ .active .spinner-layer.spinner-green {
116
+ /* durations: 4 * ARCTIME */
117
+ -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
118
+ animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
119
+ }
120
+
121
+ @-webkit-keyframes fill-unfill-rotate {
122
+ 12.5% { -webkit-transform: rotate(135deg); } /* 0.5 * ARCSIZE */
123
+ 25% { -webkit-transform: rotate(270deg); } /* 1 * ARCSIZE */
124
+ 37.5% { -webkit-transform: rotate(405deg); } /* 1.5 * ARCSIZE */
125
+ 50% { -webkit-transform: rotate(540deg); } /* 2 * ARCSIZE */
126
+ 62.5% { -webkit-transform: rotate(675deg); } /* 2.5 * ARCSIZE */
127
+ 75% { -webkit-transform: rotate(810deg); } /* 3 * ARCSIZE */
128
+ 87.5% { -webkit-transform: rotate(945deg); } /* 3.5 * ARCSIZE */
129
+ to { -webkit-transform: rotate(1080deg); } /* 4 * ARCSIZE */
130
+ }
131
+
132
+ @keyframes fill-unfill-rotate {
133
+ 12.5% { transform: rotate(135deg); } /* 0.5 * ARCSIZE */
134
+ 25% { transform: rotate(270deg); } /* 1 * ARCSIZE */
135
+ 37.5% { transform: rotate(405deg); } /* 1.5 * ARCSIZE */
136
+ 50% { transform: rotate(540deg); } /* 2 * ARCSIZE */
137
+ 62.5% { transform: rotate(675deg); } /* 2.5 * ARCSIZE */
138
+ 75% { transform: rotate(810deg); } /* 3 * ARCSIZE */
139
+ 87.5% { transform: rotate(945deg); } /* 3.5 * ARCSIZE */
140
+ to { transform: rotate(1080deg); } /* 4 * ARCSIZE */
141
+ }
142
+
143
+ @-webkit-keyframes blue-fade-in-out {
144
+ from { opacity: 1; }
145
+ 25% { opacity: 1; }
146
+ 26% { opacity: 0; }
147
+ 89% { opacity: 0; }
148
+ 90% { opacity: 1; }
149
+ 100% { opacity: 1; }
150
+ }
151
+
152
+ @keyframes blue-fade-in-out {
153
+ from { opacity: 1; }
154
+ 25% { opacity: 1; }
155
+ 26% { opacity: 0; }
156
+ 89% { opacity: 0; }
157
+ 90% { opacity: 1; }
158
+ 100% { opacity: 1; }
159
+ }
160
+
161
+ @-webkit-keyframes red-fade-in-out {
162
+ from { opacity: 0; }
163
+ 15% { opacity: 0; }
164
+ 25% { opacity: 1; }
165
+ 50% { opacity: 1; }
166
+ 51% { opacity: 0; }
167
+ }
168
+
169
+ @keyframes red-fade-in-out {
170
+ from { opacity: 0; }
171
+ 15% { opacity: 0; }
172
+ 25% { opacity: 1; }
173
+ 50% { opacity: 1; }
174
+ 51% { opacity: 0; }
175
+ }
176
+
177
+ @-webkit-keyframes yellow-fade-in-out {
178
+ from { opacity: 0; }
179
+ 40% { opacity: 0; }
180
+ 50% { opacity: 1; }
181
+ 75% { opacity: 1; }
182
+ 76% { opacity: 0; }
183
+ }
184
+
185
+ @keyframes yellow-fade-in-out {
186
+ from { opacity: 0; }
187
+ 40% { opacity: 0; }
188
+ 50% { opacity: 1; }
189
+ 75% { opacity: 1; }
190
+ 76% { opacity: 0; }
191
+ }
192
+
193
+ @-webkit-keyframes green-fade-in-out {
194
+ from { opacity: 0; }
195
+ 65% { opacity: 0; }
196
+ 75% { opacity: 1; }
197
+ 90% { opacity: 1; }
198
+ 100% { opacity: 0; }
199
+ }
200
+
201
+ @keyframes green-fade-in-out {
202
+ from { opacity: 0; }
203
+ 65% { opacity: 0; }
204
+ 75% { opacity: 1; }
205
+ 90% { opacity: 1; }
206
+ 100% { opacity: 0; }
207
+ }
208
+
209
+ /**
210
+ * Patch the gap that appear between the two adjacent div.circle-clipper while the
211
+ * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11).
212
+ */
213
+ .gap-patch {
214
+ position: absolute;
215
+ box-sizing: border-box;
216
+ top: 0;
217
+ left: 45%;
218
+ width: 10%;
219
+ height: 100%;
220
+ overflow: hidden;
221
+ border-color: inherit;
222
+ }
223
+
224
+ .gap-patch .circle {
225
+ width: 1000%;
226
+ left: -450%;
227
+ }
228
+
229
+ .circle-clipper {
230
+ display: inline-block;
231
+ position: relative;
232
+ width: 50%;
233
+ height: 100%;
234
+ overflow: hidden;
235
+ border-color: inherit;
236
+
237
+ .circle {
238
+ width: 200%;
239
+ box-sizing: border-box;
240
+ height: 100%;
241
+ border-width: 3px; /* STROKEWIDTH */
242
+ border-style: solid;
243
+ border-color: inherit;
244
+ border-bottom-color: transparent !important;
245
+ border-radius: 50%;
246
+ -webkit-animation: none;
247
+ animation: none;
248
+ position: absolute;
249
+ top: 0;
250
+ right: 0;
251
+ bottom: 0;
252
+ }
253
+
254
+ &.left .circle {
255
+ left: 0;
256
+ border-right-color: transparent !important;
257
+ -webkit-transform: rotate(129deg);
258
+ transform: rotate(129deg);
259
+ }
260
+ &.right .circle {
261
+ left: -100%;
262
+ border-left-color: transparent !important;
263
+ -webkit-transform: rotate(-129deg);
264
+ transform: rotate(-129deg);
265
+ }
266
+ }
267
+
268
+
269
+
270
+ .active .circle-clipper.left .circle {
271
+ /* duration: ARCTIME */
272
+ -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
273
+ animation: left-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
274
+ }
275
+
276
+ .active .circle-clipper.right .circle {
277
+ /* duration: ARCTIME */
278
+ -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
279
+ animation: right-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both;
280
+ }
281
+
282
+ @-webkit-keyframes left-spin {
283
+ from { -webkit-transform: rotate(130deg); }
284
+ 50% { -webkit-transform: rotate(-5deg); }
285
+ to { -webkit-transform: rotate(130deg); }
286
+ }
287
+
288
+ @keyframes left-spin {
289
+ from { transform: rotate(130deg); }
290
+ 50% { transform: rotate(-5deg); }
291
+ to { transform: rotate(130deg); }
292
+ }
293
+
294
+ @-webkit-keyframes right-spin {
295
+ from { -webkit-transform: rotate(-130deg); }
296
+ 50% { -webkit-transform: rotate(5deg); }
297
+ to { -webkit-transform: rotate(-130deg); }
298
+ }
299
+
300
+ @keyframes right-spin {
301
+ from { transform: rotate(-130deg); }
302
+ 50% { transform: rotate(5deg); }
303
+ to { transform: rotate(-130deg); }
304
+ }
305
+
306
+ #spinnerContainer.cooldown {
307
+ /* duration: SHRINK_TIME */
308
+ -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0.0, 0.2, 1);
309
+ animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0.0, 0.2, 1);
310
+ }
311
+
312
+ @-webkit-keyframes fade-out {
313
+ from { opacity: 1; }
314
+ to { opacity: 0; }
315
+ }
316
+
317
+ @keyframes fade-out {
318
+ from { opacity: 1; }
319
+ to { opacity: 0; }
320
+ }