cupboard 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.rspec +2 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +4 -0
  6. data/CODE_OF_CONDUCT.md +13 -0
  7. data/Dockerfile +19 -0
  8. data/Gemfile +6 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.md +44 -0
  11. data/Rakefile +6 -0
  12. data/app/assets/images/category-cover.png +0 -0
  13. data/app/assets/images/category-default.jpg +0 -0
  14. data/app/assets/images/default-avatar.png +0 -0
  15. data/app/assets/images/favicon.ico +0 -0
  16. data/app/assets/images/icook-logo.png +0 -0
  17. data/app/assets/images/icook-logo.svg +26 -0
  18. data/app/assets/images/logo-2x.png +0 -0
  19. data/app/assets/images/no-result.png +0 -0
  20. data/app/assets/images/recipe-default.png +0 -0
  21. data/app/assets/images/section_bg.jpg +0 -0
  22. data/app/assets/images/setting-pr.jpg +0 -0
  23. data/app/assets/images/step-placeholder.jpg +0 -0
  24. data/app/assets/images/vip-icon.svg +1 -0
  25. data/app/assets/pages/atomic.md +56 -0
  26. data/app/assets/pages/index.md +101 -0
  27. data/app/assets/stylesheets/_base.scss +4 -0
  28. data/app/assets/stylesheets/_basic.scss +22 -0
  29. data/app/assets/stylesheets/_components.scss +95 -0
  30. data/app/assets/stylesheets/_forms.scss +159 -0
  31. data/app/assets/stylesheets/_global.scss +40 -0
  32. data/app/assets/stylesheets/_images.scss +125 -0
  33. data/app/assets/stylesheets/_layouts.scss +4 -0
  34. data/app/assets/stylesheets/_lists.scss +203 -0
  35. data/app/assets/stylesheets/_mixins.scss +6 -0
  36. data/app/assets/stylesheets/_tables.scss +244 -0
  37. data/app/assets/stylesheets/_typography.scss +292 -0
  38. data/app/assets/stylesheets/_variables.scss +1 -0
  39. data/app/assets/stylesheets/_widgets.scss +50 -0
  40. data/app/assets/stylesheets/base/_badge.scss +89 -0
  41. data/app/assets/stylesheets/base/_buttons.scss +217 -0
  42. data/app/assets/stylesheets/components/_accordion.scss +69 -0
  43. data/app/assets/stylesheets/components/_breadcrumbs.scss +46 -0
  44. data/app/assets/stylesheets/components/_cards.scss +12 -0
  45. data/app/assets/stylesheets/components/_grid.scss +45 -0
  46. data/app/assets/stylesheets/components/_navigations.scss +12 -0
  47. data/app/assets/stylesheets/components/_pagination.scss +166 -0
  48. data/app/assets/stylesheets/components/_search-form.scss +56 -0
  49. data/app/assets/stylesheets/components/_sorting-cards.scss +76 -0
  50. data/app/assets/stylesheets/components/_text.scss +166 -0
  51. data/app/assets/stylesheets/components/alerts/_alert-global.scss +137 -0
  52. data/app/assets/stylesheets/components/alerts/_alert-market.scss +129 -0
  53. data/app/assets/stylesheets/components/cards/_dish-card.scss +244 -0
  54. data/app/assets/stylesheets/components/cards/_list-card.scss +168 -0
  55. data/app/assets/stylesheets/components/cards/_photo-card.scss +244 -0
  56. data/app/assets/stylesheets/components/cards/_product-card.scss +104 -0
  57. data/app/assets/stylesheets/components/cards/_recipe-card.scss +96 -0
  58. data/app/assets/stylesheets/components/cards/_video-card.scss +206 -0
  59. data/app/assets/stylesheets/components/comments/_comment-form.scss +222 -0
  60. data/app/assets/stylesheets/components/medias/_blog-feeds.scss +28 -0
  61. data/app/assets/stylesheets/components/medias/_brand-cover.scss +127 -0
  62. data/app/assets/stylesheets/components/medias/_brand-product.scss +35 -0
  63. data/app/assets/stylesheets/components/medias/_business-kitchen.scss +66 -0
  64. data/app/assets/stylesheets/components/medias/_categories-cover.scss +79 -0
  65. data/app/assets/stylesheets/components/medias/_hot-categories.scss +36 -0
  66. data/app/assets/stylesheets/components/medias/_popular-categories.scss +89 -0
  67. data/app/assets/stylesheets/components/medias/_popular-recipes.scss +38 -0
  68. data/app/assets/stylesheets/components/medias/_pr-lists.scss +53 -0
  69. data/app/assets/stylesheets/components/medias/_recipe-reference.scss +45 -0
  70. data/app/assets/stylesheets/components/medias/_user-recipes.scss +46 -0
  71. data/app/assets/stylesheets/components/navigations/_blog-nav.scss +120 -0
  72. data/app/assets/stylesheets/components/navigations/_brand-tabs-nav.scss +187 -0
  73. data/app/assets/stylesheets/components/navigations/_categories-nav-responsive.scss +131 -0
  74. data/app/assets/stylesheets/components/navigations/_categories-nav.scss +307 -0
  75. data/app/assets/stylesheets/components/navigations/_recipe-nav.scss +112 -0
  76. data/app/assets/stylesheets/components/navigations/_tv-nav.scss +283 -0
  77. data/app/assets/stylesheets/components/recipes/_ingredients.scss +223 -0
  78. data/app/assets/stylesheets/components/recipes/_notes.scss +60 -0
  79. data/app/assets/stylesheets/components/recipes/_steps.scss +153 -0
  80. data/app/assets/stylesheets/components/single_comment/_single-comment.scss +251 -0
  81. data/app/assets/stylesheets/layouts/_footer-nav.scss +151 -0
  82. data/app/assets/stylesheets/layouts/_footer.scss +48 -0
  83. data/app/assets/stylesheets/layouts/_footers.scss +12 -0
  84. data/app/assets/stylesheets/layouts/_global-navbar.scss +261 -0
  85. data/app/assets/stylesheets/layouts/_headers.scss +11 -0
  86. data/app/assets/stylesheets/layouts/_sub-header-market.scss +138 -0
  87. data/app/assets/stylesheets/mixins/_mixin-alert.scss +27 -0
  88. data/app/assets/stylesheets/mixins/_mixin-animation.scss +10 -0
  89. data/app/assets/stylesheets/mixins/_mixin-badge.scss +21 -0
  90. data/app/assets/stylesheets/mixins/_mixin-buttons.scss +21 -0
  91. data/app/assets/stylesheets/mixins/_mixin-icons.scss +32 -0
  92. data/app/assets/stylesheets/mixins/_mixin-type.scss +7 -0
  93. data/app/assets/stylesheets/variables/_color-palette.scss +222 -0
  94. data/app/assets/stylesheets/widgets/_brand-sidebar-widgets.scss +11 -0
  95. data/app/assets/stylesheets/widgets/_recipe-mark.scss +55 -0
  96. data/app/assets/stylesheets/widgets/_sidebar-widgets.scss +11 -0
  97. data/app/assets/stylesheets/widgets/_tv-sidebar-widgets.scss +11 -0
  98. data/app/assets/stylesheets/widgets/_user-sidebar-widgets.scss +11 -0
  99. data/app/assets/stylesheets/widgets/_widgets.scss +11 -0
  100. data/app/assets/stylesheets/widgets/brands/_pr-ingredients.scss +154 -0
  101. data/app/assets/stylesheets/widgets/brands/_pr-latest.scss +62 -0
  102. data/app/assets/stylesheets/widgets/brands/_pr-popular-recipe-lists.scss +51 -0
  103. data/app/assets/stylesheets/widgets/brands/_pr-recent.scss +59 -0
  104. data/app/assets/stylesheets/widgets/brands/_pr-video.scss +34 -0
  105. data/app/assets/stylesheets/widgets/features/_feature-events.scss +119 -0
  106. data/app/assets/stylesheets/widgets/features/_feature-slides.scss +144 -0
  107. data/app/assets/stylesheets/widgets/feeds/_blog-feeds.scss +144 -0
  108. data/app/assets/stylesheets/widgets/feeds/_tv-feeds.scss +143 -0
  109. data/app/assets/stylesheets/widgets/modal/_modal-reset.scss +40 -0
  110. data/app/assets/stylesheets/widgets/modal/_recipe-list-modal.scss +111 -0
  111. data/app/assets/stylesheets/widgets/sidebar-widgets/_business-kitchen.scss +134 -0
  112. data/app/assets/stylesheets/widgets/sidebar-widgets/_icook-video.scss +109 -0
  113. data/app/assets/stylesheets/widgets/sidebar-widgets/_popular-recipe-lists.scss +232 -0
  114. data/app/assets/stylesheets/widgets/sidebar-widgets/_popular-recipes.scss +105 -0
  115. data/app/assets/stylesheets/widgets/sidebar-widgets/_popular-search.scss +317 -0
  116. data/app/assets/stylesheets/widgets/sidebar-widgets/_recipes-collect.scss +45 -0
  117. data/app/assets/stylesheets/widgets/sidebar-widgets/_sidebar-widget.scss +62 -0
  118. data/app/assets/stylesheets/widgets/tv/_tv-more-recipes.scss +93 -0
  119. data/app/assets/stylesheets/widgets/tv/_tv-popular-tags.scss +78 -0
  120. data/app/assets/stylesheets/widgets/users/_fav-list.scss +197 -0
  121. data/app/assets/stylesheets/widgets/users/_user-stats.scss +330 -0
  122. data/bin/console +14 -0
  123. data/bin/setup +7 -0
  124. data/config/initializers/assets.rb +5 -0
  125. data/cupboard.gemspec +40 -0
  126. data/example/.gitignore +19 -0
  127. data/lib/cupboard.rb +12 -0
  128. data/lib/cupboard/engine.rb +6 -0
  129. data/lib/cupboard/version.rb +3 -0
  130. metadata +298 -0
@@ -0,0 +1,28 @@
1
+ //
2
+ // Media blocks - blog feeds
3
+ //
4
+ // --------------------------
5
+ //
6
+ .blog-feeds {
7
+ a,
8
+ span {
9
+ color: #564e4a;
10
+ display: block;
11
+ }
12
+
13
+ span:not(.img) {
14
+ display: block;
15
+ height: 2.8em;
16
+ overflow: hidden;
17
+ }
18
+
19
+ .img {
20
+ margin-bottom: 10px;
21
+ height: 110px;
22
+ overflow: hidden;
23
+ }
24
+
25
+ img {
26
+ width: 100%;
27
+ }
28
+ }
@@ -0,0 +1,127 @@
1
+ // ---------------------------
2
+ // Media blocks - brand cover
3
+ // ---------------------------
4
+
5
+ /*doc
6
+ ---
7
+ name: 26_brand_cover
8
+ title: Brand cover
9
+ category: UI components
10
+ ---
11
+
12
+ <div class="brand-head">
13
+ <div class="brand-cover">
14
+ <img alt="iCook" class="img-responsive" src="/images/setting-pr.jpg">
15
+ <div class="cover-mask">&nbsp;</div>
16
+ </div>
17
+ <div class="brand">
18
+ <a href="#" rel="nofollow" target="_blank">
19
+ <span class="brand-img">
20
+ <img alt="iCook" class="img-responsive" src="/images/default-avatar.png">
21
+ </span>
22
+ <span class="brand-name badge-brand">iCook 愛料理</span>
23
+ </a>
24
+ </div>
25
+ </div>
26
+
27
+ */
28
+
29
+ .brand-head {
30
+ margin-bottom: 20px;
31
+ position: relative;
32
+ }
33
+
34
+ .brand-cover {
35
+ overflow: hidden;
36
+ position: relative;
37
+
38
+ img {
39
+ width: 100%;
40
+ }
41
+ }
42
+
43
+ .cover-mask {
44
+ background-color: $white;
45
+ bottom: 0;
46
+ height: 44px;
47
+ opacity: 0.7;
48
+ position: absolute;
49
+ width: 100%;
50
+ }
51
+
52
+ .brand {
53
+ bottom: 10px;
54
+ left: 15px;
55
+ position: absolute;
56
+ width: 95%;
57
+
58
+ > a {
59
+ margin-right: 10px;
60
+ }
61
+
62
+ .brand-img {
63
+ background: $white;
64
+ display: inline-block;
65
+ float: left;
66
+ height: 100px;
67
+ margin-right: 10px;
68
+ padding: 2px;
69
+ width: 100px;
70
+
71
+ img {
72
+ height: 100%;
73
+ width: 100%;
74
+ }
75
+ }
76
+
77
+ .brand-name {
78
+ bottom: 0;
79
+ color: $ic-brown;
80
+ font-size: 20px;
81
+ line-height: 18px;
82
+ position: absolute;
83
+ }
84
+
85
+ .badge-brand::after {
86
+ left: 5px;
87
+ line-height: 12px;
88
+ margin-left: 0;
89
+ padding: 3px 6px;
90
+ top: -3px;
91
+ }
92
+ }
93
+
94
+ @media only screen and (min-width: 1024px) {
95
+ .brand-cover img {
96
+ height: 300px;
97
+ }
98
+ }
99
+
100
+ @media only screen and (max-width: 767px) {
101
+ .brand-head {
102
+ margin-bottom: 0;
103
+ padding-left: 0;
104
+ padding-right: 0;
105
+ }
106
+ }
107
+
108
+ @media only screen and (max-width: 480px) {
109
+ .brand {
110
+ bottom: 10px;
111
+ left: 26px;
112
+ width: 84%;
113
+
114
+ .brand-img {
115
+ height: 80px;
116
+ width: 80px;
117
+ }
118
+ }
119
+ }
120
+
121
+ @media only screen and (max-width: 320px) {
122
+ .brand .brand-img {
123
+ height: 55px;
124
+ width: 55px;
125
+ }
126
+ }
127
+
@@ -0,0 +1,35 @@
1
+ @import "compass/typography/text/ellipsis";
2
+ // --------------------------------
3
+ //
4
+ // Media blocks - brand product
5
+ //
6
+ // --------------------------------
7
+ // # brands/product
8
+ .product-card {
9
+ .card-info {
10
+ p {
11
+ margin-bottom: 10px;
12
+ height: 3em;
13
+ }
14
+ }
15
+
16
+ .sub-title {
17
+ color: #ac8b80;
18
+ font-size: 12px;
19
+ margin-bottom: 5px;
20
+ }
21
+
22
+ p.price {
23
+ color: #aa8f83;
24
+ font-size: 14px;
25
+ float: left;
26
+ height: 1.3em;
27
+ }
28
+
29
+ .btn-frame {
30
+ font-size: 13px;
31
+ height: 30px;
32
+ text-decoration: none;
33
+ width: 110px;
34
+ }
35
+ }
@@ -0,0 +1,66 @@
1
+ @import "compass/typography/text/ellipsis";
2
+ // --------------------------------
3
+ //
4
+ // Media blocks - business kitchen
5
+ //
6
+ // --------------------------------
7
+ // # recipes/index - widget
8
+ .business-kitchen {
9
+ //override bootstrap media-block
10
+ .media,
11
+ .media-left,
12
+ .media-body {
13
+ display: block;
14
+ }
15
+
16
+ .media-left {
17
+ float: left;
18
+ }
19
+
20
+ .media-body {
21
+ width: auto;
22
+ }
23
+
24
+ & > .media {
25
+ padding: 15px 0;
26
+ }
27
+
28
+ .brand-logo,
29
+ .recipe-title {
30
+ @include ellipsis;
31
+
32
+ display: block;
33
+ width: 100%;
34
+
35
+ &:hover {
36
+ text-decoration: underline;
37
+ }
38
+ }
39
+
40
+ .brand-logo {
41
+ color: #777;
42
+ font-size: 15px;
43
+ line-height: 34px;
44
+ margin-bottom: 0;
45
+
46
+ img {
47
+ margin-right: 10px;
48
+ }
49
+ }
50
+
51
+ .recipe-title {
52
+ color: #564e4a;
53
+ display: inline-block;
54
+ font-size: 15px;
55
+ letter-spacing: 0;
56
+ margin-top: 10px;
57
+ }
58
+
59
+ img {
60
+ background-color: #eeede8;
61
+ }
62
+
63
+ a {
64
+ word-wrap: break-word;
65
+ }
66
+ }
@@ -0,0 +1,79 @@
1
+ @import "compass/css3/images";
2
+ @import "compass/css3/text-shadow";
3
+
4
+ // --------------------------------
5
+ // Media blocks - categories cover
6
+ // --------------------------------
7
+
8
+ /*doc
9
+ ---
10
+ name: 25_categories_cover
11
+ title: Category cover
12
+ category: UI components
13
+ ---
14
+
15
+ <div class="categories-cover">
16
+ <a href="" target="_blank">
17
+ <img alt="點心烘焙" class="img-responsive" src="/images/category-cover.png">
18
+ </a>
19
+ <div class="title">
20
+ <div class="name">點心烘焙</div>
21
+ <span class="hidden-xs hidden-sm"></span>
22
+ </div>
23
+ </div>
24
+
25
+ */
26
+
27
+ .categories-cover {
28
+ @include background-image(image-url("default/category-cover.png"));
29
+
30
+ background-repeat: no-repeat;
31
+ color: $white;
32
+ line-height: 1;
33
+ max-height: 150px;
34
+ overflow: hidden;
35
+ position: relative;
36
+
37
+ > a {
38
+ display: block;
39
+ height: 100%;
40
+ }
41
+
42
+ img {
43
+ width: 100%;
44
+ }
45
+
46
+ .title {
47
+ @include background-image(linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0, .4) 100%));
48
+
49
+ bottom: 0;
50
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00000000', endColorstr='#59000000',GradientType=0 ); /* IE6-9 */
51
+ left: 0;
52
+ padding: 15px;
53
+ position: absolute;
54
+ width: 100%;
55
+ z-index: 2;
56
+ }
57
+
58
+ .name {
59
+ @include text-shadow(rgba(0, 0, 0, 0.5) 0px 1px 4px);
60
+
61
+ float: left;
62
+ font-size: 24px;
63
+ }
64
+
65
+ span {
66
+ display: inline-block;
67
+ font-size: 13px;
68
+ margin-left: 10px;
69
+ position: relative;
70
+ top: 9px;
71
+ }
72
+ }
73
+
74
+ @media only screen and (min-width: 991px) {
75
+ .categories-cover {
76
+ margin-bottom: 15px;
77
+ margin-top: -5px;
78
+ }
79
+ }
@@ -0,0 +1,36 @@
1
+ //
2
+ // Media blocks - hot categories
3
+ //
4
+ // --------------------------
5
+ // # categories/show
6
+ .hot-categories {
7
+ .hot-categories-item {
8
+ margin-bottom: 10px;
9
+ }
10
+
11
+ .title {
12
+ background-color: #f7f6f3;
13
+ padding: 5px 10px;
14
+ margin-bottom: 10px;
15
+ }
16
+
17
+ a {
18
+ color: #888;
19
+ display: block;
20
+
21
+ &:hover {
22
+ color: #564e4a;
23
+ text-decoration: none;
24
+
25
+ span {
26
+ text-decoration: underline;
27
+ }
28
+ }
29
+ }
30
+
31
+ img {
32
+ height: 32px;
33
+ margin-right: 5px;
34
+ width: 32px;
35
+ }
36
+ }
@@ -0,0 +1,89 @@
1
+ @import "compass/css3/images";
2
+ @import "compass/typography/text/ellipsis";
3
+ // ----------------------------------
4
+ //
5
+ // Media blocks - popular categories
6
+ //
7
+ // ----------------------------------
8
+ //
9
+ .popular-category {
10
+ padding-bottom: 10px;
11
+
12
+ & + .popular-category {
13
+ border-top: 1px solid #ebe5e1;
14
+ padding-top: 10px;
15
+ }
16
+
17
+ &:last-child {
18
+ padding-bottom: 0;
19
+ }
20
+
21
+ .media-body {
22
+ width: 74%;
23
+
24
+ & > span {
25
+ @include ellipsis;
26
+
27
+ color: #5c4544;
28
+ display: inline;
29
+ float: left;
30
+ font-size: 16px;
31
+ line-height: 52px;
32
+ width: 64%;
33
+ }
34
+ }
35
+
36
+ img {
37
+ @include background(image-url("category-default.jpg"));
38
+
39
+ background-repeat: no-repeat;
40
+ margin-right: 10px;
41
+ height: 51px;
42
+ width: 68px;
43
+ }
44
+
45
+ .media-right {
46
+ @include icon-b("\f0a9");
47
+
48
+ color: #aa8f83;
49
+ font-size: 12px;
50
+ letter-spacing: 0.01em;
51
+ line-height: 52px;
52
+ margin-left: 0;
53
+ padding-right: 18px;
54
+ padding-left: 0;
55
+ position: relative;
56
+ width: 94px;
57
+
58
+ &:after {
59
+ background-color: #fff;
60
+ color: #f06354;
61
+ font-size: 14px;
62
+ line-height: 52px;
63
+ margin-left: 0;
64
+ position: absolute;
65
+ right: 3px;
66
+ top: -1px;
67
+ }
68
+ }
69
+
70
+ a:hover {
71
+ text-decoration: none;
72
+
73
+ .media-body > span {
74
+ color: #aa8f83;
75
+ text-decoration: underline;
76
+ }
77
+ }
78
+ }
79
+
80
+ @media only screen and (max-width: 320px) {
81
+ .popular-category .media-body {
82
+ width: 62%;
83
+
84
+ & > span {
85
+ width: 51%;
86
+ }
87
+ }
88
+ }
89
+