diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..4039ff111 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 2 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..5e26201fb --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +normalize.css linguist-vendored=false +test.html linguist-vendored diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..93f136199 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules +npm-debug.log diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..833d09d14 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,3 @@ +language: node_js +node_js: + - stable diff --git a/CHANGELOG.md b/CHANGELOG.md index aaa7a8f6a..7ac47ec70 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,22 +1,102 @@ -=== HEAD - -=== 3.0.3 (March 30, 2015) +# Changes to normalize.css + +### 7.0.0 (May 26, 2017) + +* Separate out selector targeted fixes for readability +* Update browser landscape of abbr[title] fixes +* Update browser landscape of details fixes +* Correct browser landscape of displays +* Remove sub and sup opinionated changes + +### 6.0.0 (March 26, 2017) + +* Remove all opinionated rules +* Correct document heading comment +* Update `abbr[title]` support + +_For anyone who still wants/needs the opinionated rules, see [opinionate.css](https://github.com/adamgruber/opinionate.css)_ + +### 5.0.0 (October 3, 2016) + +* Add normalized sections not already present from + https://html.spec.whatwg.org/multipage/. +* Move unsorted rules into their respective sections. +* Update the `summary` style in all browsers. +* Remove `::placeholder` styles due to a bug in Edge. +* More explicitly define font resets on form controls. +* Remove the `optgroup` normalization needed by the previous font reset. +* Update text-size-adjust documentation
 for IE on Windows Phone +* Update OS X reference to macOS +* Update the semver strategy. + +### 4.2.0 (June 30, 2016) + +* Correct the `line-height` in all browsers. +* Restore `optgroup` font inheritance. +* Update normalize.css heading. + +### 4.1.1 (April 12, 2016) + +* Update normalize.css heading. + +### 4.1.0 (April 11, 2016) + +* Normalize placeholders in Chrome, Edge, and Safari. +* Normalize `text-decoration-skip` property in Safari. +* Normalize file select buttons. +* Normalize search input outlines in Safari. +* Limit Firefox focus normalizations to buttons. +* Restore `main` to package.json. +* Restore proper overflow to certain `select` elements. +* Remove opinionated cursor styles on buttons. +* Update stylelint configuration. +* Update tests. + +### 4.0.0 (March 19, 2016) + +* Add the correct font weight for `b` and `strong` in Chrome, Edge, and Safari. +* Correct inconsistent `overflow` for `hr` in Edge and IE. +* Correct inconsistent `box-sizing` for `hr` in Firefox. +* Correct inconsistent `text-decoration` and `border-bottom` for `abbr[title]` + in Chrome, Edge, Firefox IE, Opera, and Safari. +* Correct inheritance and scaling of `font-size` for preformatted text. +* Correct `legend` text wrapping not present in Edge and IE. +* Remove unnecessary normalization of `line-height` for `input`. +* Remove unnecessary normalization of `color` for form controls. +* Remove unnecessary `box-sizing` for `input[type="search"]` in Chrome, Edge, + Firefox, IE, and Safari. +* Remove opinionated table resets. +* Remove opinionated `pre` overflow. +* Remove selector weight from some input selectors. +* Update normalization of `border-style` for `img`. +* Update normalization of `color` inheritance for `legend`. +* Update normalization of `background-color` for `mark`. +* Update normalization of `outline` for `:-moz-focusring` removed by a previous + normalization in Firefox. +* Update opinionated style of `outline-width` for `a:active` and `a:hover`. +* Update comments to identify opinionated styles. +* Update comments to specify browser/versions affected by all changes. +* Update comments to use one voice. + +--- + +### 3.0.3 (March 30, 2015) * Remove unnecessary vendor prefixes. * Add `main` property. -=== 3.0.2 (October 4, 2014) +### 3.0.2 (October 4, 2014) * Only alter `background-color` of links in IE 10. * Add `menu` element to HTML5 display definitions. -=== 3.0.1 (March 27, 2014) +### 3.0.1 (March 27, 2014) * Add package.json for npm support. -=== 3.0.0 (January 28, 2014) +### 3.0.0 (January 28, 2014) -=== 3.0.0-rc.1 (January 26, 2014) +### 3.0.0-rc.1 (January 26, 2014) * Explicit tests for each normalization. * Fix i18n for `q` element. @@ -32,21 +112,23 @@ * Set correct display for `progress` in IE 8/9. * Fix `font` and `color` inheritance for forms. -=== 2.1.3 (August 26, 2013) +--- + +### 2.1.3 (August 26, 2013) * Fix component.json. * Remove the gray background color from active links in IE 10. -=== 2.1.2 (May 11, 2013) +### 2.1.2 (May 11, 2013) * Revert root `color` and `background` normalizations. -=== 2.1.1 (April 8, 2013) +### 2.1.1 (April 8, 2013) * Normalize root `color` and `background` to counter the effects of system color schemes. -=== 2.1.0 (January 21, 2013) +### 2.1.0 (January 21, 2013) * Normalize `text-transform` for `button` and `select`. * Normalize `h1` margin when within HTML5 sectioning elements. @@ -55,11 +137,11 @@ * Add `main` element to HTML5 display definitions. * Fix cursor style for disabled button `input`. -=== 2.0.1 (August 20, 2012) +### 2.0.1 (August 20, 2012) * Remove stray IE 6/7 `inline-block` hack from HTML5 display settings. -=== 2.0.0 (August 19, 2012) +### 2.0.0 (August 19, 2012) * Remove legacy browser form normalizations. * Remove all list normalizations. @@ -68,19 +150,21 @@ * Form elements automatically inherit `font-family` from ancestor. * Drop support for IE 6/7, Firefox < 4, and Safari < 5. -=== 1.0.1 (August 19, 2012) +--- + +### 1.0.1 (August 19, 2012) * Adjust `small` font size normalization. -=== 1.0.0 (August 14, 2012) +### 1.0.0 (August 14, 2012) (Only the notable changes since public release) * Add MIT License. -* Hide `audio` elements without controls in iOS 5 (#69). +* Hide `audio` elements without controls in iOS 5. * Normalize heading margins and font size. -* Move font-family normalization from `body` to `html` (#62). -* Remove scrollbar normalization (#64 #65). -* Remove excess padding from checkbox and radio inputs in IE 7 (#42). -* Add IE9 correction for SVG overflow (#16). +* Move font-family normalization from `body` to `html`. +* Remove scrollbar normalization. +* Remove excess padding from checkbox and radio inputs in IE 7. +* Add IE9 correction for SVG overflow. * Add fix for legend not inheriting color in IE 6/7/8/9. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index abcbae257..5f5f1e439 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,7 +21,6 @@ requests](#pull-requests), but please respect the following restrictions: respect the opinions of others. - ## Bug reports A bug is a _demonstrable problem_ that is caused by the code in the repository. @@ -64,7 +63,6 @@ Example: > merits). - ## Feature requests Feature requests are welcome. But take a moment to find out whether your idea @@ -73,7 +71,6 @@ case to convince the project's developers of the merits of this feature. Please provide as much detail and context as possible. - ## Pull requests Good pull requests - patches, improvements, new features - are a fantastic @@ -90,8 +87,8 @@ accurate comments, etc.) and any other requirements (such as test coverage). Follow this process if you'd like your work considered for inclusion in the project: -1. [Fork](http://help.github.com/fork-a-repo/) the project, clone your fork, - and configure the remotes: +1. [Fork](https://help.github.com/articles/fork-a-repo/) the project, clone your + fork, and configure the remotes: ```bash # Clone your fork of the repo into the current directory @@ -122,7 +119,13 @@ project: [interactive rebase](https://help.github.com/articles/interactive-rebase) feature to tidy up your commits before making them public. - Make sure to add a test to the `test.html` file if appropriate, and test + Be sure to test the `normalize.css` file for style conformance. + + ```bash + npm test + ``` + + Be sure to add a test to the `test.html` file if appropriate, and test your change in all supported browsers. 5. Locally rebase the upstream development branch into your topic branch: @@ -140,14 +143,27 @@ project: 10. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/) with a clear title and description. - Please submit a separate pull request for any appropriate changes required - in the `v1` branch for legacy browsers. - **IMPORTANT**: By submitting a patch, you agree to allow the project owner to license your work under the same license as that used by the project. +### CSS Conventions + +Keep the CSS file as readable as possible by following these guidelines: + +- Comments are short and to the point. +- Comments without a number reference the entire rule. +- Comments describe the selector when the selector does not make the + normalization obvious. +- Comments begin with “Correct the...” when they deal with less obvious side + effects. +- Rules are sorted by cascade, specificity, and then alphabetic order. +- Selectors are sorted by specificity and then alphabetic order. +- `in browser` applies to all versions. +- `in browser v-` applies to all versions up to and including the version. +- `in browser v+` applies to all versions after and including the version. +- `in browser v-v` applies to all versions including and between the versions. + - ## Maintainers If you have commit access, please follow this process for merging patches and @@ -162,16 +178,30 @@ cutting new releases. 4. Do not use GitHub's merge button. Apply the patch to `master` locally (either via `git am` or by checking the whole branch out). Amend minor problems with the author's original commit if necessary. Then push to GitHub. -5. If a patch should be included in `v1`, cherry-pick the commits or manually - apply if all else fails. ### Releasing a new version 1. Include all new functional changes in the CHANGELOG. 2. Use a dedicated commit to increment the version. The version needs to be - added to the CHANGELOG (inc. date), and the `bower.json`, `component.json`, - and `normalize.css` files. + added to the CHANGELOG (inc. date), the `package.json`, and `normalize.css` + files. 3. The commit message must be of `v0.0.0` format. 4. Create an annotated tag for the version: `git tag -m "v0.0.0" 0.0.0`. 5. Push the changes and tags to GitHub: `git push --tags origin master` 6. Checkout the `gh-pages` branch and follow the instructions in the README. + +### Semver strategy + +[Semver](http://semver.org/) is a widely accepted method for deciding how +version numbers are incremented in a project. Versions are written as +MAJOR.MINOR.PATCH. + +Any change to CSS rules whatsoever is considered backwards-breaking and will +result in a new **major** release. Others changes with no impact on rendering +are considered backwards-compatible and will result in a new **patch** release. + +No changes to CSS rules can add functionality in a backwards-compatible manner, +therefore no changes are considered **minor**. For instance, a normalization on +an element selector may override a user style on a universal selector, a +change to `opacity` might cause [inputs to disappear](https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/3901363/), +or a change to `background-color` might cause [backgrounds to shrink](https://github.com/jonathantneal/sanitize.css/issues/42). diff --git a/LICENSE.md b/LICENSE.md index c6bcc9bf2..43b5ddcc9 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,4 +1,6 @@ -Copyright (c) Nicolas Gallagher and Jonathan Neal +# The MIT License (MIT) + +Copyright © Nicolas Gallagher and Jonathan Neal Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in diff --git a/README.md b/README.md index cccbf96d6..fca425865 100644 --- a/README.md +++ b/README.md @@ -1,71 +1,79 @@ -# normalize.css v3 +# normalize.css -Normalize.css is a customisable CSS file that makes browsers render all -elements more consistently and in line with modern standards. +normalize.css logo -The project relies on researching the differences between default browser -styles in order to precisely target only the styles that need or benefit from -normalizing. +[normalize.css] is a CSS library which provides cross-browser consistency in +the default styling of HTML elements. -[View the test file](http://necolas.github.io/normalize.css/latest/test.html) +## Usage -## Install +```sh +npm install --save jonathantneal/normalize.css +``` -* [npm](http://npmjs.org/): `npm install --save normalize.css` -* [Component(1)](https://github.com/component/component/): `component install necolas/normalize.css` -* [Bower](http://bower.io/): `bower install --save normalize.css` -* [cdnjs](https://cdnjs.com/libraries/normalize) -* [Download](http://necolas.github.io/normalize.css/latest/normalize.css). +**Download** -No other styles should come before Normalize.css. +See https://jonathantneal.github.io/normalize/latest/normalize.css -It is recommended that you include the `normalize.css` file as untouched -library code. ## What does it do? -* Preserves useful defaults, unlike many CSS resets. * Normalizes styles for a wide range of elements. * Corrects bugs and common browser inconsistencies. -* Improves usability with subtle improvements. * Explains what code does using detailed comments. ## Browser support -* Google Chrome (latest) -* Mozilla Firefox (latest) -* Mozilla Firefox ESR -* Opera (latest) -* Apple Safari 6+ +* Chrome (last three) +* Edge (last three) +* Firefox (last three) +* Firefox ESR * Internet Explorer 8+ +* iOS Safari (last three) +* Opera (last three) +* Safari 6+ -[Normalize.css v1 provides legacy browser -support](https://github.com/necolas/normalize.css/tree/v1) (IE 6+, Safari 4+), -but is no longer actively developed. +## Extended details and known issues -## Extended details - -Additional detail and explanation of the esoteric parts of normalize.css. +Additional detail and explanation of the esoteric parts of normalize. #### `pre, code, kbd, samp` The `font-family: monospace, monospace` hack fixes the inheritance and scaling -of font-size for preformated text. The duplication of `monospace` is -intentional. [Source](http://en.wikipedia.org/wiki/User:Davidgothberg/Test59). +of font-size for preformatted text. The duplication of `monospace` is +intentional. [Source](https://en.wikipedia.org/wiki/User:Davidgothberg/Test59). #### `sub, sup` Normally, using `sub` or `sup` affects the line-box height of text in all -browsers. [Source](http://gist.github.com/413930). +browsers. [Source](https://gist.github.com/413930). #### `svg:not(:root)` Adding `overflow: hidden` fixes IE9's SVG rendering. Earlier versions of IE don't support SVG, so we can safely use the `:not()` and `:root` selectors that -modern browsers use in the default UA stylesheets to apply this style. [SVG -Mailing List discussion](http://lists.w3.org/Archives/Public/public-svg-wg/2008JulSep/0339.html) +modern browsers use in the default UA stylesheets to apply this style. +[Source](https://lists.w3.org/Archives/Public/public-svg-wg/2008JulSep/0339.html). + +#### `select` + +By default, Chrome on OS X and Safari on OS X allow very limited styling of +`select`, unless a border property is set. The default font weight on `optgroup` +elements cannot safely be changed in Chrome on OSX and Safari on OS X. + +#### `[type="checkbox"]` + +It is recommended that you do not style checkbox and radio inputs as Firefox's +implementation does not respect box-sizing, padding, or width. -#### `input[type="search"]` +#### `[type="number"]` + +Certain font size values applied to number inputs cause the cursor style of the +decrement button to change from `default` to `text`. + +#### `[type="search"]` The search input is not fully stylable by default. In Chrome and Safari on OSX/iOS you can't control `font`, `padding`, `border`, or `background`. In @@ -73,18 +81,25 @@ Chrome and Safari on Windows you can't control `border` properly. It will apply `border-width` but will only show a border color (which cannot be controlled) for the outer 1px of that border. Applying `-webkit-appearance: textfield` addresses these issues without removing the benefits of search inputs (e.g. -showing past searches). +showing past searches). Safari (but not Chrome) will clip the cancel button on +when it has padding (and `textfield` appearance). -#### `legend` +#### `::placeholder` -Adding `border: 0` corrects an IE 8–11 bug where `color` (yes, `color`) is not -inherited by `legend`. +In Edge, placeholders will disappear on `relative` or `absolute` positioned +`` elements if you use `opacity` less than `1` due to a [bug](https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/3901363/). ## Contributing -Please read the CONTRIBUTING.md +Please read the [contribution guidelines](CONTRIBUTING.md) in order to make the +contribution process easy and effective for everyone involved. + +## Similar Projects + +- [opinionate.css](https://github.com/adamgruber/opinionate.css) - Supplement to normalize, restores opinionated rules removed in v6 +- [sanitize.css](https://github.com/jonathantneal/sanitize.css) - Alternative to normalize, adheres to common developer expectations and preferences ## Acknowledgements -Normalize.css is a project by [Nicolas Gallagher](https://github.com/necolas), -co-created with [Jonathan Neal](https://github.com/jonathantneal). +Normalize is a project by [Jonathan Neal](https://github.com/jonathantneal), +co-created with [Nicolas Gallagher](https://github.com/necolas). diff --git a/bower.json b/bower.json index 44f2ee2b5..e8f0d67e0 100644 --- a/bower.json +++ b/bower.json @@ -1,13 +1,17 @@ { "name": "normalize-css", - "version": "3.0.3", + "description": "A modern alternative to CSS resets", "main": "normalize.css", - "author": "Nicolas Gallagher", + "authors": [ + "Jonathan Neal (http://jonathantneal.com/)", + "Nicolas Gallagher (http://nicolasgallagher.com/)" + ], + "license": "MIT", "ignore": [ "CHANGELOG.md", "CONTRIBUTING.md", - "component.json", "package.json", + "README.md", "test.html" ] } diff --git a/component.json b/component.json deleted file mode 100644 index 82e70d50b..000000000 --- a/component.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "normalize.css", - "repo": "necolas/normalize.css", - "version": "3.0.3", - "styles": ["normalize.css"], - "author": "Nicolas Gallagher", - "license": "MIT" -} diff --git a/normalize.css b/normalize.css index 5e5e3c898..33efd60ad 100644 --- a/normalize.css +++ b/normalize.css @@ -1,424 +1,432 @@ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +/*! normalize.css v7.0.0 | MIT License | github.com/jonathantneal/normalize.css */ + +/* Document + ========================================================================== */ /** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS and IE text size adjust after device orientation change, - * without disabling user zoom. + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in + * IE on Windows Phone and in iOS. */ html { - font-family: sans-serif; /* 1 */ + line-height: 1.15; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } -/** - * Remove default margin. - */ - -body { - margin: 0; -} - -/* HTML5 display definitions +/* Sections ========================================================================== */ /** - * 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 8-. */ article, aside, -details, -figcaption, -figure, footer, header, -hgroup, -main, -menu, nav, -section, -summary { +section { display: block; } /** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. */ -audio, -canvas, -progress, -video { - display: inline-block; /* 1 */ - vertical-align: baseline; /* 2 */ +h1 { + font-size: 2em; + margin: 0.67em 0; } +/* Grouping content + ========================================================================== */ + /** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. + * Add the correct display in IE 8-. */ -audio:not([controls]) { - display: none; - height: 0; +figcaption, +figure { + display: block; } /** - * 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 margin in IE 8-. */ -[hidden], -template { - display: none; +figure { + margin: 1em 40px; } -/* Links - ========================================================================== */ +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} /** - * Remove the gray background color from active links in IE 10. + * Add the correct display in IE. */ -a { - background-color: transparent; +main { + display: block; } /** - * Improve readability of focused elements when they are also in an - * active/hover state. + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. */ -a:active, -a:hover { - outline: 0; +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ } /* Text-level semantics ========================================================================== */ /** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + * 1. Remove the gray background on active links in IE 10. + * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. + */ + +a { + background-color: transparent; /* 1 */ + -webkit-text-decoration-skip: objects; /* 2 */ +} + +/** + * 1. Remove the bottom border in Firefox 39-. + * 2. Add the correct text decoration in Chrome 57-, Edge, IE, Opera, + and Safari. */ abbr[title] { - border-bottom: 1px dotted; + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ } /** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + * Prevent the duplicate application of `bolder` by the next rule in Safari 6. */ b, strong { - font-weight: bold; + font-weight: inherit; } /** - * Address styling not present in Safari and Chrome. + * Add the correct font weight in Chrome, Edge, and Safari. */ -dfn { - font-style: italic; +b, +strong { + font-weight: bolder; } /** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. */ -h1 { - font-size: 2em; - margin: 0.67em 0; +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font style in Android 4.3-. + */ + +dfn { + font-style: italic; } /** - * Address styling not present in IE 8/9. + * Add the correct background and color in IE 8-. */ mark { - background: #ff0; + background-color: #ff0; color: #000; } /** - * Address inconsistent and variable font size in all browsers. + * Add the correct font size in all browsers. */ small { font-size: 80%; } +/* Embedded content + ========================================================================== */ + /** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. + * Add the correct display in IE 9-. */ -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; +audio, +video { + display: inline-block; } -sup { - top: -0.5em; -} +/** + * Add the correct display in iOS 4-7. + */ -sub { - bottom: -0.25em; +audio:not([controls]) { + display: none; + height: 0; } -/* Embedded content - ========================================================================== */ - /** - * Remove border when inside `a` element in IE 8/9/10. + * Remove the border on images inside links in IE 10-. */ img { - border: 0; + border-style: none; } /** - * Correct overflow not hidden in IE 9/10/11. + * Hide the overflow in IE. */ svg:not(:root) { overflow: hidden; } -/* Grouping content +/* Forms ========================================================================== */ /** - * Address margin not present in IE 8/9 and Safari. + * Remove the margin in Firefox and Safari. */ -figure { - margin: 1em 40px; +button, +input, +optgroup, +select, +textarea { + margin: 0; } /** - * Address differences between Firefox and other browsers. + * 1. Show the overflow in IE. + * 2. Remove the inheritance of text transform in Edge, Firefox, and IE. */ -hr { - box-sizing: content-box; - height: 0; +button { + overflow: visible; /* 1 */ + text-transform: none; /* 2 */ } /** - * Contain overflow in all browsers. + * Correct the inability to style clickable types in iOS and Safari. */ -pre { - overflow: auto; +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; } /** - * Address odd `em`-unit font size rendering in all browsers. + * Prevent a WebKit bug where (2) destroys native `audio` and `video` controls + * in Android 4. */ -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; +html [type="button"] { + -webkit-appearance: button; } -/* Forms - ========================================================================== */ - /** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. + * Remove the inner border and padding in Firefox. */ +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + /** - * 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. + * Restore the focus styles unset by the previous rule. */ -button, -input, -optgroup, -select, -textarea { - color: inherit; /* 1 */ - font: inherit; /* 2 */ - margin: 0; /* 3 */ +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; } /** - * Address `overflow` set to `hidden` in IE 8/9/10/11. + * Correct the padding in Firefox. */ -button { - overflow: visible; +fieldset { + padding: 0.35em 0.75em 0.625em; } /** - * 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 Edge and IE. */ -button, -select { - text-transform: none; +input { + 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. + * 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. */ -button, -html input[type="button"], /* 1 */ -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; /* 2 */ - cursor: pointer; /* 3 */ +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ } /** - * Re-set default cursor for disabled elements. + * 1. Add the correct display in Edge and IE. + * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera. */ -button[disabled], -html input[disabled] { - cursor: default; +progress { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ } /** - * Remove inner padding and border in Firefox 4+. + * Remove the inheritance of text transform in Firefox. */ -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; +select { + text-transform: none; } /** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. + * Remove the default vertical scrollbar in IE. */ -input { - line-height: normal; +textarea { + overflow: auto; } /** - * 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. + * 1. Add the correct box sizing in IE 10-. + * 2. Remove the padding in IE 10-. */ -input[type="checkbox"], -input[type="radio"] { +[type="checkbox"], +[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } /** - * 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`. + * Correct the cursor style of increment and decrement buttons in Chrome. */ -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { +[type="number"]::-webkit-inner-spin-button, +[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. + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. */ -input[type="search"] { +[type="search"] { -webkit-appearance: textfield; /* 1 */ - box-sizing: content-box; /* 2 */ + outline-offset: -2px; /* 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). + * Remove the inner padding and cancel buttons in Chrome and Safari on macOS. */ -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } /** - * Define consistent border, margin, and padding. + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. */ -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 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. +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, Firefox 48-, and IE. */ -legend { - border: 0; /* 1 */ - padding: 0; /* 2 */ +details { + display: block; } +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Scripting + ========================================================================== */ + /** - * Remove default vertical scrollbar in IE 8/9/10/11. + * Add the correct display in IE 9-. */ -textarea { - overflow: auto; +canvas { + display: inline-block; } /** - * 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. + * Add the correct display in IE. */ -optgroup { - font-weight: bold; +template { + display: none; } -/* Tables +/* Hidden ========================================================================== */ /** - * Remove most spacing between table cells. + * Add the correct display in IE 10-. */ -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; +[hidden] { + display: none; } diff --git a/package.json b/package.json index b6c26d298..508fd8646 100644 --- a/package.json +++ b/package.json @@ -1,18 +1,37 @@ { "name": "normalize.css", - "version": "3.0.3", - "description": "Normalize.css as a node packaged module", + "version": "7.0.0", + "description": "A modern alternative to CSS resets", + "main": "normalize.css", "style": "normalize.css", "files": [ "LICENSE.md", "normalize.css" ], - "homepage": "http://necolas.github.io/normalize.css", - "repository": { - "type": "git", - "url": "git://github.com/necolas/normalize.css.git" + "devDependencies": { + "stylelint": "^7.9.0", + "stylelint-config-standard": "^16.0.0" }, - "main": "normalize.css", - "author": "Nicolas Gallagher", - "license": "MIT" + "scripts": { + "test": "stylelint normalize.css" + }, + "repository": "jonathantneal/normalize.css", + "contributors": [ + "Jonathan Neal (http://jonathantneal.com/)", + "Nicolas Gallagher (http://nicolasgallagher.com/)" + ], + "license": "MIT", + "bugs": "https://github.com/jonathantneal/normalize.css/issues", + "homepage": "https://jonathantneal.github.io/normalize.css", + "stylelint": { + "extends": "stylelint-config-standard", + "rules": { + "font-family-no-duplicate-names": [ + true, + { + "ignoreFontFamilyNames": ["monospace"] + } + ] + } + } } diff --git a/test.html b/test.html index e0e96e10d..a8f7bad26 100644 --- a/test.html +++ b/test.html @@ -1,9 +1,9 @@ - + Normalize CSS: UI tests - +

-

+

+

@@ -363,7 +345,6 @@

disabled button and input

should have default cursor style

-

@@ -381,19 +362,46 @@

should not have extra inner padding in Firefox

}

-

-

input

-

should not inherit line-height

-
- +

fieldset

+

should have consistent border, padding, and margin

+
+
+
+
+
+ +

legend

+

should inherit color

+
+
+ legend +
+
+

should not have padding

+
+
+ legend +
+
+

should wrap text

+
+
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et me. +
+
+ +

textarea

+

should not have a scrollbar unless overflowing

+
+
-

input[type="checkbox"], input[type="radio"]

+

[type="checkbox"], [type="radio"]

should have a border-box box model

@@ -418,98 +426,24 @@

should not have padding

-

input[type="number"]

+

[type="number"]

should display a default cursor for the decrement button's click target in Chrome

-

input[type="search"]

+

[type="search"]

should be styleable

-

should have a content-box box model

-
-
- -
-

should not have a cancel button in Safari or Chrome

- -

fieldset

-

should have consistent border, padding, and margin

-
-
-
-
-
- -

legend

-

should inherit color

-
-
- legend -
-
-

should not have padding

-
-
- legend -
-
- -

textarea

-

should not have a scrollbar unless overflowing

-
- -
- -

table

-

should not have spaces between cells

+

should reference inherited color

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Jimi Hendrix - albums
AlbumYearPrice
AlbumYearPrice
Are You Experienced1967$10.00
Axis: Bold as Love1967$12.00
Electric Ladyland1968$10.00
Band of Gypsys1970$12.00
+