# PostCSS Normalize [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS" width="90" height="90" align="right">][postcss] [![NPM Version][npm-img]][npm-url] [![Build Status][cli-img]][cli-url] [![Support Chat][git-img]][git-url] [PostCSS Normalize] lets you use the parts of [normalize.css] you need from your [browserslist]. Use `@import-normalize` to determine where [normalize.css] rules should be included. Duplicate `@import-normalize` rules will be removed. See all the [Options] for more information. ```pcss @import-normalize; ``` Results when [browserslist] is `last 3 versions`: ```css /** * Add the correct display in IE 9-. */ audio, video { display: inline-block; } /** * Remove the border on images inside links in IE 10-. */ img { border-style: none; } ``` Results when [browserslist] is `last 2 versions`: ```css /** * Remove the border on images inside links in IE 10-. */ img { border-style: none; } ``` --- [PostCSS Normalize] uses the non-opinionated version of [normalize.css]. --- ## Usage Add [PostCSS Normalize] to your project: ```bash npm install postcss-normalize --save-dev ``` Add a [browserslist] entry in `package.json`: ```json { "browserslist": "last 2 versions" } ``` Use [PostCSS Normalize] to process your CSS: ```js import postcssNormalize from 'postcss-normalize'; postcssNormalize.process(YOUR_CSS /*, processOptions, pluginOptions */); ``` Or use it as a [PostCSS] plugin: ```js import postcss from 'postcss'; import postcssNormalize from 'postcss-normalize'; postcss([ postcssNormalize(/* pluginOptions */) ]).process(YOUR_CSS /*, processOptions */); ``` [PostCSS Normalize] runs in all Node environments, with special instructions for: | [Node](INSTALL.md#node) | [PostCSS CLI](INSTALL.md#postcss-cli) | [Webpack](INSTALL.md#webpack) | [Create React App](INSTALL.md#create-react-app) | [Gulp](INSTALL.md#gulp) | [Grunt](INSTALL.md#grunt) | | --- | --- | --- | --- | --- | --- | ## Options ### allowDuplicates Allows you to insert multiple, duplicate insertions of [normalize.css] rules. The default is `false`. ```js postcssNormalize({ allowDuplicates: true }); ``` ### browsers Allows you to override of the project’s [browserslist] for [PostCSS Normalize]. The default is `false`. ```js postcssNormalize({ browsers: 'last 2 versions' }); ``` ### forceImport Allows you to force an insertion of [normalize.css] rules at the beginning of the CSS file if no insertion point is specified. The default is `false`. ```js postcssNormalize({ forceImport: true }); ``` [cli-img]: https://img.shields.io/travis/csstools/postcss-normalize.svg [cli-url]: https://travis-ci.org/csstools/postcss-normalize [git-img]: https://img.shields.io/badge/support-chat-blue.svg [git-url]: https://gitter.im/postcss/postcss [npm-img]: https://img.shields.io/npm/v/postcss-normalize.svg [npm-url]: https://www.npmjs.com/package/postcss-normalize [browserslist]: http://browserl.ist/ [normalize.css]: https://github.com/csstools/normalize.css [Options]: #options [PostCSS]: https://github.com/postcss/postcss [PostCSS Normalize]: https://github.com/csstools/postcss-normalize