guff-compass 0.7.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.
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
+ }