archetype 0.0.1.pre.3.f9dde24 → 0.0.1.pre.3.90263a7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/bin/archetype +3 -0
  3. data/lib/archetype/actions/help.rb +16 -0
  4. data/lib/archetype/actions/theme.rb +73 -0
  5. data/lib/archetype/executor.rb +27 -0
  6. data/lib/archetype/functions/helpers.rb +49 -9
  7. data/lib/archetype/functions/styleguide_memoizer.rb +9 -1
  8. data/lib/archetype/sass_extensions.rb +1 -0
  9. data/lib/archetype/sass_extensions/functions/styleguide.rb +104 -27
  10. data/lib/archetype/sass_extensions/monkey_patches.rb +3 -0
  11. data/lib/archetype/sass_extensions/monkey_patches/handle_include_loop.rb +41 -0
  12. data/stylesheets/archetype/_base.scss +3 -0
  13. data/stylesheets/archetype/_config.scss +5 -1
  14. data/stylesheets/archetype/_hacks.scss +24 -4
  15. data/stylesheets/archetype/_ui.scss +23 -2
  16. data/stylesheets/archetype/base/_h5bp.scss +12 -12
  17. data/stylesheets/archetype/base/_normalize.scss +178 -139
  18. data/stylesheets/archetype/styleguide/_helpers.scss +1 -4
  19. data/stylesheets/archetype/styleguide/components/_alerts.scss +1 -1
  20. data/stylesheets/archetype/styleguide/components/_buttons.scss +6 -6
  21. data/stylesheets/archetype/styleguide/components/_closes.scss +2 -2
  22. data/stylesheets/archetype/util/_styles.scss +18 -3
  23. data/stylesheets/archetype/util/_targeting.scss +2 -0
  24. data/templates/_theme/_components.scss +3 -0
  25. data/templates/_theme/_config.scss +1 -0
  26. data/templates/_theme/_core.scss +13 -0
  27. data/templates/_theme/_helpers.scss +1 -0
  28. data/templates/_theme/_primitives.scss +3 -0
  29. data/templates/_theme/components/README +1 -0
  30. data/templates/_theme/primitives/README +1 -0
  31. data/test/fixtures/stylesheets/archetype/expected/styleguide/alerts.css +675 -0
  32. data/test/fixtures/stylesheets/archetype/expected/styleguide/buttons.css +18 -18
  33. data/test/fixtures/stylesheets/archetype/expected/styleguide/drop.css +63 -0
  34. data/test/fixtures/stylesheets/archetype/expected/styleguide/invalid_structures.css +21 -0
  35. data/test/fixtures/stylesheets/archetype/expected/styleguide/multi_value.css +13 -0
  36. data/test/fixtures/stylesheets/archetype/expected/ui/glyph_icon.css +52 -9
  37. data/test/fixtures/stylesheets/archetype/expected/utilities/targeting/target-browser.css +5 -0
  38. data/test/fixtures/stylesheets/archetype/source/styleguide/alerts.scss +21 -0
  39. data/test/fixtures/stylesheets/archetype/source/styleguide/buttons.scss +1 -1
  40. data/test/fixtures/stylesheets/archetype/source/styleguide/drop.scss +101 -0
  41. data/test/fixtures/stylesheets/archetype/source/styleguide/fallback_styles.scss +1 -1
  42. data/test/fixtures/stylesheets/archetype/source/styleguide/invalid_structures.scss +85 -0
  43. data/test/fixtures/stylesheets/archetype/source/styleguide/multi_value.scss +18 -0
  44. data/test/fixtures/stylesheets/archetype/source/styleguide/nested_styleguides.scss +1 -1
  45. data/test/fixtures/stylesheets/archetype/source/styleguide/selective_state.scss +1 -1
  46. data/test/fixtures/stylesheets/archetype/source/ui/glyph_icon.scss +10 -0
  47. data/test/fixtures/stylesheets/archetype/source/utilities/targeting/target-browser.scss +8 -1
  48. metadata +33 -5
  49. data/test/fixtures/stylesheets/archetype/assets/images/vendor/archetype/animations/loaders-s7889ccc8c1.png +0 -0
@@ -0,0 +1,3 @@
1
+ %w(handle_include_loop).each do |patch|
2
+ require "archetype/sass_extensions/monkey_patches/#{patch}"
3
+ end
@@ -0,0 +1,41 @@
1
+ # :stopdoc:
2
+ # monkey patch Sass to exclude special mixins from it's include loop logic
3
+ module Sass
4
+ module Tree
5
+ module Visitors
6
+ class Perform
7
+ def handle_include_loop!(node)
8
+ # a list of exempt mixins
9
+ exempt = %w(to-styles output-style -outputStyle)
10
+ exempts = []
11
+
12
+ msg = "An @include loop has been found:"
13
+ content_count = 0
14
+ mixins = @stack.reverse.map {|s| s[:name]}.compact.select do |s|
15
+ if s == '@content'
16
+ content_count += 1
17
+ false
18
+ elsif content_count > 0
19
+ content_count -= 1
20
+ false
21
+ # if the mixin is exempt, keep track of it
22
+ elsif exempt.include?(s.gsub(/_/,'-'))
23
+ exempts.push(s)
24
+ false
25
+ else
26
+ true
27
+ end
28
+ end
29
+
30
+ return if mixins.empty? or (mixins.size <= exempts.size)
31
+ raise Sass::SyntaxError.new("#{msg} #{node.name} includes itself") if mixins.size == 1
32
+
33
+ msg << "\n" << Sass::Util.enum_cons(mixins.reverse + [node.name], 2).map do |m1, m2|
34
+ " #{m1} includes #{m2}"
35
+ end.join("\n")
36
+ raise Sass::SyntaxError.new(msg)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -38,6 +38,9 @@ $RESET_INIT: false !default;
38
38
  // the font-face mixin will likely change in a future version, keep an eye on this
39
39
  // https://github.com/chriseppstein/compass/issues/867
40
40
  @include font-face($CONFIG_GLYPHS_NAME, $CONFIG_GLYPHS_FILES, $CONFIG_GLYPHS_EOT, $CONFIG_GLYPHS_WEIGHT, $CONFIG_GLYPHS_STYLE);
41
+ // output a second @font-face set with a versioned family name
42
+ // this will help avoid collisions when multi-app CSS is loaded on a single page
43
+ @include font-face('#{$CONFIG_GLYPHS_NAME}-#{$CONFIG_GLYPHS_VERSION}', $CONFIG_GLYPHS_FILES, $CONFIG_GLYPHS_EOT, $CONFIG_GLYPHS_WEIGHT, $CONFIG_GLYPHS_STYLE);
41
44
  }
42
45
 
43
46
  // auto invoke base reset
@@ -59,6 +59,7 @@ $CONFIG_KEYFRAME_LOADERS: archetype-loader !default;
59
59
 
60
60
  // glyphs
61
61
  $CONFIG_GLYPHS_NAME: FontAwesome !default; // name for the font-face
62
+ $CONFIG_GLYPHS_VERSION: '0.0.1' !default; // the glyph library version number
62
63
  $CONFIG_GLYPHS_SVG_ID: $CONFIG_GLYPHS_NAME !default;
63
64
  $CONFIG_GLYPHS_BASE_PATH: 'vendor/archetype/fontawesome-webfont' !default; // generic path to all glpyh fonts (sans extensions)
64
65
  $CONFIG_GLYPHS_EOT: '#{$CONFIG_GLYPHS_BASE_PATH}.eot' !default;
@@ -367,4 +368,7 @@ $CONFIG_SAFE_FONTS: () !default;
367
368
  $CONFIG_SAFE_FONTS: associative-merge($CORE_SAFE_FONTS, $CONFIG_SAFE_FONTS);
368
369
 
369
370
  $archetype-glyph-selector: false !default;
370
- $archetype-pseudo-selector: false !default;
371
+ $archetype-pseudo-selector: false !default;
372
+
373
+ $CORE_GLYPH_SELECTOR_VAR: '$archetype-glyph-selector';
374
+ $CORE_GLYPH_SELECTOR_VAR: '$archetype-pseudo-selector';
@@ -38,8 +38,16 @@
38
38
  // @param $styles {String} the styles to apply to the pseudo-element
39
39
  // @param $content {String} the content to insert into the element (similar to css `content` attribute)
40
40
  // @param $name {String} the name of the element
41
+ // @content
41
42
  @mixin ie-pseudo-before($styles: false, $content: false, $name: '') {
42
- @include ie-pseudo($styles, $content, before, $name);
43
+ @if archetype-version('Sass >= 3.2') {
44
+ @include ie-pseudo($styles, $content, before, $name) {
45
+ @content;
46
+ }
47
+ }
48
+ @else {
49
+ @include ie-pseudo($styles, $content, before, $name);
50
+ }
43
51
  }
44
52
 
45
53
  // proxy for ie-pseudo
@@ -47,11 +55,19 @@
47
55
  // @param $styles {String} the styles to apply to the pseudo-element
48
56
  // @param $content {String} the content to insert into the element (similar to css `content` attribute)
49
57
  // @param $name {String} the name of the element
58
+ // @content
50
59
  @mixin ie-pseudo-after($styles: false, $content: false, $name: '') {
51
- @include ie-pseudo($styles, $content, after, $name);
60
+ @if archetype-version('Sass >= 3.2') {
61
+ @include ie-pseudo($styles, $content, after, $name) {
62
+ @content;
63
+ }
64
+ }
65
+ @else {
66
+ @include ie-pseudo($styles, $content, after, $name);
67
+ }
52
68
  }
53
69
 
54
- // this creates a one-type executing expression that inserts an element relative to `this` element.
70
+ // this creates a one-time executing expression that inserts an element relative to `this` element.
55
71
  // this allows some level of support for :before/:after in IE6/7
56
72
  // inspired by http://nicolasgallagher.com/better-float-containment-in-ie/
57
73
  // @mixin ie-pseudo
@@ -60,6 +76,7 @@
60
76
  // @param $placement {String} [before|after] simulate :before or :after behavior
61
77
  // @param $name {String} the name of the element
62
78
  // @param $uid {String} a custom, unique identifier for the generate element
79
+ // @content
63
80
  @mixin ie-pseudo($styles: false, $content: false, $placement: before, $name: '', $uid: false) {
64
81
  $archetype-pseudo-selector: false;
65
82
  @if $legacy-support-for-ie6 or $legacy-support-for-ie7 {
@@ -77,7 +94,10 @@
77
94
  @if not $CONFIG_GENERATED_TAG_INLINE {
78
95
  // output it on the generated selector
79
96
  #{$archetype-pseudo-selector} {
80
- @include to-styles(-style-string-to-list($styles));
97
+ @include to-styles(-style-string-to-list(unquote($styles)));
98
+ @if archetype-version('Sass >= 3.2') {
99
+ @content;
100
+ }
81
101
  }
82
102
  }
83
103
  }
@@ -117,6 +117,21 @@
117
117
  clip: rect(1px, 1px, 1px, 1px);
118
118
  }
119
119
 
120
+ // reverse hide-element and make the element visibile again
121
+ // @mixin unhide-element
122
+ // @see hide-element
123
+ // @param $position {String} value for the position property
124
+ // @param $height {String} value for the height property
125
+ // @param $width {String} value for the width property
126
+ // @param $overflow {String} value for the overflow property
127
+ @mixin unhide-element($position: static, $height:auto, $width:auto, $overflow:visible) {
128
+ position: $position;
129
+ height: $height;
130
+ width: $width;
131
+ overflow: $overflow;
132
+ clip: auto;
133
+ }
134
+
120
135
  // mixin for generating a fade box which fades from transparent to white
121
136
  // @mixin fade-box
122
137
  // @param $width {String} the width of the overlay
@@ -155,6 +170,7 @@
155
170
  // @param $placement {String} where to place the icon [before|after|inline]
156
171
  // @param $ie-styles {String} styles to apply to IE6/7 (this is needed because the faux :before isn't extendable)
157
172
  // @param $ie-uid {String} a custom, unique identifier for the generate IE6/7 element
173
+ // @content
158
174
  @mixin glyph-icon($icon, $size: default, $color: inherit, $placement: before, $ie-styles: false, $ie-uid: false) {
159
175
  $archetype-glyph-selector: false;
160
176
  $char-mapping: nil;
@@ -180,7 +196,7 @@
180
196
  }
181
197
  $selector: if(index(before after, $placement), '&:#{$placement}', '&');
182
198
  #{$selector} {
183
- font-family: '#{$CONFIG_GLYPHS_NAME}';
199
+ font-family: '#{$CONFIG_GLYPHS_NAME}-#{$CONFIG_GLYPHS_VERSION}', '#{$CONFIG_GLYPHS_NAME}';
184
200
  font-weight: $CONFIG_GLYPHS_WEIGHT;
185
201
  font-style: $CONFIG_GLYPHS_STYLE;
186
202
  text-decoration: inherit;
@@ -194,7 +210,7 @@
194
210
  $archetype-glyph-selector: $selector;
195
211
  @if($selector != '&' and $ie-styles != nil) {
196
212
  // support for IE6/7
197
- $styles: "font-family:'#{$CONFIG_GLYPHS_NAME}';font-weight:#{$CONFIG_GLYPHS_WEIGHT};font-style:#{$CONFIG_GLYPHS_STYLE};text-decoration:inherit;";
213
+ $styles: "font-family:'#{$CONFIG_GLYPHS_NAME}-#{$CONFIG_GLYPHS_VERSION}', '#{$CONFIG_GLYPHS_NAME}';font-weight:#{$CONFIG_GLYPHS_WEIGHT};font-style:#{$CONFIG_GLYPHS_STYLE};text-decoration:inherit;";
198
214
  @if($size != nil) {
199
215
  $styles: $styles + "font-size:#{$size};"
200
216
  }
@@ -209,6 +225,11 @@
209
225
  $archetype-glyph-selector: '#{$selector}, #{$archetype-pseudo-selector}';
210
226
  }
211
227
  }
228
+ @if archetype-version('Sass >= 3.2') {
229
+ #{$archetype-glyph-selector} {
230
+ @content;
231
+ }
232
+ }
212
233
  }
213
234
  }
214
235
 
@@ -6,7 +6,7 @@
6
6
  /* ==========================================================================
7
7
  Base styles: opinionated defaults
8
8
  ========================================================================== */
9
-
9
+
10
10
  html,
11
11
  button,
12
12
  input,
@@ -14,32 +14,32 @@
14
14
  textarea {
15
15
  color: #222;
16
16
  }
17
-
17
+
18
18
  body {
19
19
  font-size: 1em;
20
20
  line-height: 1.4;
21
21
  }
22
-
22
+
23
23
  /*
24
24
  * Remove text-shadow in selection highlight: h5bp.com/i
25
25
  * These selection declarations have to be separate.
26
26
  * Customize the background color to match your design.
27
27
  */
28
-
28
+
29
29
  ::-moz-selection {
30
30
  background: #b3d4fc;
31
31
  text-shadow: none;
32
32
  }
33
-
33
+
34
34
  ::selection {
35
35
  background: #b3d4fc;
36
36
  text-shadow: none;
37
37
  }
38
-
38
+
39
39
  /*
40
40
  * A better looking default horizontal rule
41
41
  */
42
-
42
+
43
43
  hr {
44
44
  display: block;
45
45
  height: 1px;
@@ -54,7 +54,7 @@
54
54
  /*
55
55
  * Remove the gap between images and the bottom of their containers: h5bp.com/i/440
56
56
  */
57
-
57
+
58
58
  img {
59
59
  vertical-align: middle;
60
60
  }
@@ -77,7 +77,7 @@
77
77
  /*
78
78
  * Allow only vertical resizing of textareas.
79
79
  */
80
-
80
+
81
81
  textarea {
82
82
  resize: vertical;
83
83
  }
@@ -87,7 +87,7 @@
87
87
  /* ==========================================================================
88
88
  Chrome Frame prompt
89
89
  ========================================================================== */
90
-
90
+
91
91
  .chromeframe {
92
92
  margin: 0.2em 0;
93
93
  background: #ccc;
@@ -117,7 +117,7 @@
117
117
  content: "";
118
118
  display: block;
119
119
  width: 0;
120
- height: 100%;
120
+ height: 150%;
121
121
  }
122
122
 
123
123
  /*
@@ -277,7 +277,7 @@
277
277
  // @param $exclude {List} the list of features to exclude from the reset
278
278
  // @link https://github.com/h5bp/html5-boilerplate/
279
279
  @mixin base-h5bp($exclude: ()) {
280
- /*! HTML5 Boilerplate | MIT License | @b378ce239d */
280
+ /*! HTML5 Boilerplate | MIT License | @9ec546569b */
281
281
  /*
282
282
  * HTML5 Boilerplate
283
283
  *
@@ -1,4 +1,4 @@
1
- // normalize.css v2.0.1 | MIT License | git.io/normalize
1
+ // normalize.css v2.1.2 | MIT License | git.io/normalize
2
2
 
3
3
  // @category base
4
4
  @mixin base-normalize-html5() {
@@ -6,9 +6,9 @@
6
6
  HTML5 display definitions
7
7
  ========================================================================== */
8
8
 
9
- /*
10
- * Corrects `block` display not defined in IE 8/9.
11
- */
9
+ /**
10
+ * Corrects `block` display not defined in IE 8/9.
11
+ */
12
12
 
13
13
  article,
14
14
  aside,
@@ -18,15 +18,16 @@
18
18
  footer,
19
19
  header,
20
20
  hgroup,
21
+ main,
21
22
  nav,
22
23
  section,
23
24
  summary {
24
25
  display: block;
25
26
  }
26
27
 
27
- /*
28
- * Corrects `inline-block` display not defined in IE 8/9.
29
- */
28
+ /**
29
+ * Corrects `inline-block` display not defined in IE 8/9.
30
+ */
30
31
 
31
32
  audio,
32
33
  canvas,
@@ -34,41 +35,43 @@
34
35
  @include inline-block();
35
36
  }
36
37
 
37
- /*
38
- * Prevents modern browsers from displaying `audio` without controls.
39
- * Remove excess height in iOS 5 devices.
40
- */
38
+ /**
39
+ * Prevents modern browsers from displaying `audio` without controls.
40
+ * Remove excess height in iOS 5 devices.
41
+ */
41
42
 
42
43
  audio:not([controls]) {
43
44
  display: none;
44
45
  height: 0;
45
46
  }
46
47
 
47
- /*
48
- * Addresses styling for `hidden` attribute not present in IE 8/9.
49
- */
48
+ /**
49
+ * Addresses styling for `hidden` attribute not present in IE 8/9.
50
+ * Hide the `template` element in IE, Safari, and Firefox < 22.
51
+ */
50
52
 
51
- [hidden] {
53
+ [hidden],
54
+ template {
52
55
  display: none;
53
56
  }
54
57
  }
55
58
 
56
59
  @mixin base-normalize-text-adjust() {
57
- /*
58
- * 0. Corrects text resizing oddly in IE6/7 when body font-size is set using em units
59
- * http://clagnut.com/blog/348/#c790
60
- * 1. Sets default font family to sans-serif.
61
- * 2. Prevents iOS text size adjust after orientation change, without disabling user zoom
62
- * www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/
63
- */
60
+ /**
61
+ * 0. Corrects text resizing oddly in IE6/7 when body font-size is set using em units
62
+ * http://clagnut.com/blog/348/#c790
63
+ * 1. Sets default font family to sans-serif.
64
+ * 2. Prevents iOS text size adjust after orientation change, without disabling user zoom
65
+ * www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/
66
+ */
64
67
  html {
65
68
  // legacy
66
69
  @if $legacy-support-for-ie7 or $legacy-support-for-ie6 {
67
70
  font-size: 100%; /* 0 */
68
71
  }
69
72
  font-family: sans-serif; /* 1 */
70
- -webkit-text-size-adjust: 100%; /* 2 */
71
73
  -ms-text-size-adjust: 100%; /* 2 */
74
+ -webkit-text-size-adjust: 100%; /* 2 */
72
75
  }
73
76
 
74
77
  }
@@ -78,9 +81,9 @@
78
81
  Base
79
82
  ========================================================================== */
80
83
 
81
- /*
82
- * Removes default margin.
83
- */
84
+ /**
85
+ * Removes default margin.
86
+ */
84
87
 
85
88
  body {
86
89
  margin: 0;
@@ -92,17 +95,29 @@
92
95
  Links
93
96
  ========================================================================== */
94
97
 
95
- /*
96
- * Addresses `outline` inconsistency between Chrome and other browsers.
97
- */
98
+ // TODO: need to evaluate this change given the issue known issue with
99
+ // transparent background elements not gaining :focus state
100
+ // so disabling this change for now :(
101
+ // @see transparent-focusable
102
+ ///**
103
+ // * Remove the gray background color from active links in IE 10.
104
+ // */
105
+ //
106
+ //a {
107
+ // background: transparent;
108
+ //}
109
+
110
+ /**
111
+ * Addresses `outline` inconsistency between Chrome and other browsers.
112
+ */
98
113
 
99
114
  a:focus {
100
115
  outline: thin dotted;
101
116
  }
102
117
 
103
- /*
104
- * Improves readability when focused and also mouse hovered in all browsers.
105
- */
118
+ /**
119
+ * Improves readability when focused and also mouse hovered in all browsers.
120
+ */
106
121
 
107
122
  a:active,
108
123
  a:hover {
@@ -111,9 +126,9 @@
111
126
  }
112
127
 
113
128
  @mixin base-normalize-typogrpahy-core() {
114
- /*
115
- * Corrects font family set oddly in Safari 5 and Chrome.
116
- */
129
+ /**
130
+ * Corrects font family set oddly in Safari 5 and Chrome.
131
+ */
117
132
 
118
133
  code,
119
134
  kbd,
@@ -123,9 +138,9 @@
123
138
  font-size: 1em;
124
139
  }
125
140
 
126
- /*
127
- * Improves readability of pre-formatted text in all browsers.
128
- */
141
+ /**
142
+ * Improves readability of pre-formatted text in all browsers.
143
+ */
129
144
 
130
145
  pre {
131
146
  white-space: pre;
@@ -134,17 +149,17 @@
134
149
  }
135
150
 
136
151
 
137
- /*
138
- * Addresses inconsistent and variable font size in all browsers.
139
- */
152
+ /**
153
+ * Addresses inconsistent and variable font size in all browsers.
154
+ */
140
155
 
141
156
  small {
142
157
  font-size: 80%;
143
158
  }
144
159
 
145
- /*
146
- * Prevents `sub` and `sup` affecting `line-height` in all browsers.
147
- */
160
+ /**
161
+ * Prevents `sub` and `sup` affecting `line-height` in all browsers.
162
+ */
148
163
 
149
164
  sub,
150
165
  sup {
@@ -168,10 +183,10 @@
168
183
  Typography
169
184
  ========================================================================== */
170
185
 
171
- /*
172
- * Addresses font sizes and margins set differently in IE6/7
173
- * Addresses font sizes within 'section' and 'article' in FF4+, Chrome, S5
174
- */
186
+ /**
187
+ * Addresses font sizes and margins set differently in IE6/7
188
+ * Addresses font sizes within 'section' and 'article' in FF4+, Chrome, S5
189
+ */
175
190
 
176
191
  h1 {
177
192
  font-size: 2em;
@@ -203,33 +218,45 @@
203
218
  margin: 2.33em 0;
204
219
  }
205
220
 
206
- /*
207
- * Addresses styling not present in IE 8/9, Safari 5, and Chrome.
208
- */
221
+ /**
222
+ * Addresses styling not present in IE 8/9, Safari 5, and Chrome.
223
+ */
209
224
 
210
225
  abbr[title] {
211
226
  border-bottom: 1px dotted;
212
227
  }
213
228
 
214
- /*
215
- * Addresses style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
216
- */
229
+ /**
230
+ * Addresses style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
231
+ */
217
232
 
218
233
  b,
219
234
  strong {
220
235
  font-weight: bold;
221
236
  }
222
- /*
223
- * Addresses styling not present in Safari 5 and Chrome.
224
- */
237
+
238
+ /**
239
+ * Addresses styling not present in Safari 5 and Chrome.
240
+ */
225
241
 
226
242
  dfn {
227
243
  font-style: italic;
228
244
  }
229
245
 
230
- /*
231
- * Addresses styling not present in IE 8/9.
232
- */
246
+ /**
247
+ * Address differences between Firefox and other browsers.
248
+ */
249
+
250
+ hr {
251
+ -moz-box-sizing: content-box;
252
+ box-sizing: content-box;
253
+ height: 0;
254
+ }
255
+
256
+
257
+ /**
258
+ * Addresses styling not present in IE 8/9.
259
+ */
233
260
 
234
261
  mark {
235
262
  background: #ff0;
@@ -240,9 +267,9 @@
240
267
  margin: 1em 40px;
241
268
  }
242
269
 
243
- /*
244
- * Addresses margins set differently in IE6/7
245
- */
270
+ /**
271
+ * Addresses margins set differently in IE6/7
272
+ */
246
273
 
247
274
  p,
248
275
  pre {
@@ -251,9 +278,9 @@
251
278
  }
252
279
 
253
280
  @mixin base-normalize-quotes() {
254
- /*
255
- * Sets consistent quote types.
256
- */
281
+ /**
282
+ * Sets consistent quote types.
283
+ */
257
284
  q {
258
285
  quotes: "\201C" "\201D" "\2018" "\2019";
259
286
  }
@@ -266,7 +293,7 @@
266
293
  Lists
267
294
  ========================================================================== */
268
295
 
269
- /*
296
+ /**
270
297
  * Addresses margins set differently in IE6/7
271
298
  */
272
299
 
@@ -281,7 +308,7 @@
281
308
  margin: 0 0 0 40px;
282
309
  }
283
310
 
284
- /*
311
+ /**
285
312
  * Addresses paddings set differently in IE6/7
286
313
  */
287
314
 
@@ -291,7 +318,7 @@
291
318
  padding: 0 0 0 40px;
292
319
  }
293
320
 
294
- /*
321
+ /**
295
322
  * Corrects list images handled incorrectly in IE7
296
323
  */
297
324
 
@@ -304,11 +331,11 @@
304
331
  }
305
332
 
306
333
  @mixin base-normalize-image() {
307
- /*
308
- * 1. Removes border when inside 'a' element in IE6/7/8/9, FF3
309
- * 2. Improves image quality when scaled in IE7
310
- * code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/
311
- */
334
+ /**
335
+ * 1. Removes border when inside 'a' element in IE6/7/8/9, FF3
336
+ * 2. Improves image quality when scaled in IE7
337
+ * code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/
338
+ */
312
339
 
313
340
  img {
314
341
  border: 0; /* 1 */
@@ -324,10 +351,10 @@
324
351
  Embedded content
325
352
  ========================================================================== */
326
353
  @include base-normalize-image();
327
-
328
- /*
329
- * Corrects overflow displayed oddly in IE9
330
- */
354
+
355
+ /**
356
+ * Corrects overflow displayed oddly in IE9
357
+ */
331
358
 
332
359
  svg:not(:root) {
333
360
  overflow: hidden;
@@ -339,9 +366,9 @@
339
366
  Figures
340
367
  ========================================================================== */
341
368
 
342
- /*
343
- * Addresses margin not present in IE6/7/8/9, S5, O11
344
- */
369
+ /**
370
+ * Addresses margin not present in IE6/7/8/9, S5, O11
371
+ */
345
372
 
346
373
  figure {
347
374
  margin: 0;
@@ -349,9 +376,9 @@
349
376
  }
350
377
 
351
378
  @mixin base-normalize-fieldset() {
352
- /*
353
- * Define consistent border, margin, and padding.
354
- */
379
+ /**
380
+ * Define consistent border, margin, and padding.
381
+ */
355
382
 
356
383
  fieldset {
357
384
  border: 1px solid #c0c0c0;
@@ -365,19 +392,19 @@
365
392
  Forms
366
393
  ========================================================================== */
367
394
 
368
- /*
369
- * Corrects margin displayed oddly in IE6/7
370
- */
395
+ /**
396
+ * Corrects margin displayed oddly in IE6/7
397
+ */
371
398
 
372
399
  form {
373
400
  margin: 0;
374
401
  }
375
402
 
376
- /*
377
- * 1. Corrects color not being inherited in IE6/7/8/9
378
- * 2. Corrects text not wrapping in FF3
379
- * 3. Corrects alignment displayed oddly in IE6/7
380
- */
403
+ /**
404
+ * 1. Corrects color not being inherited in IE6/7/8/9
405
+ * 2. Corrects text not wrapping in FF3
406
+ * 3. Corrects alignment displayed oddly in IE6/7
407
+ */
381
408
 
382
409
  legend {
383
410
  border: 0; /* 1 */
@@ -389,12 +416,12 @@
389
416
  }
390
417
  }
391
418
 
392
- /*
393
- * 1. Corrects font family not being inherited in all browsers.
394
- * 2. Corrects font size not being inherited in all browsers.
395
- * 3. Addresses margins set differently in Firefox 4+, Safari 5, and Chrome
396
- * 4. Improves appearance and consistency in all browsers
397
- */
419
+ /**
420
+ * 1. Corrects font family not being inherited in all browsers.
421
+ * 2. Corrects font size not being inherited in all browsers.
422
+ * 3. Addresses margins set differently in Firefox 4+, Safari 5, and Chrome
423
+ * 4. Improves appearance and consistency in all browsers
424
+ */
398
425
 
399
426
  button,
400
427
  input,
@@ -410,23 +437,35 @@
410
437
  }
411
438
  }
412
439
 
413
- /*
414
- * Addresses FF3/4 setting line-height on 'input' using !important in the UA stylesheet
415
- */
440
+ /**
441
+ * Addresses FF3/4 setting line-height on 'input' using !important in the UA stylesheet
442
+ */
416
443
 
417
444
  button,
418
445
  input {
419
446
  line-height: normal; /* 1 */
420
447
  }
421
448
 
422
- /*
423
- * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
424
- * and `video` controls.
425
- * 2. Corrects inability to style clickable `input` types in iOS.
426
- * 3. Improves usability and consistency of cursor style between image-type
427
- * `input` and others.
428
- * 4. Removes inner spacing in IE7 without affecting normal text inputs
429
- */
449
+ /**
450
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
451
+ * All other form control elements do not inherit `text-transform` values.
452
+ * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
453
+ * Correct `select` style inheritance in Firefox 4+ and Opera.
454
+ */
455
+
456
+ button,
457
+ select {
458
+ text-transform: none;
459
+ }
460
+
461
+ /**
462
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
463
+ * and `video` controls.
464
+ * 2. Correct inability to style clickable `input` types in iOS.
465
+ * 3. Improve usability and consistency of cursor style between image-type
466
+ * `input` and others.
467
+ * 4. Removes inner spacing in IE7 without affecting normal text inputs
468
+ */
430
469
 
431
470
  button,
432
471
  html input[type="button"], /* 1 */
@@ -440,21 +479,21 @@
440
479
  }
441
480
  }
442
481
 
443
- /*
444
- * Re-set default cursor for disabled elements.
445
- */
482
+ /**
483
+ * Re-set default cursor for disabled elements.
484
+ */
446
485
 
447
486
  button[disabled],
448
- input[disabled] {
487
+ html input[disabled] {
449
488
  cursor: default;
450
489
  }
451
490
 
452
- /*
453
- * 1. Addresses box sizing set to `content-box` in IE 8/9.
454
- * 2. Removes excess padding in IE 8/9.
455
- * 3. Removes excess padding in IE7
491
+ /**
492
+ * 1. Addresses box sizing set to `content-box` in IE 8/9.
493
+ * 2. Removes excess padding in IE 8/9.
494
+ * 3. Removes excess padding in IE7
456
495
  Known issue: excess padding remains in IE6
457
- */
496
+ */
458
497
 
459
498
  input[type="checkbox"],
460
499
  input[type="radio"] {
@@ -467,11 +506,11 @@
467
506
  }
468
507
  }
469
508
 
470
- /*
471
- * 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome.
472
- * 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome
473
- * (include `-moz` to future-proof).
474
- */
509
+ /**
510
+ * 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome.
511
+ * 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome
512
+ * (include `-moz` to future-proof).
513
+ */
475
514
 
476
515
  input[type="search"] {
477
516
  -webkit-appearance: textfield; /* 1 */
@@ -481,10 +520,10 @@
481
520
  }
482
521
 
483
522
 
484
- /*
485
- * Removes inner padding and search cancel button in Safari 5 and Chrome
486
- * on OS X.
487
- */
523
+ /**
524
+ * Removes inner padding and search cancel button in Safari 5 and Chrome
525
+ * on OS X.
526
+ */
488
527
 
489
528
  input[type="search"]::-webkit-search-cancel-button,
490
529
  input[type="search"]::-webkit-search-decoration {
@@ -492,9 +531,9 @@
492
531
  }
493
532
 
494
533
 
495
- /*
496
- * Removes inner padding and border in Firefox 4+.
497
- */
534
+ /**
535
+ * Removes inner padding and border in Firefox 4+.
536
+ */
498
537
 
499
538
  button::-moz-focus-inner,
500
539
  input::-moz-focus-inner {
@@ -502,16 +541,16 @@
502
541
  padding: 0;
503
542
  }
504
543
 
505
- /*
506
- * 1. Removes default vertical scrollbar in IE6/7/8/9
507
- * 2. Improves readability and alignment in all browsers
508
- */
544
+ /**
545
+ * 1. Removes default vertical scrollbar in IE6/7/8/9
546
+ * 2. Improves readability and alignment in all browsers
547
+ */
509
548
 
510
549
  textarea {
511
550
  overflow: auto; /* 1 */
512
551
  vertical-align: top; /* 2 */
513
552
  }
514
-
553
+
515
554
  }
516
555
 
517
556
  @mixin base-normalize-ime() {
@@ -529,9 +568,9 @@
529
568
  Tables
530
569
  ========================================================================== */
531
570
 
532
- /*
533
- * Remove most spacing between table cells.
534
- */
571
+ /**
572
+ * Remove most spacing between table cells.
573
+ */
535
574
 
536
575
  table {
537
576
  border-collapse: collapse;
@@ -545,7 +584,7 @@
545
584
  // @param $exclude {List} the list of features to exclude from the reset
546
585
  // @link http://github.com/necolas/normalize.css
547
586
  @mixin base-normalize($exclude: ()) {
548
- /*! normalize.css v2.0.1 | MIT License | git.io/normalize */
587
+ /*! normalize.css v2.1.2 | MIT License | git.io/normalize */
549
588
  $exclude: -compass-list($exclude);
550
589
  @if(not index($exclude, normalize-html5)) {
551
590
  @include base-normalize-html5();