whiskers 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +3 -0
  3. data/Gemfile.lock +34 -0
  4. data/LICENSE.md +12 -0
  5. data/README.md +116 -0
  6. data/bin/whiskers +4 -0
  7. data/core/whiskers/base/index.html +180 -0
  8. data/core/whiskers/base/scripts/src/app.coffee +8 -0
  9. data/core/whiskers/base/scripts/src/layouts/home.coffee +3 -0
  10. data/core/whiskers/base/scripts/src/modules/header.coffee +11 -0
  11. data/core/whiskers/base/stylesheets/app.sass +6 -0
  12. data/core/whiskers/base/stylesheets/layouts/home.sass +8 -0
  13. data/core/whiskers/base/stylesheets/layouts/layouts.sass +1 -0
  14. data/core/whiskers/base/stylesheets/modules/comment.scss +65 -0
  15. data/core/whiskers/base/stylesheets/modules/device.scss +87 -0
  16. data/core/whiskers/base/stylesheets/modules/footer.scss +104 -0
  17. data/core/whiskers/base/stylesheets/modules/grid-item.scss +97 -0
  18. data/core/whiskers/base/stylesheets/modules/header.scss +268 -0
  19. data/core/whiskers/base/stylesheets/modules/modules.sass +6 -0
  20. data/core/whiskers/base/stylesheets/modules/sample-box.sass +9 -0
  21. data/core/whiskers/base/stylesheets/plugins/plugins.sass +5 -0
  22. data/core/whiskers/base/stylesheets/plugins/sticky-footer.sass +11 -0
  23. data/core/whiskers/blog/index.html +97 -0
  24. data/core/whiskers/blog/scripts/src/app.coffee +8 -0
  25. data/core/whiskers/blog/scripts/src/layouts/home.coffee +3 -0
  26. data/core/whiskers/blog/scripts/src/modules/header.coffee +13 -0
  27. data/core/whiskers/blog/stylesheets/app.sass +6 -0
  28. data/core/whiskers/blog/stylesheets/layouts/home.sass +10 -0
  29. data/core/whiskers/blog/stylesheets/layouts/layouts.sass +1 -0
  30. data/core/whiskers/blog/stylesheets/modules/article.scss +90 -0
  31. data/core/whiskers/blog/stylesheets/modules/footer.scss +104 -0
  32. data/core/whiskers/blog/stylesheets/modules/header.scss +262 -0
  33. data/core/whiskers/blog/stylesheets/modules/hero.scss +62 -0
  34. data/core/whiskers/blog/stylesheets/modules/modules.sass +4 -0
  35. data/core/whiskers/blog/stylesheets/plugins/plugins.sass +5 -0
  36. data/core/whiskers/blog/stylesheets/plugins/sticky-footer.sass +11 -0
  37. data/core/whiskers/store/index.html +245 -0
  38. data/core/whiskers/store/scripts/src/app.coffee +8 -0
  39. data/core/whiskers/store/scripts/src/layouts/home.coffee +3 -0
  40. data/core/whiskers/store/scripts/src/modules/header.coffee +11 -0
  41. data/core/whiskers/store/stylesheets/app.sass +6 -0
  42. data/core/whiskers/store/stylesheets/layouts/home.sass +12 -0
  43. data/core/whiskers/store/stylesheets/layouts/layouts.sass +1 -0
  44. data/core/whiskers/store/stylesheets/modules/button-group.scss +92 -0
  45. data/core/whiskers/store/stylesheets/modules/card.scss +86 -0
  46. data/core/whiskers/store/stylesheets/modules/footer.scss +104 -0
  47. data/core/whiskers/store/stylesheets/modules/header.scss +339 -0
  48. data/core/whiskers/store/stylesheets/modules/hero.scss +55 -0
  49. data/core/whiskers/store/stylesheets/modules/modules.sass +6 -0
  50. data/core/whiskers/store/stylesheets/modules/pagination.scss +63 -0
  51. data/core/whiskers/store/stylesheets/plugins/plugins.sass +5 -0
  52. data/core/whiskers/store/stylesheets/plugins/sticky-footer.sass +11 -0
  53. data/lib/whiskers.rb +1 -0
  54. data/lib/whiskers/generator.rb +235 -0
  55. data/lib/whiskers/version.rb +3 -0
  56. data/ruby.version +1 -0
  57. data/whiskers.gemspec +26 -0
  58. data/whiskers.png +0 -0
  59. metadata +173 -0
@@ -0,0 +1,86 @@
1
+ .cards {
2
+ @include display(flex);
3
+ @include flex-wrap(wrap);
4
+ @include justify-content(space-between);
5
+ }
6
+
7
+ .card {
8
+ $base-border-color: gainsboro !default;
9
+ $base-border-radius: 3px !default;
10
+ $base-background-color: white !default;
11
+ $base-spacing: 1.5em !default;
12
+ $action-color: #477DCA !default;
13
+ $dark-gray: #333 !default;
14
+ $base-font-color: $dark-gray !default;
15
+ $card-border-color: $base-border-color;
16
+ $card-border: 1px solid $card-border-color;
17
+ $card-background: lighten($card-border-color, 10%);
18
+ $card-header-background: $card-background;
19
+ $card-margin: 1em;
20
+ $card-image-hover-opacity: 0.7;
21
+ $card-image-hover-color: #F8F2B4;
22
+
23
+ @include flex-basis(15em);
24
+ @include flex-grow(1);
25
+ @include transition (all 0.2s ease-in-out);
26
+ background-color: $card-background;
27
+ border-radius: $base-border-radius;
28
+ border: $card-border;
29
+ box-shadow: 0 2px 4px darken($base-background-color, 10%);
30
+ cursor: pointer;
31
+ margin: 0 $card-margin $base-spacing $card-margin;
32
+ position: relative;
33
+
34
+
35
+ .card-image {
36
+ overflow: hidden;
37
+ height: 150px;
38
+ max-height: 150px;
39
+ background-color: $card-image-hover-color;
40
+
41
+ img {
42
+ @include transition (all 0.2s ease-in-out);
43
+ border-top-left-radius: $base-border-radius;
44
+ border-top-right-radius: $base-border-radius;
45
+ width: 100%;
46
+ opacity: 1;
47
+ }
48
+ }
49
+
50
+ .card-header {
51
+ @include transition (all 0.2s ease-in-out);
52
+ background-color: $card-header-background;
53
+ border-bottom: $card-border;
54
+ border-radius: $base-border-radius $base-border-radius 0 0;
55
+ font-weight: bold;
56
+ line-height: 1.5em;
57
+ padding: ($base-spacing / 3) ($base-spacing / 2);
58
+ }
59
+
60
+ .card-copy {
61
+ font-size: 0.9em;
62
+ line-height: 1.5em;
63
+ padding: ($base-spacing / 2) ($base-spacing / 2);
64
+
65
+ p {
66
+ margin: 0 0 ($base-spacing / 2);
67
+ }
68
+ }
69
+
70
+ &:focus,
71
+ &:hover {
72
+ cursor: pointer;
73
+
74
+ img {
75
+ opacity: $card-image-hover-opacity;
76
+ }
77
+ }
78
+
79
+ &:active {
80
+ background-color: $card-background;
81
+
82
+ .card-header {
83
+ background-color: $card-background;
84
+ }
85
+ }
86
+ }
@@ -0,0 +1,104 @@
1
+ footer {
2
+ $base-spacing: 1.5em !default;
3
+ $action-color: #477DCA !default;
4
+ $medium-screen: em(640) !default;
5
+ $large-screen: em(860) !default;
6
+ $footer-background: desaturate(darken($action-color, 20%), 30%);
7
+ $footer-color: white;
8
+ $footer-link-color: transparentize($footer-color, 0.6);
9
+ $footer-disclaimer-color: transparentize($footer-color, 0.6);
10
+
11
+ background: $footer-background;
12
+ padding: $base-spacing;
13
+ width: 100%;
14
+ display: inline-block;
15
+
16
+ .footer-logo {
17
+ margin-right: 1em;
18
+ margin-bottom: 1em;
19
+
20
+ @include media($large-screen) {
21
+ float: left;
22
+ margin-bottom: 0;
23
+ }
24
+ }
25
+
26
+ .footer-logo img {
27
+ height: 1.6em;
28
+ }
29
+
30
+ ul {
31
+ line-height: 1.5em;
32
+ margin: 0 0 1em 0;
33
+ padding: 0;
34
+
35
+ @include media($large-screen) {
36
+ float: left;
37
+ line-height: 1.8em;
38
+ margin-left: 1em;
39
+ margin-bottom: 0;
40
+ }
41
+ }
42
+
43
+ ul li {
44
+ list-style: none;
45
+ padding-right: 1em;
46
+
47
+ @include media($large-screen) {
48
+ display: inline;
49
+ text-align: left;
50
+ }
51
+ }
52
+
53
+ ul li a {
54
+ color: $footer-link-color;
55
+ text-decoration: none;
56
+
57
+ &:focus,
58
+ &:hover {
59
+ color: transparentize($footer-color, 0);
60
+ }
61
+ }
62
+
63
+ .footer-secondary-links {
64
+ @include media($large-screen) {
65
+ float: right;
66
+ }
67
+
68
+ li {
69
+ font-size: 0.8em;
70
+ }
71
+
72
+ ul.footer-social {
73
+ margin: 1em 0 0 0;
74
+
75
+ @include media($large-screen) {
76
+ float: right;
77
+ margin-top: 0;
78
+ }
79
+
80
+ li {
81
+ font-size: 1em;
82
+ float: left;
83
+ line-height: 0;
84
+ margin: 0;
85
+ padding-right: 0.7em;
86
+
87
+ &:last-child {
88
+ padding-right: 0;
89
+ }
90
+ }
91
+
92
+ img {
93
+ height: 1.6em;
94
+ opacity: 0.7;
95
+ padding: 1px;
96
+
97
+ &:focus,
98
+ &:hover {
99
+ opacity: 1;
100
+ }
101
+ }
102
+ }
103
+ }
104
+ }
@@ -0,0 +1,339 @@
1
+ header.navigation {
2
+ $base-border-color: gainsboro !default;
3
+ $base-border-radius: 3px !default;
4
+ $action-color: #477DCA !default;
5
+ $dark-gray: #333 !default;
6
+ $large-screen: em(860) !default;
7
+ $navigation-padding: 1em;
8
+ $navigation-background: $dark-gray;
9
+ $navigation-color: transparentize(white, 0.3);
10
+ $navigation-color-hover: white;
11
+ $navigation-height: 60px;
12
+ $navigation-nav-button-background: $action-color;
13
+ $navigation-nav-button-background-hover: lighten($navigation-background, 10%);
14
+ $navigation-nav-button-border: 1px solid lighten($navigation-nav-button-background, 20%);
15
+ $navigation-search-background: lighten($navigation-background, 5);
16
+ $navigation-search-border: 1px solid darken($navigation-background, 5);
17
+ $navigation-active-link-color: transparentize(white, 0.5);
18
+ $navigation-submenu-padding: 1em;
19
+ $navigation-submenu-width: 12em;
20
+ $horizontal-bar-mode: $large-screen;
21
+
22
+ background-color: $navigation-background;
23
+ border-bottom: 1px solid darken($navigation-background, 10);
24
+ min-height: $navigation-height;
25
+ width: 100%;
26
+ z-index: 999;
27
+
28
+ .navigation-wrapper {
29
+ @include clearfix;
30
+ @include outer-container;
31
+ position: relative;
32
+ z-index: 9999;
33
+ }
34
+
35
+ .logo {
36
+ float: left;
37
+ max-height: $navigation-height;
38
+ padding-left: $navigation-padding;
39
+ padding-right: 2em;
40
+
41
+ img {
42
+ max-height: $navigation-height;
43
+ padding: 0.8em 0;
44
+ }
45
+ }
46
+
47
+
48
+ // Mobile view
49
+
50
+ .navigation-menu-button {
51
+ color: $navigation-color;
52
+ display: block;
53
+ float: right;
54
+ line-height: $navigation-height;
55
+ margin: 0;
56
+ padding-right: 1em;
57
+ text-decoration: none;
58
+ text-transform: uppercase;
59
+
60
+ @include media ($horizontal-bar-mode) {
61
+ display: none;
62
+ }
63
+
64
+ &:focus,
65
+ &:hover {
66
+ color: $navigation-color-hover;
67
+ }
68
+ }
69
+
70
+
71
+ // Nav menu
72
+
73
+ nav {
74
+ float: none;
75
+ min-height: $navigation-height;
76
+ z-index: 9999999;
77
+
78
+ @include media ($horizontal-bar-mode) {
79
+ float: left;
80
+ }
81
+ }
82
+
83
+ ul.navigation-menu {
84
+ clear: both;
85
+ display: none;
86
+ margin: 0 auto;
87
+ overflow: visible;
88
+ padding: 0;
89
+ width: 100%;
90
+ z-index: 9999;
91
+
92
+ &.show {
93
+ display: block;
94
+ }
95
+
96
+ @include media ($horizontal-bar-mode) {
97
+ display: inline;
98
+ margin: 0;
99
+ padding: 0;
100
+ }
101
+ }
102
+
103
+
104
+ // The nav items
105
+
106
+ ul li.nav-link {
107
+ background: $navigation-background;
108
+ display: block;
109
+ line-height: $navigation-height;
110
+ overflow: hidden;
111
+ padding-right: 0.8em;
112
+ text-align: right;
113
+ width: 100%;
114
+ z-index: 9999;
115
+
116
+ @include media ($horizontal-bar-mode) {
117
+ background: transparent;
118
+ display: inline;
119
+ line-height: $navigation-height;
120
+ text-decoration: none;
121
+ width: auto;
122
+ }
123
+
124
+ a {
125
+ color: $navigation-color;
126
+ display: inline-block;
127
+ text-decoration: none;
128
+
129
+ @include media ($horizontal-bar-mode) {
130
+ padding-right: 1em;
131
+ }
132
+
133
+ &:focus,
134
+ &:hover {
135
+ color: $navigation-color-hover;
136
+ }
137
+ }
138
+ }
139
+
140
+ .active-nav-item a {
141
+ border-bottom: 1px solid $navigation-active-link-color;
142
+ padding-bottom: 3px;
143
+ }
144
+
145
+
146
+ // Sub menus
147
+
148
+ li.more.nav-link {
149
+ padding-right: 0;
150
+
151
+ @include media($horizontal-bar-mode) {
152
+ padding-right: $navigation-submenu-padding;
153
+ }
154
+
155
+ > ul > li:first-child a {
156
+ padding-top: 1em;
157
+ }
158
+
159
+ a {
160
+ margin-right: $navigation-submenu-padding;
161
+ }
162
+
163
+ > a {
164
+ padding-right: 0.6em;
165
+ }
166
+
167
+ > a:after {
168
+ @include position(absolute, auto -0.4em auto auto);
169
+ content: '\25BE';
170
+ color: $navigation-color;
171
+ }
172
+ }
173
+
174
+ li.more {
175
+ overflow: visible;
176
+ padding-right: 0;
177
+
178
+ a {
179
+ padding-right: 0.8em;
180
+ }
181
+
182
+ > a {
183
+ padding-right: 1.6em;
184
+ position: relative;
185
+
186
+ @include media($horizontal-bar-mode) {
187
+ margin-right: $navigation-submenu-padding;
188
+ }
189
+
190
+ &:after {
191
+ content: '›';
192
+ font-size: 1.2em;
193
+ position: absolute;
194
+ right: $navigation-submenu-padding / 2;
195
+ }
196
+ }
197
+
198
+ &:focus > .submenu,
199
+ &:hover > .submenu {
200
+ display: block;
201
+ }
202
+
203
+ @include media($horizontal-bar-mode) {
204
+ padding-right: 0.8em;
205
+ position: relative;
206
+ }
207
+ }
208
+
209
+ ul.submenu {
210
+ display: none;
211
+ padding-left: 0;
212
+
213
+ @include media($horizontal-bar-mode) {
214
+ left: -$navigation-submenu-padding;
215
+ position: absolute;
216
+ top: 1.5em;
217
+ }
218
+
219
+ .submenu {
220
+ @include media($horizontal-bar-mode) {
221
+ left: $navigation-submenu-width - 0.2em;
222
+ top: 0;
223
+ }
224
+ }
225
+
226
+ li {
227
+ display: block;
228
+ padding-right: 0;
229
+
230
+ @include media($horizontal-bar-mode) {
231
+ line-height: $navigation-height / 1.3;
232
+
233
+ &:first-child > a {
234
+ border-top-left-radius: $base-border-radius;
235
+ border-top-right-radius: $base-border-radius;
236
+ }
237
+
238
+ &:last-child > a {
239
+ border-bottom-left-radius: $base-border-radius;
240
+ border-bottom-right-radius: $base-border-radius;
241
+ padding-bottom: 0.7em;
242
+ }
243
+ }
244
+
245
+ a {
246
+ background-color: darken($navigation-background, 3%);
247
+ display: inline-block;
248
+ text-align: right;
249
+ width: 100%;
250
+
251
+ @include media($horizontal-bar-mode) {
252
+ background-color: $navigation-background;
253
+ padding-left: $navigation-submenu-padding;
254
+ text-align: left;
255
+ width: $navigation-submenu-width;
256
+ }
257
+ }
258
+ }
259
+ }
260
+
261
+
262
+ // Elements on the far right
263
+
264
+ .navigation-tools {
265
+ background: #505050;
266
+ clear: both;
267
+ display: block;
268
+ height: $navigation-height;
269
+
270
+ @include media($horizontal-bar-mode) {
271
+ background: transparent;
272
+ clear: none;
273
+ float: right;
274
+ }
275
+ }
276
+
277
+
278
+ // Search bar
279
+
280
+ .search-bar {
281
+ $search-bar-border-color: $base-border-color;
282
+ $search-bar-border: 1px solid $search-bar-border-color;
283
+ $search-bar-background: lighten($search-bar-border-color, 10%);
284
+
285
+ float: left;
286
+ padding: 0.85em 0.85em 0.7em 0.6em;
287
+ width: 60%;
288
+
289
+ form {
290
+ position: relative;
291
+
292
+ input[type=search] {
293
+ background: $navigation-search-background;
294
+ border: $navigation-search-border;
295
+ border-radius: $base-border-radius * 2;
296
+ box-sizing: border-box;
297
+ color: $navigation-color;
298
+ font-size: 0.9em;
299
+ font-style: italic;
300
+ margin: 0;
301
+ padding: 0.5em 0.8em;
302
+ width: 100%;
303
+
304
+ @include media($horizontal-bar-mode) {
305
+ width: 100%;
306
+ }
307
+ }
308
+
309
+ button[type=submit] {
310
+ background: $navigation-search-background;
311
+ border: none;
312
+ bottom: 0.3em;
313
+ left: auto;
314
+ outline: none;
315
+ padding: 0 9px;
316
+ position: absolute;
317
+ right: 0.3em;
318
+ top: 0.3em;
319
+
320
+ img {
321
+ height: 12px;
322
+ opacity: 0.7;
323
+ padding: 1px;
324
+ }
325
+ }
326
+ }
327
+
328
+ @include media($horizontal-bar-mode) {
329
+ display: inline-block;
330
+ position: relative;
331
+ width: 16em;
332
+
333
+ input {
334
+ box-sizing: border-box;
335
+ display: block;
336
+ }
337
+ }
338
+ }
339
+ }