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,87 @@
1
+ .device-background {
2
+ $base-border-radius: 3px !default;
3
+ $action-color: #477DCA !default;
4
+ $large-screen: em(860) !default;
5
+ $device-padding-vertical: 3em;
6
+ $device-padding-horizontal: 0.4em;
7
+ $device-screen-width: 10em;
8
+ $device-screen-height: 18em;
9
+ $device-background: darken(gray, 40%);
10
+ $device-backside-background: darken($device-background, 10%);
11
+ $device-text-color: white;
12
+ $device-background-top: #162C4C;
13
+ $device-background-bottom: #0A120D;
14
+ $gradient-angle: 10deg;
15
+ $device-image: 'https://raw.githubusercontent.com/thoughtbot/refills/b7c61c133f568cd044b708d099d8144cc3ce2b66/source/images/mountains.png';
16
+ $device-screen-image: 'https://raw.githubusercontent.com/thoughtbot/refills/b7c61c133f568cd044b708d099d8144cc3ce2b66/source/images/cosmin_capitanu_screen.jpg';
17
+
18
+ @include background(url($device-image), linear-gradient($gradient-angle, $device-background-bottom, $device-background-top), no-repeat $device-background-top scroll);
19
+ background-repeat: no-repeat;
20
+ background-size: cover;
21
+ min-height: 20em;
22
+ width: 100%;
23
+
24
+ .device-text {
25
+ padding: 2em;
26
+
27
+ @include media($large-screen) {
28
+ float: left;
29
+ max-width: 50%;
30
+ padding: 4em;
31
+ }
32
+
33
+ h4 {
34
+ border-bottom: 1px solid transparentize($device-text-color, 0.7);
35
+ color: $device-text-color;
36
+ font-size: 1.5em;
37
+ margin: 0 0 0.5em 0;
38
+ padding-bottom: 0.5em;
39
+ }
40
+
41
+ p {
42
+ color: $device-text-color;
43
+ line-height: 1.5em;
44
+ margin-bottom: 1.5em;
45
+ }
46
+ }
47
+
48
+ .device {
49
+ display: none;
50
+ position: relative;
51
+
52
+ @include media($large-screen) {
53
+ @include transform(
54
+ perspective(800px)
55
+ translateX(0px)
56
+ translateY(-30px)
57
+ translateZ(50px)
58
+ rotateX(0deg)
59
+ rotateY(-20deg)
60
+ rotateZ(-0deg));
61
+ background: $device-background;
62
+ border-radius: 2em;
63
+ box-shadow:
64
+ 1px 0px lighten($device-backside-background, 20%),
65
+ 4px 0px lighten($device-backside-background, 2%),
66
+ 7px 0px $device-backside-background,
67
+ 10px 0px $device-backside-background,
68
+ 11px 0px $device-backside-background;
69
+ display: block;
70
+ float: right;
71
+ margin-bottom: -12em;
72
+ margin-right: 5em;
73
+ padding: $device-padding-vertical 0;
74
+ width: $device-screen-width + (2 * $device-padding-horizontal);
75
+ z-index: 99999;
76
+
77
+ .screen {
78
+ @include size($device-screen-width $device-screen-height);
79
+ background-image: url($device-screen-image);
80
+ background-size: cover;
81
+ border-radius: 0.2em;
82
+ box-shadow: inset 0 1px 8px transparentize(black, 0.5);
83
+ margin: auto;
84
+ }
85
+ }
86
+ }
87
+ }
@@ -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,97 @@
1
+ @mixin grid-item-columns($columns) {
2
+ width: (100% / 12) * $columns;
3
+ }
4
+
5
+ .grid-items-lines {
6
+ $base-background-color: white !default;
7
+ $dark-gray: #333 !default;
8
+ $light-gray: #DDD !default;
9
+ $medium-screen: em(640) !default;
10
+ $large-screen: em(860) !default;
11
+ $base-font-color: $dark-gray !default;
12
+ $grid-items-background: $base-background-color;
13
+ $grid-item-background: $base-background-color;
14
+ $grid-item-border: 1px solid transparentize($base-font-color, 0.8);
15
+ $grid-item-columns: 4;
16
+ $grid-item-big-columns: 8;
17
+ $grid-item-color: $base-font-color;
18
+ $grid-item-height: 14em;
19
+
20
+ @include clearfix;
21
+ position: relative;
22
+
23
+ .grid-item {
24
+ @include transition (all 0.2s ease-in-out);
25
+ background: $grid-item-background;
26
+ border-bottom: $grid-item-border;
27
+ border-right: $grid-item-border;
28
+ cursor: pointer;
29
+ float: left;
30
+ height: $grid-item-height;
31
+ overflow: hidden;
32
+ outline: none;
33
+ padding: 2em;
34
+ text-decoration: none;
35
+ width: 100%;
36
+
37
+ @include media($large-screen) {
38
+ @include grid-item-columns($grid-item-columns);
39
+ }
40
+
41
+ &:focus,
42
+ &:hover {
43
+ background: transparentize($grid-item-color, 0.95);
44
+ }
45
+ }
46
+
47
+ .grid-item img {
48
+ display: block;
49
+ height: 2.5em;
50
+ margin-bottom: 1.2em;
51
+ opacity: 0.2;
52
+ }
53
+
54
+ .grid-item h1 {
55
+ color: $grid-item-color;
56
+ font-size: 1.3em;
57
+ margin-bottom: 0.4em;
58
+ }
59
+
60
+ .grid-item p {
61
+ color: transparentize($grid-item-color, 0.4);
62
+ line-height: 1.5em;
63
+
64
+ @include media($medium-screen) {
65
+ max-width: 70%;
66
+ }
67
+ }
68
+
69
+ .grid-item-big {
70
+ @include media($large-screen) {
71
+ @include grid-item-columns($grid-item-big-columns);
72
+ }
73
+ p {
74
+ @include media($medium-screen) {
75
+ max-width: 60%;
76
+ }
77
+ }
78
+ }
79
+
80
+
81
+ // this, below, might not be the most beautiful solution but it removes the outer borders by using the background color.
82
+ .bottom-cover {
83
+ background: $grid-items-background;
84
+ bottom: 0px;
85
+ height: 3px;
86
+ position: absolute;
87
+ width: 100%;
88
+ }
89
+
90
+ .right-cover {
91
+ background: $grid-items-background;
92
+ height: 100%;
93
+ position: absolute;
94
+ right: 0px;
95
+ width: 4px;
96
+ }
97
+ }
@@ -0,0 +1,268 @@
1
+ .centered-navigation {
2
+ $base-border-radius: 3px !default;
3
+ $dark-gray: #333 !default;
4
+ $large-screen: em(860) !default;
5
+ $base-font-color: $dark-gray !default;
6
+ $centered-navigation-padding: 1em;
7
+ $centered-navigation-logo-height: 2em;
8
+ $centered-navigation-background: #E7F1EC;
9
+ $centered-navigation-color: transparentize($base-font-color, 0.3);
10
+ $centered-navigation-color-hover: $base-font-color;
11
+ $centered-navigation-height: 60px;
12
+ $centered-navigation-item-padding: 1em;
13
+ $centered-navigation-submenu-padding: 1em;
14
+ $centered-navigation-submenu-width: 12em;
15
+ $centered-navigation-item-nudge: 2.2em;
16
+ $horizontal-bar-mode: $large-screen;
17
+
18
+ background-color: $centered-navigation-background;
19
+ border-bottom: 1px solid darken($centered-navigation-background, 6%);
20
+ min-height: $centered-navigation-height;
21
+ width: 100%;
22
+ z-index: 9999;
23
+
24
+
25
+ // Mobile view
26
+
27
+ .mobile-logo {
28
+ display: inline;
29
+ float: left;
30
+ max-height: $centered-navigation-height;
31
+ padding-left: $centered-navigation-padding;
32
+
33
+ img {
34
+ max-height: $centered-navigation-height;
35
+ opacity: .6;
36
+ padding: .8em 0;
37
+ }
38
+
39
+ @include media($horizontal-bar-mode) {
40
+ display: none;
41
+ }
42
+ }
43
+
44
+ .centered-navigation-mobile-menu {
45
+ color: $centered-navigation-color;
46
+ display: block;
47
+ float: right;
48
+ line-height: $centered-navigation-height;
49
+ margin: 0;
50
+ padding-right: $centered-navigation-submenu-padding;
51
+ text-decoration: none;
52
+ text-transform: uppercase;
53
+
54
+ @include media ($horizontal-bar-mode) {
55
+ display: none;
56
+ }
57
+
58
+ &:focus,
59
+ &:hover {
60
+ color: $centered-navigation-color-hover;
61
+ }
62
+ }
63
+
64
+
65
+ // Nav menu
66
+
67
+ .centered-navigation-wrapper {
68
+ @include outer-container;
69
+ @include clearfix;
70
+ position: relative;
71
+ z-index: 999;
72
+ }
73
+
74
+ ul.centered-navigation-menu {
75
+ -webkit-transform-style: preserve-3d;
76
+ // stop webkit flicker
77
+ clear: both;
78
+ display: none;
79
+ margin: 0 auto;
80
+ overflow: visible;
81
+ padding: 0;
82
+ width: 100%;
83
+ z-index: 99999;
84
+
85
+ &.show {
86
+ display: block;
87
+ }
88
+
89
+ @include media ($horizontal-bar-mode) {
90
+ display: block;
91
+ text-align: center;
92
+ }
93
+ }
94
+
95
+
96
+ // The nav items
97
+
98
+ .nav-link:first-child {
99
+ @include media($horizontal-bar-mode) {
100
+ margin-left: $centered-navigation-item-nudge;
101
+ }
102
+ }
103
+
104
+ ul li.nav-link {
105
+ background: $centered-navigation-background;
106
+ display: block;
107
+ line-height: $centered-navigation-height;
108
+ overflow: hidden;
109
+ padding-right: $centered-navigation-submenu-padding;
110
+ text-align: center;
111
+ width: 100%;
112
+ z-index: 9999;
113
+
114
+ a {
115
+ color: $centered-navigation-color;
116
+ display: inline-block;
117
+ outline: none;
118
+ text-decoration: none;
119
+
120
+ &:focus,
121
+ &:hover {
122
+ color: $centered-navigation-color-hover;
123
+ }
124
+ }
125
+
126
+ @include media($horizontal-bar-mode) {
127
+ background: transparent;
128
+ display: inline;
129
+ line-height: $centered-navigation-height;
130
+
131
+ a {
132
+ padding-right: $centered-navigation-item-padding;
133
+ }
134
+ }
135
+ }
136
+
137
+ li.logo.nav-link {
138
+ display: none;
139
+ line-height: 0;
140
+
141
+ @include media($large-screen) {
142
+ display: inline;
143
+ }
144
+ }
145
+
146
+ .logo img {
147
+ margin-bottom: -$centered-navigation-logo-height / 3;
148
+ max-height: $centered-navigation-logo-height;
149
+ opacity: 0.6;
150
+ }
151
+
152
+
153
+ // Sub menus
154
+
155
+ li.more.nav-link {
156
+ padding-right: 0;
157
+
158
+ @include media($large-screen) {
159
+ padding-right: $centered-navigation-submenu-padding;
160
+ }
161
+
162
+ > ul > li:first-child a {
163
+ padding-top: 1em;
164
+ }
165
+
166
+ a {
167
+ margin-right: $centered-navigation-submenu-padding;
168
+ }
169
+
170
+ > a {
171
+ padding-right: 0.6em;
172
+ }
173
+
174
+ > a:after {
175
+ @include position(absolute, auto -0.4em auto auto);
176
+ color: $centered-navigation-color;
177
+ content: "\25BE";
178
+ }
179
+ }
180
+
181
+ li.more {
182
+ overflow: visible;
183
+ padding-right: 0;
184
+
185
+ a {
186
+ padding-right: $centered-navigation-submenu-padding;
187
+ }
188
+
189
+ > a {
190
+ padding-right: 1.6em;
191
+ position: relative;
192
+
193
+ @include media($large-screen) {
194
+ margin-right: $centered-navigation-submenu-padding;
195
+ }
196
+
197
+ &:after {
198
+ content: "›";
199
+ font-size: 1.2em;
200
+ position: absolute;
201
+ right: $centered-navigation-submenu-padding / 2;
202
+ }
203
+ }
204
+
205
+ &:focus > .submenu,
206
+ &:hover > .submenu {
207
+ display: block;
208
+ }
209
+
210
+ @include media($horizontal-bar-mode) {
211
+ padding-right: $centered-navigation-submenu-padding;
212
+ position: relative;
213
+ }
214
+ }
215
+
216
+ ul.submenu {
217
+ display: none;
218
+ padding-left: 0;
219
+
220
+ @include media($horizontal-bar-mode) {
221
+ left: -$centered-navigation-submenu-padding;
222
+ position: absolute;
223
+ top: 1.5em;
224
+ }
225
+
226
+ .submenu {
227
+ @include media($horizontal-bar-mode) {
228
+ left: $centered-navigation-submenu-width - 0.2em;
229
+ top: 0;
230
+ }
231
+ }
232
+
233
+ li {
234
+ display: block;
235
+ padding-right: 0;
236
+
237
+ @include media($horizontal-bar-mode) {
238
+ line-height: $centered-navigation-height / 1.3;
239
+
240
+ &:first-child > a {
241
+ border-top-left-radius: $base-border-radius;
242
+ border-top-right-radius: $base-border-radius;
243
+ }
244
+
245
+ &:last-child > a {
246
+ border-bottom-left-radius: $base-border-radius;
247
+ border-bottom-right-radius: $base-border-radius;
248
+ padding-bottom: .7em;
249
+ }
250
+ }
251
+
252
+ a {
253
+ background-color: darken($centered-navigation-background, 3%);
254
+ display: inline-block;
255
+ text-align: right;
256
+ text-decoration: none;
257
+ width: 100%;
258
+
259
+ @include media($horizontal-bar-mode) {
260
+ background-color: $centered-navigation-background;
261
+ padding-left: $centered-navigation-submenu-padding;
262
+ text-align: left;
263
+ width: $centered-navigation-submenu-width;
264
+ }
265
+ }
266
+ }
267
+ }
268
+ }