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,6 @@
1
+ @import 'header'
2
+ @import 'footer'
3
+ @import 'device'
4
+ @import 'grid-item'
5
+ @import 'comment'
6
+ @import 'sample-box'
@@ -0,0 +1,9 @@
1
+ .boxes
2
+ +clearfix
3
+ +outer-container
4
+
5
+ .box
6
+ background: pink
7
+ +size(100px)
8
+ float: left
9
+ +span-columns(3)
@@ -0,0 +1,5 @@
1
+ @import 'bourbon/bourbon'
2
+ @import 'neat/neat'
3
+ @import 'bitters/base'
4
+ @import 'sticky-footer'
5
+ @import 'normalize'
@@ -0,0 +1,11 @@
1
+ body, html
2
+ margin: 0
3
+ padding: 0
4
+
5
+ body
6
+ display: flex
7
+ min-height: 100vh
8
+ flex-direction: column
9
+
10
+ main
11
+ flex: 1
@@ -0,0 +1,97 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Web Template</title>
5
+ <link type="text/css" href="stylesheets/app.css" rel="stylesheet">
6
+ <script type="text/javascript" src="scripts/lib/plugins/jquery.min.js"></script>
7
+ <script type="text/javascript" src="scripts/lib/plugins/require.min.js"></script>
8
+ <script type="text/javascript" src="scripts/lib/app.js"></script>
9
+ <script type="text/javascript" src="scripts/lib/layouts/home.js"></script>
10
+ </head>
11
+ <body>
12
+ <header class="navigation" role="banner">
13
+ <div class="navigation-wrapper">
14
+ <a href="javascript:void(0)" class="logo">
15
+ <img src="https://raw.githubusercontent.com/thoughtbot/refills/b7c61c133f568cd044b708d099d8144cc3ce2b66/source/images/placeholder_logo_1.png" alt="Logo Image">
16
+ </a>
17
+ <a href="javascript:void(0)" class="navigation-menu-button" id="js-mobile-menu">MENU</a>
18
+ <nav role="navigation">
19
+ <ul id="js-navigation-menu" class="navigation-menu show">
20
+ <li class="nav-link"><a href="javascript:void(0)">Products</a></li>
21
+ <li class="nav-link"><a href="javascript:void(0)">About Us</a></li>
22
+ <li class="nav-link"><a href="javascript:void(0)">Contact</a></li>
23
+ </ul>
24
+ </nav>
25
+ </div>
26
+ </header>
27
+
28
+ <main>
29
+ <!-- This is a hero section, you could use it to talk about your coompany or
30
+ any promotions you have going on -->
31
+ <div class="hero">
32
+ <div class="hero-inner">
33
+ <div class="hero-copy">
34
+ <h1>An Internet Blog</h1>
35
+ <hr>
36
+ <p>For all your net 4.0 needs!</p>
37
+ </div>
38
+ </div>
39
+ </div>
40
+
41
+ <!-- These are some example article summaries --><br>
42
+ <div class="articles">
43
+ <article>
44
+ <h1>This Is An Article Heading</h1>
45
+ <h2>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor, perferendis! </h2>
46
+ <p class="date">Posted by <span class="author">Author Name</span> on 30 Mar 2014</p>
47
+ <hr>
48
+ </article>
49
+ <article>
50
+ <h1>Article Heading</h1>
51
+ <h2>Ut enim ad minim veniam... </h2>
52
+ <p class="date">Posted by <span class="author">Author Name</span> on 30 Mar 2014</p>
53
+ <hr>
54
+ </article>
55
+ <article>
56
+ <h1>This Is The Third Article Heading</h1>
57
+ <h2>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</h2>
58
+ <p class="date">Posted by <span class="author">Author Name</span> on 30 Mar 2014</p>
59
+ <hr>
60
+ </article>
61
+ </div>
62
+ <br>
63
+ </main>
64
+
65
+ <footer role="contentinfo">
66
+ <!-- Last, here is the footer. You can chop out the footer tag's content if you
67
+ just want a sticky footer without anything else. -->
68
+ <div class="footer-logo">
69
+ <img src="https://raw.githubusercontent.com/thoughtbot/refills/b7c61c133f568cd044b708d099d8144cc3ce2b66/source/images/placeholder_logo_1.png" alt="Logo image">
70
+ </div>
71
+ <ul>
72
+ <li><a href="javascript:void(0)">About</a></li>
73
+ <li><a href="javascript:void(0)">Contact</a></li>
74
+ <li><a href="javascript:void(0)">Products</a></li>
75
+ </ul>
76
+
77
+ <div class="footer-secondary-links">
78
+ <ul>
79
+ <li><a href="javascript:void(0)">Terms and Conditions</a></li>
80
+ <li><a href="javascript:void(0)">Privacy Policy</a></li>
81
+ </ul>
82
+
83
+ <ul class="footer-social">
84
+ <li><a href="javascript:void(0)">
85
+ <img src="https://raw.githubusercontent.com/thoughtbot/refills/b7c61c133f568cd044b708d099d8144cc3ce2b66/source/images/facebook-logo-circle.png" alt="Facebook">
86
+ </a></li>
87
+ <li><a href="javascript:void(0)">
88
+ <img src="https://raw.githubusercontent.com/thoughtbot/refills/b7c61c133f568cd044b708d099d8144cc3ce2b66/source/images/twitter-logo-circle.png" alt="Twitter">
89
+ </a></li>
90
+ <li><a href="javascript:void(0)">
91
+ <img src="https://raw.githubusercontent.com/thoughtbot/refills/b7c61c133f568cd044b708d099d8144cc3ce2b66/source/images/youtube-logo-circle.png" alt="YouTube">
92
+ </a></li>
93
+ </ul>
94
+ </div>
95
+ </footer>
96
+ </body>
97
+ </html>
@@ -0,0 +1,8 @@
1
+ # Do any app-wide setup here
2
+
3
+ requirejs.config({
4
+ baseUrl: 'js/lib',
5
+ paths: {
6
+ jquery: 'jquery-2.2.2'
7
+ }
8
+ });
@@ -0,0 +1,3 @@
1
+ # Put all the modules you require in here
2
+
3
+ require ['modules/header']
@@ -0,0 +1,13 @@
1
+ $(document).ready ->
2
+ menuToggle = $('#js-mobile-menu').unbind()
3
+ $('#js-navigation-menu').removeClass 'show'
4
+ menuToggle.on 'click', (e) ->
5
+ e.preventDefault()
6
+ $('nav').addClass 'dark'
7
+ $('#js-navigation-menu').slideToggle ->
8
+ if $('#js-navigation-menu').is(':hidden')
9
+ $('#js-navigation-menu').removeAttr 'style'
10
+ $('nav').removeClass 'dark'
11
+ return
12
+ return
13
+ return
@@ -0,0 +1,6 @@
1
+ // app.css is generated from this file via:
2
+ // sass --watch css/app.sass:css/app.css
3
+
4
+ @import 'plugins/plugins'
5
+ @import 'modules/modules'
6
+ @import 'layouts/layouts'
@@ -0,0 +1,10 @@
1
+ // Put styles here that ony effect this layout
2
+ .articles
3
+ +clearfix
4
+ +outer-container
5
+ margin-top: 1.8em
6
+
7
+ article
8
+ +span-columns(8)
9
+ +shift(2)
10
+
@@ -0,0 +1,90 @@
1
+ article {
2
+ $base-border-radius: 3px !default;
3
+ $base-line-height: 1.5em !default;
4
+ $base-spacing: 1.5em !default;
5
+ $action-color: #477DCA !default;
6
+ $dark-gray: #333 !default;
7
+ $light-gray: #DDD !default;
8
+ $medium-screen: em(640) !default;
9
+
10
+ @include clearfix;
11
+ text-align: left;
12
+
13
+ h1, h2, h3, p {
14
+ margin: 0;
15
+ }
16
+
17
+ hr {
18
+ border-bottom: 1px solid $light-gray;
19
+ border-left: none;
20
+ border-right: none;
21
+ border-top: none;
22
+ margin: $base-spacing 0;
23
+ }
24
+
25
+ p {
26
+ color: $base-font-color;
27
+ line-height: $base-line-height;
28
+ }
29
+
30
+ a {
31
+ color: $action-color;
32
+ text-decoration: none;
33
+ }
34
+
35
+ .type {
36
+ border-bottom: 1px solid;
37
+ display: inline-block;
38
+ font-size: 0.7em;
39
+ font-weight: 900;
40
+ letter-spacing: 1px;
41
+ margin-bottom: 2em;
42
+ padding: 0.1em 0;
43
+ text-align: left;
44
+ text-transform: uppercase;
45
+ }
46
+
47
+ h1 {
48
+ font-size: 2em;
49
+ font-weight: 600;
50
+ margin-bottom: 0.2em;
51
+
52
+ @include media($medium-screen) {
53
+ font-size: 2.4em;
54
+ }
55
+ }
56
+
57
+ h2 {
58
+ font-size: 1.2em;
59
+ font-weight: 400;
60
+ line-height: 1.4em;
61
+ margin-bottom: 0.8em;
62
+
63
+ @include media($medium-screen) {
64
+ font-size: 1.4em;
65
+ }
66
+ }
67
+
68
+ p.date {
69
+ color: transparentize($base-font-color, 0.6);
70
+ font-size: 0.8em;
71
+ margin-bottom: 0.5em;
72
+
73
+ span.author {
74
+ font-style: italic;
75
+ font-weight: bold;
76
+ }
77
+ }
78
+
79
+ p {
80
+ font-weight: 300;
81
+ letter-spacing: 1;
82
+ margin-bottom: 1.5em;
83
+
84
+ span {
85
+ font-size: 0.8em;
86
+ font-weight: 600;
87
+ text-transform: uppercase;
88
+ }
89
+ }
90
+ }
@@ -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,262 @@
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-active-link-color: transparentize(white, 0.5);
16
+ $navigation-submenu-padding: 1em;
17
+ $navigation-submenu-width: 12em;
18
+ $horizontal-bar-mode: $large-screen;
19
+
20
+ min-height: $navigation-height;
21
+ margin-bottom: (-$navigation-height);
22
+ width: 100%;
23
+ z-index: 999;
24
+
25
+ .navigation-wrapper {
26
+ @include clearfix;
27
+ @include outer-container;
28
+ position: relative;
29
+ z-index: 9999;
30
+ }
31
+
32
+ .logo {
33
+ float: left;
34
+ max-height: $navigation-height;
35
+ padding-left: $navigation-padding;
36
+ padding-right: 2em;
37
+
38
+ img {
39
+ max-height: $navigation-height;
40
+ padding: 0.8em 0;
41
+ }
42
+ }
43
+
44
+
45
+ // Mobile view
46
+
47
+ .navigation-menu-button {
48
+ color: $navigation-color;
49
+ display: block;
50
+ float: right;
51
+ line-height: $navigation-height;
52
+ margin: 0;
53
+ padding-right: 1em;
54
+ text-decoration: none;
55
+ text-transform: uppercase;
56
+
57
+ @include media ($horizontal-bar-mode) {
58
+ display: none;
59
+ }
60
+
61
+ &:focus,
62
+ &:hover {
63
+ color: $navigation-color-hover;
64
+ }
65
+ }
66
+
67
+
68
+ // Nav menu
69
+
70
+ nav {
71
+ float: none;
72
+ min-height: $navigation-height;
73
+ z-index: 9999999;
74
+
75
+ @include media ($horizontal-bar-mode) {
76
+ float: right;
77
+ }
78
+
79
+ &.dark {
80
+ background: black;
81
+ @include transition(background 0.2s)
82
+ }
83
+ }
84
+
85
+ ul.navigation-menu {
86
+ clear: both;
87
+ display: none;
88
+ margin: 0 auto;
89
+ overflow: visible;
90
+ padding: 0;
91
+ width: 100%;
92
+ z-index: 9999;
93
+
94
+ &.show {
95
+ display: block;
96
+ }
97
+
98
+ @include media ($horizontal-bar-mode) {
99
+ display: inline;
100
+ margin: 0;
101
+ padding: 0;
102
+ }
103
+ }
104
+
105
+
106
+ // The nav items
107
+
108
+ ul li.nav-link {
109
+ background: $navigation-background;
110
+ display: block;
111
+ line-height: $navigation-height;
112
+ overflow: hidden;
113
+ padding-right: 0.8em;
114
+ text-align: center;
115
+ width: 100%;
116
+ z-index: 9999;
117
+
118
+ @include media ($horizontal-bar-mode) {
119
+ background: transparent;
120
+ display: inline;
121
+ line-height: $navigation-height;
122
+ text-decoration: none;
123
+ width: auto;
124
+ }
125
+
126
+ a {
127
+ color: $navigation-color;
128
+ display: inline-block;
129
+ text-decoration: none;
130
+
131
+ @include media ($horizontal-bar-mode) {
132
+ padding-right: 1em;
133
+ }
134
+
135
+ &:focus,
136
+ &:hover {
137
+ color: $navigation-color-hover;
138
+ }
139
+ }
140
+ }
141
+
142
+ .active-nav-item a {
143
+ border-bottom: 1px solid $navigation-active-link-color;
144
+ padding-bottom: 3px;
145
+ }
146
+
147
+
148
+ // Sub menus
149
+
150
+ li.more.nav-link {
151
+ padding-right: 0;
152
+
153
+ @include media($horizontal-bar-mode) {
154
+ padding-right: $navigation-submenu-padding;
155
+ }
156
+
157
+ > ul > li:first-child a {
158
+ padding-top: 1em;
159
+ }
160
+
161
+ a {
162
+ margin-right: $navigation-submenu-padding;
163
+ }
164
+
165
+ > a {
166
+ padding-right: 0.6em;
167
+ }
168
+
169
+ > a:after {
170
+ @include position(absolute, auto -0.4em auto auto);
171
+ content: '\25BE';
172
+ color: $navigation-color;
173
+ }
174
+ }
175
+
176
+ li.more {
177
+ overflow: visible;
178
+ padding-right: 0;
179
+
180
+ a {
181
+ padding-right: 0.8em;
182
+ }
183
+
184
+ > a {
185
+ padding-right: 1.6em;
186
+ position: relative;
187
+
188
+ @include media($horizontal-bar-mode) {
189
+ margin-right: $navigation-submenu-padding;
190
+ }
191
+
192
+ &:after {
193
+ content: '›';
194
+ font-size: 1.2em;
195
+ position: absolute;
196
+ right: $navigation-submenu-padding / 2;
197
+ }
198
+ }
199
+
200
+ &:focus > .submenu,
201
+ &:hover > .submenu {
202
+ display: block;
203
+ }
204
+
205
+ @include media($horizontal-bar-mode) {
206
+ padding-right: 0.8em;
207
+ position: relative;
208
+ }
209
+ }
210
+
211
+ ul.submenu {
212
+ display: none;
213
+ padding-left: 0;
214
+
215
+ @include media($horizontal-bar-mode) {
216
+ left: -$navigation-submenu-padding;
217
+ position: absolute;
218
+ top: 1.5em;
219
+ }
220
+
221
+ .submenu {
222
+ @include media($horizontal-bar-mode) {
223
+ left: $navigation-submenu-width - 0.2em;
224
+ top: 0;
225
+ }
226
+ }
227
+
228
+ li {
229
+ display: block;
230
+ padding-right: 0;
231
+
232
+ @include media($horizontal-bar-mode) {
233
+ line-height: $navigation-height / 1.3;
234
+
235
+ &:first-child > a {
236
+ border-top-left-radius: $base-border-radius;
237
+ border-top-right-radius: $base-border-radius;
238
+ }
239
+
240
+ &:last-child > a {
241
+ border-bottom-left-radius: $base-border-radius;
242
+ border-bottom-right-radius: $base-border-radius;
243
+ padding-bottom: 0.7em;
244
+ }
245
+ }
246
+
247
+ a {
248
+ background-color: darken($navigation-background, 3%);
249
+ display: inline-block;
250
+ text-align: right;
251
+ width: 100%;
252
+
253
+ @include media($horizontal-bar-mode) {
254
+ background-color: $navigation-background;
255
+ padding-left: $navigation-submenu-padding;
256
+ text-align: left;
257
+ width: $navigation-submenu-width;
258
+ }
259
+ }
260
+ }
261
+ }
262
+ }