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.
+
-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
disabled
button and inputshould have
default cursor styleshould not have extra inner padding in Firefox
}
-
- inputshould not inherit
- line-height
+ fieldsetshould have consistent border, padding, and margin
+
+ legendshould inherit color
+ should not have padding
+ should wrap text
+
+ textareashould not have a scrollbar unless overflowing
+
+ input[type="checkbox"], input[type="radio"][type="checkbox"], [type="radio"]should have a
border-box box modelshould 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 modelshould not have a cancel button in Safari or Chrome
- fieldsetshould have consistent border, padding, and margin
-
- legendshould inherit color
- should not have padding
-
- textareashould not have a scrollbar unless overflowing
-
- tableshould not have spaces between cells
+ should reference inherited color
-
+
-
-
-
- Album
- Year
- Price
-
-
-
-
- Album
- Year
- Price
-
-
- Are You Experienced
- 1967
- $10.00
-
-
- Axis: Bold as Love
- 1967
- $12.00
-
-
- Electric Ladyland
- 1968
- $10.00
-
-
-
- Band of Gypsys
- 1970
- $12.00
-