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 index 974a733b4..3c3629e64 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1 @@ -.DS_Store -*.orig -*.swo -*.swp +node_modules 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 new file mode 100644 index 000000000..922f6e38c --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,175 @@ +# Changes to normalize.css + +### 8.0.1 (November 4, 2018) + +* Fix regression in IE rendering of `main` element. + +### 8.0.0 (February 2, 2018) + +* Remove support for older browsers Android 4, lte IE 9, lte Safari 7. +* Don't remove search input cancel button in Chrome/Safari. +* Form inputs inherit `font-family`. +* Fix text decoration in Safari 8+. + +### 7.0.0 (May 2, 2017) + +* Revert changes in `body` and form elements styles introduced by v6 + +### 6.0.0 (March 26, 2017) + +* Remove all opinionated rules +* Correct document heading comment +* Update `abbr[title]` support + +### 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) + +* Only alter `background-color` of links in IE 10. +* Add `menu` element to HTML5 display definitions. + +### 3.0.1 (March 27, 2014) + +* Add package.json for npm support. + +### 3.0.0 (January 28, 2014) + +### 3.0.0-rc.1 (January 26, 2014) + +* Explicit tests for each normalization. +* Fix i18n for `q` element. +* Fix `pre` text formatting and overflow. +* Fix vertical alignment of `progress`. +* Address `button` overflow in IE 8/9/10. +* Revert `textarea` alignment modification. +* Fix number input button cursor in Chrome on OS X. +* Remove `a:focus` outline normalization. +* Fix `figure` margin normalization. +* Normalize `optgroup`. +* Remove default table cell padding. +* Set correct display for `progress` in IE 8/9. +* Fix `font` and `color` inheritance for forms. + +--- + +### 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) + +* Revert root `color` and `background` normalizations. + +### 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) + +* Normalize `text-transform` for `button` and `select`. +* Normalize `h1` margin when within HTML5 sectioning elements. +* Normalize `hr` element. +* Remove unnecessary `pre` styles. +* Add `main` element to HTML5 display definitions. +* Fix cursor style for disabled button `input`. + +### 2.0.1 (August 20, 2012) + +* Remove stray IE 6/7 `inline-block` hack from HTML5 display settings. + +### 2.0.0 (August 19, 2012) + +* Remove legacy browser form normalizations. +* Remove all list normalizations. +* Add `quotes` normalizations. +* Remove all heading normalizations except `h1` font size. +* 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) + +* Adjust `small` font size normalization. + +### 1.0.0 (August 14, 2012) + +(Only the notable changes since public release) + +* Add MIT License. +* Hide `audio` elements without controls in iOS 5. +* Normalize heading margins and font size. +* 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 new file mode 100644 index 000000000..fa84fa956 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,197 @@ +# Contributing to normalize.css + +Please take a moment to review this document in order to make the contribution +process easy and effective for everyone involved. + +Following these guidelines helps to communicate that you respect the time of +the developers managing and developing this open source project. In return, +they should reciprocate that respect in addressing your issue or assessing +patches and features. + + +## Using the issue tracker + +The issue tracker is the preferred channel for [bug reports](#bugs), +[features requests](#features) and [submitting pull +requests](#pull-requests), but please respect the following restrictions: + +* Please **do not** use the issue tracker for personal support requests. + +* Please **do not** derail or troll issues. Keep the discussion on topic and + respect the opinions of others. + + +## Bug reports + +A bug is a _demonstrable problem_ that is caused by the code in the repository. +Good bug reports are extremely helpful - thank you! + +Guidelines for bug reports: + +1. **Use the GitHub issue search** – check if the issue has already been + reported. + +2. **Check if the issue has been fixed** – try to reproduce it using the + latest `master` branch in the repository. + +3. **Isolate the problem** – create a live example (e.g., on + [Codepen](http://codepen.io)) of a [reduced test + case](http://css-tricks.com/6263-reduced-test-cases/). + +A good bug report shouldn't leave others needing to chase you up for more +information. Please try to be as detailed as possible in your report. What is +your environment? What steps will reproduce the issue? What browser(s) and OS +experience the problem? What would you expect to be the outcome? All these +details will help people to fix any potential bugs. + +Example: + +> Short and descriptive example bug report title +> +> A summary of the issue and the browser/OS environment in which it occurs. If +> suitable, include the steps required to reproduce the bug. +> +> 1. This is the first step +> 2. This is the second step +> 3. Further steps, etc. +> +> `` - a link to the reduced test case +> +> Any other information you want to share that is relevant to the issue being +> reported. This might include the lines of code that you have identified as +> causing the bug, and potential solutions (and your opinions on their +> merits). + + +## Feature requests + +Feature requests are welcome. But take a moment to find out whether your idea +fits with the scope and aims of the project. It's up to *you* to make a strong +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 +help. They should remain focused in scope and avoid containing unrelated +commits. + +**Please ask first** before embarking on any significant work, otherwise you +risk spending a lot of time working on something that the project's developers +might not want to merge into the project. + +Please adhere to the coding conventions used throughout a project (whitespace, +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](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 + git clone https://github.com//normalize.css + # Navigate to the newly cloned directory + cd normalize.css + # Assign the original repo to a remote called "upstream" + git remote add upstream https://github.com/necolas/normalize.css + ``` + +2. If you cloned a while ago, get the latest changes from upstream: + + ```bash + git checkout master + git pull upstream master + ``` + +3. Never work directly on `master`. Create a new topic branch (off the latest + version of `master`) to contain your feature, change, or fix: + + ```bash + git checkout -b + ``` + +4. Commit your changes in logical chunks. Please adhere to these [git commit + message conventions](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) + or your code is unlikely be merged into the main project. Use Git's + [interactive rebase](https://help.github.com/articles/interactive-rebase) + feature to tidy up your commits before making them public. + + 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: + + ```bash + git pull --rebase upstream master + ``` + +6. Push your topic branch up to your fork: + + ```bash + git push origin + ``` + +10. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/) + with a clear title and description. + +**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 +cutting new releases. + +### Accepting patches + +1. Check that a patch is within the scope and philosophy of the project. +2. Check that a patch has any necessary tests and a proper, descriptive commit + message. +3. Test the patch locally. +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. + +### 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), 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. No changes to CSS rules can add +functionality in a backwards-compatible manner, therefore no changes are +considered **minor**. Others changes with no impact on rendering are considered +backwards-compatible and will result in a new **patch** release. diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 000000000..43b5ddcc9 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +# 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 +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index c81c94ac0..71954f230 100644 --- a/README.md +++ b/README.md @@ -1,45 +1,102 @@ -normalize.css -============= +# normalize.css -Normalize.css is a customisable CSS file that makes browsers render all elements more consistently and in line with modern standards. We researched the differences between default browser styles in order to precisely target only the styles that need normalizing. +Normalize Logo -[Check out the demo](http://necolas.github.com/normalize.css/demo.html) +> A modern alternative to CSS resets -What does it do? ------------ +[![npm][npm-image]][npm-url] [![license][license-image]][license-url] +[![changelog][changelog-image]][changelog-url] +[![gitter][gitter-image]][gitter-url] + + +**NPM** + +```sh +npm install --save normalize.css +``` + +**CDN** + +See https://yarnpkg.com/en/package/normalize.css + +**Download** + +See https://necolas.github.io/normalize.css/latest/normalize.css + + +## 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. +* Improves usability with subtle modifications. * Explains what code does using detailed comments. -How to use it ------------ -Normalize.css is intended to be used as an alternative to CSS resets. +## Browser support + +* Chrome +* Edge +* Firefox ESR+ +* Internet Explorer 10+ +* Safari 8+ +* Opera + + +## Extended details and known issues + +Additional detail and explanation of the esoteric parts of normalize.css. + +#### `pre, code, kbd, samp` + +The `font-family: monospace, monospace` hack fixes the inheritance and scaling +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](https://gist.github.com/413930). + +#### `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 suggested that you read through the `normalize.css` file and customise it to meet the design requirements of a project rather including it as a "black box". +It is recommended that you do not style checkbox and radio inputs as Firefox's +implementation does not respect box-sizing, padding, or width. -If you prefer to use a different CSS formatting style, consider using a tool like [Procssor](http://procssor.com/). +#### `[type="number"]` -If you would like to minify the file, you can use a tool like this [online CSS compressor using YUI Compressor](http://www.refresh-sf.com/yui/) or perform the minification as part of your build process. +Certain font size values applied to number inputs cause the cursor style of the +decrement button to change from `default` to `text`. -Browser support ------------ +#### `[type="search"]` -* Google Chrome -* Mozilla Firefox 3+ -* Apple Safari 4+ -* Opera 10+ -* Internet Explorer 6+ +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 +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). -License ------------ +## Contributing -Public domain +Please read the [contribution guidelines](CONTRIBUTING.md) in order to make the +contribution process easy and effective for everyone involved. -Acknowledgements ------------- -Normalize.css is a project by [Nicolas Gallagher](http://github.com/necolas) and [Jonathan Neal](http://github.com/jonathantneal). +[changelog-image]: https://img.shields.io/badge/changelog-md-blue.svg?style=flat-square +[changelog-url]: CHANGELOG.md +[license-image]: https://img.shields.io/npm/l/normalize.css.svg?style=flat-square +[license-url]: LICENSE.md +[npm-image]: https://img.shields.io/npm/v/normalize.css.svg?style=flat-square +[npm-url]: https://www.npmjs.com/package/normalize.css +[gitter-image]: https://img.shields.io/badge/chat-gitter-blue.svg?style=flat-square +[gitter-url]: https://gitter.im/necolas/normalize.css diff --git a/demo.html b/demo.html deleted file mode 100644 index c75e4b96e..000000000 --- a/demo.html +++ /dev/null @@ -1,350 +0,0 @@ - - - - - - Normalize CSS - - - - - -

Heading 1

-

Heading 2

-

Heading 3

-

Heading 4

-
Heading 5
-
Heading 6
- -
-

Heading 1 (in section)

-

Heading 2 (in section)

-

Heading 3 (in section)

-

Heading 4 (in section)

-
Heading 5 (in section)
-
Heading 6 (in section)
-
- -
-

Heading 1 (in article)

-

Heading 2 (in article)

-

Heading 3 (in article)

-

Heading 4 (in article)

-
Heading 5 (in article)
-
Heading 6 (in article)
-
- -
-
-

Heading 1 (in hgroup)

-

Heading 2 (in hgroup)

-
- -
- -

Text-level semantics

- - - -

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

-

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

- -
Address: somewhere, world
- -

- The a element example
- The abbr element and abbr element with title examples
- The b element example
- The cite element example
- The code element example
- The del element example
- The dfn element and dfn element with title examples
- The em element example
- The i element example
- The img element example
- The ins element example
- The kbd element example
- The mark element example
- The q element inside a q element example
- The s element example
- The samp element example
- The small element example
- The span element example
- The strong element example
- The sub element example
- The sup element example
- The var element example
- The u element example -

- -

Embedded content

- -

audio

- - - - -

img

- - - - -

svg

- - - - - -

video

- - - - -

Interactive content

- -

details / summary

-
- More info -

Additional information

-
    -
  • Point 1
  • -
  • Point 2
  • -
-
- -

Grouping content

- -

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

- -

pre

- -
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et me.
- -
<html>
-    <head>
-    </head>
-    <body>
-        <div class="main"> <div>
-    </body>
-</html>
- -

blockquote

- -
-

Some sort of famous witty quote marked up with a <blockquote> and a child <p> element.

-
- -
Even better philosophical quote marked up with just a <blockquote> element.
- -

ordered list

- -
    -
  1. list item 1
  2. -
  3. list item 1 -
      -
    1. list item 2
    2. -
    3. list item 2 -
        -
      1. list item 3
      2. -
      3. list item 3
      4. -
      -
    4. -
    5. list item 2
    6. -
    7. list item 2
    8. -
    -
  4. -
  5. list item 1
  6. -
  7. list item 1
  8. -
- -

unordered list

- -
    -
  • list item 1
  • -
  • list item 1 -
      -
    • list item 2
    • -
    • list item 2 -
        -
      • list item 3
      • -
      • list item 3
      • -
      -
    • -
    • list item 2
    • -
    • list item 2
    • -
    -
  • -
  • list item 1
  • -
  • list item 1
  • -
- -

description list

- -
-
Description name
-
Description value
-
Description name
-
Description value
-
Description value
-
Description name
-
Description name
-
Description value
-
- -

figure

- -
- -
Figcaption content
-
- -

Tabular data

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- -

Forms

- -
-
- Inputs as descendents of labels (form legend). This doubles up as a long legend that can test word wrapping. -

-

-

-

-

-

-

- -

-

-

-

- -

-

-
- -
- Inputs as siblings of labels -

-

-

-

-

-

-

-

- -

-

-

-

- -

-

-
- -
- Clickable inputs and buttons -

-

-

-

-

- - -

-

-

-

-
- -
- box-sizing tests -
-
-
-
-
- -
-
-
-
-
-
-
-
- -
-
- -
-
- -
-
-
-
- -
-
-
-
-
- - - diff --git a/normalize.css b/normalize.css index 4474dee25..192eb9ce4 100644 --- a/normalize.css +++ b/normalize.css @@ -1,504 +1,349 @@ -/*! normalize.css 2012-03-11T12:53 UTC - http://github.com/necolas/normalize.css */ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ -/* ============================================================================= - HTML5 display definitions +/* Document ========================================================================== */ -/* - * Corrects block display not defined in IE6/7/8/9 & FF3 - */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -nav, -section, -summary { - display: block; -} - -/* - * Corrects inline-block display not defined in IE6/7/8/9 & FF3 - */ - -audio, -canvas, -video { - display: inline-block; - *display: inline; - *zoom: 1; -} - -/* - * Prevents modern browsers from displaying 'audio' without controls - * Remove excess height in iOS5 devices +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. */ -audio:not([controls]) { - display: none; - height: 0; -} - -/* - * Addresses styling for 'hidden' attribute not present in IE7/8/9, FF3, S4 - * Known issue: no IE6 support - */ - -[hidden] { - display: none; +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ } - -/* ============================================================================= - Base +/* Sections ========================================================================== */ -/* - * 1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units - * http://clagnut.com/blog/348/#c790 - * 2. Prevents iOS text size adjust after orientation change, without disabling user zoom - * www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/ +/** + * Remove the margin in all browsers. */ -html { - font-size: 100%; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ - -ms-text-size-adjust: 100%; /* 2 */ +body { + margin: 0; } -/* - * Addresses font-family inconsistency between 'textarea' and other form elements. +/** + * Render the `main` element consistently in IE. */ -html, -button, -input, -select, -textarea { - font-family: sans-serif; +main { + display: block; } -/* - * Addresses margins handled incorrectly in IE6/7 +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. */ -body { - margin: 0; +h1 { + font-size: 2em; + margin: 0.67em 0; } - -/* ============================================================================= - Links +/* Grouping content ========================================================================== */ -/* - * Addresses outline displayed oddly in Chrome +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. */ -a:focus { - outline: thin dotted; +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ } -/* - * Improves readability when focused and also mouse hovered in all browsers - * people.opera.com/patrickl/experiments/keyboard/test +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. */ -a:hover, -a:active { - outline: 0; +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ } - -/* ============================================================================= - Typography +/* Text-level semantics ========================================================================== */ -/* - * Addresses font sizes and margins set differently in IE6/7 - * Addresses font sizes within 'section' and 'article' in FF4+, Chrome, S5 +/** + * Remove the gray background on active links in IE 10. */ -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -h2 { - font-size: 1.5em; - margin: 0.83em 0; -} - -h3 { - font-size: 1.17em; - margin: 1em 0; -} - -h4 { - font-size: 1em; - margin: 1.33em 0; -} - -h5 { - font-size: 0.83em; - margin: 1.67em 0; -} - -h6 { - font-size: 0.75em; - margin: 2.33em 0; +a { + background-color: transparent; } -/* - * Addresses styling not present in IE7/8/9, S5, Chrome +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. */ abbr[title] { - border-bottom: 1px dotted; + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ } -/* - * Addresses style set to 'bolder' in FF3+, S4/5, Chrome -*/ +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ b, strong { - font-weight: bold; -} - -blockquote { - margin: 1em 40px; -} - -/* - * Addresses styling not present in S5, Chrome - */ - -dfn { - font-style: italic; -} - -/* - * Addresses styling not present in IE6/7/8/9 - */ - -mark { - background: #ff0; - color: #000; -} - -/* - * Addresses margins set differently in IE6/7 - */ - -p, -pre { - margin: 1em 0; + font-weight: bolder; } -/* - * Corrects font family set oddly in IE6, S4/5, Chrome - * en.wikipedia.org/wiki/User:Davidgothberg/Test59 +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. */ -pre, code, kbd, samp { - font-family: monospace, serif; - _font-family: 'courier new', monospace; - font-size: 1em; + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ } -/* - * Improves readability of pre-formatted text in all browsers +/** + * Add the correct font size in all browsers. */ -pre { - white-space: pre; - white-space: pre-wrap; - word-wrap: break-word; -} - -/* - * 1. Addresses CSS quotes not supported in IE6/7 - * 2. Addresses quote property not supported in S4 - */ - -/* 1 */ - -q { - quotes: none; -} - -/* 2 */ - -q:before, -q:after { - content: ''; - content: none; -} - small { - font-size: 75%; + font-size: 80%; } -/* - * Prevents sub and sup affecting line-height in all browsers - * gist.github.com/413930 +/** + * 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; -} - -sup { - top: -0.5em; + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; } sub { - bottom: -0.25em; + bottom: -0.25em; } +sup { + top: -0.5em; +} -/* ============================================================================= - Lists +/* Embedded content ========================================================================== */ -/* - * Addresses margins set differently in IE6/7 +/** + * Remove the border on images inside links in IE 10. */ -dl, -menu, -ol, -ul { - margin: 1em 0; +img { + border-style: none; } -dd { - margin: 0 0 0 40px; -} +/* Forms + ========================================================================== */ -/* - * Addresses paddings set differently in IE6/7 +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. */ -menu, -ol, -ul { - padding: 0 0 0 40px; +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ } -/* - * Corrects list images handled incorrectly in IE7 +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. */ -nav ul, -nav ol { - list-style: none; - list-style-image: none; +button, +input { /* 1 */ + overflow: visible; } - -/* ============================================================================= - Embedded content - ========================================================================== */ - -/* - * 1. Removes border when inside 'a' element in IE6/7/8/9, FF3 - * 2. Improves image quality when scaled in IE7 - * code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. */ -img { - border: 0; /* 1 */ - -ms-interpolation-mode: bicubic; /* 2 */ +button, +select { /* 1 */ + text-transform: none; } -/* - * Corrects overflow displayed oddly in IE9 +/** + * Correct the inability to style clickable types in iOS and Safari. */ -svg:not(:root) { - overflow: hidden; +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; } - -/* ============================================================================= - Figures - ========================================================================== */ - -/* - * Addresses margin not present in IE6/7/8/9, S5, O11 +/** + * Remove the inner border and padding in Firefox. */ -figure { - margin: 0; +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; } - -/* ============================================================================= - Forms - ========================================================================== */ - -/* - * Corrects margin displayed oddly in IE6/7 +/** + * Restore the focus styles unset by the previous rule. */ -form { - margin: 0; +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; } -/* - * Define consistent border, margin, and padding +/** + * Correct the padding in Firefox. */ fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; + padding: 0.35em 0.75em 0.625em; } -/* - * 1. Corrects color not being inherited in IE6/7/8/9 - * 2. Corrects text not wrapping in FF3 - * 3. Corrects alignment displayed oddly in IE6/7 +/** + * 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 { - border: 0; /* 1 */ - padding: 0; - white-space: normal; /* 2 */ - *margin-left: -7px; /* 3 */ + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ } -/* - * 1. Corrects font size not being inherited in all browsers - * 2. Addresses margins set differently in IE6/7, FF3+, S5, Chrome - * 3. Improves appearance and consistency in all browsers +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. */ -button, -input, -select, -textarea { - font-size: 100%; /* 1 */ - margin: 0; /* 2 */ - vertical-align: baseline; /* 3 */ - *vertical-align: middle; /* 3 */ +progress { + vertical-align: baseline; } -/* - * Addresses FF3/4 setting line-height on 'input' using !important in the UA stylesheet +/** + * Remove the default vertical scrollbar in IE 10+. */ -button, -input { - line-height: normal; /* 1 */ +textarea { + overflow: auto; } -/* - * 1. Improves usability and consistency of cursor style between image-type 'input' and others - * 2. Corrects inability to style clickable 'input' types in iOS - * 3. Removes inner spacing in IE7 without affecting normal text inputs - * Known issue: inner spacing remains in IE6 +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. */ -button, -input[type="button"], -input[type="reset"], -input[type="submit"] { - cursor: pointer; /* 1 */ - -webkit-appearance: button; /* 2 */ - *overflow: visible; /* 3 */ +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ } -/* - * Re-set default cursor for disabled elements +/** + * Correct the cursor style of increment and decrement buttons in Chrome. */ -button[disabled], -input[disabled] { - cursor: default; +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; } -/* - * 1. Addresses box sizing set to content-box in IE8/9 - * 2. Removes excess padding in IE8/9 - * 3. Removes excess padding in IE7 - Known issue: excess padding remains in IE6 +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. */ -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ - *height: 13px; /* 3 */ - *width: 13px; /* 3 */ +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ } -/* - * 1. Addresses appearance set to searchfield in S5, Chrome - * 2. Addresses box-sizing set to border-box in S5, Chrome (include -moz to future-proof) +/** + * Remove the inner padding in Chrome and Safari on macOS. */ -input[type="search"] { - -webkit-appearance: textfield; /* 1 */ - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; /* 2 */ - box-sizing: content-box; +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } -/* - * Removes inner padding and search cancel button in S5, Chrome on OS X +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. */ -input[type="search"]::-webkit-search-decoration, -input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ } +/* Interactive + ========================================================================== */ + /* - * Removes inner padding and border in FF3+ - * www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/ + * Add the correct display in Edge, IE 10+, and Firefox. */ -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; +details { + display: block; } /* - * 1. Removes default vertical scrollbar in IE6/7/8/9 - * 2. Improves readability and alignment in all browsers + * Add the correct display in all browsers. */ -textarea { - overflow: auto; /* 1 */ - vertical-align: top; /* 2 */ +summary { + display: list-item; } - -/* ============================================================================= - Tables +/* Misc ========================================================================== */ -/* - * Remove most spacing between table cells +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. */ -table { - border-collapse: collapse; - border-spacing: 0; +[hidden] { + display: none; } diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..7f8590b4d --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5 @@ +{ + "name": "normalize.css", + "version": "8.0.1", + "lockfileVersion": 1 +} diff --git a/package.json b/package.json new file mode 100644 index 000000000..668bda8a4 --- /dev/null +++ b/package.json @@ -0,0 +1,15 @@ +{ + "name": "normalize.css", + "version": "8.0.1", + "description": "A modern alternative to CSS resets", + "main": "normalize.css", + "style": "normalize.css", + "files": [ + "LICENSE.md", + "normalize.css" + ], + "repository": "necolas/normalize.css", + "license": "MIT", + "bugs": "https://github.com/necolas/normalize.css/issues", + "homepage": "https://necolas.github.io/normalize.css" +} diff --git a/test.html b/test.html new file mode 100644 index 000000000..615b08326 --- /dev/null +++ b/test.html @@ -0,0 +1,441 @@ + + + + +Normalize CSS: UI tests + + + + +
+ . + +

Normalize.css: UI tests

+ +

html

+

should have a line height of 1.15

+
+ abcdefghijklmnopqrstuvwxyz +
+ +

body

+

should have no margin (opinionated)

+
+ (there should be no red background visible on this page) +
+ +

+ article, aside, details, + figure, figcaption, footer, + header, main, + menu, nav, section, + summary +

+

should render as block

+
+
article
+ +
+ summary + details +
+
+ figure +
figcaption
+
+
footer
+
header
+
main
+
  • menu
  • + +
    section
    +
    + +

    audio, canvas, progress, video

    +

    should render as inline-block and baseline-aligned

    +
    + + canvas + progress + +
    + +

    audio:not([controls]), template, [hidden]

    +

    should not display

    +
    + + + +
    + +

    a

    +

    should have a transparent background when active

    + +

    should not skip underlines

    + +

    should not have a focus outline when both focused and hovered (opinionated)

    + + +

    abbr[title]

    +

    should have a dotted underline with a solid underline as a fallback

    +
    + abbr +
    + +

    b, strong

    +

    should have bolder font-weight

    +
    + b + strong +
    + +

    dfn

    +

    should have italic font-style

    +
    + dfn +
    + +

    h1

    +

    should not change size within an article

    +
    +

    Heading (control)

    +
    +

    Heading (in article)

    +
    +
    +

    should not change size within a section

    +
    +

    Heading (control)

    +
    +

    Heading (in section)

    +
    +
    + +

    mark

    +

    should have a yellow background

    +
    + mark +
    + +

    small

    +

    should render equally small in all browsers

    +
    + control. small. +
    + +

    sub and sup

    +

    should not affect a line's visual line-height

    +
    +

    control.

    +

    control. sub.

    +

    control. sup.

    +
    + +

    img

    +

    should not have a border when wrapped in an anchor

    + + +

    svg

    +

    should not overflow

    +
    + + + +
    + +

    code, kbd, pre, samp

    +

    should render text at the same absolute size as normal text

    +
    + span: abcdefghijklmnopqrstuvwxyz.
    + code: abcdefghijklmnopqrstuvwxyz.
    + kbd: abcdefghijklmnopqrstuvwxyz.
    + samp: abcdefghijklmnopqrstuvwxyz. +
    pre: abcdefghijklmnopqrstuvwxyz.
    +
    + +

    figure

    +

    should have margins

    +
    +
    + +
    +
    + +

    hr

    +

    should have a content-box box model

    +
    +
    +
    + +

    button, input, optgroup, select, textarea

    +

    should inherit font-size from ancestor

    +
    +
    +
    +
    + +
    +

    should not have margins

    +
    + + + + + +
    + +

    button

    +

    should have visible overflow

    +
    + + +
    + +

    button, select

    +

    should not inherit text-transform

    +
    + + +
    + +

    button and button-style input

    +

    should be styleable

    +
    + +

    +

    +

    +

    +

    +

    +
    + +

    disabled button and input

    +

    should have default cursor style

    +
    +

    +

    +

    +

    +
    + +

    button, input

    +

    should not have extra inner padding in Firefox

    +
    + +

    +

    +

    +

    +
    + +

    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

    +
    + +
    + +

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

    +

    should have a border-box box model

    +
    + + + +
    +

    should not have padding

    +
    + + +
    + +

    [type="number"]

    +

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

    +
    + +
    + +

    [type="search"]

    +

    should be styleable

    +
    + +
    +

    should reference inherited color

    +
    + +
    + +