whiskers 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+ }