stylesheets/h5bp/_normalize.scss in compass-h5bp-0.1.2 vs stylesheets/h5bp/_normalize.scss in compass-h5bp-1.0.0

- old
+ new

@@ -1,449 +1,325 @@ -// -// Normalize v1.1.1 | MIT License | git.io/normalize -// - +// normalize.css v3.0.2 | MIT License | git.io/normalize @mixin h5bp-normalize { - @include h5bp-display; - @include h5bp-base; - @include h5bp-links; - @include h5bp-typography; - @include h5bp-lists; - @include h5bp-embeds; - @include h5bp-figures; - @include h5bp-forms; - @include h5bp-tables; + @include normalize-base; + @include normalize-display; + @include normalize-links; + @include normalize-semantics; + @include normalize-embedded; + @include normalize-grouping; + @include normalize-forms; + @include normalize-tables; } +// Base +@mixin normalize-base { + // 1. Set default font family to sans-serif. + // 2. Prevent iOS text size adjust after orientation change, without + // disabling user zoom. + html { + font-family: sans-serif; // 1 + -ms-text-size-adjust: 100%; // 2 + -webkit-text-size-adjust: 100%; // 2 + } + // Remove default margin. + body { + margin: 0; + } -// Html5 display definitions -@mixin h5bp-display { +} - // Correct `block` display not defined in IE 6/7/8/9 and Firefox 3. +// HTML5 display definitions +@mixin normalize-display { + // Correct `block` display not defined for any HTML5 element in IE 8/9. + // Correct `block` display not defined for `details` or `summary` in IE 10/11 + // and Firefox. + // Correct `block` display not defined for `main` in IE 11. article, aside, details, figcaption, figure, footer, header, hgroup, main, + menu, nav, section, summary { - display: block; + display: block; } - // Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. + // 1. Correct `inline-block` display not defined in IE 8/9. + // 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. audio, canvas, + progress, video { - display: inline-block; - *display: inline; - *zoom: 1; + display: inline-block; // 1 + vertical-align: baseline; // 2 } // Prevent modern browsers from displaying `audio` without controls. // Remove excess height in iOS 5 devices. audio:not([controls]) { - display: none; - height: 0; + display: none; + height: 0; } - // Address styling not present in IE 7/8/9, Firefox 3, and Safari 4. - // Known issue: no IE 6 support. - [hidden] { - display: none; + // Address `[hidden]` styling not present in IE 8/9/10. + // Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + [hidden], + template { + display: none; } - } - -// Base -@mixin h5bp-base { - - // 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using - // `em` units. - // 2. Prevent iOS text size adjust after orientation change, without disabling - // user zoom. - // 1. Prevent system color scheme's background color being used in Firefox, IE, - // and Opera. - // 2. Prevent system color scheme's text color being used in Firefox, IE, and - // Opera. - // 3. Correct text resizing oddly in IE 6/7 when body `font-size` is set using - // `em` units. - // 4. Prevent iOS text size adjust after orientation change, without disabling - // user zoom. - html { - background: #fff; // 1 - color: #000; // 2 - font-size: 100%; // 3 - -webkit-text-size-adjust: 100%; // 4 - -ms-text-size-adjust: 100%; // 4 - } - - // Address `font-family` inconsistency between `textarea` and other form - // elements. - - html, - button, - input, - select, - textarea { - font-family: sans-serif; - } - - // Address margins handled incorrectly in IE 6/7. - - body { - margin: 0; - } - -} - -// Deprecation -@mixin h5bp-selection { - @warn "The selection mixin has been removed. The selection code is in the h5bp-base-styles mixin starting with Boilerplate version 4.0."; -} - // Links -@mixin h5bp-links { - - // Address `outline` inconsistency between Chrome and other browsers. - a:focus { - outline: thin dotted; +@mixin normalize-links { + // Remove the gray background color from active links in IE 10. + a { + background-color: transparent; } // Improve readability when focused and also mouse hovered in all browsers. a:active, a:hover { - outline: 0; + outline: 0; } - } - -// Typography -@mixin h5bp-typography { - - // Address font sizes and margins set differently in IE 6/7. - // Address font sizes within `section` and `article` in Firefox 4+, Safari 5, - // and Chrome. - h1 { - font-size: 2em; - margin: 0.67em 0; - } - - h2 { - font-size: 1.5em; - margin: 0.83em 0; - } - - h3 { - font-size: 1.17em; - margin: 1em 0; - } - - h4 { - font-size: 1em; - margin: 1.33em 0; - } - - h5 { - font-size: 0.83em; - margin: 1.67em 0; - } - - h6 { - font-size: 0.67em; - margin: 2.33em 0; - } - - // Address styling not present in IE 7/8/9, Safari 5, and Chrome. +// Text-level semantics +@mixin normalize-semantics { + // Address styling not present in IE 8/9/10/11, Safari, and Chrome. abbr[title] { - border-bottom: 1px dotted; + border-bottom: 1px dotted; } - // Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome. + // Address style set to `bolder` in Firefox 4+, Safari, and Chrome. b, strong { - font-weight: bold; + font-weight: bold; } - blockquote { - margin: 1em 40px; - } - - // Address styling not present in Safari 5 and Chrome. + // Address styling not present in Safari and Chrome. dfn { - font-style: italic; + font-style: italic; } - // Address differences between Firefox and other browsers. - // Known issue: no IE 6/7 normalization. - hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; + // Address variable `h1` font-size and margin within `section` and `article` + // contexts in Firefox 4+, Safari, and Chrome. + h1 { + font-size: 2em; + margin: 0.67em 0; } - // Address styling not present in IE 6/7/8/9. + // Address styling not present in IE 8/9. mark { - background: #ff0; - color: #000; + background: #ff0; + color: #000; } - // Address margins set differently in IE 6/7. - p, - pre { - margin: 1em 0; - } - - // Correct font family set oddly in IE 6, Safari 4/5, and Chrome. - code, - kbd, - pre, - samp { - font-family: monospace, serif; - _font-family: 'courier new', monospace; - font-size: 1em; - } - - // Improve readability of pre-formatted text in all browsers. - pre { - white-space: pre; - white-space: pre-wrap; - word-wrap: break-word; - } - - // Address CSS quotes not supported in IE 6/7. - q { - quotes: none; - } - - // Address `quotes` property not supported in Safari 4. - q:before, - q:after { - content: ''; - content: none; - } - // Address inconsistent and variable font size in all browsers. small { - font-size: 80%; + font-size: 80%; } // Prevent `sub` and `sup` affecting `line-height` in all browsers. sub, sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; } sup { - top: -0.5em; + top: -0.5em; } sub { - bottom: -0.25em; + bottom: -0.25em; } - } - -// Lists -@mixin h5bp-lists { - - // Address margins set differently in IE 6/7. - dl, - menu, - ol, - ul { - margin: 1em 0; - } - - dd { - margin: 0 0 0 40px; - } - - // Address paddings set differently in IE 6/7. - menu, - ol, - ul { - padding: 0 0 0 40px; - } - - // Correct list images handled incorrectly in IE 7. - nav ul, - nav ol { - list-style: none; - list-style-image: none; - } - -} - - // Embedded content -@mixin h5bp-embeds { - - // 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3. - // 2. Improve image quality when scaled in IE 7. +@mixin normalize-embedded { + // Remove border when inside `a` element in IE 8/9/10. img { - border: 0; // 1 - -ms-interpolation-mode: bicubic; // 2 + border: 0; } - // Correct overflow displayed oddly in IE 9. + // Correct overflow not hidden in IE 9/10/11. svg:not(:root) { - overflow: hidden; + overflow: hidden; } - } - -// Figures -@mixin h5bp-figures { - - // Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11. +// Grouping content +@mixin normalize-grouping { + // Address margin not present in IE 8/9 and Safari. figure { - margin: 0; + margin: 1em 40px; } -} - - -// Forms -@mixin h5bp-forms { - - // Correct margin displayed oddly in IE 6/7. - form { - margin: 0; + // Address differences between Firefox and other browsers. + hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; } - // Define consistent border, margin, and padding. - fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; + // Contain overflow in all browsers. + pre { + overflow: auto; } - // 1. Correct color not being inherited in IE 6/7/8/9. - // 2. Correct text not wrapping in Firefox 3. - // 3. Correct alignment displayed oddly in IE 6/7. - legend { - border: 0; // 1 - padding: 0; - white-space: normal; // 2 - *margin-left: -7px; // 3 + // Address odd `em`-unit font size rendering in all browsers. + code, + kbd, + pre, + samp { + font-family: monospace, monospace; + font-size: 1em; } +} - // 1. Correct font size not being inherited in all browsers. - // 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5, - // and Chrome. - // 3. Improve appearance and consistency in all browsers. +// Forms +@mixin normalize-forms { + // Known limitation: by default, Chrome and Safari on OS X allow very limited + // styling of `select`, unless a `border` property is set. + // 1. Correct color not being inherited. + // Known issue: affects color of disabled elements. + // 2. Correct font properties not being inherited. + // 3. Address margins set differently in Firefox 4+, Safari, and Chrome. button, input, + optgroup, select, textarea { - font-size: 100%; // 1 - margin: 0; // 2 - vertical-align: baseline; // 3 - *vertical-align: middle; // 3 + color: inherit; // 1 + font: inherit; // 2 + margin: 0; // 3 } - // Address Firefox 3+ setting `line-height` on `input` using `!important` in - // the UA stylesheet. - button, - input { - line-height: normal; + // Address `overflow` set to `hidden` in IE 8/9/10/11. + button { + overflow: visible; } // Address inconsistent `text-transform` inheritance for `button` and `select`. // All other form control elements do not inherit `text-transform` values. - // Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+. - // Correct `select` style inheritance in Firefox 4+ and Opera. + // Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + // Correct `select` style inheritance in Firefox. button, select { - text-transform: none; + text-transform: none; } // 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - // and `video` controls. + // and `video` controls. // 2. Correct inability to style clickable `input` types in iOS. // 3. Improve usability and consistency of cursor style between image-type - // `input` and others. - // 4. Remove inner spacing in IE 7 without affecting normal text inputs. - // Known issue: inner spacing remains in IE 6. + // `input` and others. button, html input[type="button"], // 1 input[type="reset"], input[type="submit"] { - -webkit-appearance: button; // 2 - cursor: pointer; // 3 - *overflow: visible; // 4 + -webkit-appearance: button; // 2 + cursor: pointer; // 3 } // Re-set default cursor for disabled elements. button[disabled], html input[disabled] { - cursor: default; + cursor: default; } - // 1. Address box sizing set to content-box in IE 8/9. - // 2. Remove excess padding in IE 8/9. - // 3. Remove excess padding in IE 7. - // Known issue: excess padding remains in IE 6. + // Remove inner padding and border in Firefox 4+. + button::-moz-focus-inner, + input::-moz-focus-inner { + border: 0; + padding: 0; + } + + // Address Firefox 4+ setting `line-height` on `input` using `!important` in + // the UA stylesheet. + input { + line-height: normal; + } + + // It's recommended that you don't attempt to style these elements. + // Firefox's implementation doesn't respect box-sizing, padding, or width. + // 1. Address box sizing set to `content-box` in IE 8/9/10. + // 2. Remove excess padding in IE 8/9/10. input[type="checkbox"], input[type="radio"] { - box-sizing: border-box; // 1 - padding: 0; // 2 - *height: 13px; // 3 - *width: 13px; // 3 + box-sizing: border-box; // 1 + padding: 0; // 2 } - // 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. - // 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome - // (include `-moz` to future-proof). + // Fix the cursor style for Chrome's increment/decrement buttons. For certain + // `font-size` values of the `input`, it causes the cursor style of the + // decrement button to change from `default` to `text`. + input[type="number"]::-webkit-inner-spin-button, + input[type="number"]::-webkit-outer-spin-button { + height: auto; + } + + // 1. Address `appearance` set to `searchfield` in Safari and Chrome. + // 2. Address `box-sizing` set to `border-box` in Safari and Chrome + // (include `-moz` to future-proof). input[type="search"] { - -webkit-appearance: textfield; // 1 - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; // 2 - box-sizing: content-box; + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; } - // Remove inner padding and search cancel button in Safari 5 and Chrome - // on OS X. + // Remove inner padding and search cancel button in Safari and Chrome on OS X. + // Safari (but not Chrome) clips the cancel button when the search input has + // padding (and `textfield` appearance). input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; + -webkit-appearance: none; } - // Remove inner padding and border in Firefox 3+. - button::-moz-focus-inner, - input::-moz-focus-inner { - border: 0; - padding: 0; + // Define consistent border, margin, and padding. + fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; } - // 1. Remove default vertical scrollbar in IE 6/7/8/9. - // 2. Improve readability and alignment in all browsers. + // 1. Correct `color` not being inherited in IE 8/9/10/11. + // 2. Remove padding so people aren't caught out if they zero out fieldsets. + legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ + } + + // Remove default vertical scrollbar in IE 8/9/10/11. textarea { - overflow: auto; // 1 - vertical-align: top; // 2 + overflow: auto; } + // Don't inherit the `font-weight` (applied by a rule above). + // NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + optgroup { + font-weight: bold; + } } - // Tables -@mixin h5bp-tables { - +@mixin normalize-tables { // Remove most spacing between table cells. table { - border-collapse: collapse; - border-spacing: 0; + border-collapse: collapse; + border-spacing: 0; } + td, + th { + padding: 0; + } }