guff-compass 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (186) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +21 -0
  3. data/.gitignore +6 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +21 -0
  6. data/demo/bower_components/jquery/.bower.json +21 -0
  7. data/demo/bower_components/jquery/.editorconfig +43 -0
  8. data/demo/bower_components/jquery/.gitattributes +2 -0
  9. data/demo/bower_components/jquery/.gitignore +14 -0
  10. data/demo/bower_components/jquery/.gitmodules +6 -0
  11. data/demo/bower_components/jquery/.jshintrc +17 -0
  12. data/demo/bower_components/jquery/.mailmap +94 -0
  13. data/demo/bower_components/jquery/AUTHORS.txt +170 -0
  14. data/demo/bower_components/jquery/CONTRIBUTING.md +216 -0
  15. data/demo/bower_components/jquery/Gruntfile.js +594 -0
  16. data/demo/bower_components/jquery/MIT-LICENSE.txt +21 -0
  17. data/demo/bower_components/jquery/README.md +398 -0
  18. data/demo/bower_components/jquery/bower.json +11 -0
  19. data/demo/bower_components/jquery/build/release-notes.js +59 -0
  20. data/demo/bower_components/jquery/build/release.js +316 -0
  21. data/demo/bower_components/jquery/component.json +15 -0
  22. data/demo/bower_components/jquery/composer.json +35 -0
  23. data/demo/bower_components/jquery/jquery-migrate.js +511 -0
  24. data/demo/bower_components/jquery/jquery-migrate.min.js +3 -0
  25. data/demo/bower_components/jquery/jquery.js +9789 -0
  26. data/demo/bower_components/jquery/jquery.min.js +6 -0
  27. data/demo/bower_components/jquery/jquery.min.map +1 -0
  28. data/demo/bower_components/jquery/package.json +38 -0
  29. data/demo/bower_components/jquery/speed/benchmark.js +15 -0
  30. data/demo/bower_components/jquery/speed/benchmarker.css +65 -0
  31. data/demo/bower_components/jquery/speed/benchmarker.js +181 -0
  32. data/demo/bower_components/jquery/speed/closest.html +39 -0
  33. data/demo/bower_components/jquery/speed/css.html +82 -0
  34. data/demo/bower_components/jquery/speed/event.html +58 -0
  35. data/demo/bower_components/jquery/speed/filter.html +183 -0
  36. data/demo/bower_components/jquery/speed/find.html +179 -0
  37. data/demo/bower_components/jquery/speed/index.html +72 -0
  38. data/demo/bower_components/jquery/speed/jquery-basis.js +6238 -0
  39. data/demo/bower_components/jquery/speed/slice.vs.concat.html +47 -0
  40. data/demo/bower_components/jquery/src/.jshintrc +27 -0
  41. data/demo/bower_components/jquery/src/ajax.js +855 -0
  42. data/demo/bower_components/jquery/src/ajax/jsonp.js +80 -0
  43. data/demo/bower_components/jquery/src/ajax/script.js +86 -0
  44. data/demo/bower_components/jquery/src/ajax/xhr.js +207 -0
  45. data/demo/bower_components/jquery/src/attributes.js +659 -0
  46. data/demo/bower_components/jquery/src/callbacks.js +197 -0
  47. data/demo/bower_components/jquery/src/core.js +981 -0
  48. data/demo/bower_components/jquery/src/css.js +661 -0
  49. data/demo/bower_components/jquery/src/data.js +336 -0
  50. data/demo/bower_components/jquery/src/deferred.js +141 -0
  51. data/demo/bower_components/jquery/src/deprecated.js +11 -0
  52. data/demo/bower_components/jquery/src/dimensions.js +41 -0
  53. data/demo/bower_components/jquery/src/effects.js +732 -0
  54. data/demo/bower_components/jquery/src/event-alias.js +32 -0
  55. data/demo/bower_components/jquery/src/event.js +995 -0
  56. data/demo/bower_components/jquery/src/exports.js +21 -0
  57. data/demo/bower_components/jquery/src/intro.js +20 -0
  58. data/demo/bower_components/jquery/src/manipulation.js +744 -0
  59. data/demo/bower_components/jquery/src/offset.js +169 -0
  60. data/demo/bower_components/jquery/src/outro.js +2 -0
  61. data/demo/bower_components/jquery/src/queue.js +146 -0
  62. data/demo/bower_components/jquery/src/serialize.js +99 -0
  63. data/demo/bower_components/jquery/src/sizzle-jquery.js +7 -0
  64. data/demo/bower_components/jquery/src/support.js +246 -0
  65. data/demo/bower_components/jquery/src/traversing.js +283 -0
  66. data/demo/bower_components/jquery/src/wrap.js +66 -0
  67. data/demo/bower_components/jquery/test/.jshintignore +3 -0
  68. data/demo/bower_components/jquery/test/.jshintrc +60 -0
  69. data/demo/bower_components/jquery/test/data/1x1.jpg +0 -0
  70. data/demo/bower_components/jquery/test/data/ajax/unreleasedXHR.html +25 -0
  71. data/demo/bower_components/jquery/test/data/atom+xml.php +4 -0
  72. data/demo/bower_components/jquery/test/data/badcall.js +1 -0
  73. data/demo/bower_components/jquery/test/data/badjson.js +1 -0
  74. data/demo/bower_components/jquery/test/data/cleanScript.html +10 -0
  75. data/demo/bower_components/jquery/test/data/core/cc_on.html +22 -0
  76. data/demo/bower_components/jquery/test/data/dashboard.xml +11 -0
  77. data/demo/bower_components/jquery/test/data/dimensions/documentLarge.html +17 -0
  78. data/demo/bower_components/jquery/test/data/dimensions/documentSmall.html +21 -0
  79. data/demo/bower_components/jquery/test/data/echoData.php +1 -0
  80. data/demo/bower_components/jquery/test/data/echoQuery.php +1 -0
  81. data/demo/bower_components/jquery/test/data/errorWithJSON.php +6 -0
  82. data/demo/bower_components/jquery/test/data/errorWithText.php +5 -0
  83. data/demo/bower_components/jquery/test/data/etag.php +21 -0
  84. data/demo/bower_components/jquery/test/data/evalScript.php +1 -0
  85. data/demo/bower_components/jquery/test/data/event/focusElem.html +16 -0
  86. data/demo/bower_components/jquery/test/data/event/longLoadScript.php +4 -0
  87. data/demo/bower_components/jquery/test/data/event/promiseReady.html +17 -0
  88. data/demo/bower_components/jquery/test/data/event/syncReady.html +23 -0
  89. data/demo/bower_components/jquery/test/data/headers.php +18 -0
  90. data/demo/bower_components/jquery/test/data/if_modified_since.php +20 -0
  91. data/demo/bower_components/jquery/test/data/iframe.html +8 -0
  92. data/demo/bower_components/jquery/test/data/jquery-1.9.1.ajax_xhr.min.js +5 -0
  93. data/demo/bower_components/jquery/test/data/json.php +13 -0
  94. data/demo/bower_components/jquery/test/data/json_obj.js +1 -0
  95. data/demo/bower_components/jquery/test/data/jsonp.php +14 -0
  96. data/demo/bower_components/jquery/test/data/manipulation/iframe-denied.html +36 -0
  97. data/demo/bower_components/jquery/test/data/name.html +1 -0
  98. data/demo/bower_components/jquery/test/data/name.php +24 -0
  99. data/demo/bower_components/jquery/test/data/nocontent.php +5 -0
  100. data/demo/bower_components/jquery/test/data/offset/absolute.html +41 -0
  101. data/demo/bower_components/jquery/test/data/offset/body.html +26 -0
  102. data/demo/bower_components/jquery/test/data/offset/fixed.html +34 -0
  103. data/demo/bower_components/jquery/test/data/offset/relative.html +31 -0
  104. data/demo/bower_components/jquery/test/data/offset/scroll.html +39 -0
  105. data/demo/bower_components/jquery/test/data/offset/static.html +31 -0
  106. data/demo/bower_components/jquery/test/data/offset/table.html +43 -0
  107. data/demo/bower_components/jquery/test/data/params_html.php +12 -0
  108. data/demo/bower_components/jquery/test/data/readywaitasset.js +1 -0
  109. data/demo/bower_components/jquery/test/data/readywaitloader.js +25 -0
  110. data/demo/bower_components/jquery/test/data/script.php +11 -0
  111. data/demo/bower_components/jquery/test/data/selector/html5_selector.html +114 -0
  112. data/demo/bower_components/jquery/test/data/selector/sizzle_cache.html +21 -0
  113. data/demo/bower_components/jquery/test/data/statusText.php +5 -0
  114. data/demo/bower_components/jquery/test/data/support/bodyBackground.html +28 -0
  115. data/demo/bower_components/jquery/test/data/support/boxSizing.html +19 -0
  116. data/demo/bower_components/jquery/test/data/support/csp.js +3 -0
  117. data/demo/bower_components/jquery/test/data/support/csp.php +22 -0
  118. data/demo/bower_components/jquery/test/data/support/shrinkWrapBlocks.html +23 -0
  119. data/demo/bower_components/jquery/test/data/support/testElementCrash.html +17 -0
  120. data/demo/bower_components/jquery/test/data/test.html +7 -0
  121. data/demo/bower_components/jquery/test/data/test.js +3 -0
  122. data/demo/bower_components/jquery/test/data/test.php +7 -0
  123. data/demo/bower_components/jquery/test/data/test2.html +5 -0
  124. data/demo/bower_components/jquery/test/data/test3.html +3 -0
  125. data/demo/bower_components/jquery/test/data/testinit.js +264 -0
  126. data/demo/bower_components/jquery/test/data/testrunner.js +371 -0
  127. data/demo/bower_components/jquery/test/data/testsuite.css +155 -0
  128. data/demo/bower_components/jquery/test/data/text.php +12 -0
  129. data/demo/bower_components/jquery/test/data/ua.txt +272 -0
  130. data/demo/bower_components/jquery/test/data/with_fries.xml +25 -0
  131. data/demo/bower_components/jquery/test/data/with_fries_over_jsonp.php +7 -0
  132. data/demo/bower_components/jquery/test/delegatetest.html +228 -0
  133. data/demo/bower_components/jquery/test/hovertest.html +158 -0
  134. data/demo/bower_components/jquery/test/index.html +337 -0
  135. data/demo/bower_components/jquery/test/jquery.js +5 -0
  136. data/demo/bower_components/jquery/test/localfile.html +75 -0
  137. data/demo/bower_components/jquery/test/networkerror.html +84 -0
  138. data/demo/bower_components/jquery/test/readywait.html +70 -0
  139. data/demo/bower_components/jquery/test/unit/ajax.js +2016 -0
  140. data/demo/bower_components/jquery/test/unit/attributes.js +1388 -0
  141. data/demo/bower_components/jquery/test/unit/callbacks.js +342 -0
  142. data/demo/bower_components/jquery/test/unit/core.js +1360 -0
  143. data/demo/bower_components/jquery/test/unit/css.js +1056 -0
  144. data/demo/bower_components/jquery/test/unit/data.js +645 -0
  145. data/demo/bower_components/jquery/test/unit/deferred.js +436 -0
  146. data/demo/bower_components/jquery/test/unit/deprecated.js +8 -0
  147. data/demo/bower_components/jquery/test/unit/dimensions.js +472 -0
  148. data/demo/bower_components/jquery/test/unit/effects.js +2242 -0
  149. data/demo/bower_components/jquery/test/unit/event.js +2755 -0
  150. data/demo/bower_components/jquery/test/unit/exports.js +7 -0
  151. data/demo/bower_components/jquery/test/unit/manipulation.js +2120 -0
  152. data/demo/bower_components/jquery/test/unit/offset.js +559 -0
  153. data/demo/bower_components/jquery/test/unit/queue.js +314 -0
  154. data/demo/bower_components/jquery/test/unit/selector.js +172 -0
  155. data/demo/bower_components/jquery/test/unit/serialize.js +148 -0
  156. data/demo/bower_components/jquery/test/unit/support.js +370 -0
  157. data/demo/bower_components/jquery/test/unit/traversing.js +797 -0
  158. data/demo/bower_components/jquery/test/unit/wrap.js +265 -0
  159. data/demo/bower_components/jquery/test/xhtml.php +5 -0
  160. data/demo/index.html +347 -0
  161. data/demo/styles/main.css +208 -0
  162. data/demo/styles/main.scss +138 -0
  163. data/docs/docco.css +506 -0
  164. data/docs/guff.html +1127 -0
  165. data/docs/public/fonts/aller-bold.eot +0 -0
  166. data/docs/public/fonts/aller-bold.ttf +0 -0
  167. data/docs/public/fonts/aller-bold.woff +0 -0
  168. data/docs/public/fonts/aller-light.eot +0 -0
  169. data/docs/public/fonts/aller-light.ttf +0 -0
  170. data/docs/public/fonts/aller-light.woff +0 -0
  171. data/docs/public/fonts/novecento-bold.eot +0 -0
  172. data/docs/public/fonts/novecento-bold.ttf +0 -0
  173. data/docs/public/fonts/novecento-bold.woff +0 -0
  174. data/docs/public/stylesheets/normalize.css +375 -0
  175. data/guff.gemspec +16 -0
  176. data/guff.scss +514 -0
  177. data/gulpfile.js +67 -0
  178. data/lib/guff.rb +4 -0
  179. data/lib/stylesheets/_guff.scss +514 -0
  180. data/package.json +19 -0
  181. data/src/_functions.scss +57 -0
  182. data/src/_mixins.scss +301 -0
  183. data/src/_reset.scss +67 -0
  184. data/src/_settings.scss +22 -0
  185. data/src/_typography.scss +67 -0
  186. metadata +259 -0
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,375 @@
1
+ /*! normalize.css v2.0.1 | MIT License | git.io/normalize */
2
+
3
+ /* ==========================================================================
4
+ HTML5 display definitions
5
+ ========================================================================== */
6
+
7
+ /*
8
+ * Corrects `block` display not defined in IE 8/9.
9
+ */
10
+
11
+ article,
12
+ aside,
13
+ details,
14
+ figcaption,
15
+ figure,
16
+ footer,
17
+ header,
18
+ hgroup,
19
+ nav,
20
+ section,
21
+ summary {
22
+ display: block;
23
+ }
24
+
25
+ /*
26
+ * Corrects `inline-block` display not defined in IE 8/9.
27
+ */
28
+
29
+ audio,
30
+ canvas,
31
+ video {
32
+ display: inline-block;
33
+ }
34
+
35
+ /*
36
+ * Prevents modern browsers from displaying `audio` without controls.
37
+ * Remove excess height in iOS 5 devices.
38
+ */
39
+
40
+ audio:not([controls]) {
41
+ display: none;
42
+ height: 0;
43
+ }
44
+
45
+ /*
46
+ * Addresses styling for `hidden` attribute not present in IE 8/9.
47
+ */
48
+
49
+ [hidden] {
50
+ display: none;
51
+ }
52
+
53
+ /* ==========================================================================
54
+ Base
55
+ ========================================================================== */
56
+
57
+ /*
58
+ * 1. Sets default font family to sans-serif.
59
+ * 2. Prevents iOS text size adjust after orientation change, without disabling
60
+ * user zoom.
61
+ */
62
+
63
+ html {
64
+ font-family: sans-serif; /* 1 */
65
+ -webkit-text-size-adjust: 100%; /* 2 */
66
+ -ms-text-size-adjust: 100%; /* 2 */
67
+ }
68
+
69
+ /*
70
+ * Removes default margin.
71
+ */
72
+
73
+ body {
74
+ margin: 0;
75
+ }
76
+
77
+ /* ==========================================================================
78
+ Links
79
+ ========================================================================== */
80
+
81
+ /*
82
+ * Addresses `outline` inconsistency between Chrome and other browsers.
83
+ */
84
+
85
+ a:focus {
86
+ outline: thin dotted;
87
+ }
88
+
89
+ /*
90
+ * Improves readability when focused and also mouse hovered in all browsers.
91
+ */
92
+
93
+ a:active,
94
+ a:hover {
95
+ outline: 0;
96
+ }
97
+
98
+ /* ==========================================================================
99
+ Typography
100
+ ========================================================================== */
101
+
102
+ /*
103
+ * Addresses `h1` font sizes within `section` and `article` in Firefox 4+,
104
+ * Safari 5, and Chrome.
105
+ */
106
+
107
+ h1 {
108
+ font-size: 2em;
109
+ }
110
+
111
+ /*
112
+ * Addresses styling not present in IE 8/9, Safari 5, and Chrome.
113
+ */
114
+
115
+ abbr[title] {
116
+ border-bottom: 1px dotted;
117
+ }
118
+
119
+ /*
120
+ * Addresses style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
121
+ */
122
+
123
+ b,
124
+ strong {
125
+ font-weight: bold;
126
+ }
127
+
128
+ /*
129
+ * Addresses styling not present in Safari 5 and Chrome.
130
+ */
131
+
132
+ dfn {
133
+ font-style: italic;
134
+ }
135
+
136
+ /*
137
+ * Addresses styling not present in IE 8/9.
138
+ */
139
+
140
+ mark {
141
+ background: #ff0;
142
+ color: #000;
143
+ }
144
+
145
+
146
+ /*
147
+ * Corrects font family set oddly in Safari 5 and Chrome.
148
+ */
149
+
150
+ code,
151
+ kbd,
152
+ pre,
153
+ samp {
154
+ font-family: monospace, serif;
155
+ font-size: 1em;
156
+ }
157
+
158
+ /*
159
+ * Improves readability of pre-formatted text in all browsers.
160
+ */
161
+
162
+ pre {
163
+ white-space: pre;
164
+ white-space: pre-wrap;
165
+ word-wrap: break-word;
166
+ }
167
+
168
+ /*
169
+ * Sets consistent quote types.
170
+ */
171
+
172
+ q {
173
+ quotes: "\201C" "\201D" "\2018" "\2019";
174
+ }
175
+
176
+ /*
177
+ * Addresses inconsistent and variable font size in all browsers.
178
+ */
179
+
180
+ small {
181
+ font-size: 80%;
182
+ }
183
+
184
+ /*
185
+ * Prevents `sub` and `sup` affecting `line-height` in all browsers.
186
+ */
187
+
188
+ sub,
189
+ sup {
190
+ font-size: 75%;
191
+ line-height: 0;
192
+ position: relative;
193
+ vertical-align: baseline;
194
+ }
195
+
196
+ sup {
197
+ top: -0.5em;
198
+ }
199
+
200
+ sub {
201
+ bottom: -0.25em;
202
+ }
203
+
204
+ /* ==========================================================================
205
+ Embedded content
206
+ ========================================================================== */
207
+
208
+ /*
209
+ * Removes border when inside `a` element in IE 8/9.
210
+ */
211
+
212
+ img {
213
+ border: 0;
214
+ }
215
+
216
+ /*
217
+ * Corrects overflow displayed oddly in IE 9.
218
+ */
219
+
220
+ svg:not(:root) {
221
+ overflow: hidden;
222
+ }
223
+
224
+ /* ==========================================================================
225
+ Figures
226
+ ========================================================================== */
227
+
228
+ /*
229
+ * Addresses margin not present in IE 8/9 and Safari 5.
230
+ */
231
+
232
+ figure {
233
+ margin: 0;
234
+ }
235
+
236
+ /* ==========================================================================
237
+ Forms
238
+ ========================================================================== */
239
+
240
+ /*
241
+ * Define consistent border, margin, and padding.
242
+ */
243
+
244
+ fieldset {
245
+ border: 1px solid #c0c0c0;
246
+ margin: 0 2px;
247
+ padding: 0.35em 0.625em 0.75em;
248
+ }
249
+
250
+ /*
251
+ * 1. Corrects color not being inherited in IE 8/9.
252
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
253
+ */
254
+
255
+ legend {
256
+ border: 0; /* 1 */
257
+ padding: 0; /* 2 */
258
+ }
259
+
260
+ /*
261
+ * 1. Corrects font family not being inherited in all browsers.
262
+ * 2. Corrects font size not being inherited in all browsers.
263
+ * 3. Addresses margins set differently in Firefox 4+, Safari 5, and Chrome
264
+ */
265
+
266
+ button,
267
+ input,
268
+ select,
269
+ textarea {
270
+ font-family: inherit; /* 1 */
271
+ font-size: 100%; /* 2 */
272
+ margin: 0; /* 3 */
273
+ }
274
+
275
+ /*
276
+ * Addresses Firefox 4+ setting `line-height` on `input` using `!important` in
277
+ * the UA stylesheet.
278
+ */
279
+
280
+ button,
281
+ input {
282
+ line-height: normal;
283
+ }
284
+
285
+ /*
286
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
287
+ * and `video` controls.
288
+ * 2. Corrects inability to style clickable `input` types in iOS.
289
+ * 3. Improves usability and consistency of cursor style between image-type
290
+ * `input` and others.
291
+ */
292
+
293
+ button,
294
+ html input[type="button"], /* 1 */
295
+ input[type="reset"],
296
+ input[type="submit"] {
297
+ -webkit-appearance: button; /* 2 */
298
+ cursor: pointer; /* 3 */
299
+ }
300
+
301
+ /*
302
+ * Re-set default cursor for disabled elements.
303
+ */
304
+
305
+ button[disabled],
306
+ input[disabled] {
307
+ cursor: default;
308
+ }
309
+
310
+ /*
311
+ * 1. Addresses box sizing set to `content-box` in IE 8/9.
312
+ * 2. Removes excess padding in IE 8/9.
313
+ */
314
+
315
+ input[type="checkbox"],
316
+ input[type="radio"] {
317
+ box-sizing: border-box; /* 1 */
318
+ padding: 0; /* 2 */
319
+ }
320
+
321
+ /*
322
+ * 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome.
323
+ * 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome
324
+ * (include `-moz` to future-proof).
325
+ */
326
+
327
+ input[type="search"] {
328
+ -webkit-appearance: textfield; /* 1 */
329
+ -moz-box-sizing: content-box;
330
+ -webkit-box-sizing: content-box; /* 2 */
331
+ box-sizing: content-box;
332
+ }
333
+
334
+ /*
335
+ * Removes inner padding and search cancel button in Safari 5 and Chrome
336
+ * on OS X.
337
+ */
338
+
339
+ input[type="search"]::-webkit-search-cancel-button,
340
+ input[type="search"]::-webkit-search-decoration {
341
+ -webkit-appearance: none;
342
+ }
343
+
344
+ /*
345
+ * Removes inner padding and border in Firefox 4+.
346
+ */
347
+
348
+ button::-moz-focus-inner,
349
+ input::-moz-focus-inner {
350
+ border: 0;
351
+ padding: 0;
352
+ }
353
+
354
+ /*
355
+ * 1. Removes default vertical scrollbar in IE 8/9.
356
+ * 2. Improves readability and alignment in all browsers.
357
+ */
358
+
359
+ textarea {
360
+ overflow: auto; /* 1 */
361
+ vertical-align: top; /* 2 */
362
+ }
363
+
364
+ /* ==========================================================================
365
+ Tables
366
+ ========================================================================== */
367
+
368
+ /*
369
+ * Remove most spacing between table cells.
370
+ */
371
+
372
+ table {
373
+ border-collapse: collapse;
374
+ border-spacing: 0;
375
+ }
data/guff.gemspec ADDED
@@ -0,0 +1,16 @@
1
+ Gem::Specification.new do |spec|
2
+ spec.name = "guff-compass"
3
+ spec.version = "0.7.0"
4
+ spec.authors = ["Ken Wheeler"]
5
+ spec.email = ["ken@outlook.com"]
6
+ spec.summary = %q{ All the Sass framework you need. }
7
+ spec.description = %q{ All the Sass framework you need.}
8
+ spec.homepage = "http://kenwheeler.github.io/guff/"
9
+ spec.license = "MIT"
10
+
11
+ spec.files = `git ls-files -z`.split("\x0")
12
+ spec.require_paths = ["lib"]
13
+
14
+ spec.add_runtime_dependency('sass', ">= 3.2")
15
+ spec.add_dependency("compass", [">= 0.11"])
16
+ end
data/guff.scss ADDED
@@ -0,0 +1,514 @@
1
+ // ###Reset
2
+
3
+ // Mixin Reset
4
+ @mixin reset(){
5
+
6
+ // Reset all browser styles & set font-size to 100%
7
+ html, body, div, span, applet, object, iframe,
8
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
9
+ a, abbr, acronym, address, big, cite, code,
10
+ del, dfn, em, img, ins, kbd, q, s, samp,
11
+ small, strike, strong, sub, sup, tt, var,
12
+ b, u, i, center,
13
+ dl, dt, dd, ol, ul, li,
14
+ fieldset, form, label, legend,
15
+ table, caption, tbody, tfoot, thead, tr, th, td,
16
+ article, aside, canvas, details, embed,
17
+ figure, figcaption, footer, header, hgroup,
18
+ menu, nav, output, ruby, section, summary,
19
+ time, mark, audio, video {
20
+ margin: 0;
21
+ padding: 0;
22
+ border: 0;
23
+ font-size: 100%;
24
+ font: inherit;
25
+ vertical-align: baseline;
26
+ }
27
+
28
+ // Set HTML5 elements to block
29
+ article, aside, details, figcaption, figure,
30
+ footer, header, hgroup, main, menu, nav, section {
31
+ display: block;
32
+ }
33
+
34
+ // Remove built in list styling
35
+ ol, ul {
36
+ list-style: none;
37
+ }
38
+
39
+ // Remove link underlining
40
+ a {
41
+ text-decoration: none;
42
+ }
43
+
44
+ // Normalize block quotes
45
+ blockquote, q {
46
+ quotes: none;
47
+ }
48
+
49
+ // Remove pseudo elements
50
+ blockquote:before, blockquote:after,
51
+ q:before, q:after {
52
+ content: '';
53
+ content: none;
54
+ }
55
+
56
+ // Normalize tables
57
+ table {
58
+ border-collapse: collapse;
59
+ border-spacing: 0;
60
+ }
61
+
62
+ // Global border-box
63
+ * {
64
+ @include box-sizing(border-box);
65
+ }
66
+
67
+ }
68
+ // ###Settings
69
+
70
+ // Set base font size
71
+ $rem-base: 16px !default;
72
+ // Set line height ratio base
73
+ $line-height-base: 26px !default;
74
+ // Vertical rhythm ratio
75
+ $type-rhythm-ratio: 1.14 !default;
76
+ // Desktop Media Query
77
+ $desktop: "(min-width: 1024px)" !default;
78
+ // Tablet Media Query
79
+ $tablet: "(min-width: 768px) and (max-width: 1023px)" !default;
80
+ // Mobile Media Query
81
+ $mobile: "(max-width: 767px)" !default;
82
+ // Set Grid Column Count
83
+ $grid-columns: 12 !default;
84
+ // Set Grid Gutter (as px)
85
+ $grid-gutter: 20px !default;
86
+ // Set Grid Padding (as px)
87
+ $grid-padding: 20px !default;
88
+ // Set Grid Max Width (as px)
89
+ $grid-max-width: 1024px !default;
90
+ // ###Functions
91
+
92
+ // Strips unit suffix from value
93
+ @function _strip-unit($num) {
94
+ @if type-of($num) != "number" {
95
+ @warn "num: #{$num} is not a number";
96
+ @return null;
97
+ }
98
+ @return $num / ($num * 0 + 1);
99
+ }
100
+
101
+ // Converts to rem, utility for rem-calc
102
+ @function _convert-to-rem($value, $base-value: $rem-base) {
103
+ @if type-of($value) != "number" {
104
+ @warn "value: #{$value} is not a number";
105
+ @return null;
106
+ }
107
+ @if type-of($base-value) != "number" {
108
+ @warn "base-value: #{$base-value} is not a number";
109
+ @return null;
110
+ }
111
+ $value: _strip-unit($value) / _strip-unit($base-value) * 1rem;
112
+ @if (_strip-unit($value) == 0) { $value: 0; } // Turn 0rem into 0
113
+ @return $value;
114
+ }
115
+
116
+ // Calculates rem value from number
117
+ @function rem-calc($values, $base-value: $rem-base) {
118
+ @if type-of($values) != "number" {
119
+ @warn "values: #{$values} is not a number";
120
+ @return null;
121
+ }
122
+ @if type-of($base-value) != "number" {
123
+ @warn "base-value: #{$base-value} is not a number";
124
+ @return null;
125
+ }
126
+ $max: length($values);
127
+ @if $max == 1 { @return _convert-to-rem(nth($values, 1), $base-value); }
128
+ $remValues: ();
129
+ @for $i from 1 through $max {
130
+ $remValues: append($remValues, _convert-to-rem(nth($values, $i), $base-value));
131
+ }
132
+ @return $remValues;
133
+ }
134
+
135
+ // Gets grid column width
136
+ @function span($cols: 4) {
137
+ @if type-of($cols) != "number" {
138
+ @warn "cols: #{$cols} is not a number";
139
+ @return null;
140
+ }
141
+ @if type-of($grid-columns) != "number" {
142
+ @warn "grid-columns: #{$grid-columns} is not a number";
143
+ $valid: false;
144
+ }
145
+ @return percentage($cols/$grid-columns);
146
+ }
147
+ // ###Mixins
148
+
149
+ // Sets container styles
150
+ @mixin container {
151
+ $valid: true;
152
+ @if type-of($grid-max-width) != "number" {
153
+ @warn "grid-max-width: #{$grid-max-width} is not a number";
154
+ $valid: false;
155
+ }
156
+ @if type-of($rem-base) != "number" {
157
+ @warn "rem-base: #{$rem-base} is not a number";
158
+ $valid: false;
159
+ }
160
+ @if $valid == true {
161
+ width: 100%;
162
+ max-width: $grid-max-width;
163
+ @include clear;
164
+ }
165
+ }
166
+
167
+ // Sets col container styles
168
+ @mixin col-container {
169
+ $valid: true;
170
+ @if type-of($grid-max-width) != "number" {
171
+ @warn "grid-max-width: #{$grid-max-width} is not a number";
172
+ $valid: false;
173
+ }
174
+ @if type-of($rem-base) != "number" {
175
+ @warn "rem-base: #{$rem-base} is not a number";
176
+ $valid: false;
177
+ }
178
+ @if $valid == true {
179
+ width: 100%;
180
+ text-align: justify !important;
181
+ text-justify: distribute-all-lines;
182
+ font-size: 0 !important;
183
+ max-width: $grid-max-width;
184
+ & > * {
185
+ text-align: left;
186
+ font-sze: rem-calc($rem-base);
187
+ }
188
+ &:after {
189
+ content: '';
190
+ display: inline-block;
191
+ width: 100%;
192
+ }
193
+ }
194
+ }
195
+
196
+ // Sets grid column width
197
+ @mixin span($cols: 4, $padding: true) {
198
+ $valid: true;
199
+ @if type-of($cols) != "number" {
200
+ @warn "cols: #{$cols} is not a number";
201
+ $valid: false;
202
+ }
203
+ @if type-of($padding) != "bool" {
204
+ @warn "padding: #{$padding} is not a boolean";
205
+ $valid: false;
206
+ }
207
+ @if type-of($grid-columns) != "number" {
208
+ @warn "grid-columns: #{$grid-columns} is not a number";
209
+ $valid: false;
210
+ }
211
+ @if type-of($grid-padding) != "number" {
212
+ @warn "grid-padding: #{$grid-padding} is not a number";
213
+ $valid: false;
214
+ }
215
+ @if $valid == true {
216
+ $column-width: $cols / $grid-columns;
217
+ @if $padding != false {
218
+ padding-left: $grid-padding;
219
+ padding-right: $grid-padding;
220
+ }
221
+ width: percentage($column-width);
222
+ float: left;
223
+ }
224
+ }
225
+
226
+ // Sets grid column width (with gutter)
227
+ @mixin col($span: 4) {
228
+ $valid: true;
229
+ @if type-of($span) != "number" {
230
+ @warn "span: #{$span} is not a number";
231
+ $valid: false;
232
+ }
233
+ @if type-of($grid-max-width) != "number" {
234
+ @warn "grid-max-width: #{$grid-max-width} is not a number";
235
+ $valid: false;
236
+ }
237
+ @if type-of($grid-columns) != "number" {
238
+ @warn "grid-columns: #{$grid-columns} is not a number";
239
+ $valid: false;
240
+ }
241
+ @if type-of($grid-gutter) != "number" {
242
+ @warn "grid-gutter: #{$grid-columns} is not a number";
243
+ $valid: false;
244
+ }
245
+ @if $valid == true {
246
+ $column-width: 100% / $grid-columns;
247
+ $gutter: ($grid-gutter * 0.75) / $grid-max-width * 100;
248
+ $span-width: $span * $column-width;
249
+ width: $span-width - $gutter;
250
+ vertical-align: top;
251
+ display: inline-block;
252
+ }
253
+ }
254
+
255
+ // Sets grid offet margin
256
+ @mixin offset($cols: 4) {
257
+ $valid: true;
258
+ @if type-of($cols) != "number" {
259
+ @warn "cols: #{$cols} is not a number";
260
+ $valid: false;
261
+ }
262
+ @if type-of($grid-columns) != "number" {
263
+ @warn "grid-columns: #{$grid-columns} is not a number";
264
+ $valid: false;
265
+ }
266
+ @if $valid == true {
267
+ margin-left: percentage($cols/$grid-columns);
268
+ }
269
+ }
270
+
271
+ // Wraps interior content in a media query
272
+ @mixin breakpoint($querystring) {
273
+ $valid: true;
274
+ @if type-of($querystring) != "string" {
275
+ @warn "querystring: #{$querystring} is not a string";
276
+ $valid: false;
277
+ }
278
+ @if $valid == true {
279
+ @media #{$querystring} {
280
+ @content;
281
+ }
282
+ }
283
+ }
284
+
285
+ // Renders fully prefixed transistion
286
+ @mixin transition ($property: 0.15s) {
287
+ $valid: false;
288
+ @if type-of($property) == "string" {
289
+ $valid: true;
290
+ }
291
+ @if type-of($property) == "list" {
292
+ $valid: true;
293
+ }
294
+ @if type-of($property) == "number" {
295
+ $valid: true;
296
+ }
297
+ @if $valid == true {
298
+ @include prefixer(transition, $property, webkit moz ms);
299
+ } @else {
300
+ @warn "property: #{$property} is not a valid argument";
301
+ }
302
+ }
303
+
304
+ // Renders fully prefixed transform
305
+ @mixin transform($property: none) {
306
+ $valid: false;
307
+ @if type-of($property) == "string" {
308
+ $valid: true;
309
+ }
310
+ @if type-of($property) == "list" {
311
+ $valid: true;
312
+ }
313
+ @if $valid == true {
314
+ @include prefixer(transform, $property, webkit moz ms);
315
+ } @else {
316
+ @warn "property: #{$property} is not a valid argument";
317
+ }
318
+ }
319
+
320
+ // Renders fully prefixed box-sizing
321
+ @mixin box-sizing ($box: border-box) {
322
+ $valid: true;
323
+ @if type-of($box) != "string" {
324
+ @warn "box: #{$box} is not a string";
325
+ $valid: false;
326
+ }
327
+ @if $valid == true {
328
+ @include prefixer(box-sizing, $box, webkit moz);
329
+ }
330
+ }
331
+
332
+ // Utility for prefixing mixins
333
+ @mixin prefixer($property, $value, $prefixes: webkit moz) {
334
+ $valid: false;
335
+ @if type-of($property) == "string" {
336
+ $valid: true;
337
+ }
338
+ @if type-of($prefixes) == "list" {
339
+ $valid: true;
340
+ }
341
+ @if type-of($prefixes) == "string" {
342
+ $valid: true;
343
+ }
344
+ @if $valid == true {
345
+ @each $prefix in $prefixes {
346
+ #{"-" + $prefix + "-" + $property}: $value;
347
+ }
348
+ #{$property}: $value;
349
+ } @else {
350
+ @warn "Invalid arguments supplied";
351
+ }
352
+ }
353
+
354
+ // Sets ellipsis overflow
355
+ @mixin ellipsis($width: 100%) {
356
+ $valid: true;
357
+ @if type-of($width) != "number" {
358
+ @warn "width: #{$width} is not a number";
359
+ $valid: false;
360
+ }
361
+ @if $valid == true {
362
+ display: inline-block;
363
+ max-width: $width;
364
+ overflow: hidden;
365
+ text-overflow: ellipsis;
366
+ white-space: nowrap;
367
+ }
368
+ }
369
+
370
+ // Clearfix include
371
+ @mixin clear($extend: true) {
372
+ $valid: true;
373
+ @if type-of($extend) != "bool" {
374
+ @warn "extend: #{$extend} is not a boolean";
375
+ $valid: false;
376
+ }
377
+ @if $valid == true {
378
+ @if $extend {
379
+ @extend %clear;
380
+ }
381
+ @else {
382
+ #{'&'}:after {
383
+ content:"";
384
+ display:table;
385
+ clear:both;
386
+ }
387
+ }
388
+ }
389
+ }
390
+
391
+ // Placeholder for clear
392
+ %clear:after {
393
+ content:"";
394
+ display:table;
395
+ clear:both;
396
+ }
397
+
398
+ // Text hider
399
+
400
+ @mixin hide-text($extend: true) {
401
+ $valid: true;
402
+ @if type-of($extend) != "bool" {
403
+ @warn "extend: #{$extend} is not a boolean";
404
+ $valid: false;
405
+ }
406
+ @if $valid == true {
407
+ @if $extend {
408
+ @extend %hide-text;
409
+ }
410
+ @else {
411
+ overflow:hidden;
412
+ text-indent: 100%;
413
+ white-space: nowrap;
414
+ }
415
+ }
416
+ }
417
+
418
+ // Placeholder for hide-text
419
+ %hide-text {
420
+ overflow:hidden;
421
+ text-indent: 100%;
422
+ white-space: nowrap;
423
+ }
424
+
425
+ // Inline List
426
+
427
+ @mixin inline-list($float: true) {
428
+ $valid: true;
429
+ @if type-of($float) != "bool" {
430
+ @warn "float: #{$float} is not a boolean";
431
+ $valid: false;
432
+ }
433
+ @if $valid == true {
434
+ list-style-type:none;
435
+ padding:0;
436
+ margin:0;
437
+ overflow:hidden;
438
+ > li{
439
+ @if $float == true {
440
+ display:block;
441
+ float:left;
442
+ } @else {
443
+ display: inline-block;
444
+ }
445
+ }
446
+ }
447
+ }
448
+ // ###Typography
449
+
450
+ // Typographic Rhythm Mixin
451
+ @mixin type($rem-base: $rem-base,$line-height-base: $line-height-base, $type-rhythm-ratio: $type-rhythm-ratio){
452
+ $valid: true;
453
+ @if type-of($rem-base) != "number" {
454
+ @warn "#{$rem-base} is not a number";
455
+ $valid: false;
456
+ }
457
+ @if type-of($line-height-base) != "number" {
458
+ @warn "#{$line-height-base} is not a number";
459
+ $valid: false;
460
+ }
461
+ @if type-of($type-rhythm-ratio) != "number" {
462
+ @warn "#{$type-rhythm-ratio} is not a number";
463
+ $valid: false;
464
+ }
465
+ @if $valid == true {
466
+ // Scale type at $type-rhythm-ratio
467
+ $h6-size: round(_strip-unit($rem-base) * $type-rhythm-ratio);
468
+ $h5-size: round($h6-size * $type-rhythm-ratio);
469
+ $h4-size: round($h5-size * $type-rhythm-ratio);
470
+ $h3-size: round($h4-size * $type-rhythm-ratio);
471
+ $h2-size: round($h3-size * $type-rhythm-ratio);
472
+ $h1-size: round($h2-size * $type-rhythm-ratio);
473
+
474
+ @if unit($line-height-base) == "px" {
475
+ // Set line-height
476
+ body {
477
+ line-height: _strip-unit($line-height-base) / _strip-unit($rem-base);
478
+ }
479
+ } @else {
480
+ body {
481
+ line-height: $line-height-base;
482
+ }
483
+ }
484
+
485
+ // Set heading sizes to size variables
486
+ h1 {
487
+ font-size: rem-calc($h1-size);
488
+ }
489
+
490
+ h2 {
491
+ font-size: rem-calc($h2-size);
492
+ }
493
+
494
+ h3 {
495
+ font-size: rem-calc($h3-size);
496
+ }
497
+
498
+ h4 {
499
+ font-size: rem-calc($h4-size);
500
+ }
501
+
502
+ h5 {
503
+ font-size: rem-calc($h5-size);
504
+ }
505
+
506
+ h6 {
507
+ font-size: rem-calc($h6-size);
508
+ }
509
+
510
+ p {
511
+ font-size: $rem-base;
512
+ }
513
+ }
514
+ }