cupboard 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -0
- data/app/assets/images/icook-logo-footer.svg +1 -0
- data/app/assets/images/vip_modal.svg +1 -0
- data/app/assets/stylesheets/_base.scss +3 -1
- data/app/assets/stylesheets/_components.scss +31 -29
- data/app/assets/stylesheets/_helpers.scss +4 -3
- data/app/assets/stylesheets/_layouts.scss +1 -2
- data/app/assets/stylesheets/_vendors.scss +7 -0
- data/app/assets/stylesheets/base/_basic.scss +35 -0
- data/app/assets/stylesheets/base/_forms.scss +96 -50
- data/app/assets/stylesheets/base/_inputs.scss +85 -0
- data/app/assets/stylesheets/base/_lists.scss +1 -1
- data/app/assets/stylesheets/base/{_table.scss → _tables.scss} +12 -12
- data/app/assets/stylesheets/base/_typography.scss +34 -210
- data/app/assets/stylesheets/components/_badges.scss +47 -10
- data/app/assets/stylesheets/components/_breadcrumbs.scss +25 -9
- data/app/assets/stylesheets/components/_buttons.scss +3 -207
- data/app/assets/stylesheets/components/_pagination.scss +26 -16
- data/app/assets/stylesheets/components/_search-form.scss +89 -28
- data/app/assets/stylesheets/components/_sorting-cards.scss +1 -1
- data/app/assets/stylesheets/components/alerts/_alert-global.scss +45 -23
- data/app/assets/stylesheets/components/alerts/_alert-market.scss +6 -6
- data/app/assets/stylesheets/components/alerts/_alert-no-result.scss +1 -0
- data/app/assets/stylesheets/components/alerts/_report-msg.scss +51 -0
- data/app/assets/stylesheets/components/buttons/_card-buttons.scss +88 -0
- data/app/assets/stylesheets/components/buttons/_default-buttons.scss +98 -0
- data/app/assets/stylesheets/components/buttons/_round-buttons.scss +125 -0
- data/app/assets/stylesheets/components/cards/_brand-product-card.scss +65 -36
- data/app/assets/stylesheets/components/cards/_dish-card.scss +8 -12
- data/app/assets/stylesheets/components/cards/_featured-card.scss +69 -0
- data/app/assets/stylesheets/components/cards/_feeds-card.scss +9 -12
- data/app/assets/stylesheets/components/cards/_list-card.scss +88 -96
- data/app/assets/stylesheets/components/cards/_photo-card.scss +57 -101
- data/app/assets/stylesheets/components/cards/_product-card.scss +8 -8
- data/app/assets/stylesheets/components/cards/_recipe-card.scss +86 -67
- data/app/assets/stylesheets/components/cards/_video-card.scss +28 -29
- data/app/assets/stylesheets/components/comments/_comment-form.scss +5 -13
- data/app/assets/stylesheets/components/comments/_single-comment.scss +21 -14
- data/app/assets/stylesheets/components/covers/_brand-cover.scss +1 -1
- data/app/assets/stylesheets/components/covers/_categories-cover.scss +65 -45
- data/app/assets/stylesheets/components/covers/_users-cover.scss +75 -0
- data/app/assets/stylesheets/components/features/_feature-events.scss +2 -5
- data/app/assets/stylesheets/components/features/_feature-slides.scss +5 -6
- data/app/assets/stylesheets/components/icons/_footer-social-icons.scss +11 -34
- data/app/assets/stylesheets/components/icons/_icon-status.scss +12 -16
- data/app/assets/stylesheets/components/icons/_icookfont.scss +5 -0
- data/app/assets/stylesheets/components/modals/_modal-reset.scss +1 -1
- data/app/assets/stylesheets/components/modals/_recipe-list-modal.scss +8 -5
- data/app/assets/stylesheets/components/modals/_vip-modal.scss +114 -0
- data/app/assets/stylesheets/components/navigations/_blog-navi.scss +15 -19
- data/app/assets/stylesheets/components/navigations/_brand-tabs-navi.scss +4 -4
- data/app/assets/stylesheets/components/navigations/_categories-navi.scss +54 -137
- data/app/assets/stylesheets/components/recipes/_ingredients.scss +17 -22
- data/app/assets/stylesheets/components/recipes/_notes.scss +2 -2
- data/app/assets/stylesheets/components/recipes/_recipe-details.scss +5 -3
- data/app/assets/stylesheets/components/recipes/_recipe-navi.scss +29 -32
- data/app/assets/stylesheets/components/recipes/_steps.scss +2 -9
- data/app/assets/stylesheets/components/sidebars/_brand-ingredients.scss +3 -8
- data/app/assets/stylesheets/components/sidebars/_brand-popular-lists.scss +10 -13
- data/app/assets/stylesheets/components/sidebars/_brand-recent-events.scss +1 -2
- data/app/assets/stylesheets/components/sidebars/_business-kitchen.scss +11 -10
- data/app/assets/stylesheets/components/sidebars/_business-sponsors.scss +65 -0
- data/app/assets/stylesheets/components/sidebars/_hot-categories.scss +20 -39
- data/app/assets/stylesheets/components/sidebars/_icook-video.scss +4 -8
- data/app/assets/stylesheets/components/sidebars/_popular-recipes.scss +88 -33
- data/app/assets/stylesheets/components/sidebars/_popular-search.scss +17 -25
- data/app/assets/stylesheets/components/sidebars/_recipes-collect.scss +5 -2
- data/app/assets/stylesheets/components/sidebars/_sidebar-basic.scss +5 -14
- data/app/assets/stylesheets/components/sidebars/_tv-more-recipes.scss +3 -4
- data/app/assets/stylesheets/components/sidebars/_tv-popular-tags.scss +4 -5
- data/app/assets/stylesheets/components/users/_fav-list.scss +6 -8
- data/app/assets/stylesheets/components/users/_user-stats.scss +29 -25
- data/app/assets/stylesheets/helpers/_mixin-badge.scss +4 -3
- data/app/assets/stylesheets/helpers/_mixin-ellipsis.scss +39 -0
- data/app/assets/stylesheets/helpers/_mixin-flex.scss +247 -0
- data/app/assets/stylesheets/helpers/_mixin-icons.scss +6 -18
- data/app/assets/stylesheets/helpers/_variables-color.scss +47 -83
- data/app/assets/stylesheets/layouts/_base-footer.scss +15 -18
- data/app/assets/stylesheets/layouts/_global-navbar.scss +12 -15
- data/app/assets/stylesheets/layouts/_mega-footer.scss +298 -0
- data/app/assets/stylesheets/vendors/SpinKit/.bower.json +30 -0
- data/app/assets/stylesheets/vendors/SpinKit/CHANGELOG.md +40 -0
- data/app/assets/stylesheets/vendors/SpinKit/CONTRIBUTING.md +22 -0
- data/app/assets/stylesheets/vendors/SpinKit/LICENSE +20 -0
- data/app/assets/stylesheets/vendors/SpinKit/README.md +72 -0
- data/app/assets/stylesheets/vendors/SpinKit/bower.json +19 -0
- data/app/assets/stylesheets/vendors/SpinKit/css/spinkit.css +770 -0
- data/app/assets/stylesheets/vendors/SpinKit/css/spinners/1-rotating-plane.css +35 -0
- data/app/assets/stylesheets/vendors/SpinKit/css/spinners/10-fading-circle.css +129 -0
- data/app/assets/stylesheets/vendors/SpinKit/css/spinners/11-folding-cube.css +85 -0
- data/app/assets/stylesheets/vendors/SpinKit/css/spinners/2-double-bounce.css +44 -0
- data/app/assets/stylesheets/vendors/SpinKit/css/spinners/3-wave.css +56 -0
- data/app/assets/stylesheets/vendors/SpinKit/css/spinners/4-wandering-cubes.css +68 -0
- data/app/assets/stylesheets/vendors/SpinKit/css/spinners/5-pulse.css +32 -0
- data/app/assets/stylesheets/vendors/SpinKit/css/spinners/6-chasing-dots.css +58 -0
- data/app/assets/stylesheets/vendors/SpinKit/css/spinners/7-three-bounce.css +44 -0
- data/app/assets/stylesheets/vendors/SpinKit/css/spinners/8-circle.css +133 -0
- data/app/assets/stylesheets/vendors/SpinKit/css/spinners/9-cube-grid.css +76 -0
- data/app/assets/stylesheets/vendors/SpinKit/examples/1-rotating-plane.html +49 -0
- data/app/assets/stylesheets/vendors/SpinKit/examples/10-fading-circle.html +156 -0
- data/app/assets/stylesheets/vendors/SpinKit/examples/11-folding-cube.html +104 -0
- data/app/assets/stylesheets/vendors/SpinKit/examples/2-double-bounce.html +61 -0
- data/app/assets/stylesheets/vendors/SpinKit/examples/3-wave.html +76 -0
- data/app/assets/stylesheets/vendors/SpinKit/examples/4-wandering-cubes.html +85 -0
- data/app/assets/stylesheets/vendors/SpinKit/examples/5-pulse.html +46 -0
- data/app/assets/stylesheets/vendors/SpinKit/examples/6-chasing-dots.html +75 -0
- data/app/assets/stylesheets/vendors/SpinKit/examples/7-three-bounce.html +62 -0
- data/app/assets/stylesheets/vendors/SpinKit/examples/8-circle.html +160 -0
- data/app/assets/stylesheets/vendors/SpinKit/examples/9-cube-grid.html +100 -0
- data/app/assets/stylesheets/vendors/SpinKit/gulpfile.js +97 -0
- data/app/assets/stylesheets/vendors/SpinKit/package.json +34 -0
- data/app/assets/stylesheets/vendors/SpinKit/scss/_variables.scss +3 -0
- data/app/assets/stylesheets/vendors/SpinKit/scss/spinkit.scss +12 -0
- data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/1-rotating-plane.scss +25 -0
- data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/10-fading-circle.scss +63 -0
- data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/11-folding-cube.scss +70 -0
- data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/2-double-bounce.scss +38 -0
- data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/3-wave.scss +42 -0
- data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/4-wandering-cubes.scss +51 -0
- data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/5-pulse.scss +25 -0
- data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/6-chasing-dots.scss +52 -0
- data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/7-three-bounce.scss +40 -0
- data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/8-circle.scss +62 -0
- data/app/assets/stylesheets/vendors/SpinKit/scss/spinners/9-cube-grid.scss +55 -0
- data/lib/cupboard/version.rb +1 -1
- metadata +62 -8
- data/app/assets/stylesheets/components/navigations/_categories-navi-responsive.scss +0 -129
- data/app/assets/stylesheets/components/navigations/_tv-navi.scss +0 -252
- data/app/assets/stylesheets/helpers/_mixin-buttons.scss +0 -17
- data/app/assets/stylesheets/layouts/_footer-nav.scss +0 -151
- 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,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
|
+
}
|