cupboard 0.2.1 → 0.2.2

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 (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
+ }