diff --git a/.gitignore b/.gitignore index c2ca8cb..ce48c16 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ dist/demo node_modules *.sass-cache .publish -.DS_Store \ No newline at end of file +.DS_Store +.idea diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ca459c..584c505 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## v1.3.2 + +* Fix validation issues for .optional-prop mixin in Less version. + ## v1.3.1 * Update files in dist folder @@ -34,4 +38,4 @@ ## v1.0.0 -* Add IE10 to "dinosaur mode" and set it to "false" by default \ No newline at end of file +* Add IE10 to "dinosaur mode" and set it to "false" by default diff --git a/README.md b/README.md index bdfbcb7..4d9b2e7 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ with browserify: ## Configure -Overwrite default values for generic typography: +### Overwrite default values for generic typography ``` $initialize-box-sizing: border-box; $initialize-font-family: sans-serif; @@ -35,12 +35,19 @@ $initialize-font-size: 1em; $initialize-line-height: 1.4; ``` -Microsoft [dropped support](https://www.microsoft.com/en-us/WindowsForBusiness/End-of-IE-support) for IE8, IE9 & IE10. If you still have to support these old dinosaur browsers, just set dinosaur mode to true. +### Options + +``` +$initialize-print-styles: true; +$initialize-html5-boilerplate-overwrites: true; +``` + +Microsoft [dropped support](https://www.microsoft.com/en-us/WindowsForBusiness/End-of-IE-support) for IE8, IE9 & IE10. If you still have to support these old dinosaur browsers, just set dinosaur mode to true. This option is set to false by default. ``` $initialize-dinosaur-mode: true; ``` -Optional values: +### Optional values ``` $initialize-color: #000; $initialize-block-margins: 0 0 0.75em; @@ -51,7 +58,3 @@ $initialize-heading-color: #000; $initialize-heading-font-family: sans-serif; $initialize-heading-margins: 1em 0 0.75em; ``` - -``` -$initialize-print-styles: true; -``` \ No newline at end of file diff --git a/bower.json b/bower.json index ade8227..ea37d8d 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "initialize-css", - "version": "1.3.1", + "version": "1.3.2", "homepage": "http://jeroenoomsnl.github.io/initialize-css/", "authors": [ "Jeroen Ooms (@jeroenooms)" diff --git a/dist/_initialize.scss b/dist/_initialize.scss index a004f8c..c4dbd9b 100644 --- a/dist/_initialize.scss +++ b/dist/_initialize.scss @@ -1,5 +1,5 @@ /*! - * Initialize.css (v1.3.1) is a complete and customizable collection of CSS best practices based on Normalize.css and HTML5 Boilerplate. + * Initialize.css (v1.3.2) is a complete and customizable collection of CSS best practices based on Normalize.css and HTML5 Boilerplate. * http://jeroenoomsnl.github.io/initialize-css * * HTML5 Boilerplate: https://github.com/h5bp/html5-boilerplate @@ -24,6 +24,7 @@ $initialize-line-height: 1.4 !default; // $initialize-dinosaur-mode: false !default; // toggle support for IE8, IE9 & IE10 $initialize-print-styles: false !default; // toggle HTML5 Boilerplate print styles +$initialize-html5-boilerplate-overwrites: false !default; // toggle HTML5 Boilerplate overwrites // // Optional values @@ -57,10 +58,10 @@ $initialize-block-margins: null !default; /** * 1. Set default font family to $initialize-font-family (default: sans-serif) - * 2. Prevent iOS and IE text size adjust after device orientation change, - * without disabling user zoom + * 2. Prevent adjustments of font size after orientation changes in IE and iOS. * 3. Configurable defaults */ + html { @include optional-prop('color', $initialize-color); @include optional-prop('box-sizing', $initialize-box-sizing); @@ -72,17 +73,19 @@ html { -webkit-text-size-adjust: 100%; /* 2 */ } -/* - * Remove default margin +/** + * Remove the margin in all browsers */ + body { margin: 0; } -/* +/** * Inheriting box-sizing * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */ + *, *:before, *:after { box-sizing: inherit; } @@ -93,66 +96,74 @@ body { HTML5 display defenitions ========================================================================== */ -/* - * 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. +/** + * Add the correct display in IE 9-. + * 1. Add the correct display in Edge, IE, and Firefox. + * 2. Add the correct display in IE. */ + @if $initialize-dinosaur-mode == true { article, aside, - details, + details, /* 1 */ figcaption, figure, footer, header, hgroup, - main, + main, /* 2 */ menu, nav, section, - summary { + summary /* 1 */ { display: block; } } @else { - details, - main, - summary { + details, /* 1 */ + main, /* 2 */ + summary /* 1 */ { display: block; } } -/* - * 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 { - @if $initialize-dinosaur-mode == true { - display: inline-block; /* 1 */ - } - vertical-align: baseline; /* 2 */ +@if $initialize-dinosaur-mode == true { + /** + * Add the correct display in IE 9-. + */ + + audio, + canvas, + progress, + video { + display: inline-block; + } } -/* - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. +/** + * Add the correct display in iOS 4-7. */ + audio:not([controls]) { display: none; height: 0; } -/* - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. */ -[hidden], -template { - display: none; + +progress { + vertical-align: baseline; +} + +/** + * Add the correct display in IE 10-. + * 1. Add the correct display in IE. + */ + +template, /* 1 */ +[hidden] { + display: none; } @@ -161,22 +172,25 @@ template { Links ========================================================================== */ -/* - * Remove the gray background color from active links in IE 10. +/** + * 1. Remove the gray background on active links in IE 10. + * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. */ -@if $initialize-dinosaur-mode == true { - a { - background-color: transparent; - } +a { + @if $initialize-dinosaur-mode == true { + background-color: transparent; /* 1 */ + } + -webkit-text-decoration-skip: objects; /* 2 */ } -/* - * Improve readability of focused elements when they are also in an - * active/hover state. +/** + * Remove the outline on focused links when they are also active or hovered + * in all browsers (opinionated). */ + a:active, a:hover { - outline: 0; + outline-width: 0; } @@ -185,85 +199,92 @@ a:hover { Text-level semantics ========================================================================== */ -/* - * Address inconsistent styling of `abbr[title]`. - * 1. Correct styling in Firefox 39 and Opera 12. - * 2. Correct missing styling in Chrome, Edge, IE, Opera, and Safari. +/** + * 1. Remove the bottom border in Firefox 39-. + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. */ + abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ } -/* - * Address inconsistent styling of b and strong. - * 1. Correct duplicate application of `bolder` in Safari 6.0.2. - * 2. Correct style set to `bold` in Edge 12+, Safari 6.2+, and Chrome 18+. +/** + * Prevent the duplicate application of `bolder` by the next rule in Safari 6. */ b, strong { - font-weight: inherit; /* 1 */ + font-weight: inherit; } +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + b, strong { - font-weight: bolder; /* 2 */ + font-weight: bolder; } -/* - * Address styling not present in Safari and Chrome. +/** + * Add the correct font style in Android 4.3-. */ + dfn { - font-style: italic; + font-style: italic; } -/* - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. */ + h1 { - font-size: 2em; - margin: 0.67em 0; + font-size: 2em; + margin: 0.67em 0; } - @if $initialize-dinosaur-mode == true { - /* + /** * Address styling not present in IE 8/9. */ + mark { background: #ff0; color: #000; } } -/* - * Address inconsistent and variable font size in all browsers. + + +/** + * Add the correct font size in all browsers. */ small { - font-size: 80%; + font-size: 80%; } -/* - * Prevent `sub` and `sup` affecting `line-height` in all browsers. +/** + * Prevent `sub` and `sup` elements from affecting the 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; +sub { + bottom: -0.25em; } -sub { - bottom: -0.25em; +sup { + top: -0.5em; } @@ -272,22 +293,22 @@ sub { Embedded content ========================================================================== */ - @if $initialize-dinosaur-mode == true { - /* - * Remove border when inside `a` element in IE 8/9/10. - */ - img { - border: 0; - } + /** + * Remove the border on images inside links in IE 10-. + */ + + img { + border-style: none; + } } -/* - * Correct overflow not hidden in IE 9/10/11. +/** + * Hide the overflow in IE. */ svg:not(:root) { - overflow: hidden; + overflow: hidden; } @@ -296,45 +317,36 @@ svg:not(:root) { Grouping content ========================================================================== */ -/* - * Address margin not present in IE 8/9 and Safari. - */ - -figure { - margin: 1em 40px; -} - -/* - * Address inconsistent styling of `hr`. - * 1. Correct `box-sizing` set to `border-box` in Firefox. - * 2. Correct `overflow` set to `hidden` in IE 8/9/10/11 and Edge 12. +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. */ -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ +code, +kbd, +pre, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ } -/* - * Contain overflow in all browsers. +/** + * Add the correct margin in IE 8. */ -pre { - overflow: auto; +figure { + margin: 1em 40px; } -/* - * 1. Correct inheritance and scaling of font-size for preformatted text. - * 2. Address odd `em`-unit font size rendering in all browsers. +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. */ -code, -kbd, -pre, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ } @@ -343,244 +355,244 @@ samp { 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 font properties not being inherited. - * 2. Address margins set differently in Firefox 4+, Safari, and Chrome. +/** + * 1. Change font properties to `inherit` in all browsers (opinionated). + * 2. Remove the margin in Firefox and Safari. */ button, input, -optgroup, select, textarea { - font: inherit; /* 1 */ - margin: 0; /* 2 */ + font: inherit; /* 1 */ + margin: 0; /* 2 */ } -/* - * Address `overflow` set to `hidden` in IE 8/9/10/11. +/** + * Restore the font weight unset by the previous rule. */ -button { - overflow: visible; +optgroup { + font-weight: bold; } -/* - * 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 Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. */ button, -select { - text-transform: none; +input { /* 1 */ + overflow: visible; } -/* - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * 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. +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. */ button, -html input[type="button"], /* 1 */ -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; /* 2 */ - cursor: pointer; /* 3 */ +select { /* 1 */ + text-transform: none; } -/* - * Re-set default cursor for disabled elements. +/** + * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` + * controls in Android 4. + * 2. Correct the inability to style clickable types in iOS and Safari. */ -button[disabled], -html input[disabled] { - cursor: default; +button, +html [type="button"], /* 1 */ +[type="reset"], +[type="submit"] { + -webkit-appearance: button; /* 2 */ } -/* - * Remove inner padding and border in Firefox 4+. +/** + * Remove the inner border and padding in Firefox. */ button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; } -/* - * Restore focus style in Firefox 4+ (unset by a rule above) +/** + * Restore the focus styles unset by the previous rule. */ button:-moz-focusring, -input:-moz-focusring { - outline: 1px dotted ButtonText; +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; } -/* - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ +@if $initialize-html5-boilerplate-overwrites == false { + /** + * Change the border, margin, and padding in all browsers (opinionated). + */ -input { - line-height: normal; + fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; + } } -@if $initialize-dinosaur-mode == true { - /* - * 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"] { +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ - } + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ } -/* - * 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`. +/** + * Remove the default vertical scrollbar in IE. */ -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; +textarea { + overflow: auto; } -/* - * Address `appearance` set to `searchfield` in Safari and Chrome. - */ +@if $initialize-dinosaur-mode == true { + /** + * 1. Add the correct box sizing in IE 10-. + * 2. Remove the padding in IE 10-. + */ -input[type="search"] { - -webkit-appearance: textfield; + [type="checkbox"], + [type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ + } } -/* - * 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). +/** + * Correct the cursor style of increment and decrement buttons in Chrome. */ -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; } -/* - * Define consistent border, margin, and padding. +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. */ -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ } -/* - * 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. +/** + * Remove the inner padding and cancel buttons in Chrome and Safari on OS X. */ -legend { - border: 0; /* 1 */ - padding: 0; /* 2 */ +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } -/* - * Remove default vertical scrollbar in IE 8/9/10/11. +/** + * Correct the text style of placeholders in Chrome, Edge, and Safari. */ -textarea { - overflow: auto; +::-webkit-input-placeholder { + color: inherit; + opacity: 0.54; } -/* - * Restore font weight (unset by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. */ -optgroup { - font-weight: bold; +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ } -/* ========================================================================== - HTML5 Boilerplate optimizations - ========================================================================== */ +@if $initialize-html5-boilerplate-overwrites == true { + /* ========================================================================== + HTML5 Boilerplate optimizations + ========================================================================== */ -/* - * Remove text-shadow in selection highlight: - * https://twitter.com/miketaylr/status/12228805301 - * - * These selection rule sets have to be separate. - * Customize the background color to match your design. - */ + /** + * Remove text-shadow in selection highlight: + * https://twitter.com/miketaylr/status/12228805301 + * + * These selection rule sets have to be separate. + * Customize the background color to match your design. + */ -::selection { - background: #b3d4fc; - text-shadow: none; -} + ::selection { + background: #b3d4fc; + text-shadow: none; + } -/* - * A better looking default horizontal rule - */ + /** + * A better looking default horizontal rule + */ -hr { - display: block; - height: 1px; - border: 0; - border-top: 1px solid #ccc; - margin: 1em 0; - padding: 0; -} + hr { + display: block; + height: 1px; + border: 0; + border-top: 1px solid #ccc; + margin: 1em 0; + padding: 0; + } -/* - * Remove the gap between audio, canvas, iframes, - * images, videos and the bottom of their containers: - * https://github.com/h5bp/html5-boilerplate/issues/440 - */ + /** + * Remove the gap between audio, canvas, iframes, + * images, videos and the bottom of their containers: + * https://github.com/h5bp/html5-boilerplate/issues/440 + */ -audio, -canvas, -iframe, -img, -svg, -video { - vertical-align: middle; -} + audio, + canvas, + iframe, + img, + svg, + video { + vertical-align: middle; + } -/* - * Remove default fieldset styles. - */ + /** + * Remove default fieldset styles. + */ -fieldset { - border: 0; - margin: 0; - padding: 0; -} + fieldset { + border: 0; + margin: 0; + padding: 0; + } -/* - * Allow only vertical resizing of textareas. - */ + /** + * Allow only vertical resizing of textareas. + */ -textarea { - resize: vertical; + textarea { + resize: vertical; + } } @@ -589,7 +601,7 @@ textarea { Optional configurations ========================================================================== */ -/* +/** * Headings */ @@ -599,7 +611,7 @@ h1, h2, h3, h4, h5, h6 { @include optional-prop('font-family', $initialize-heading-font-family); } -/* +/** * Block elements */ @@ -680,4 +692,3 @@ p, table, ul, ol, fieldset, blockquote, dl { } } } - diff --git a/dist/initialize.less b/dist/initialize.less index 5442f1b..cb5343f 100644 --- a/dist/initialize.less +++ b/dist/initialize.less @@ -1,5 +1,5 @@ /*! - * Initialize.css (v1.3.1) is a complete and customizable collection of CSS best practices based on Normalize.css and HTML5 Boilerplate. + * Initialize.css (v1.3.2) is a complete and customizable collection of CSS best practices based on Normalize.css and HTML5 Boilerplate. * http://jeroenoomsnl.github.io/initialize-css * * HTML5 Boilerplate: https://github.com/h5bp/html5-boilerplate @@ -9,7 +9,7 @@ // ========================================================================== // Config -// ========================================================================== +// ========================================================================== // // Predefined values @@ -38,12 +38,12 @@ // ========================================================================== // Helpers -// ========================================================================== +// ========================================================================== // // Mixin for optional properties // -.optional-prop(@property, @value) when (isstring(@value)), (iscolor(@value)), (isnumber(@value)) { +.optional-prop(@property, @value) when not(@value=null) { @{property}: @value; } @@ -517,7 +517,7 @@ optgroup { /* ========================================================================== - HTML5 Boilerplate optimizations + HTML5 Boilerplate optimizations ========================================================================== */ /* diff --git a/package.json b/package.json index 2cda5d0..e9ae89b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "initialize-css", - "version": "1.3.1", + "version": "1.3.2", "homepage": "http://jeroenoomsnl.github.io/initialize-css/", "description": "Initialize.css is a complete and customizable collection of CSS best practices based on Normalize.css and HTML5 Boilerplate. Available in CSS and configurable SASS (SCSS) and LESS format.", "author": { @@ -11,26 +11,26 @@ "main": "dist/_initialize.scss", "repository": "https://github.com/jeroenoomsNL/initialize-css.git", "devDependencies": { - "browser-sync": "^2.10.1", - "gulp": "^3.9.0", - "gulp-autoprefixer": "^3.1.0", + "browser-sync": "^2.18.2", + "gulp": "^3.9.1", + "gulp-autoprefixer": "^3.1.1", "gulp-cssmin": "^0.1.7", - "gulp-filter": "^3.0.1", + "gulp-filter": "^4.0.0", "gulp-gh-pages": "^0.5.4", - "gulp-if": "^2.0.0", - "gulp-jshint": "^2.0.0", - "gulp-load-plugins": "^1.1.0", - "gulp-plumber": "^1.0.1", + "gulp-if": "^2.0.2", + "gulp-jshint": "^2.0.4", + "gulp-load-plugins": "^1.4.0", + "gulp-plumber": "^1.1.0", "gulp-rename": "^1.2.2", "gulp-replace": "^0.5.4", - "gulp-ruby-sass": "^2.0.6", - "gulp-size": "^2.0.0", - "gulp-sourcemaps": "^1.6.0", - "gulp-uglify": "^1.5.1", + "gulp-ruby-sass": "^2.1.1", + "gulp-size": "^2.1.0", + "gulp-sourcemaps": "^2.2.1", + "gulp-uglify": "^2.0.0", "gulp-util": "^3.0.7", - "jshint": "^2.8.0", - "jshint-stylish": "^2.1.0", - "rimraf": "^2.4.4" + "jshint": "^2.9.4", + "jshint-stylish": "^2.2.1", + "rimraf": "^2.5.4" }, "keywords": [ "css", diff --git a/src/styles/initialize.less b/src/styles/initialize.less index 5442f1b..cb5343f 100644 --- a/src/styles/initialize.less +++ b/src/styles/initialize.less @@ -1,5 +1,5 @@ /*! - * Initialize.css (v1.3.1) is a complete and customizable collection of CSS best practices based on Normalize.css and HTML5 Boilerplate. + * Initialize.css (v1.3.2) is a complete and customizable collection of CSS best practices based on Normalize.css and HTML5 Boilerplate. * http://jeroenoomsnl.github.io/initialize-css * * HTML5 Boilerplate: https://github.com/h5bp/html5-boilerplate @@ -9,7 +9,7 @@ // ========================================================================== // Config -// ========================================================================== +// ========================================================================== // // Predefined values @@ -38,12 +38,12 @@ // ========================================================================== // Helpers -// ========================================================================== +// ========================================================================== // // Mixin for optional properties // -.optional-prop(@property, @value) when (isstring(@value)), (iscolor(@value)), (isnumber(@value)) { +.optional-prop(@property, @value) when not(@value=null) { @{property}: @value; } @@ -517,7 +517,7 @@ optgroup { /* ========================================================================== - HTML5 Boilerplate optimizations + HTML5 Boilerplate optimizations ========================================================================== */ /* diff --git a/src/styles/initialize.scss b/src/styles/initialize.scss index a004f8c..c4dbd9b 100644 --- a/src/styles/initialize.scss +++ b/src/styles/initialize.scss @@ -1,5 +1,5 @@ /*! - * Initialize.css (v1.3.1) is a complete and customizable collection of CSS best practices based on Normalize.css and HTML5 Boilerplate. + * Initialize.css (v1.3.2) is a complete and customizable collection of CSS best practices based on Normalize.css and HTML5 Boilerplate. * http://jeroenoomsnl.github.io/initialize-css * * HTML5 Boilerplate: https://github.com/h5bp/html5-boilerplate @@ -24,6 +24,7 @@ $initialize-line-height: 1.4 !default; // $initialize-dinosaur-mode: false !default; // toggle support for IE8, IE9 & IE10 $initialize-print-styles: false !default; // toggle HTML5 Boilerplate print styles +$initialize-html5-boilerplate-overwrites: false !default; // toggle HTML5 Boilerplate overwrites // // Optional values @@ -57,10 +58,10 @@ $initialize-block-margins: null !default; /** * 1. Set default font family to $initialize-font-family (default: sans-serif) - * 2. Prevent iOS and IE text size adjust after device orientation change, - * without disabling user zoom + * 2. Prevent adjustments of font size after orientation changes in IE and iOS. * 3. Configurable defaults */ + html { @include optional-prop('color', $initialize-color); @include optional-prop('box-sizing', $initialize-box-sizing); @@ -72,17 +73,19 @@ html { -webkit-text-size-adjust: 100%; /* 2 */ } -/* - * Remove default margin +/** + * Remove the margin in all browsers */ + body { margin: 0; } -/* +/** * Inheriting box-sizing * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */ + *, *:before, *:after { box-sizing: inherit; } @@ -93,66 +96,74 @@ body { HTML5 display defenitions ========================================================================== */ -/* - * 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. +/** + * Add the correct display in IE 9-. + * 1. Add the correct display in Edge, IE, and Firefox. + * 2. Add the correct display in IE. */ + @if $initialize-dinosaur-mode == true { article, aside, - details, + details, /* 1 */ figcaption, figure, footer, header, hgroup, - main, + main, /* 2 */ menu, nav, section, - summary { + summary /* 1 */ { display: block; } } @else { - details, - main, - summary { + details, /* 1 */ + main, /* 2 */ + summary /* 1 */ { display: block; } } -/* - * 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 { - @if $initialize-dinosaur-mode == true { - display: inline-block; /* 1 */ - } - vertical-align: baseline; /* 2 */ +@if $initialize-dinosaur-mode == true { + /** + * Add the correct display in IE 9-. + */ + + audio, + canvas, + progress, + video { + display: inline-block; + } } -/* - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. +/** + * Add the correct display in iOS 4-7. */ + audio:not([controls]) { display: none; height: 0; } -/* - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. */ -[hidden], -template { - display: none; + +progress { + vertical-align: baseline; +} + +/** + * Add the correct display in IE 10-. + * 1. Add the correct display in IE. + */ + +template, /* 1 */ +[hidden] { + display: none; } @@ -161,22 +172,25 @@ template { Links ========================================================================== */ -/* - * Remove the gray background color from active links in IE 10. +/** + * 1. Remove the gray background on active links in IE 10. + * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. */ -@if $initialize-dinosaur-mode == true { - a { - background-color: transparent; - } +a { + @if $initialize-dinosaur-mode == true { + background-color: transparent; /* 1 */ + } + -webkit-text-decoration-skip: objects; /* 2 */ } -/* - * Improve readability of focused elements when they are also in an - * active/hover state. +/** + * Remove the outline on focused links when they are also active or hovered + * in all browsers (opinionated). */ + a:active, a:hover { - outline: 0; + outline-width: 0; } @@ -185,85 +199,92 @@ a:hover { Text-level semantics ========================================================================== */ -/* - * Address inconsistent styling of `abbr[title]`. - * 1. Correct styling in Firefox 39 and Opera 12. - * 2. Correct missing styling in Chrome, Edge, IE, Opera, and Safari. +/** + * 1. Remove the bottom border in Firefox 39-. + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. */ + abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ } -/* - * Address inconsistent styling of b and strong. - * 1. Correct duplicate application of `bolder` in Safari 6.0.2. - * 2. Correct style set to `bold` in Edge 12+, Safari 6.2+, and Chrome 18+. +/** + * Prevent the duplicate application of `bolder` by the next rule in Safari 6. */ b, strong { - font-weight: inherit; /* 1 */ + font-weight: inherit; } +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + b, strong { - font-weight: bolder; /* 2 */ + font-weight: bolder; } -/* - * Address styling not present in Safari and Chrome. +/** + * Add the correct font style in Android 4.3-. */ + dfn { - font-style: italic; + font-style: italic; } -/* - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. */ + h1 { - font-size: 2em; - margin: 0.67em 0; + font-size: 2em; + margin: 0.67em 0; } - @if $initialize-dinosaur-mode == true { - /* + /** * Address styling not present in IE 8/9. */ + mark { background: #ff0; color: #000; } } -/* - * Address inconsistent and variable font size in all browsers. + + +/** + * Add the correct font size in all browsers. */ small { - font-size: 80%; + font-size: 80%; } -/* - * Prevent `sub` and `sup` affecting `line-height` in all browsers. +/** + * Prevent `sub` and `sup` elements from affecting the 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; +sub { + bottom: -0.25em; } -sub { - bottom: -0.25em; +sup { + top: -0.5em; } @@ -272,22 +293,22 @@ sub { Embedded content ========================================================================== */ - @if $initialize-dinosaur-mode == true { - /* - * Remove border when inside `a` element in IE 8/9/10. - */ - img { - border: 0; - } + /** + * Remove the border on images inside links in IE 10-. + */ + + img { + border-style: none; + } } -/* - * Correct overflow not hidden in IE 9/10/11. +/** + * Hide the overflow in IE. */ svg:not(:root) { - overflow: hidden; + overflow: hidden; } @@ -296,45 +317,36 @@ svg:not(:root) { Grouping content ========================================================================== */ -/* - * Address margin not present in IE 8/9 and Safari. - */ - -figure { - margin: 1em 40px; -} - -/* - * Address inconsistent styling of `hr`. - * 1. Correct `box-sizing` set to `border-box` in Firefox. - * 2. Correct `overflow` set to `hidden` in IE 8/9/10/11 and Edge 12. +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. */ -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ +code, +kbd, +pre, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ } -/* - * Contain overflow in all browsers. +/** + * Add the correct margin in IE 8. */ -pre { - overflow: auto; +figure { + margin: 1em 40px; } -/* - * 1. Correct inheritance and scaling of font-size for preformatted text. - * 2. Address odd `em`-unit font size rendering in all browsers. +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. */ -code, -kbd, -pre, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ } @@ -343,244 +355,244 @@ samp { 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 font properties not being inherited. - * 2. Address margins set differently in Firefox 4+, Safari, and Chrome. +/** + * 1. Change font properties to `inherit` in all browsers (opinionated). + * 2. Remove the margin in Firefox and Safari. */ button, input, -optgroup, select, textarea { - font: inherit; /* 1 */ - margin: 0; /* 2 */ + font: inherit; /* 1 */ + margin: 0; /* 2 */ } -/* - * Address `overflow` set to `hidden` in IE 8/9/10/11. +/** + * Restore the font weight unset by the previous rule. */ -button { - overflow: visible; +optgroup { + font-weight: bold; } -/* - * 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 Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. */ button, -select { - text-transform: none; +input { /* 1 */ + overflow: visible; } -/* - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * 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. +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. */ button, -html input[type="button"], /* 1 */ -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; /* 2 */ - cursor: pointer; /* 3 */ +select { /* 1 */ + text-transform: none; } -/* - * Re-set default cursor for disabled elements. +/** + * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` + * controls in Android 4. + * 2. Correct the inability to style clickable types in iOS and Safari. */ -button[disabled], -html input[disabled] { - cursor: default; +button, +html [type="button"], /* 1 */ +[type="reset"], +[type="submit"] { + -webkit-appearance: button; /* 2 */ } -/* - * Remove inner padding and border in Firefox 4+. +/** + * Remove the inner border and padding in Firefox. */ button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; } -/* - * Restore focus style in Firefox 4+ (unset by a rule above) +/** + * Restore the focus styles unset by the previous rule. */ button:-moz-focusring, -input:-moz-focusring { - outline: 1px dotted ButtonText; +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; } -/* - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ +@if $initialize-html5-boilerplate-overwrites == false { + /** + * Change the border, margin, and padding in all browsers (opinionated). + */ -input { - line-height: normal; + fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; + } } -@if $initialize-dinosaur-mode == true { - /* - * 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"] { +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ - } + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ } -/* - * 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`. +/** + * Remove the default vertical scrollbar in IE. */ -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; +textarea { + overflow: auto; } -/* - * Address `appearance` set to `searchfield` in Safari and Chrome. - */ +@if $initialize-dinosaur-mode == true { + /** + * 1. Add the correct box sizing in IE 10-. + * 2. Remove the padding in IE 10-. + */ -input[type="search"] { - -webkit-appearance: textfield; + [type="checkbox"], + [type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ + } } -/* - * 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). +/** + * Correct the cursor style of increment and decrement buttons in Chrome. */ -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; } -/* - * Define consistent border, margin, and padding. +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. */ -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ } -/* - * 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. +/** + * Remove the inner padding and cancel buttons in Chrome and Safari on OS X. */ -legend { - border: 0; /* 1 */ - padding: 0; /* 2 */ +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } -/* - * Remove default vertical scrollbar in IE 8/9/10/11. +/** + * Correct the text style of placeholders in Chrome, Edge, and Safari. */ -textarea { - overflow: auto; +::-webkit-input-placeholder { + color: inherit; + opacity: 0.54; } -/* - * Restore font weight (unset by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. */ -optgroup { - font-weight: bold; +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ } -/* ========================================================================== - HTML5 Boilerplate optimizations - ========================================================================== */ +@if $initialize-html5-boilerplate-overwrites == true { + /* ========================================================================== + HTML5 Boilerplate optimizations + ========================================================================== */ -/* - * Remove text-shadow in selection highlight: - * https://twitter.com/miketaylr/status/12228805301 - * - * These selection rule sets have to be separate. - * Customize the background color to match your design. - */ + /** + * Remove text-shadow in selection highlight: + * https://twitter.com/miketaylr/status/12228805301 + * + * These selection rule sets have to be separate. + * Customize the background color to match your design. + */ -::selection { - background: #b3d4fc; - text-shadow: none; -} + ::selection { + background: #b3d4fc; + text-shadow: none; + } -/* - * A better looking default horizontal rule - */ + /** + * A better looking default horizontal rule + */ -hr { - display: block; - height: 1px; - border: 0; - border-top: 1px solid #ccc; - margin: 1em 0; - padding: 0; -} + hr { + display: block; + height: 1px; + border: 0; + border-top: 1px solid #ccc; + margin: 1em 0; + padding: 0; + } -/* - * Remove the gap between audio, canvas, iframes, - * images, videos and the bottom of their containers: - * https://github.com/h5bp/html5-boilerplate/issues/440 - */ + /** + * Remove the gap between audio, canvas, iframes, + * images, videos and the bottom of their containers: + * https://github.com/h5bp/html5-boilerplate/issues/440 + */ -audio, -canvas, -iframe, -img, -svg, -video { - vertical-align: middle; -} + audio, + canvas, + iframe, + img, + svg, + video { + vertical-align: middle; + } -/* - * Remove default fieldset styles. - */ + /** + * Remove default fieldset styles. + */ -fieldset { - border: 0; - margin: 0; - padding: 0; -} + fieldset { + border: 0; + margin: 0; + padding: 0; + } -/* - * Allow only vertical resizing of textareas. - */ + /** + * Allow only vertical resizing of textareas. + */ -textarea { - resize: vertical; + textarea { + resize: vertical; + } } @@ -589,7 +601,7 @@ textarea { Optional configurations ========================================================================== */ -/* +/** * Headings */ @@ -599,7 +611,7 @@ h1, h2, h3, h4, h5, h6 { @include optional-prop('font-family', $initialize-heading-font-family); } -/* +/** * Block elements */ @@ -680,4 +692,3 @@ p, table, ul, ol, fieldset, blockquote, dl { } } } -