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..3c3629e64 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +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 index 306f2fa91..922f6e38c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,139 @@ -== HEAD +# Changes to normalize.css -== 2.1.0 (January 21, 2013) +### 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. @@ -9,11 +142,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. @@ -22,19 +155,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 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 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 6d8c32aae..71954f230 100644 --- a/README.md +++ b/README.md @@ -1,50 +1,102 @@ -# normalize.css v2.1.0 +# 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/2.1.0/test.html) +> A modern alternative to CSS resets -[Legacy browser support is available in v1](https://github.com/necolas/normalize.css/tree/v1) +[![npm][npm-image]][npm-url] [![license][license-image]][license-url] +[![changelog][changelog-image]][changelog-url] +[![gitter][gitter-image]][gitter-url] -## Install -Download from the [project page](http://necolas.github.com/normalize.css/). +**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 -Install with [Bower](http://twitter.github.com/bower/): `bower install --save 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 -It's suggested that you read the `normalize.css` file and consider customising -it to meet your needs. Alternatively, include the file in your project and -override the defaults later in your CSS. +* Chrome +* Edge +* Firefox ESR+ +* Internet Explorer 10+ +* Safari 8+ +* Opera -## Browser support -* Google Chrome -* Mozilla Firefox 4+ -* Apple Safari 5+ -* Opera 12+ -* Internet Explorer 8+ +## 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 recommended that you do not style checkbox and radio inputs as Firefox's +implementation does not respect box-sizing, padding, or width. + +#### `[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 +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). -## Contribute +## Contributing -Please read my [issue -guidelines](https://github.com/necolas/issue-guidelines). +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](https://github.com/necolas), -co-created with [Jonathan Neal](https://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/component.json b/component.json deleted file mode 100644 index 006d0dc95..000000000 --- a/component.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "normalize-css", - "version": "2.1.0", - "author": "Nicolas Gallagher", - "homepage": "http://necolas.github.com/normalize.css/", - "styles": ["normalize.css"], - "repository": { - "type": "git", - "url": "https://github.com/necolas/normalize.css.git" - }, - "licenses": [{ - "type": "MIT", - "url": "http://opensource.org/licenses/MIT" - }] -} diff --git a/normalize.css b/normalize.css index a9c6f52f0..192eb9ce4 100644 --- a/normalize.css +++ b/normalize.css @@ -1,396 +1,349 @@ -/*! normalize.css v2.1.0 | MIT License | git.io/normalize */ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ -/* ========================================================================== - HTML5 display definitions +/* Document ========================================================================== */ /** - * Correct `block` display not defined in IE 8/9. - */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -nav, -section, -summary { - display: block; -} - -/** - * Correct `inline-block` display not defined in IE 8/9. + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. */ -audio, -canvas, -video { - display: inline-block; +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ } -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ - -audio:not([controls]) { - display: none; - height: 0; -} +/* Sections + ========================================================================== */ /** - * Address styling not present in IE 8/9. + * Remove the margin in all browsers. */ -[hidden] { - display: none; +body { + margin: 0; } -/* ========================================================================== - Base - ========================================================================== */ - /** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. + * Render the `main` element consistently in IE. */ -html { - font-family: sans-serif; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ - -ms-text-size-adjust: 100%; /* 2 */ +main { + display: block; } /** - * Remove default margin. + * 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 ========================================================================== */ /** - * Address `outline` inconsistency between Chrome and other browsers. + * 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 */ } /** - * Improve readability when focused and also mouse hovered in all browsers. + * 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 */ } -/* ========================================================================== - Typography +/* Text-level semantics ========================================================================== */ /** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari 5, and Chrome. + * Remove the gray background on active links in IE 10. */ -h1 { - font-size: 2em; - margin: 0.67em 0; +a { + background-color: transparent; } /** - * Address styling not present in IE 8/9, Safari 5, and 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 */ } /** - * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. + * Add the correct font weight in Chrome, Edge, and Safari. */ b, strong { - font-weight: bold; + font-weight: bolder; } /** - * Address styling not present in Safari 5 and Chrome. + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. */ -dfn { - font-style: italic; +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ } /** - * Address differences between Firefox and other browsers. + * Add the correct font size in all browsers. */ -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; +small { + font-size: 80%; } /** - * Address styling not present in IE 8/9. + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. */ -mark { - background: #ff0; - color: #000; +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; } -/** - * Correct font family set oddly in Safari 5 and Chrome. - */ +sub { + bottom: -0.25em; +} -code, -kbd, -pre, -samp { - font-family: monospace, serif; - font-size: 1em; +sup { + top: -0.5em; } +/* Embedded content + ========================================================================== */ + /** - * Improve readability of pre-formatted text in all browsers. + * Remove the border on images inside links in IE 10. */ -pre { - white-space: pre-wrap; +img { + border-style: none; } +/* Forms + ========================================================================== */ + /** - * Set consistent quote types. + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. */ -q { - quotes: "\201C" "\201D" "\2018" "\2019"; +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ } /** - * Address inconsistent and variable font size in all browsers. + * Show the overflow in IE. + * 1. Show the overflow in Edge. */ -small { - font-size: 80%; +button, +input { /* 1 */ + overflow: visible; } /** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. */ -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; +button, +select { /* 1 */ + text-transform: none; } -/* ========================================================================== - Embedded content - ========================================================================== */ - /** - * Remove border when inside `a` element in IE 8/9. + * Correct the inability to style clickable types in iOS and Safari. */ -img { - border: 0; +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; } /** - * Correct overflow displayed oddly in IE 9. + * Remove the inner border and padding in Firefox. */ -svg:not(:root) { - overflow: hidden; +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; } -/* ========================================================================== - Figures - ========================================================================== */ - /** - * Address margin not present in IE 8/9 and Safari 5. + * Restore the focus styles unset by the previous rule. */ -figure { - margin: 0; +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; } -/* ========================================================================== - Forms - ========================================================================== */ - /** - * 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. Correct `color` not being inherited in IE 8/9. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. + * 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; /* 2 */ + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ } /** - * 1. Correct font family not being inherited in all browsers. - * 2. Correct font size not being inherited in all browsers. - * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. + * Add the correct vertical alignment in Chrome, Firefox, and Opera. */ -button, -input, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 2 */ - margin: 0; /* 3 */ +progress { + vertical-align: baseline; } /** - * Address Firefox 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; +textarea { + overflow: auto; } /** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. - * Correct `select` style inheritance in Firefox 4+ and Opera. + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. */ -button, -select { - text-transform: none; +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ } /** - * 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. + * Correct the cursor style of increment and decrement buttons in Chrome. */ -button, -html input[type="button"], /* 1 */ -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; /* 2 */ - cursor: pointer; /* 3 */ +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; } /** - * Re-set default cursor for disabled elements. + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. */ -button[disabled], -html input[disabled] { - cursor: default; +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ } /** - * 1. Address box sizing set to `content-box` in IE 8/9. - * 2. Remove excess padding in IE 8/9. + * Remove the inner padding in Chrome and Safari on macOS. */ -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } /** - * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome - * (include `-moz` to future-proof). + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. */ -input[type="search"] { - -webkit-appearance: textfield; /* 1 */ - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; /* 2 */ - box-sizing: content-box; +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ } -/** - * Remove inner padding and search cancel button in Safari 5 and Chrome - * on OS X. +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. */ -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; +details { + display: block; } -/** - * Remove inner padding and border in Firefox 4+. +/* + * Add the correct display in all browsers. */ -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; +summary { + display: list-item; } +/* Misc + ========================================================================== */ + /** - * 1. Remove default vertical scrollbar in IE 8/9. - * 2. Improve readability and alignment in all browsers. + * Add the correct display in IE 10+. */ -textarea { - overflow: auto; /* 1 */ - vertical-align: top; /* 2 */ +template { + display: none; } -/* ========================================================================== - Tables - ========================================================================== */ - /** - * Remove most spacing between table cells. + * 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 index d7103c49b..615b08326 100644 --- a/test.html +++ b/test.html @@ -1,354 +1,441 @@ - - - - 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 u element example
- The var 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 -
-
-
-
-
- -
-
-
-
-
-
-
-
- -
-
- -
-
- -
-
-
-
- -
-
-
-
-
- - - + + +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

    +
    + +
    + +