cupboard 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (132) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -0
  3. data/app/assets/images/icook-logo-footer.svg +1 -0
  4. data/app/assets/images/vip_modal.svg +1 -0
  5. data/app/assets/stylesheets/_base.scss +3 -1
  6. data/app/assets/stylesheets/_components.scss +31 -29
  7. data/app/assets/stylesheets/_helpers.scss +4 -3
  8. data/app/assets/stylesheets/_layouts.scss +1 -2
  9. data/app/assets/stylesheets/_vendors.scss +7 -0
  10. data/app/assets/stylesheets/base/_basic.scss +35 -0
  11. data/app/assets/stylesheets/base/_forms.scss +96 -50
  12. data/app/assets/stylesheets/base/_inputs.scss +85 -0
  13. data/app/assets/stylesheets/base/_lists.scss +1 -1
  14. data/app/assets/stylesheets/base/{_table.scss → _tables.scss} +12 -12
  15. data/app/assets/stylesheets/base/_typography.scss +34 -210
  16. data/app/assets/stylesheets/components/_badges.scss +47 -10
  17. data/app/assets/stylesheets/components/_breadcrumbs.scss +25 -9
  18. data/app/assets/stylesheets/components/_buttons.scss +3 -207
  19. data/app/assets/stylesheets/components/_pagination.scss +26 -16
  20. data/app/assets/stylesheets/components/_search-form.scss +89 -28
  21. data/app/assets/stylesheets/components/_sorting-cards.scss +1 -1
  22. data/app/assets/stylesheets/components/alerts/_alert-global.scss +45 -23
  23. data/app/assets/stylesheets/components/alerts/_alert-market.scss +6 -6
  24. data/app/assets/stylesheets/components/alerts/_alert-no-result.scss +1 -0
  25. data/app/assets/stylesheets/components/alerts/_report-msg.scss +51 -0
  26. data/app/assets/stylesheets/components/buttons/_card-buttons.scss +88 -0
  27. data/app/assets/stylesheets/components/buttons/_default-buttons.scss +98 -0
  28. data/app/assets/stylesheets/components/buttons/_round-buttons.scss +125 -0
  29. data/app/assets/stylesheets/components/cards/_brand-product-card.scss +65 -36
  30. data/app/assets/stylesheets/components/cards/_dish-card.scss +8 -12
  31. data/app/assets/stylesheets/components/cards/_featured-card.scss +69 -0
  32. data/app/assets/stylesheets/components/cards/_feeds-card.scss +9 -12
  33. data/app/assets/stylesheets/components/cards/_list-card.scss +88 -96
  34. data/app/assets/stylesheets/components/cards/_photo-card.scss +57 -101
  35. data/app/assets/stylesheets/components/cards/_product-card.scss +8 -8
  36. data/app/assets/stylesheets/components/cards/_recipe-card.scss +86 -67
  37. data/app/assets/stylesheets/components/cards/_video-card.scss +28 -29
  38. data/app/assets/stylesheets/components/comments/_comment-form.scss +5 -13
  39. data/app/assets/stylesheets/components/comments/_single-comment.scss +21 -14
  40. data/app/assets/stylesheets/components/covers/_brand-cover.scss +1 -1
  41. data/app/assets/stylesheets/components/covers/_categories-cover.scss +65 -45
  42. data/app/assets/stylesheets/components/covers/_users-cover.scss +75 -0
  43. data/app/assets/stylesheets/components/features/_feature-events.scss +2 -5
  44. data/app/assets/stylesheets/components/features/_feature-slides.scss +5 -6
  45. data/app/assets/stylesheets/components/icons/_footer-social-icons.scss +11 -34
  46. data/app/assets/stylesheets/components/icons/_icon-status.scss +12 -16
  47. data/app/assets/stylesheets/components/icons/_icookfont.scss +5 -0
  48. data/app/assets/stylesheets/components/modals/_modal-reset.scss +1 -1
  49. data/app/assets/stylesheets/components/modals/_recipe-list-modal.scss +8 -5
  50. data/app/assets/stylesheets/components/modals/_vip-modal.scss +114 -0
  51. data/app/assets/stylesheets/components/navigations/_blog-navi.scss +15 -19
  52. data/app/assets/stylesheets/components/navigations/_brand-tabs-navi.scss +4 -4
  53. data/app/assets/stylesheets/components/navigations/_categories-navi.scss +54 -137
  54. data/app/assets/stylesheets/components/recipes/_ingredients.scss +17 -22
  55. data/app/assets/stylesheets/components/recipes/_notes.scss +2 -2
  56. data/app/assets/stylesheets/components/recipes/_recipe-details.scss +5 -3
  57. data/app/assets/stylesheets/components/recipes/_recipe-navi.scss +29 -32
  58. data/app/assets/stylesheets/components/recipes/_steps.scss +2 -9
  59. data/app/assets/stylesheets/components/sidebars/_brand-ingredients.scss +3 -8
  60. data/app/assets/stylesheets/components/sidebars/_brand-popular-lists.scss +10 -13
  61. data/app/assets/stylesheets/components/sidebars/_brand-recent-events.scss +1 -2
  62. data/app/assets/stylesheets/components/sidebars/_business-kitchen.scss +11 -10
  63. data/app/assets/stylesheets/components/sidebars/_business-sponsors.scss +65 -0
  64. data/app/assets/stylesheets/components/sidebars/_hot-categories.scss +20 -39
  65. data/app/assets/stylesheets/components/sidebars/_icook-video.scss +4 -8
  66. data/app/assets/stylesheets/components/sidebars/_popular-recipes.scss +88 -33
  67. data/app/assets/stylesheets/components/sidebars/_popular-search.scss +17 -25
  68. data/app/assets/stylesheets/components/sidebars/_recipes-collect.scss +5 -2
  69. data/app/assets/stylesheets/components/sidebars/_sidebar-basic.scss +5 -14
  70. data/app/assets/stylesheets/components/sidebars/_tv-more-recipes.scss +3 -4
  71. data/app/assets/stylesheets/components/sidebars/_tv-popular-tags.scss +4 -5
  72. data/app/assets/stylesheets/components/users/_fav-list.scss +6 -8
  73. data/app/assets/stylesheets/components/users/_user-stats.scss +29 -25
  74. data/app/assets/stylesheets/helpers/_mixin-badge.scss +4 -3
  75. data/app/assets/stylesheets/helpers/_mixin-ellipsis.scss +39 -0
  76. data/app/assets/stylesheets/helpers/_mixin-flex.scss +247 -0
  77. data/app/assets/stylesheets/helpers/_mixin-icons.scss +6 -18
  78. data/app/assets/stylesheets/helpers/_variables-color.scss +47 -83
  79. data/app/assets/stylesheets/layouts/_base-footer.scss +15 -18
  80. data/app/assets/stylesheets/layouts/_global-navbar.scss +12 -15
  81. data/app/assets/stylesheets/layouts/_mega-footer.scss +298 -0
  82. data/app/assets/stylesheets/vendors/SpinKit/.bower.json +30 -0
  83. data/app/assets/stylesheets/vendors/SpinKit/CHANGELOG.md +40 -0
  84. data/app/assets/stylesheets/vendors/SpinKit/CONTRIBUTING.md +22 -0
  85. data/app/assets/stylesheets/vendors/SpinKit/LICENSE +20 -0
  86. data/app/assets/stylesheets/vendors/SpinKit/README.md +72 -0
  87. data/app/assets/stylesheets/vendors/SpinKit/bower.json +19 -0
  88. data/app/assets/stylesheets/vendors/SpinKit/css/spinkit.css +770 -0
  89. data/app/assets/stylesheets/vendors/SpinKit/css/spinners/1-rotating-plane.css +35 -0
  90. data/app/assets/stylesheets/vendors/SpinKit/css/spinners/10-fading-circle.css +129 -0
  91. data/app/assets/stylesheets/vendors/SpinKit/css/spinners/11-folding-cube.css +85 -0
  92. data/app/assets/stylesheets/vendors/SpinKit/css/spinners/2-double-bounce.css +44 -0
  93. data/app/assets/stylesheets/vendors/SpinKit/css/spinners/3-wave.css +56 -0
  94. data/app/assets/stylesheets/vendors/SpinKit/css/spinners/4-wandering-cubes.css +68 -0
  95. data/app/assets/stylesheets/vendors/SpinKit/css/spinners/5-pulse.css +32 -0
  96. data/app/assets/stylesheets/vendors/SpinKit/css/spinners/6-chasing-dots.css +58 -0
  97. data/app/assets/stylesheets/vendors/SpinKit/css/spinners/7-three-bounce.css +44 -0
  98. data/app/assets/stylesheets/vendors/SpinKit/css/spinners/8-circle.css +133 -0
  99. data/app/assets/stylesheets/vendors/SpinKit/css/spinners/9-cube-grid.css +76 -0
  100. data/app/assets/stylesheets/vendors/SpinKit/examples/1-rotating-plane.html +49 -0
  101. data/app/assets/stylesheets/vendors/SpinKit/examples/10-fading-circle.html +156 -0
  102. data/app/assets/stylesheets/vendors/SpinKit/examples/11-folding-cube.html +104 -0
  103. data/app/assets/stylesheets/vendors/SpinKit/examples/2-double-bounce.html +61 -0
  104. data/app/assets/stylesheets/vendors/SpinKit/examples/3-wave.html +76 -0
  105. data/app/assets/stylesheets/vendors/SpinKit/examples/4-wandering-cubes.html +85 -0
  106. data/app/assets/stylesheets/vendors/SpinKit/examples/5-pulse.html +46 -0
  107. data/app/assets/stylesheets/vendors/SpinKit/examples/6-chasing-dots.html +75 -0
  108. data/app/assets/stylesheets/vendors/SpinKit/examples/7-three-bounce.html +62 -0
  109. data/app/assets/stylesheets/vendors/SpinKit/examples/8-circle.html +160 -0
  110. data/app/assets/stylesheets/vendors/SpinKit/examples/9-cube-grid.html +100 -0
  111. data/app/assets/stylesheets/vendors/SpinKit/gulpfile.js +97 -0
  112. data/app/assets/stylesheets/vendors/SpinKit/package.json +34 -0
  113. data/app/assets/stylesheets/vendors/SpinKit/scss/_variables.scss +3 -0
  114. data/app/assets/stylesheets/vendors/SpinKit/scss/spinkit.scss +12 -0
  115. data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/1-rotating-plane.scss +25 -0
  116. data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/10-fading-circle.scss +63 -0
  117. data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/11-folding-cube.scss +70 -0
  118. data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/2-double-bounce.scss +38 -0
  119. data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/3-wave.scss +42 -0
  120. data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/4-wandering-cubes.scss +51 -0
  121. data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/5-pulse.scss +25 -0
  122. data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/6-chasing-dots.scss +52 -0
  123. data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/7-three-bounce.scss +40 -0
  124. data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/8-circle.scss +62 -0
  125. data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/9-cube-grid.scss +55 -0
  126. data/lib/cupboard/version.rb +1 -1
  127. metadata +62 -8
  128. data/app/assets/stylesheets/components/navigations/_categories-navi-responsive.scss +0 -129
  129. data/app/assets/stylesheets/components/navigations/_tv-navi.scss +0 -252
  130. data/app/assets/stylesheets/helpers/_mixin-buttons.scss +0 -17
  131. data/app/assets/stylesheets/layouts/_footer-nav.scss +0 -151
  132. data/app/assets/stylesheets/layouts/_sub-header-market.scss +0 -138
@@ -0,0 +1,75 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>6 chasing dots</title>
5
+ <style type="text/css">
6
+ /*
7
+ * Usage:
8
+ *
9
+ <div class="sk-chasing-dots">
10
+ <div class="sk-child sk-dot1"></div>
11
+ <div class="sk-child sk-dot2"></div>
12
+ </div>
13
+ *
14
+ */
15
+ .sk-chasing-dots {
16
+ margin: 40px auto;
17
+ width: 40px;
18
+ height: 40px;
19
+ position: relative;
20
+ text-align: center;
21
+ -webkit-animation: sk-chasingDotsRotate 2s infinite linear;
22
+ animation: sk-chasingDotsRotate 2s infinite linear; }
23
+ .sk-chasing-dots .sk-child {
24
+ width: 60%;
25
+ height: 60%;
26
+ display: inline-block;
27
+ position: absolute;
28
+ top: 0;
29
+ background-color: #333;
30
+ border-radius: 100%;
31
+ -webkit-animation: sk-chasingDotsBounce 2s infinite ease-in-out;
32
+ animation: sk-chasingDotsBounce 2s infinite ease-in-out; }
33
+ .sk-chasing-dots .sk-dot2 {
34
+ top: auto;
35
+ bottom: 0;
36
+ -webkit-animation-delay: -1s;
37
+ animation-delay: -1s; }
38
+
39
+ @-webkit-keyframes sk-chasingDotsRotate {
40
+ 100% {
41
+ -webkit-transform: rotate(360deg);
42
+ transform: rotate(360deg); } }
43
+
44
+ @keyframes sk-chasingDotsRotate {
45
+ 100% {
46
+ -webkit-transform: rotate(360deg);
47
+ transform: rotate(360deg); } }
48
+
49
+ @-webkit-keyframes sk-chasingDotsBounce {
50
+ 0%, 100% {
51
+ -webkit-transform: scale(0);
52
+ transform: scale(0); }
53
+ 50% {
54
+ -webkit-transform: scale(1);
55
+ transform: scale(1); } }
56
+
57
+ @keyframes sk-chasingDotsBounce {
58
+ 0%, 100% {
59
+ -webkit-transform: scale(0);
60
+ transform: scale(0); }
61
+ 50% {
62
+ -webkit-transform: scale(1);
63
+ transform: scale(1); } }
64
+
65
+ </style>
66
+ </head>
67
+ <body>
68
+
69
+
70
+ <div class="sk-chasing-dots">
71
+ <div class="sk-child sk-dot1"></div>
72
+ <div class="sk-child sk-dot2"></div>
73
+ </div>
74
+ </body>
75
+ </html>
@@ -0,0 +1,62 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>7 three bounce</title>
5
+ <style type="text/css">
6
+ /*
7
+ * Usage:
8
+ *
9
+ <div class="sk-three-bounce">
10
+ <div class="sk-child sk-bounce1"></div>
11
+ <div class="sk-child sk-bounce2"></div>
12
+ <div class="sk-child sk-bounce3"></div>
13
+ </div>
14
+ *
15
+ */
16
+ .sk-three-bounce {
17
+ margin: 40px auto;
18
+ width: 80px;
19
+ text-align: center; }
20
+ .sk-three-bounce .sk-child {
21
+ width: 20px;
22
+ height: 20px;
23
+ background-color: #333;
24
+ border-radius: 100%;
25
+ display: inline-block;
26
+ -webkit-animation: sk-three-bounce 1.4s ease-in-out 0s infinite both;
27
+ animation: sk-three-bounce 1.4s ease-in-out 0s infinite both; }
28
+ .sk-three-bounce .sk-bounce1 {
29
+ -webkit-animation-delay: -0.32s;
30
+ animation-delay: -0.32s; }
31
+ .sk-three-bounce .sk-bounce2 {
32
+ -webkit-animation-delay: -0.16s;
33
+ animation-delay: -0.16s; }
34
+
35
+ @-webkit-keyframes sk-three-bounce {
36
+ 0%, 80%, 100% {
37
+ -webkit-transform: scale(0);
38
+ transform: scale(0); }
39
+ 40% {
40
+ -webkit-transform: scale(1);
41
+ transform: scale(1); } }
42
+
43
+ @keyframes sk-three-bounce {
44
+ 0%, 80%, 100% {
45
+ -webkit-transform: scale(0);
46
+ transform: scale(0); }
47
+ 40% {
48
+ -webkit-transform: scale(1);
49
+ transform: scale(1); } }
50
+
51
+ </style>
52
+ </head>
53
+ <body>
54
+
55
+
56
+ <div class="sk-three-bounce">
57
+ <div class="sk-child sk-bounce1"></div>
58
+ <div class="sk-child sk-bounce2"></div>
59
+ <div class="sk-child sk-bounce3"></div>
60
+ </div>
61
+ </body>
62
+ </html>
@@ -0,0 +1,160 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>8 circle</title>
5
+ <style type="text/css">
6
+ /*
7
+ * Usage:
8
+ *
9
+ <div class="sk-circle">
10
+ <div class="sk-circle1 sk-child"></div>
11
+ <div class="sk-circle2 sk-child"></div>
12
+ <div class="sk-circle3 sk-child"></div>
13
+ <div class="sk-circle4 sk-child"></div>
14
+ <div class="sk-circle5 sk-child"></div>
15
+ <div class="sk-circle6 sk-child"></div>
16
+ <div class="sk-circle7 sk-child"></div>
17
+ <div class="sk-circle8 sk-child"></div>
18
+ <div class="sk-circle9 sk-child"></div>
19
+ <div class="sk-circle10 sk-child"></div>
20
+ <div class="sk-circle11 sk-child"></div>
21
+ <div class="sk-circle12 sk-child"></div>
22
+ </div>
23
+ *
24
+ */
25
+ .sk-circle {
26
+ margin: 40px auto;
27
+ width: 40px;
28
+ height: 40px;
29
+ position: relative; }
30
+ .sk-circle .sk-child {
31
+ width: 100%;
32
+ height: 100%;
33
+ position: absolute;
34
+ left: 0;
35
+ top: 0; }
36
+ .sk-circle .sk-child:before {
37
+ content: '';
38
+ display: block;
39
+ margin: 0 auto;
40
+ width: 15%;
41
+ height: 15%;
42
+ background-color: #333;
43
+ border-radius: 100%;
44
+ -webkit-animation: sk-circleBounceDelay 1.2s infinite ease-in-out both;
45
+ animation: sk-circleBounceDelay 1.2s infinite ease-in-out both; }
46
+ .sk-circle .sk-circle2 {
47
+ -webkit-transform: rotate(30deg);
48
+ -ms-transform: rotate(30deg);
49
+ transform: rotate(30deg); }
50
+ .sk-circle .sk-circle3 {
51
+ -webkit-transform: rotate(60deg);
52
+ -ms-transform: rotate(60deg);
53
+ transform: rotate(60deg); }
54
+ .sk-circle .sk-circle4 {
55
+ -webkit-transform: rotate(90deg);
56
+ -ms-transform: rotate(90deg);
57
+ transform: rotate(90deg); }
58
+ .sk-circle .sk-circle5 {
59
+ -webkit-transform: rotate(120deg);
60
+ -ms-transform: rotate(120deg);
61
+ transform: rotate(120deg); }
62
+ .sk-circle .sk-circle6 {
63
+ -webkit-transform: rotate(150deg);
64
+ -ms-transform: rotate(150deg);
65
+ transform: rotate(150deg); }
66
+ .sk-circle .sk-circle7 {
67
+ -webkit-transform: rotate(180deg);
68
+ -ms-transform: rotate(180deg);
69
+ transform: rotate(180deg); }
70
+ .sk-circle .sk-circle8 {
71
+ -webkit-transform: rotate(210deg);
72
+ -ms-transform: rotate(210deg);
73
+ transform: rotate(210deg); }
74
+ .sk-circle .sk-circle9 {
75
+ -webkit-transform: rotate(240deg);
76
+ -ms-transform: rotate(240deg);
77
+ transform: rotate(240deg); }
78
+ .sk-circle .sk-circle10 {
79
+ -webkit-transform: rotate(270deg);
80
+ -ms-transform: rotate(270deg);
81
+ transform: rotate(270deg); }
82
+ .sk-circle .sk-circle11 {
83
+ -webkit-transform: rotate(300deg);
84
+ -ms-transform: rotate(300deg);
85
+ transform: rotate(300deg); }
86
+ .sk-circle .sk-circle12 {
87
+ -webkit-transform: rotate(330deg);
88
+ -ms-transform: rotate(330deg);
89
+ transform: rotate(330deg); }
90
+ .sk-circle .sk-circle2:before {
91
+ -webkit-animation-delay: -1.1s;
92
+ animation-delay: -1.1s; }
93
+ .sk-circle .sk-circle3:before {
94
+ -webkit-animation-delay: -1s;
95
+ animation-delay: -1s; }
96
+ .sk-circle .sk-circle4:before {
97
+ -webkit-animation-delay: -0.9s;
98
+ animation-delay: -0.9s; }
99
+ .sk-circle .sk-circle5:before {
100
+ -webkit-animation-delay: -0.8s;
101
+ animation-delay: -0.8s; }
102
+ .sk-circle .sk-circle6:before {
103
+ -webkit-animation-delay: -0.7s;
104
+ animation-delay: -0.7s; }
105
+ .sk-circle .sk-circle7:before {
106
+ -webkit-animation-delay: -0.6s;
107
+ animation-delay: -0.6s; }
108
+ .sk-circle .sk-circle8:before {
109
+ -webkit-animation-delay: -0.5s;
110
+ animation-delay: -0.5s; }
111
+ .sk-circle .sk-circle9:before {
112
+ -webkit-animation-delay: -0.4s;
113
+ animation-delay: -0.4s; }
114
+ .sk-circle .sk-circle10:before {
115
+ -webkit-animation-delay: -0.3s;
116
+ animation-delay: -0.3s; }
117
+ .sk-circle .sk-circle11:before {
118
+ -webkit-animation-delay: -0.2s;
119
+ animation-delay: -0.2s; }
120
+ .sk-circle .sk-circle12:before {
121
+ -webkit-animation-delay: -0.1s;
122
+ animation-delay: -0.1s; }
123
+
124
+ @-webkit-keyframes sk-circleBounceDelay {
125
+ 0%, 80%, 100% {
126
+ -webkit-transform: scale(0);
127
+ transform: scale(0); }
128
+ 40% {
129
+ -webkit-transform: scale(1);
130
+ transform: scale(1); } }
131
+
132
+ @keyframes sk-circleBounceDelay {
133
+ 0%, 80%, 100% {
134
+ -webkit-transform: scale(0);
135
+ transform: scale(0); }
136
+ 40% {
137
+ -webkit-transform: scale(1);
138
+ transform: scale(1); } }
139
+
140
+ </style>
141
+ </head>
142
+ <body>
143
+
144
+
145
+ <div class="sk-circle">
146
+ <div class="sk-circle1 sk-child"></div>
147
+ <div class="sk-circle2 sk-child"></div>
148
+ <div class="sk-circle3 sk-child"></div>
149
+ <div class="sk-circle4 sk-child"></div>
150
+ <div class="sk-circle5 sk-child"></div>
151
+ <div class="sk-circle6 sk-child"></div>
152
+ <div class="sk-circle7 sk-child"></div>
153
+ <div class="sk-circle8 sk-child"></div>
154
+ <div class="sk-circle9 sk-child"></div>
155
+ <div class="sk-circle10 sk-child"></div>
156
+ <div class="sk-circle11 sk-child"></div>
157
+ <div class="sk-circle12 sk-child"></div>
158
+ </div>
159
+ </body>
160
+ </html>
@@ -0,0 +1,100 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>9 cube grid</title>
5
+ <style type="text/css">
6
+ /*
7
+ * Usage:
8
+ *
9
+ <div class="sk-cube-grid">
10
+ <div class="sk-cube sk-cube1"></div>
11
+ <div class="sk-cube sk-cube2"></div>
12
+ <div class="sk-cube sk-cube3"></div>
13
+ <div class="sk-cube sk-cube4"></div>
14
+ <div class="sk-cube sk-cube5"></div>
15
+ <div class="sk-cube sk-cube6"></div>
16
+ <div class="sk-cube sk-cube7"></div>
17
+ <div class="sk-cube sk-cube8"></div>
18
+ <div class="sk-cube sk-cube9"></div>
19
+ </div>
20
+ *
21
+ */
22
+ .sk-cube-grid {
23
+ width: 40px;
24
+ height: 40px;
25
+ margin: 40px auto;
26
+ /*
27
+ * Spinner positions
28
+ * 1 2 3
29
+ * 4 5 6
30
+ * 7 8 9
31
+ */ }
32
+ .sk-cube-grid .sk-cube {
33
+ width: 33.33%;
34
+ height: 33.33%;
35
+ background-color: #333;
36
+ float: left;
37
+ -webkit-animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out;
38
+ animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out; }
39
+ .sk-cube-grid .sk-cube1 {
40
+ -webkit-animation-delay: 0.2s;
41
+ animation-delay: 0.2s; }
42
+ .sk-cube-grid .sk-cube2 {
43
+ -webkit-animation-delay: 0.3s;
44
+ animation-delay: 0.3s; }
45
+ .sk-cube-grid .sk-cube3 {
46
+ -webkit-animation-delay: 0.4s;
47
+ animation-delay: 0.4s; }
48
+ .sk-cube-grid .sk-cube4 {
49
+ -webkit-animation-delay: 0.1s;
50
+ animation-delay: 0.1s; }
51
+ .sk-cube-grid .sk-cube5 {
52
+ -webkit-animation-delay: 0.2s;
53
+ animation-delay: 0.2s; }
54
+ .sk-cube-grid .sk-cube6 {
55
+ -webkit-animation-delay: 0.3s;
56
+ animation-delay: 0.3s; }
57
+ .sk-cube-grid .sk-cube7 {
58
+ -webkit-animation-delay: 0.0s;
59
+ animation-delay: 0.0s; }
60
+ .sk-cube-grid .sk-cube8 {
61
+ -webkit-animation-delay: 0.1s;
62
+ animation-delay: 0.1s; }
63
+ .sk-cube-grid .sk-cube9 {
64
+ -webkit-animation-delay: 0.2s;
65
+ animation-delay: 0.2s; }
66
+
67
+ @-webkit-keyframes sk-cubeGridScaleDelay {
68
+ 0%, 70%, 100% {
69
+ -webkit-transform: scale3D(1, 1, 1);
70
+ transform: scale3D(1, 1, 1); }
71
+ 35% {
72
+ -webkit-transform: scale3D(0, 0, 1);
73
+ transform: scale3D(0, 0, 1); } }
74
+
75
+ @keyframes sk-cubeGridScaleDelay {
76
+ 0%, 70%, 100% {
77
+ -webkit-transform: scale3D(1, 1, 1);
78
+ transform: scale3D(1, 1, 1); }
79
+ 35% {
80
+ -webkit-transform: scale3D(0, 0, 1);
81
+ transform: scale3D(0, 0, 1); } }
82
+
83
+ </style>
84
+ </head>
85
+ <body>
86
+
87
+
88
+ <div class="sk-cube-grid">
89
+ <div class="sk-cube sk-cube1"></div>
90
+ <div class="sk-cube sk-cube2"></div>
91
+ <div class="sk-cube sk-cube3"></div>
92
+ <div class="sk-cube sk-cube4"></div>
93
+ <div class="sk-cube sk-cube5"></div>
94
+ <div class="sk-cube sk-cube6"></div>
95
+ <div class="sk-cube sk-cube7"></div>
96
+ <div class="sk-cube sk-cube8"></div>
97
+ <div class="sk-cube sk-cube9"></div>
98
+ </div>
99
+ </body>
100
+ </html>
@@ -0,0 +1,97 @@
1
+ 'use strict';
2
+ var _ = require('lodash');
3
+ var fs = require('fs');
4
+ var Q = require('q');
5
+ var gulp = require('gulp');
6
+ var autoprefixer = require('gulp-autoprefixer');
7
+ var sass = require('gulp-sass');
8
+ var del = require('del');
9
+
10
+ var htmlDir = './examples',
11
+ cssDir = './css',
12
+ scssDir = './scss',
13
+ htmlTmpl = '<!DOCTYPE html>\n\
14
+ <html>\n\
15
+ <head>\n\
16
+ <title><%= title %></title>\n\
17
+ <style type="text/css">\n\
18
+ <%= css %>\n\
19
+ </style>\n\
20
+ </head>\n\
21
+ <body>\n\
22
+ <%= bodyContent %>\n\
23
+ </body>\n\
24
+ </html>';
25
+
26
+ var getHtmlUsageExample = function(cssContent) {
27
+ var match = cssContent.match(/Usage:([\s\S]+\*[.\s\S]+\>)/);
28
+ return match && match.length > 1 ? match[1].replace(/ \*/g, '') : '';
29
+ };
30
+
31
+ gulp.task('clean-styles', function(cb) {
32
+ del([cssDir], cb);
33
+ });
34
+
35
+
36
+ gulp.task('styles', ['clean-styles'], function() {
37
+ return gulp.src(scssDir + '/**/*.scss')
38
+ .pipe(sass({errLogToConsole: true}))
39
+ .pipe(autoprefixer('last 2 versions', {map: false}))
40
+ .pipe(gulp.dest(cssDir));
41
+ });
42
+
43
+
44
+ gulp.task('clean-html', function(cb) {
45
+ del([htmlDir], cb);
46
+ });
47
+
48
+
49
+ // Generates HTML files from the usage examples found in the CSS files
50
+ gulp.task('html', ['styles', 'clean-html'], function() {
51
+ var spinnersDir = cssDir + '/spinners/';
52
+ var allDeferred = Q.defer();
53
+
54
+ fs.mkdirSync(htmlDir);
55
+
56
+ fs.readdir(spinnersDir, function(err, filenames) {
57
+ var promises = filenames.map(function(filename) {
58
+ if (filename.indexOf('.css') === -1) { return; }
59
+ var deferred = Q.defer();
60
+ var title = filename.replace('.css', '').replace(/-/g, ' ');
61
+ var cssFilepath = spinnersDir + filename;
62
+ var htmlFilename = filename.replace('.css', '.html');
63
+
64
+ var readCssFile = function(err, cssContent) {
65
+ if (err) { console.log(err); deferred.reject(err); }
66
+ var bodyContent = getHtmlUsageExample(cssContent);
67
+ var html = _.template(htmlTmpl)({
68
+ css: cssContent,
69
+ title: title,
70
+ bodyContent: bodyContent
71
+ });
72
+ fs.writeFile(htmlDir + '/' + htmlFilename, html, function(err, data) {
73
+ if (err) { console.log(err); deferred.reject(err); }
74
+ deferred.resolve();
75
+ });
76
+ };
77
+
78
+ fs.readFile(cssFilepath, {encoding: 'utf8'}, readCssFile);
79
+ return deferred.promise;
80
+ });
81
+ Q.all(promises).then(allDeferred.resolve);
82
+
83
+ });
84
+
85
+ return allDeferred;
86
+ });
87
+
88
+
89
+ gulp.task('build', ['html', 'styles']);
90
+
91
+
92
+ gulp.task('default', ['build']);
93
+
94
+
95
+ gulp.task('watch', ['build'], function() {
96
+ gulp.watch(scssDir + '/**/*.scss', ['build']);
97
+ });
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "spinkit",
3
+ "version": "1.2.5",
4
+ "description": "A collection of loading indicators animated with CSS",
5
+ "keywords": [
6
+ "css",
7
+ "spinkit",
8
+ "spinner",
9
+ "loading",
10
+ "ui"
11
+ ],
12
+ "main": "gulpfile.js",
13
+ "scripts": {
14
+ "test": "echo \"Error: no test specified\" && exit 1"
15
+ },
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "https://github.com/tobiasahlin/SpinKit.git"
19
+ },
20
+ "author": "Tobias Ahlin",
21
+ "license": "MIT",
22
+ "bugs": {
23
+ "url": "https://github.com/tobiasahlin/SpinKit/issues"
24
+ },
25
+ "homepage": "https://github.com/tobiasahlin/SpinKit",
26
+ "devDependencies": {
27
+ "del": "^1.2.0",
28
+ "gulp": "^3.9.0",
29
+ "gulp-autoprefixer": "^2.3.1",
30
+ "gulp-sass": "^2.0.3",
31
+ "lodash": "^3.10.0",
32
+ "q": "^1.4.1"
33
+ }
34
+ }
@@ -0,0 +1,3 @@
1
+ $spinkit-spinner-margin: 40px auto !default;
2
+ $spinkit-size: 40px !default;
3
+ $spinkit-spinner-color: #333 !default;
@@ -0,0 +1,12 @@
1
+ @import
2
+ "spinners/1-rotating-plane",
3
+ "spinners/2-double-bounce",
4
+ "spinners/3-wave",
5
+ "spinners/4-wandering-cubes",
6
+ "spinners/5-pulse",
7
+ "spinners/6-chasing-dots",
8
+ "spinners/7-three-bounce",
9
+ "spinners/8-circle",
10
+ "spinners/9-cube-grid",
11
+ "spinners/10-fading-circle",
12
+ "spinners/11-folding-cube";
@@ -0,0 +1,25 @@
1
+ /*
2
+ * Usage:
3
+ *
4
+ <div class="sk-rotating-plane"></div>
5
+ *
6
+ */
7
+ @import "../variables";
8
+
9
+ .sk-rotating-plane {
10
+ width: $spinkit-size;
11
+ height: $spinkit-size;
12
+ background-color: $spinkit-spinner-color;
13
+ margin: $spinkit-spinner-margin;
14
+ animation: sk-rotatePlane 1.2s infinite ease-in-out;
15
+ }
16
+
17
+ @keyframes sk-rotatePlane {
18
+ 0% {
19
+ transform: perspective(120px) rotateX(0deg) rotateY(0deg);
20
+ } 50% {
21
+ transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
22
+ } 100% {
23
+ transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
24
+ }
25
+ }
@@ -0,0 +1,63 @@
1
+ /*
2
+ * Usage:
3
+ *
4
+ <div class="sk-fading-circle">
5
+ <div class="sk-circle1 sk-circle"></div>
6
+ <div class="sk-circle2 sk-circle"></div>
7
+ <div class="sk-circle3 sk-circle"></div>
8
+ <div class="sk-circle4 sk-circle"></div>
9
+ <div class="sk-circle5 sk-circle"></div>
10
+ <div class="sk-circle6 sk-circle"></div>
11
+ <div class="sk-circle7 sk-circle"></div>
12
+ <div class="sk-circle8 sk-circle"></div>
13
+ <div class="sk-circle9 sk-circle"></div>
14
+ <div class="sk-circle10 sk-circle"></div>
15
+ <div class="sk-circle11 sk-circle"></div>
16
+ <div class="sk-circle12 sk-circle"></div>
17
+ </div>
18
+ *
19
+ */
20
+ @import "../variables";
21
+
22
+ .sk-fading-circle {
23
+ $circleCount: 12;
24
+ $animationDuration: 1.2s;
25
+
26
+ margin: $spinkit-spinner-margin;
27
+ width: $spinkit-size;
28
+ height: $spinkit-size;
29
+ position: relative;
30
+
31
+ .sk-circle {
32
+ width: 100%;
33
+ height: 100%;
34
+ position: absolute;
35
+ left: 0;
36
+ top: 0;
37
+ }
38
+
39
+ .sk-circle:before {
40
+ content: '';
41
+ display: block;
42
+ margin: 0 auto;
43
+ width: 15%;
44
+ height: 15%;
45
+ background-color: $spinkit-spinner-color;
46
+ border-radius: 100%;
47
+ animation: sk-circleFadeDelay $animationDuration infinite ease-in-out both;
48
+ }
49
+
50
+ @for $i from 2 through $circleCount {
51
+ .sk-circle#{$i} { transform: rotate(360deg / $circleCount * ($i - 1)); }
52
+ }
53
+
54
+ @for $i from 2 through $circleCount {
55
+ .sk-circle#{$i}:before { animation-delay: - $animationDuration + $animationDuration / $circleCount * ($i - 1); }
56
+ }
57
+
58
+ }
59
+
60
+ @keyframes sk-circleFadeDelay {
61
+ 0%, 39%, 100% { opacity: 0 }
62
+ 40% { opacity: 1 }
63
+ }