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

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 (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();