shevy 1.0.1 → 2.0.0
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.
- checksums.yaml +4 -4
- data/.gitignore +4 -9
- data/Gruntfile.js +59 -0
- data/LICENSE.md +21 -0
- data/README.md +173 -19
- data/bower.json +35 -0
- data/core/_shevy.scss +12 -0
- data/core/_shevy_functions.scss +128 -0
- data/core/_shevy_mixins.scss +131 -0
- data/core/_shevy_variables.scss +20 -0
- data/demo/css/style.css +415 -0
- data/demo/dist/style.css +413 -0
- data/demo/index.html +126 -0
- data/demo/scss/style.scss +202 -0
- data/lib/shevy.rb +7 -5
- data/lib/shevy/generator.rb +81 -0
- data/lib/shevy/version.rb +1 -1
- data/package.json +34 -0
- data/sache.json +6 -0
- metadata +16 -6
- data/vendor/assets/stylesheets/shevy.scss +0 -13
- data/vendor/assets/stylesheets/shevy/_shevy_functions.scss +0 -39
- data/vendor/assets/stylesheets/shevy/_shevy_mixins.scss +0 -123
- data/vendor/assets/stylesheets/shevy/_shevy_variables.scss +0 -18
data/demo/dist/style.css
ADDED
@@ -0,0 +1,413 @@
|
|
1
|
+
*,
|
2
|
+
*:before,
|
3
|
+
*:after {
|
4
|
+
box-sizing: inherit;
|
5
|
+
}
|
6
|
+
|
7
|
+
* {
|
8
|
+
margin: 0;
|
9
|
+
padding: 0;
|
10
|
+
}
|
11
|
+
|
12
|
+
html {
|
13
|
+
box-sizing: border-box;
|
14
|
+
font-size: 100%;
|
15
|
+
}
|
16
|
+
|
17
|
+
body {
|
18
|
+
font-family: sans-serif;
|
19
|
+
}
|
20
|
+
|
21
|
+
.container {
|
22
|
+
width: 90%;
|
23
|
+
margin: 1em auto;
|
24
|
+
}
|
25
|
+
@media only screen and (min-width: 520px) {
|
26
|
+
.container {
|
27
|
+
width: 67%;
|
28
|
+
}
|
29
|
+
}
|
30
|
+
@media only screen and (min-width: 1025px) {
|
31
|
+
.container {
|
32
|
+
width: 50%;
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
.footer {
|
37
|
+
margin-bottom: 3em;
|
38
|
+
}
|
39
|
+
|
40
|
+
h1 {
|
41
|
+
font-size: 3em;
|
42
|
+
line-height: 1.25;
|
43
|
+
margin-bottom: 0.5em;
|
44
|
+
}
|
45
|
+
|
46
|
+
h2 {
|
47
|
+
font-size: 2.5em;
|
48
|
+
line-height: 1.2;
|
49
|
+
margin-bottom: 0.6em;
|
50
|
+
}
|
51
|
+
|
52
|
+
h3 {
|
53
|
+
font-size: 2em;
|
54
|
+
line-height: 1.125;
|
55
|
+
margin-bottom: 0.75em;
|
56
|
+
}
|
57
|
+
|
58
|
+
h4 {
|
59
|
+
font-size: 1.5em;
|
60
|
+
line-height: 1;
|
61
|
+
margin-bottom: 1em;
|
62
|
+
}
|
63
|
+
|
64
|
+
h5 {
|
65
|
+
font-size: 1.25em;
|
66
|
+
line-height: 1.2;
|
67
|
+
margin-bottom: 1.2em;
|
68
|
+
}
|
69
|
+
|
70
|
+
h6 {
|
71
|
+
font-size: 1em;
|
72
|
+
line-height: 1.5;
|
73
|
+
margin-bottom: 1.5em;
|
74
|
+
}
|
75
|
+
|
76
|
+
p {
|
77
|
+
font-size: 1em;
|
78
|
+
line-height: 1.5em;
|
79
|
+
margin-bottom: 1.5em;
|
80
|
+
}
|
81
|
+
|
82
|
+
.shevy {
|
83
|
+
background-image: url(http://basehold.it/i/24/);
|
84
|
+
}
|
85
|
+
.shevy h1 {
|
86
|
+
font-size: 3em;
|
87
|
+
line-height: 1.25;
|
88
|
+
margin-bottom: 0.5em;
|
89
|
+
}
|
90
|
+
.shevy h2 {
|
91
|
+
font-size: 2.5em;
|
92
|
+
line-height: 1.2;
|
93
|
+
margin-bottom: 0.6em;
|
94
|
+
}
|
95
|
+
.shevy h3 {
|
96
|
+
font-size: 2em;
|
97
|
+
line-height: 1.125;
|
98
|
+
margin-bottom: 0.75em;
|
99
|
+
}
|
100
|
+
.shevy h4 {
|
101
|
+
font-size: 1.5em;
|
102
|
+
line-height: 1;
|
103
|
+
margin-bottom: 1em;
|
104
|
+
}
|
105
|
+
.shevy h5 {
|
106
|
+
font-size: 1.25em;
|
107
|
+
line-height: 1.2;
|
108
|
+
margin-bottom: 1.2em;
|
109
|
+
}
|
110
|
+
.shevy h6 {
|
111
|
+
font-size: 1em;
|
112
|
+
line-height: 1.5;
|
113
|
+
margin-bottom: 1.5em;
|
114
|
+
}
|
115
|
+
.shevy p {
|
116
|
+
font-size: 1em;
|
117
|
+
line-height: 1.5em;
|
118
|
+
margin-bottom: 1.5em;
|
119
|
+
}
|
120
|
+
|
121
|
+
.large {
|
122
|
+
background-image: url(http://basehold.it/i/30/);
|
123
|
+
}
|
124
|
+
.large h1 {
|
125
|
+
font-size: 90px;
|
126
|
+
line-height: 105px;
|
127
|
+
margin-bottom: 30px;
|
128
|
+
}
|
129
|
+
.large h2 {
|
130
|
+
font-size: 75px;
|
131
|
+
line-height: 90px;
|
132
|
+
margin-bottom: 30px;
|
133
|
+
}
|
134
|
+
.large h3 {
|
135
|
+
font-size: 60px;
|
136
|
+
line-height: 75px;
|
137
|
+
margin-bottom: 30px;
|
138
|
+
}
|
139
|
+
.large h4 {
|
140
|
+
font-size: 45px;
|
141
|
+
line-height: 60px;
|
142
|
+
margin-bottom: 30px;
|
143
|
+
}
|
144
|
+
.large h5 {
|
145
|
+
font-size: 30px;
|
146
|
+
line-height: 30px;
|
147
|
+
margin-bottom: 30px;
|
148
|
+
}
|
149
|
+
.large h6 {
|
150
|
+
font-size: 15px;
|
151
|
+
line-height: 30px;
|
152
|
+
margin-bottom: 30px;
|
153
|
+
}
|
154
|
+
.large p {
|
155
|
+
font-size: 15px;
|
156
|
+
line-height: 30px;
|
157
|
+
margin-bottom: 30px;
|
158
|
+
}
|
159
|
+
.large h6 {
|
160
|
+
/* If you're clever and look at this and notice it's different,
|
161
|
+
let me tell you why. Shevy supports a half base-space so that large headings
|
162
|
+
don't have obnoxiously big margins. When you're using basehold.it,
|
163
|
+
it's nice to bump up a margin manually to get the text below back on the baseline. Kudos for finding this */
|
164
|
+
margin-bottom: 45px;
|
165
|
+
}
|
166
|
+
@media only screen and (min-width: 478px) {
|
167
|
+
.large h6 {
|
168
|
+
margin-bottom: 30px;
|
169
|
+
}
|
170
|
+
}
|
171
|
+
|
172
|
+
.responsive {
|
173
|
+
background-image: url(http://basehold.it/i/21/);
|
174
|
+
}
|
175
|
+
.responsive h1 {
|
176
|
+
font-size: 28px;
|
177
|
+
line-height: 31.5px;
|
178
|
+
margin-bottom: 21px;
|
179
|
+
}
|
180
|
+
.responsive h2 {
|
181
|
+
font-size: 24.5px;
|
182
|
+
line-height: 31.5px;
|
183
|
+
margin-bottom: 21px;
|
184
|
+
}
|
185
|
+
.responsive h3 {
|
186
|
+
font-size: 21px;
|
187
|
+
line-height: 21px;
|
188
|
+
margin-bottom: 21px;
|
189
|
+
}
|
190
|
+
.responsive h4 {
|
191
|
+
font-size: 17.5px;
|
192
|
+
line-height: 21px;
|
193
|
+
margin-bottom: 21px;
|
194
|
+
}
|
195
|
+
.responsive h5 {
|
196
|
+
font-size: 14px;
|
197
|
+
line-height: 21px;
|
198
|
+
margin-bottom: 21px;
|
199
|
+
}
|
200
|
+
.responsive h6 {
|
201
|
+
font-size: 10.5px;
|
202
|
+
line-height: 21px;
|
203
|
+
margin-bottom: 21px;
|
204
|
+
}
|
205
|
+
.responsive p {
|
206
|
+
font-size: 10.5px;
|
207
|
+
line-height: 21px;
|
208
|
+
margin-bottom: 21px;
|
209
|
+
}
|
210
|
+
@media only screen and (min-width: 520px) {
|
211
|
+
.responsive {
|
212
|
+
background-image: url(http://basehold.it/i/24/);
|
213
|
+
}
|
214
|
+
.responsive h1 {
|
215
|
+
font-size: 32px;
|
216
|
+
line-height: 36px;
|
217
|
+
margin-bottom: 24px;
|
218
|
+
}
|
219
|
+
.responsive h2 {
|
220
|
+
font-size: 28px;
|
221
|
+
line-height: 36px;
|
222
|
+
margin-bottom: 24px;
|
223
|
+
}
|
224
|
+
.responsive h3 {
|
225
|
+
font-size: 24px;
|
226
|
+
line-height: 24px;
|
227
|
+
margin-bottom: 24px;
|
228
|
+
}
|
229
|
+
.responsive h4 {
|
230
|
+
font-size: 20px;
|
231
|
+
line-height: 24px;
|
232
|
+
margin-bottom: 24px;
|
233
|
+
}
|
234
|
+
.responsive h5 {
|
235
|
+
font-size: 16px;
|
236
|
+
line-height: 24px;
|
237
|
+
margin-bottom: 24px;
|
238
|
+
}
|
239
|
+
.responsive h6 {
|
240
|
+
font-size: 12px;
|
241
|
+
line-height: 24px;
|
242
|
+
margin-bottom: 24px;
|
243
|
+
}
|
244
|
+
.responsive p {
|
245
|
+
font-size: 12px;
|
246
|
+
line-height: 24px;
|
247
|
+
margin-bottom: 24px;
|
248
|
+
}
|
249
|
+
}
|
250
|
+
@media only screen and (min-width: 769px) {
|
251
|
+
.responsive {
|
252
|
+
background-image: url(http://basehold.it/i/54/);
|
253
|
+
}
|
254
|
+
.responsive h1 {
|
255
|
+
font-size: 3.75em;
|
256
|
+
line-height: 1.35;
|
257
|
+
margin-bottom: 0.9em;
|
258
|
+
}
|
259
|
+
.responsive h2 {
|
260
|
+
font-size: 3.3em;
|
261
|
+
line-height: 1.02273;
|
262
|
+
margin-bottom: 1.02273em;
|
263
|
+
}
|
264
|
+
.responsive h3 {
|
265
|
+
font-size: 3em;
|
266
|
+
line-height: 1.125;
|
267
|
+
margin-bottom: 1.125em;
|
268
|
+
}
|
269
|
+
.responsive h4 {
|
270
|
+
font-size: 2.625em;
|
271
|
+
line-height: 1.28571;
|
272
|
+
margin-bottom: 1.28571em;
|
273
|
+
}
|
274
|
+
.responsive h5 {
|
275
|
+
font-size: 1.875em;
|
276
|
+
line-height: 1.8;
|
277
|
+
margin-bottom: 1.8em;
|
278
|
+
}
|
279
|
+
.responsive h6 {
|
280
|
+
font-size: 1.5em;
|
281
|
+
line-height: 2.25;
|
282
|
+
margin-bottom: 2.25em;
|
283
|
+
}
|
284
|
+
.responsive p {
|
285
|
+
font-size: 1.5em;
|
286
|
+
line-height: 2.25em;
|
287
|
+
margin-bottom: 2.25em;
|
288
|
+
}
|
289
|
+
}
|
290
|
+
@media only screen and (min-width: 1025px) {
|
291
|
+
.responsive {
|
292
|
+
background-image: url(http://basehold.it/i/54/);
|
293
|
+
}
|
294
|
+
.responsive h1 {
|
295
|
+
font-size: 90px;
|
296
|
+
line-height: 108px;
|
297
|
+
margin-bottom: 54px;
|
298
|
+
}
|
299
|
+
.responsive h2 {
|
300
|
+
font-size: 79.2px;
|
301
|
+
line-height: 81px;
|
302
|
+
margin-bottom: 54px;
|
303
|
+
}
|
304
|
+
.responsive h3 {
|
305
|
+
font-size: 72px;
|
306
|
+
line-height: 81px;
|
307
|
+
margin-bottom: 54px;
|
308
|
+
}
|
309
|
+
.responsive h4 {
|
310
|
+
font-size: 63px;
|
311
|
+
line-height: 81px;
|
312
|
+
margin-bottom: 54px;
|
313
|
+
}
|
314
|
+
.responsive h5 {
|
315
|
+
font-size: 45px;
|
316
|
+
line-height: 54px;
|
317
|
+
margin-bottom: 54px;
|
318
|
+
}
|
319
|
+
.responsive h6 {
|
320
|
+
font-size: 36px;
|
321
|
+
line-height: 54px;
|
322
|
+
margin-bottom: 54px;
|
323
|
+
}
|
324
|
+
.responsive p {
|
325
|
+
font-size: 36px;
|
326
|
+
line-height: 54px;
|
327
|
+
margin-bottom: 54px;
|
328
|
+
}
|
329
|
+
}
|
330
|
+
@media only screen and (min-width: 1350px) {
|
331
|
+
.responsive {
|
332
|
+
background-image: url(http://basehold.it/i/72/);
|
333
|
+
}
|
334
|
+
.responsive h1 {
|
335
|
+
font-size: 144px;
|
336
|
+
line-height: 180px;
|
337
|
+
margin-bottom: 72px;
|
338
|
+
}
|
339
|
+
.responsive h2 {
|
340
|
+
font-size: 120px;
|
341
|
+
line-height: 144px;
|
342
|
+
margin-bottom: 72px;
|
343
|
+
}
|
344
|
+
.responsive h3 {
|
345
|
+
font-size: 96px;
|
346
|
+
line-height: 108px;
|
347
|
+
margin-bottom: 72px;
|
348
|
+
}
|
349
|
+
.responsive h4 {
|
350
|
+
font-size: 84px;
|
351
|
+
line-height: 108px;
|
352
|
+
margin-bottom: 72px;
|
353
|
+
}
|
354
|
+
.responsive h5 {
|
355
|
+
font-size: 60px;
|
356
|
+
line-height: 72px;
|
357
|
+
margin-bottom: 72px;
|
358
|
+
}
|
359
|
+
.responsive h6 {
|
360
|
+
font-size: 48px;
|
361
|
+
line-height: 72px;
|
362
|
+
margin-bottom: 72px;
|
363
|
+
}
|
364
|
+
.responsive p {
|
365
|
+
font-size: 48px;
|
366
|
+
line-height: 72px;
|
367
|
+
margin-bottom: 72px;
|
368
|
+
}
|
369
|
+
}
|
370
|
+
@media only screen and (min-width: 769px) {
|
371
|
+
.responsive p:first-child {
|
372
|
+
margin-bottom: 1.125em;
|
373
|
+
}
|
374
|
+
}
|
375
|
+
@media only screen and (min-width: 1025px) {
|
376
|
+
.responsive p:first-child {
|
377
|
+
margin-bottom: 27px;
|
378
|
+
}
|
379
|
+
}
|
380
|
+
@media only screen and (min-width: 1350px) {
|
381
|
+
.responsive p:first-child {
|
382
|
+
margin-bottom: 36px;
|
383
|
+
}
|
384
|
+
}
|
385
|
+
|
386
|
+
.box {
|
387
|
+
background: red;
|
388
|
+
padding: 3em;
|
389
|
+
margin-bottom: 1.5em;
|
390
|
+
}
|
391
|
+
.responsive .box {
|
392
|
+
padding: 42px;
|
393
|
+
}
|
394
|
+
@media only screen and (min-width: 520px) {
|
395
|
+
.responsive .box {
|
396
|
+
padding: 48px;
|
397
|
+
}
|
398
|
+
}
|
399
|
+
@media only screen and (min-width: 769px) {
|
400
|
+
.responsive .box {
|
401
|
+
padding: 4.5em;
|
402
|
+
}
|
403
|
+
}
|
404
|
+
@media only screen and (min-width: 1025px) {
|
405
|
+
.responsive .box {
|
406
|
+
padding: 108px;
|
407
|
+
}
|
408
|
+
}
|
409
|
+
@media only screen and (min-width: 1350px) {
|
410
|
+
.responsive .box {
|
411
|
+
padding: 144px;
|
412
|
+
}
|
413
|
+
}
|
data/demo/index.html
ADDED
@@ -0,0 +1,126 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<meta charset="UTF-8">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
6
|
+
<title>Shevy Demo</title>
|
7
|
+
|
8
|
+
<link rel="stylesheet" href="dist/style.css">
|
9
|
+
</head>
|
10
|
+
<body>
|
11
|
+
<div class="container">
|
12
|
+
<header class="header">
|
13
|
+
<h1>Shevy</h1>
|
14
|
+
<h3>Perfect typography. Vertical rhythm made easy.</h3>
|
15
|
+
</header>
|
16
|
+
|
17
|
+
<p>
|
18
|
+
Vertical rhythm, the "pace" at which objects and words are spaced vertically on a page. It's one of life's most unnoticeable pleasantries. It only sticks out when it's bad.
|
19
|
+
</p>
|
20
|
+
|
21
|
+
<p>
|
22
|
+
People shouldn't miss your message because of poorly spaced typography, and you shouldn't have to spend more time than necessary getting vertical rhythm correct. While Shevy can't help you pick out the best fonts, it'll make sure your fonts are perfectly spaced up and down the page.
|
23
|
+
</p>
|
24
|
+
|
25
|
+
<p>
|
26
|
+
Did I mention it works responsively, too?
|
27
|
+
</p>
|
28
|
+
|
29
|
+
<p>
|
30
|
+
That's right. You can reset your typography module by module, breakpoint by breakpoint and maintain perfect vertical rhythm (within your module or breakpoint of course).
|
31
|
+
</p>
|
32
|
+
|
33
|
+
<p>
|
34
|
+
Check it out.
|
35
|
+
</p>
|
36
|
+
|
37
|
+
<div class="shevy">
|
38
|
+
<p>Default <code>$shevy</code> font sizes</p>
|
39
|
+
|
40
|
+
<h1>Heading 1</h1>
|
41
|
+
<h2>Heading 2</h2>
|
42
|
+
<h3>Heading 3</h3>
|
43
|
+
<h4>Heading 4</h4>
|
44
|
+
<h5>Heading 5</h5>
|
45
|
+
<h6>Heading 6</h6>
|
46
|
+
|
47
|
+
<p>
|
48
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab dolor, eveniet cupiditate, rerum doloribus id voluptatibus unde quasi laborum tempora repellat saepe aperiam, reiciendis? Molestiae dicta ipsam incidunt dolor sunt soluta voluptatum iusto. Voluptate in eligendi numquam, placeat, magnam aspernatur reiciendis perferendis a rem! Quaerat, beatae, sint. Iusto mollitia, facere.
|
49
|
+
</p>
|
50
|
+
|
51
|
+
<p>
|
52
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vero itaque non, quo possimus quibusdam provident nihil ut magnam! Eum sunt qui quae rem, perferendis atque quia ipsam ex at culpa laboriosam omnis dicta quis blanditiis aspernatur, fugit quas voluptate debitis nostrum tempore! Eius, aliquid, quo.
|
53
|
+
</p>
|
54
|
+
</div>
|
55
|
+
|
56
|
+
<div class="large">
|
57
|
+
<p>Using a large font scale in a custom <code>$large</code> map.</p>
|
58
|
+
|
59
|
+
<h1>Heading 1</h1>
|
60
|
+
<h2>Heading 2</h2>
|
61
|
+
<h3>Heading 3</h3>
|
62
|
+
<h4>Heading 4</h4>
|
63
|
+
<h5>Heading 5</h5>
|
64
|
+
<h6>Heading 6</h6>
|
65
|
+
|
66
|
+
<p>
|
67
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab dolor, eveniet cupiditate, rerum doloribus id voluptatibus unde quasi laborum tempora repellat saepe aperiam, reiciendis? Molestiae dicta ipsam incidunt dolor sunt soluta voluptatum iusto. Voluptate in eligendi numquam, placeat, magnam aspernatur reiciendis perferendis a rem! Quaerat, beatae, sint. Iusto mollitia, facere.
|
68
|
+
</p>
|
69
|
+
|
70
|
+
<p>
|
71
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vero itaque non, quo possimus quibusdam provident nihil ut magnam! Eum sunt qui quae rem, perferendis atque quia ipsam ex at culpa laboriosam omnis dicta quis blanditiis aspernatur, fugit quas voluptate debitis nostrum tempore! Eius, aliquid, quo.
|
72
|
+
</p>
|
73
|
+
</div>
|
74
|
+
|
75
|
+
<div class="responsive">
|
76
|
+
<p>Responsive typography with five <code>$responsive</code> maps.</p>
|
77
|
+
|
78
|
+
<h1>Heading 1</h1>
|
79
|
+
<h2>Heading 2</h2>
|
80
|
+
<h3>Heading 3</h3>
|
81
|
+
<h4>Heading 4</h4>
|
82
|
+
<h5>Heading 5</h5>
|
83
|
+
<h6>Heading 6</h6>
|
84
|
+
|
85
|
+
<p>
|
86
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab dolor, eveniet cupiditate, rerum doloribus id voluptatibus unde quasi laborum tempora repellat saepe aperiam, reiciendis? Molestiae dicta ipsam incidunt dolor sunt soluta voluptatum iusto. Voluptate in eligendi numquam, placeat, magnam aspernatur reiciendis perferendis a rem! Quaerat, beatae, sint. Iusto mollitia, facere.
|
87
|
+
</p>
|
88
|
+
|
89
|
+
<p>
|
90
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vero itaque non, quo possimus quibusdam provident nihil ut magnam! Eum sunt qui quae rem, perferendis atque quia ipsam ex at culpa laboriosam omnis dicta quis blanditiis aspernatur, fugit quas voluptate debitis nostrum tempore! Eius, aliquid, quo.
|
91
|
+
</p>
|
92
|
+
</div>
|
93
|
+
|
94
|
+
<h2>Wait. There's more.</h2>
|
95
|
+
|
96
|
+
<p>
|
97
|
+
There's also this neat little <code>base-spacing()</code> function (with an alias to shorten it to <code>bs()</code>). <code>base-spacing()</code> takes two arguments, a <code>$factor</code> (defaults to 1) and a <code>$map</code> (defaults to <code>$shevy</code>). This function will calculate the base spacing by multiplying the <code>base-font-size</code> by the <code>base-line-height</code>. It will then multiply that base spacing by the factor provided and thus supply you with a value that aligns with your vertical rhythm.
|
98
|
+
</p>
|
99
|
+
|
100
|
+
<p>
|
101
|
+
Check out the box below. It's 2 base-spacings tall.
|
102
|
+
</p>
|
103
|
+
|
104
|
+
<div class="box"></div>
|
105
|
+
|
106
|
+
<p>
|
107
|
+
Because we can supply a map as the second argument, we can adjust the base-spacing value on the fly. For example, let's use the responsive maps we used above on the box below.
|
108
|
+
</p>
|
109
|
+
|
110
|
+
<div class="responsive">
|
111
|
+
<div class="box"></div>
|
112
|
+
</div>
|
113
|
+
|
114
|
+
<footer class="footer">
|
115
|
+
<p>
|
116
|
+
Big thanks to <a href="http://basehold.it/">basehold.it</a> for the ability to apply baseline backgrounds through out this project. Use them for your own vertical rhythm debugging.
|
117
|
+
</p>
|
118
|
+
|
119
|
+
<p>
|
120
|
+
Copyright @2015-2016 Kyle Shevlin. All Rights Reserved. Free to use under the MIT license.
|
121
|
+
</p>
|
122
|
+
</footer>
|
123
|
+
</div>
|
124
|
+
<!-- /.container -->
|
125
|
+
</body>
|
126
|
+
</html>
|