Use the parts of normalize.css (or sanitize.css) you need from your browserslist

License: CC0-1.0

Language: CSS

PostCSS Normalize PostCSS

NPM Version Build Status Support Chat

PostCSS Normalize lets you use the parts of normalize.css or sanitize.css that you need from your browserslist.

@import "normalize.css";
@import "sanitize.css";

PostCSS Normalize uses a non-opinionated version of normalize.css, but an opinionated version may also be used.

@import "normalize.css/opinionated.css";


Here is a sample of what normalize.css looks like when the browserslist is ie >= 9:

 * Add the correct display in IE 9-.

video {
  display: inline-block;

 * Remove the border on images inside links in IE 10-.

img {
  border-style: none;

And here is the same sample when the browserslist is ie >= 10:

 * Remove the border on images inside links in IE 10-.

img {
  border-style: none;


Add PostCSS Normalize to your project:

npm install postcss-normalize --save-dev

Add a browserslist entry in package.json:

  "browserslist": "last 2 versions"

Use PostCSS Normalize to process your CSS:

const postcssNormalize = require('postcss-normalize')

postcssNormalize.process(YOUR_CSS /*, processOptions, pluginOptions */)

Or use it as a PostCSS plugin:

const postcss = require('postcss')
const postcssNormalize = require('postcss-normalize')

  postcssNormalize(/* pluginOptions */)
]).process(YOUR_CSS /*, processOptions */)

PostCSS Normalize runs in all Node environments, with special instructions for:

Node PostCSS CLI Webpack Create React App Gulp Grunt

PostCSS Import Usage

PostCSS Normalize includes a postcssImport function to configure PostCSS Import and allow you to continue using the @import syntax.

const postcss = require('postcss')
const postcssImport = require('postcss-import')
const postcssNormalize = require('postcss-normalize')

      /* pluginOptions (for PostCSS Normalize) */
      /* pluginOptions (for PostCSS Import) */
]) // now you can use @import "normalize.css", etc. again

Alternatively, use @import-normalize or @import-sanitize to avoid conflicts with @import transforms.

@import-normalize "opinionated.css";



The allowDuplicates option determines whether multiple, duplicate insertions of CSS libraries are allowed. By default, duplicate libraries are omitted.

postcssNormalize({ allowDuplicates: true })


The forceImport option defines CSS libraries that will be inserted at the beginning of the CSS file. Unless overriden by allowDuplicates, duplicate CSS libraries would still be omitted.

postcssNormalize({ forceImport: true })

Specific CSS libraries may be defined.

  forceImport: 'sanitize.css'


The browsers option defines an override of the project’s browserslist for PostCSS Normalize. This option should be avoided in leui of a browserslist file.

postcssNormalize({ browsers: 'last 2 versions' })

CSS Libraries

PostCSS Normalize can include normalize.css or sanitize.css and configure either with the following combinations:

@import "normalize"; /* also, @import "normalize.css" */
@import "normalize/opinionated"; /* also, @import "normalize.css/opinionated.css", @import "normalize.css/*" */
@import "sanitize"; /* also, @import "sanitize.css" */
@import "sanitize/forms"; /* also, @import "sanitize.css/forms.css" */
@import "sanitize/typography"; /* also, @import "sanitize.css/typography.css" */
@import "sanitize/page"; /* also, @import "sanitize.css/page.css" */
@import "sanitize/*"; /* also, @import "sanitize.css/*" (sanitize + all additions) */

Project Statistics

Sourcerank 17
Repository Size 82 KB
Stars 546
Forks 19
Watchers 11
Open issues 2
Dependencies 15
Contributors 7
Tags 5
Last updated
Last pushed

Top Contributors See all

Jonathan Neal Sean King Efremov Alexey Shaun Stanworth Frank Mecklenburg Hrusikesh Panda Jonathan Chan

Packages Referencing this Repo

Use the parts of normalize.css you need from your browserslist
Latest release 7.0.1 - Updated - 546 stars

Recent Tags See all

v0.3.0 May 26, 2016
v0.2.0 March 28, 2016
v0.1.2 November 19, 2015
v0.1.1 August 17, 2015
v0.1.0 July 04, 2015

Something wrong with this page? Make a suggestion

Last synced: 2019-08-28 10:13:31 UTC

Login to resync this repository