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,151 @@
1
+ // --------------------------------
2
+ // Layouts - Footer / mega footer
3
+ // --------------------------------
4
+
5
+ /*doc
6
+ ---
7
+ parent: 02_footers
8
+ title: Mega footer
9
+ name: footer_nav
10
+ ---
11
+
12
+ <div class="ic-footers">
13
+ <div class="row">
14
+ <div class="col-xs-12">
15
+ <div class="footer">
16
+ <div class="mega-footer">
17
+ <div class="container">
18
+ <div class="row">
19
+ <div class="col-xs-12 col-sm-12 col-md-4 text-center">
20
+ <div class="report">
21
+ <img alt="愛料理,分享食譜與幸福時刻" class="hidden-xs hidden-sm" src="/images/logo-2x.png">
22
+ <a href="#" class="col-xs-12 btn btn-blue">建議或問題回報</a>
23
+ </div>
24
+ </div>
25
+ <div class="col-md-8 pull-right hidden-xs">
26
+ <div class="footer-links">
27
+ <h4>服務總覽</h4>
28
+ <ul>
29
+ <li><a href="#" rel="nofollow" target="_blank">粉絲專頁</a></li>
30
+ <li><a href="#" rel="nofollow" target="_blank">生活誌</a></li>
31
+ <li><a href="#" rel="nofollow" target="_blank">討論區</a></li>
32
+ <li><a href="#" rel="nofollow" target="_blank">APP下載</a></li>
33
+ </ul>
34
+ </div>
35
+ <div class="footer-links">
36
+ <h4>關於愛料理</h4>
37
+ <ul>
38
+ <li><a href="#" rel="nofollow" target="_blank">公司資訊</a></li>
39
+ <li><a href="#" rel="nofollow" target="_blank">徵才訊息</a></li>
40
+ <li><a href="#" rel="nofollow" target="_blank">廣告合作</a></li>
41
+ </ul>
42
+ </div>
43
+ <div class="footer-links">
44
+ <h4>會員服務</h4>
45
+ <ul>
46
+ <li><a href="#">我的收藏</a></li>
47
+ <li><a href="#">個人首頁</a></li>
48
+ <li><a href="#">帳號設定</a></li>
49
+ <li><a href="#">忘記密碼</a></li>
50
+ </ul>
51
+ </div>
52
+ <div class="footer-links">
53
+ <h4>逛逛食譜</h4>
54
+ <ul class="pull-left">
55
+ <li><a href="#" rel="nofollow">每日菜色</a></li>
56
+ <li><a href="#" rel="nofollow">點心烘培</a></li>
57
+ <li><a href="#" rel="nofollow">主要食材</a></li>
58
+ <li><a href="#" rel="nofollow">主題料理</a></li>
59
+ </ul>
60
+ <ul class="pull-right">
61
+ <li><a href="#">熱門食譜</a></li>
62
+ <li><a href="#">新進食譜</a></li>
63
+ </ul>
64
+ </div>
65
+ </div>
66
+ </div>
67
+ </div>
68
+ </div>
69
+ </div>
70
+ </div>
71
+ </div>
72
+ </div>
73
+ */
74
+
75
+ .mega-footer {
76
+ background-color: rgba(255,255,255, .6);
77
+ border-bottom: 1px solid #e8e5e1;
78
+ padding: 40px 0;
79
+
80
+ ul {
81
+ margin-bottom: 0;
82
+ padding-left: 0;
83
+
84
+ &.pull-left {
85
+ margin-right: 20px;
86
+ }
87
+ }
88
+
89
+ h4 {
90
+ color: #564e4a;
91
+ font-size: 16px;
92
+ margin-bottom: 24px;
93
+ margin-top: 0;
94
+ opacity: 0.8;
95
+ }
96
+
97
+ li {
98
+ list-style-type: none;
99
+ line-height: 1;
100
+ margin-bottom: 10px;
101
+
102
+ &:last-child {
103
+ margin-bottom: 0;
104
+ }
105
+
106
+ a {
107
+ color: #888;
108
+ font-size: 12px;
109
+
110
+ &:hover {
111
+ color: #aaa;
112
+ }
113
+ }
114
+ }
115
+
116
+ .col-md-8.pull-right {
117
+ padding-left: 10px;
118
+ }
119
+
120
+ .footer-links {
121
+ float: left;
122
+ margin-right: 50px;
123
+
124
+ &:last-child {
125
+ margin-right: 0;
126
+ }
127
+
128
+ &:hover h4 {
129
+ opacity: 1;
130
+ }
131
+ }
132
+
133
+ .report {
134
+ margin: 0 auto;
135
+ width: 164px;
136
+
137
+ p {
138
+ color: #888;
139
+ font-size: 12px;
140
+ letter-spacing: 0.01em;
141
+ margin: 20px auto;
142
+ }
143
+
144
+ img {
145
+ display: block;
146
+ height: 35px;
147
+ margin: 0 auto 20px;
148
+ width: 130px;
149
+ }
150
+ }
151
+ }
@@ -0,0 +1,48 @@
1
+ // --------------------------------
2
+ // Layouts - Footer / base footer
3
+ // --------------------------------
4
+
5
+ /*doc
6
+ ---
7
+ parent: 02_footers
8
+ title: Base footer
9
+ name: footer
10
+ ---
11
+
12
+ <div class="ic-footers">
13
+ <div class="row">
14
+ <div class="col-xs-12">
15
+ <div class="footer">
16
+ <div class="basic-footer">
17
+ <div class="container">© 2011-2015 Polydice, Inc.<br class="visible-xs">
18
+ <a rel="nofollow" target="_blank" href="#">服務條款</a>與
19
+ <a rel="nofollow" target="_blank" href="#">隱私權政策</a>
20
+ </div>
21
+ </div>
22
+ </div>
23
+ </div>
24
+ </div>
25
+ </div>
26
+ */
27
+
28
+ .footer {
29
+ border-top: 1px solid #e8e5e1;
30
+ }
31
+
32
+ .basic-footer {
33
+ background-color: #fff;
34
+ color: #666;
35
+ font-size: 13px;
36
+ padding-top: 15px;
37
+ padding-bottom: 15px;
38
+ text-align: center;
39
+
40
+ a {
41
+ color: #666;
42
+
43
+ &:hover {
44
+ color: #999;
45
+ }
46
+ }
47
+ }
48
+
@@ -0,0 +1,12 @@
1
+ // --------------------------------
2
+ // Layouts - Footers
3
+ // --------------------------------
4
+
5
+ /*doc
6
+ ---
7
+ title: Footers
8
+ name: 02_footers
9
+ category: modular_widgets
10
+ ---
11
+ */
12
+
@@ -0,0 +1,261 @@
1
+ // --------------------------------
2
+ // Layouts - Global navigation
3
+ // --------------------------------
4
+
5
+ /*doc
6
+ ---
7
+ parent: 01_headers
8
+ title: Global navigation
9
+ name: global_navbar
10
+ ---
11
+
12
+ > Primary header<br/><small>a.k.a. iCook-navbar which is on multiple sites as global header.</small>
13
+
14
+ <div class="ic-header">
15
+ <div class="ic-highlight">Note this is already made as a gem-used application. check this: <a href="https://github.com/polydice/icook-navbar" target="_blank">polydice/icook-navbar</a> on github.</div>
16
+
17
+ <div class="navbar navbar-default navbar-static-top global-header" id="global-header" role="navigation">
18
+ <div class="container">
19
+ <div class="navbar-header">
20
+ <button type="button" class="visible-xs">
21
+ <span class="sr-only">Toggle navigation</span>
22
+ <span class="icon-bar"></span>
23
+ <span class="icon-bar"></span>
24
+ <span class="icon-bar"></span>
25
+ </button>
26
+ <a herf="#" title="愛料理 - 食譜社群網站" class="logo visible-xs pull-left" rel="nofollow">
27
+ <span>愛料理首頁</span>
28
+ </a>
29
+ </div>
30
+ <div class="hidden-xs global-header-menu" id="main-menu">
31
+ <ul class="nav navbar-nav">
32
+ <li class="hidden-xs hidden-sm mobile">
33
+ <a href="#">愛料理首頁</a>
34
+ </li>
35
+ <li class="visible-sm hidden-md hidden-lg mobile">
36
+ <a href="#">首頁</a>
37
+ </li>
38
+ <li><a href="#"><span>生活誌</span></a></li>
39
+ <li><a href="#"><span>影音</span></a></li>
40
+ <li><a href="#"><span>市集</span></a></li>
41
+ <li><a href="#"><span>享樂誌</span></a></li>
42
+ <li><a href="#"><span>手機 APP</span></a></li>
43
+ </ul>
44
+ <ul class="nav navbar-nav navbar-right sign-in">
45
+ <li><a href="#" class="recipes">逛食譜</a></li>
46
+ <li><a href="#">登入</a></li>
47
+ <li><a href="#">註冊</a></li>
48
+ </ul>
49
+ </div>
50
+ </div>
51
+ </div>
52
+ </div>
53
+
54
+ */
55
+
56
+
57
+ // to define zindex for navbars
58
+ $elements: sub-header, global-dropdown, global-header;
59
+
60
+ // default global header
61
+ $gl-hd-bg: $white !default; // default global header background color
62
+ $gl-hd-link: $ic-brown !default; // default global header link color
63
+ $gl-hd-link-hover: #8c8783 !default;
64
+ $gl-hd-text-size: 15px !default; // default global header font size
65
+ $gl-hd-border: #aa0000 !default;
66
+ $gl-hd-button-border: $basic-border !default;
67
+ $gl-hd-dropdown-border: #e0dcda !default;
68
+
69
+ .navbar-default {
70
+ border-color: transparent;
71
+ }
72
+
73
+ // global header
74
+ .global-header {
75
+ background-color: $gl-hd-bg;
76
+ border-top: 2px solid $gl-hd-border;
77
+ height: 52px;
78
+ z-index: index($elements, global-header);
79
+
80
+ .navbar-nav > li > a,
81
+ .dropdown-menu > li > a,
82
+ .logged a,
83
+ a.visible-xs {
84
+ color: $gl-hd-link;
85
+ font-size: $gl-hd-text-size;
86
+ }
87
+
88
+ .img-circle {
89
+ margin-right: 2px;
90
+ margin-top: -4px;
91
+ position: relative;
92
+ top: 2px;
93
+ }
94
+
95
+ .recipes {
96
+ @include icon("\f0f5");
97
+ }
98
+
99
+ .account {
100
+ @include icon("\f013");
101
+
102
+ &::before {
103
+ left: 3px;
104
+ position: relative;
105
+ }
106
+ }
107
+
108
+ .my-fav {
109
+ @include icon("\f004");
110
+ }
111
+
112
+ .sign-in {
113
+ margin-right: 0;
114
+
115
+ li:last-child a {
116
+ padding-right: 0 !important;
117
+ }
118
+
119
+ .recipes::before {
120
+ display: none;
121
+ }
122
+ }
123
+
124
+ .user::after {
125
+ content: "|";
126
+ margin-left: 5px;
127
+ }
128
+
129
+ .navbar-nav > li > a,
130
+ .dropdown-menu > li > a,
131
+ .logged a {
132
+ display: block;
133
+
134
+ &:hover,
135
+ &:active {
136
+ color: $gl-hd-link-hover;
137
+ text-decoration: none;
138
+ }
139
+ }
140
+
141
+ li {
142
+ list-style-type: none;
143
+
144
+ &.mobile {
145
+ &::after {
146
+ content: "|";
147
+ position: absolute;
148
+ right: 10px;
149
+ top: 11px;
150
+ }
151
+
152
+ a {
153
+ margin-right: 10px;
154
+ }
155
+ }
156
+ }
157
+
158
+ .logged {
159
+ margin-right: 0;
160
+ }
161
+
162
+ .dropdown-menu {
163
+ border-top: 0;
164
+ border-color: $gl-hd-dropdown-border;
165
+ border-top-left-radius: 0;
166
+ border-top-right-radius: 0;
167
+ box-shadow: none;
168
+ right: -1px;
169
+ z-index: index($elements, global-dropdown);
170
+ }
171
+
172
+ .avatar::after {
173
+ content: "|";
174
+ margin-left: 5px;
175
+ }
176
+ }
177
+
178
+ // desktop and tablet
179
+ @media only screen and (min-width: 768px) {
180
+ .global-header {
181
+ height: 45px;
182
+ min-height: 45px;
183
+
184
+ .dropdown-menu {
185
+ min-width: 100%;
186
+
187
+ li {
188
+ text-align: center;
189
+ }
190
+ }
191
+
192
+ .dropdown.open a,
193
+ .dropdown.open a:hover {
194
+ background-color: transparent !important;
195
+ }
196
+ }
197
+
198
+ .navbar-nav > li > a {
199
+ padding: 12px 15px 12px 0;
200
+
201
+ &.dropdown-toggle {
202
+ padding-right: 0 !important;
203
+ }
204
+ }
205
+ }
206
+
207
+ @media only screen and (min-width: 992px) {
208
+ // override bootstrap
209
+ .global-header-menu > li > a:hover,
210
+ .global-header-menu > li > a:focus {
211
+ background-color: transparent;
212
+
213
+ &:hover {
214
+ text-decoration: underline;
215
+ }
216
+ }
217
+ }
218
+
219
+ // small tablet and phone
220
+ @media only screen and (max-width: 767px) {
221
+ .global-header {
222
+ .account::before {
223
+ content: "";
224
+ margin-right: 0;
225
+ }
226
+
227
+ .navbar-nav {
228
+ float: left;
229
+ margin-left: 0;
230
+ margin-right: 0;
231
+ width: 50%;
232
+
233
+ a {
234
+ padding: 10px 0;
235
+ }
236
+ }
237
+
238
+ a.logo {
239
+ @include background(asset-url("icook-logo.png") no-repeat 0px 7px);
240
+
241
+ background-size: 32px 22px;
242
+ font-size: 16px;
243
+ margin: 5px 0 0 16px;
244
+ padding: 9px 6px 9px 38px;
245
+ }
246
+ }
247
+ }
248
+
249
+ .sub-header {
250
+ z-index: index($elements, sub-header);
251
+ }
252
+
253
+ @media only screen and (min-width: 768px) and (max-width: 991px) {
254
+ .global-header .logged a {
255
+ max-width: 130px;
256
+ text-overflow: ellipsis;
257
+ white-space: nowrap;
258
+ overflow: hidden;
259
+ }
260
+ }
261
+