{
  "_args": [
    [
      {
        "raw": "autoprefixer@^7.0.0",
        "scope": null,
        "escapedName": "autoprefixer",
        "name": "autoprefixer",
        "rawSpec": "^7.0.0",
        "spec": ">=7.0.0 <8.0.0",
        "type": "range"
      },
      "/Users/sindresorhus/dev/sublime-autoprefixer"
    ]
  ],
  "_from": "autoprefixer@>=7.0.0 <8.0.0",
  "_id": "autoprefixer@7.0.0",
  "_inCache": true,
  "_location": "/autoprefixer",
  "_nodeVersion": "7.10.0",
  "_npmOperationalInternal": {
    "host": "packages-18-east.internal.npmjs.com",
    "tmp": "tmp/autoprefixer-7.0.0.tgz_1494080260643_0.2758033892605454"
  },
  "_npmUser": {
    "name": "ai",
    "email": "andrey@sitnik.ru"
  },
  "_npmVersion": "4.2.0",
  "_phantomChildren": {},
  "_requested": {
    "raw": "autoprefixer@^7.0.0",
    "scope": null,
    "escapedName": "autoprefixer",
    "name": "autoprefixer",
    "rawSpec": "^7.0.0",
    "spec": ">=7.0.0 <8.0.0",
    "type": "range"
  },
  "_requiredBy": [
    "/"
  ],
  "_resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.0.0.tgz",
  "_shasum": "734cc4f56ec964fcd4b6048e028b60c4226e7fdd",
  "_shrinkwrap": null,
  "_spec": "autoprefixer@^7.0.0",
  "_where": "/Users/sindresorhus/dev/sublime-autoprefixer",
  "author": {
    "name": "Andrey Sitnik",
    "email": "andrey@sitnik.ru"
  },
  "babel": {
    "presets": [
      [
        "env",
        {
          "targets": {
            "browsers": "last 1 version",
            "node": 4
          },
          "loose": true
        }
      ]
    ],
    "plugins": [
      [
        "transform-class-properties",
        {
          "spec": true
        }
      ]
    ]
  },
  "bugs": {
    "url": "https://github.com/postcss/autoprefixer/issues"
  },
  "contributors": [
    {
      "name": "Aaron",
      "email": "me@aaron.md"
    },
    {
      "name": "Adam Lynch",
      "email": "contact@adamlynch.ie"
    },
    {
      "name": "Adonis K",
      "email": "aklp08@gmail.com"
    },
    {
      "name": "Adriaan",
      "email": "https://github.com/harianus"
    },
    {
      "name": "Aleksei Androsov",
      "email": "aandrosov@yandex-team.ru"
    },
    {
      "name": "Aleksey Shvayka",
      "email": "shvaikalesh@gmail.com"
    },
    {
      "name": "Aleks Hudochenkov",
      "email": "aleks@hudochenkov.com"
    },
    {
      "name": "Alexey Plutalov",
      "email": "demiazz.py@gmail.com"
    },
    {
      "name": "Anders Olsen Sandvik",
      "email": "https://github.com/Andersos"
    },
    {
      "name": "Andreas Lind",
      "email": "andreas@one.com"
    },
    {
      "name": "Andrew Rhoads"
    },
    {
      "name": "Andrey Deryabin",
      "email": "deriabin@gmail.com"
    },
    {
      "name": "Andrey Sitnik",
      "email": "andrey@sitnik.ru"
    },
    {
      "name": "Andrey Taritsyn",
      "email": "taritsyn@gmail.com"
    },
    {
      "name": "Andy Trevorah",
      "email": "a.trevorah@gmail.com"
    },
    {
      "name": "Anton Khlynovskiy",
      "email": "subzey@gmail.com"
    },
    {
      "name": "aruseni",
      "email": "aruseni.magiku@gmail.com"
    },
    {
      "name": "Ben Briggs",
      "email": "beneb.info@gmail.com"
    },
    {
      "name": "bernig",
      "email": "https://github.com/bernig"
    },
    {
      "name": "Bogdan Chadkin",
      "email": "trysound@yandex.ru"
    },
    {
      "name": "brainopia",
      "email": "brainopia@evilmartians.com"
    },
    {
      "name": "Brandon Mathis",
      "email": "brandon@imathis.com"
    },
    {
      "name": "Chad von Nau",
      "email": "chad@vonnau.com"
    },
    {
      "name": "Chi Vinh Le",
      "email": "vinh@wikiwi.io"
    },
    {
      "name": "Cory House",
      "email": "housecor@gmail.com"
    },
    {
      "name": "Cory Simmons",
      "email": "cory@mojotech.com"
    },
    {
      "name": "Craig Martin",
      "email": "https://github.com/craigmichaelmartin"
    },
    {
      "name": "Damon",
      "email": "motoxer4533@gmail.com"
    },
    {
      "name": "Daniel Garcia-Carrillo",
      "email": "garciacarrillo.daniel@gmail.com"
    },
    {
      "name": "Daniel Tschinder",
      "email": "daniel@tschinder.de"
    },
    {
      "name": "David Pike",
      "email": "david@evolution7.com.au"
    },
    {
      "name": "Denis Sokolov",
      "email": "denis@sokolov.cc"
    },
    {
      "name": "Dominik Porada",
      "email": "dominik@porada.co"
    },
    {
      "name": "Dominik Schilling",
      "email": "dominikschilling+git@gmail.com"
    },
    {
      "name": "dotch",
      "email": "ch.weiss@hotmail.de"
    },
    {
      "name": "Dmitry Semigradsky",
      "email": "semigradskyd@gmail.com"
    },
    {
      "name": "Efremov Alexey",
      "email": "lexich121@gmail.com"
    },
    {
      "name": "eitanr",
      "email": "eitanr@wix.com"
    },
    {
      "name": "Erik Sundahl",
      "email": "esundahl@gmail.com"
    },
    {
      "name": "Eugene Datsky",
      "email": "eugene@datsky.ru"
    },
    {
      "name": "Evilebot Tnawi",
      "email": "sheo13666q@gmail.com"
    },
    {
      "name": "Forrest York",
      "email": "https://github.com/badisa"
    },
    {
      "name": "Google Inc."
    },
    {
      "name": "Gregory Eremin",
      "email": "magnolia_fan@me.com"
    },
    {
      "name": "GU Yiling",
      "email": "justice360@gmail.com"
    },
    {
      "name": "Hallvord R. M. Steen",
      "email": "hallvord@hallvord.com"
    },
    {
      "name": "heady",
      "email": "https://github.com/heady"
    },
    {
      "name": "Iain Beeston",
      "email": "iain.beeston@gmail.com"
    },
    {
      "name": "Igor Adamenko",
      "email": "https://github.com/igoradamenko"
    },
    {
      "name": "Jack Moore",
      "email": "hello@jacklmoore.com"
    },
    {
      "name": "Jason Kuhrt",
      "email": "jasonkuhrt@me.com"
    },
    {
      "name": "Jeff Escalante",
      "email": "hello@jenius.me"
    },
    {
      "name": "Johannes J. Schmidt",
      "email": "schmidt@netzmerk.com"
    },
    {
      "name": "John Kreitlow",
      "email": "jkreitlow@deepfocus.net"
    },
    {
      "name": "Jonathan Ong",
      "email": "jonathanrichardong@gmail.com"
    },
    {
      "name": "Josh Gillies",
      "email": "github@joshgilli.es"
    },
    {
      "name": "jvdanilo",
      "email": "jvdanilo@gmail.com"
    },
    {
      "name": "Kieran",
      "email": "Kieranju@gmail.com"
    },
    {
      "name": "Kir Shatrov",
      "email": "shatrov@me.com"
    },
    {
      "name": "kizu",
      "email": "kizmarh@gmail.com"
    },
    {
      "name": "Leonya Khachaturov",
      "email": "leonidkhachaturov@gmail.com"
    },
    {
      "name": "Lovchikov Anton",
      "email": "besyanya@yandex.ru"
    },
    {
      "name": "L.T",
      "email": "ec.huyinghuan@gmail.com"
    },
    {
      "name": "Luciano Battagliero",
      "email": "lucianobattagliero+git@gmail.com"
    },
    {
      "name": "Luke Page",
      "email": "luke.a.page@gmail.com"
    },
    {
      "name": "martco",
      "email": "martco@gmail.com"
    },
    {
      "name": "Matt Smith",
      "email": "runner_28@hotmail.com"
    },
    {
      "name": "Maxime Thirouin",
      "email": "m@moox.io"
    },
    {
      "name": "Max Mechanic",
      "email": "max@philo.com"
    },
    {
      "name": "Michael Beil",
      "email": "michaelbeil@me.com"
    },
    {
      "name": "Michael Scott Hertzberg",
      "email": "mshertzberg@gmail.com"
    },
    {
      "name": "Michał Gołębiowski",
      "email": "m.goleb@gmail.com"
    },
    {
      "name": "Mikael Jorhult",
      "email": "mikael@jorhult.se"
    },
    {
      "name": "Morton Fox",
      "email": "github@qslw.com"
    },
    {
      "name": "mvasilkov",
      "email": "mvasilkov@gmail.com"
    },
    {
      "name": "Nick Howes",
      "email": "nick@nickhowes.co.uk"
    },
    {
      "name": "Nick Schonning",
      "email": "nschonni@gmail.com"
    },
    {
      "name": "nickspielgist",
      "email": "dev@nickspiel.me"
    },
    {
      "name": "Niels Dequeker",
      "email": "niels.dequeker@gmail.com"
    },
    {
      "name": "Nikolay Burlov",
      "email": "kohgpat@gmail.com"
    },
    {
      "name": "Paul Statezny",
      "email": "Paulstatezny@gmail.com"
    },
    {
      "name": "Peter Zotov",
      "email": "whitequark@whitequark.org"
    },
    {
      "name": "Rafael Silva",
      "email": "rafael@rafaelsilva.net"
    },
    {
      "name": "Ray Lehnhoff",
      "email": "raymond.lehnhoff@gmail.com"
    },
    {
      "name": "ReadmeCritic",
      "email": "frankensteinbot@gmail.com"
    },
    {
      "name": "Reinaldo Schiehll",
      "email": "rn.schiehll@gmail.com"
    },
    {
      "name": "René Stalder",
      "email": "rene@whatwedo.ch"
    },
    {
      "name": "Richard Wang",
      "email": "richardwa@google.com"
    },
    {
      "name": "Rob Howell",
      "email": "rob@robhowell.com"
    },
    {
      "name": "Roland Warmerdam",
      "email": "rowno@webspirited.com"
    },
    {
      "name": "Sasha Koss",
      "email": "koss@nocorp.me"
    },
    {
      "name": "Sean Anderson",
      "email": "Sean.Palmer.Anderson@gmail.com"
    },
    {
      "name": "Sergey Belov",
      "email": "peimei@ya.ru"
    },
    {
      "name": "Sergey Leschina",
      "email": "mail@putnik.ws"
    },
    {
      "name": "sethjgore",
      "email": "sethjgore@gmail.com"
    },
    {
      "name": "Šime Vidas",
      "email": "sime.vidas@gmail.com"
    },
    {
      "name": "Simon Lydell",
      "email": "simon.lydell@gmail.com"
    },
    {
      "name": "Sindre Sorhus",
      "email": "sindresorhus@gmail.com"
    },
    {
      "name": "Stephen Edgar",
      "email": "stephen@netweb.com.au"
    },
    {
      "name": "Steve Mao",
      "email": "https://github.com/stevemao"
    },
    {
      "name": "Stig Otnes Kolstad",
      "email": "stig@stigok.net"
    },
    {
      "name": "Subash Pathak",
      "email": "sbspk@msn.com"
    },
    {
      "name": "sunhao",
      "email": "sunhao_1988@msn.cn"
    },
    {
      "name": "tomdavenport",
      "email": "playmusic@me.com"
    },
    {
      "name": "Tony Ganch",
      "email": "tonyganch@gmail.com"
    },
    {
      "name": "Vegard Andreas Larsen",
      "email": "vegard@xaltra.net"
    },
    {
      "name": "Vera Surkova",
      "email": "vera@surkova.se"
    },
    {
      "name": "Vincent De Oliveira",
      "email": "vincent@iamvdo.me"
    },
    {
      "name": "Vishnu Ravi",
      "email": "vishnu@vishnu.io"
    },
    {
      "name": "Vladimir Pouzanov",
      "email": "farcaller@gmail.com"
    },
    {
      "name": "vladkens",
      "email": "vladkens@yandex.ru"
    },
    {
      "name": "Даниил Пронин",
      "email": "mail@grawl.ru"
    },
    {
      "name": "一丝",
      "email": "jie.lijie@alibaba-inc.com"
    },
    {
      "name": "刘祺",
      "email": "gucong@gmail.com"
    }
  ],
  "dependencies": {
    "browserslist": "^2.1.2",
    "caniuse-lite": "^1.0.30000665",
    "normalize-range": "^0.1.2",
    "num2fraction": "^1.2.2",
    "postcss": "^6.0.0",
    "postcss-value-parser": "^3.2.3"
  },
  "description": "Parse CSS and add vendor prefixes to CSS rules using values from the Can I Use website",
  "devDependencies": {
    "babel-eslint": "^7.2.3",
    "babel-plugin-transform-class-properties": "^6.24.1",
    "babel-preset-env": "^1.4.0",
    "babel-register": "^6.24.0",
    "browserify": "^14.3.0",
    "eslint": "^3.19.0",
    "eslint-config-postcss": "^2.0.2",
    "fs-extra": "^3.0.1",
    "gulp": "^3.9.1",
    "gulp-babel": "^6.1.2",
    "gulp-coffee": "^2.3.4",
    "gulp-eslint": "^3.0.1",
    "gulp-jest": "^1.0.0",
    "gulp-json-editor": "^2.2.1",
    "gulp-replace": "^0.5.4",
    "jest": "^19.0.2",
    "lint-staged": "^3.4.1",
    "pre-commit": "^1.2.2",
    "vinyl-source-stream": "^1.1.0"
  },
  "directories": {},
  "dist": {
    "shasum": "734cc4f56ec964fcd4b6048e028b60c4226e7fdd",
    "tarball": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.0.0.tgz"
  },
  "eslintConfig": {
    "extends": "eslint-config-postcss",
    "parser": "babel-eslint",
    "rules": {
      "complexity": "off",
      "camelcase": "off"
    },
    "env": {
      "jest": true
    }
  },
  "homepage": "https://github.com/postcss/autoprefixer#readme",
  "keywords": [
    "autoprefixer",
    "css",
    "prefix",
    "postcss",
    "postcss-plugin"
  ],
  "license": "MIT",
  "lint-staged": {
    "*.js": "eslint"
  },
  "main": "lib/autoprefixer",
  "maintainers": [
    {
      "name": "ai",
      "email": "andrey@sitnik.ru"
    },
    {
      "name": "beneb",
      "email": "beneb.info@gmail.com"
    },
    {
      "name": "kossnocorp",
      "email": "kossnocorp@gmail.com"
    }
  ],
  "name": "autoprefixer",
  "optionalDependencies": {},
  "pre-commit": [
    "lint-staged"
  ],
  "readme": "# Autoprefixer [![Build Status][ci-img]][ci]\n\n<img align=\"right\" width=\"94\" height=\"71\"\n     src=\"http://postcss.github.io/autoprefixer/logo.svg\"\n     title=\"Autoprefixer logo by Anton Lovchikov\">\n\n[PostCSS] plugin to parse CSS and add vendor prefixes to CSS rules using values\nfrom [Can I Use]. It is [recommended] by Google and used in Twitter and Taobao.\n\nWrite your CSS rules without vendor prefixes (in fact, forget about them\nentirely):\n\n```css\n:fullscreen a {\n    display: flex\n}\n```\n\nAutoprefixer will use the data based on current browser popularity and property\nsupport to apply prefixes for you. You can try the [interactive demo]\nof Autoprefixer.\n\n```css\n:-webkit-full-screen a {\n    display: -webkit-box;\n    display: flex\n}\n:-moz-full-screen a {\n    display: flex\n}\n:-ms-fullscreen a {\n    display: -ms-flexbox;\n    display: flex\n}\n:fullscreen a {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex\n}\n```\n\nTwitter account for news and releases: [@autoprefixer].\n\n<a href=\"https://evilmartians.com/?utm_source=autoprefixer\">\n<img src=\"https://evilmartians.com/badges/sponsored-by-evil-martians.svg\" alt=\"Sponsored by Evil Martians\" width=\"236\" height=\"54\">\n</a>\n\n[interactive demo]: http://autoprefixer.github.io/\n[@autoprefixer]:    https://twitter.com/autoprefixer\n[recommended]:      https://developers.google.com/web/tools/setup/setup-buildtools#dont_trip_up_with_vendor_prefixes\n[Can I Use]:        http://caniuse.com/\n[PostCSS]:          https://github.com/postcss/postcss\n[ci-img]:           https://travis-ci.org/postcss/autoprefixer.svg\n[ci]:               https://travis-ci.org/postcss/autoprefixer\n\n## Features\n\n### Write Pure CSS\n\nWorking with Autoprefixer is simple: just forget about vendor prefixes\nand write normal CSS according to the latest W3C specs. You don’t need\na special language (like Sass) or remember where you must use mixins.\n\nAutoprefixer supports selectors (like `:fullscreen` and `::selection`),\nunit function (`calc()`), at‑rules (`@supports` and `@keyframes`)\nand properties.\n\nBecause Autoprefixer is a postprocessor for CSS,\nyou can also use it with preprocessors such as Sass, Stylus or LESS.\n\n### Flexbox, Filters, etc.\n\nJust write normal CSS according to the latest W3C specs and Autoprefixer\nwill produce the code for old browsers.\n\n```css\na {\n    display: flex;\n}\n```\n\ncompiles to:\n\n```css\na {\n    display: -webkit-box;\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex\n}\n```\n\nAutoprefixer has [27 special hacks] to fix web browser differences.\n\n[27 special hacks]: https://github.com/postcss/autoprefixer/tree/master/lib/hacks\n\n### Only Actual Prefixes\n\nAutoprefixer utilizes the most recent data from [Can I Use]\nto add only necessary vendor prefixes.\n\nIt also removes old, unnecessary prefixes from your CSS\n(like `border-radius` prefixes, produced by many CSS libraries).\n\n```css\na {\n    -webkit-border-radius: 5px;\n            border-radius: 5px;\n}\n```\n\ncompiles to:\n\n```css\na {\n    border-radius: 5px;\n}\n```\n\n[Can I Use]: http://caniuse.com/\n\n## Browsers\n\nAutoprefixer uses [Browserslist], so you can specify the browsers\nyou want to target in your project by queries like `last 2 versions`\nor `> 5%`.\n\nThe best way to provide browsers is `browserslist` config\nor `package.json` with `browserslist` key. Put it in your project root.\n\nWe recommend to avoid Autoprefixer option and use `browserslist` config\nor `package.json`. In this case browsers will be shared with other tools\nlike [babel-preset-env] or [Stylelint].\n\nSee [Browserslist docs] for queries, browser names, config format,\nand default value.\n\n[Browserslist docs]: https://github.com/ai/browserslist#queries\n[babel-preset-env]:  https://github.com/babel/babel-preset-env\n[Browserslist]:      https://github.com/ai/browserslist\n[Stylelint]:         http://stylelint.io/\n\n## Outdated Prefixes\n\nBy default, Autoprefixer also removes outdated prefixes.\n\nYou can disable this behavior with the `remove: false` option. If you have\nno legacy code, this option will make Autoprefixer about 10% faster.\n\nAlso, you can set the `add: false` option. Autoprefixer will only clean outdated\nprefixes, but will not add any new prefixes.\n\nAutoprefixer adds new prefixes between any unprefixed properties and already\nwritten prefixes in your CSS. If it will break the expected prefixes order,\nyou can clean all prefixes from your CSS and then\nadd the necessary prefixes again:\n\n```js\nvar cleaner  = postcss([ autoprefixer({ add: false, browsers: [] }) ]);\nvar prefixer = postcss([ autoprefixer ]);\n\ncleaner.process(css).then(function (cleaned) {\n    return prefixer.process(cleaned.css)\n}).then(function (result) {\n    console.log(result.css);\n});\n```\n\n## FAQ\n\n#### No prefixes in production\n\nMany other tools contain Autoprefixer. For example, webpack uses Autoprefixer\nto minify CSS by cleaning unnecessary prefixes.\n\nIf you set browsers list to Autoprefixer by `browsers` option, only first\nAutoprefixer will know your browsers. Autoprefixer inside webpack will use\ndefault browsers list. As result, webpack will remove prefixes, that first\nAutoprefixer added.\n\nYou need to put your browsers to [`browserslist` config] in project root —\nas result all tools (Autoprefixer, cssnano, doiuse, cssnext) will use same\nbrowsers list.\n\n[`browserslist` config]: https://github.com/ai/browserslist#config-file\n\n#### Does it add polyfills?\n\nNo. Autoprefixer only adds prefixes.\n\nMost new CSS features will require client side JavaScript to handle a new\nbehavior correctly.\n\nDepending on what you consider to be a “polyfill”, you can take a look at some\nother tools and libraries. If you are just looking for syntax sugar,\nyou might take a look at:\n\n- [Oldie], a PostCSS plugin that handles some IE hacks (opacity, rgba, etc).\n- [postcss-flexbugs-fixes], a PostCSS plugin to fix flexbox issues.\n- [cssnext], a tool that allows you to write standard CSS syntax non-implemented\n  yet in browsers (custom properties, custom media, color functions, etc).\n\n[postcss-flexbugs-fixes]: https://github.com/luisrudge/postcss-flexbugs-fixes\n[cssnext]:                https://github.com/MoOx/postcss-cssnext\n[Oldie]:                  https://github.com/jonathantneal/oldie\n\n#### Why doesn’t Autoprefixer add prefixes to `border-radius`?\n\nDevelopers are often surprised by how few prefixes are required today.\nIf Autoprefixer doesn’t add prefixes to your CSS, check if they’re still\nrequired on [Can I Use].\n\nThere is a [list with all supported] properties, values, and selectors.\n\n[list with all supported]: https://github.com/postcss/autoprefixer/wiki/support-list\n[Can I Use]:               http://caniuse.com/\n\n#### Why Autoprefixer uses unprefixed properties in `@-webkit-keyframes`?\n\nBrowser teams can remove some prefixes before others. So we try to use\nall combinations of prefixed/unprefixed values.\n\n#### How to work with legacy `-webkit-` only code?\n\nAutoprefixer needs unprefixed property to add prefixes. So if you only\nwrote `-webkit-gradient` without W3C’s `gradient`,\nAutoprefixer will not add other prefixes.\n\nBut [PostCSS] has a plugins to convert CSS to unprefixed state.\nUse them before Autoprefixer:\n\n* [postcss-unprefix]\n* [postcss-flexboxfixer]\n* [postcss-gradientfixer]\n\n[postcss-gradientfixer]: https://github.com/hallvors/postcss-gradientfixer\n[postcss-flexboxfixer]:  https://github.com/hallvors/postcss-flexboxfixer\n[postcss-unprefix]:      https://github.com/yisibl/postcss-unprefix\n\n#### Does Autoprefixer add `-epub-` prefix?\n\nNo, Autoprefixer works only with browsers prefixes from Can I Use.\nBut you can use [postcss-epub](https://github.com/Rycochet/postcss-epub)\nfor prefixing ePub3 properties.\n\n#### Why doesn’t Autoprefixer transform generic font-family `system-ui`?\n\n`system-ui` is technically not a prefix and the transformation is not future-proof. But you can use [postcss-font-family-system-ui](https://github.com/JLHwung/postcss-font-family-system-ui) to transform `system-ui` to a practical font-family list.\n\n## Usage\n\n### Gulp\n\nIn Gulp you can use [gulp-postcss] with `autoprefixer` npm package.\n\n```js\ngulp.task('autoprefixer', function () {\n    var postcss      = require('gulp-postcss');\n    var sourcemaps   = require('gulp-sourcemaps');\n    var autoprefixer = require('autoprefixer');\n\n    return gulp.src('./src/*.css')\n        .pipe(sourcemaps.init())\n        .pipe(postcss([ autoprefixer() ]))\n        .pipe(sourcemaps.write('.'))\n        .pipe(gulp.dest('./dest'));\n});\n```\n\nWith `gulp-postcss` you also can combine Autoprefixer\nwith [other PostCSS plugins].\n\n[other PostCSS plugins]: https://github.com/postcss/postcss#plugins\n[gulp-postcss]:          https://github.com/postcss/gulp-postcss\n\n### Webpack\n\nIn [webpack] you can use [postcss-loader] with `autoprefixer`\nand [other PostCSS plugins].\n\n```js\nmodule.exports = {\n    module: {\n        loaders: [\n            {\n                test:   /\\.css$/,\n                loader: \"style-loader!css-loader!postcss-loader\"\n            }\n        ]\n    }\n}\n```\n\nAnd create a `postcss.config.js` with:\n\n```js\nmodule.exports = {\n  plugins: [\n    require('autoprefixer')\n  ]\n}\n```\n\n[other PostCSS plugins]: https://github.com/postcss/postcss#plugins\n[postcss-loader]:        https://github.com/postcss/postcss-loader\n[webpack]:               http://webpack.github.io/\n\n### Grunt\n\nIn Grunt you can use [grunt-postcss] with `autoprefixer` npm package.\n\n```js\nmodule.exports = function(grunt) {\n    grunt.loadNpmTasks('grunt-postcss');\n\n    grunt.initConfig({\n        postcss: {\n            options: {\n                map: true,\n                processors: [\n                    require('autoprefixer')\n                ]\n            },\n            dist: {\n                src: 'css/*.css'\n            }\n        }\n    });\n\n    grunt.registerTask('default', ['postcss:dist']);\n};\n```\n\nWith `grunt-postcss` you also can combine Autoprefixer\nwith [other PostCSS plugins].\n\n[other PostCSS plugins]: https://github.com/postcss/postcss#plugins\n[grunt-postcss]:         https://github.com/nDmitry/grunt-postcss\n\n### Other Build Tools:\n\n* **Ruby on Rails**: [autoprefixer-rails]\n* **Brunch**: [postcss-brunch]\n* **Broccoli**: [broccoli-postcss]\n* **Middleman**: [middleman-autoprefixer]\n* **Mincer**: add `autoprefixer` npm package and enable it:\n  `environment.enable('autoprefixer')`\n* **Jekyll**: add `autoprefixer-rails` and `jekyll-assets` to `Gemfile`\n\n[middleman-autoprefixer]: https://github.com/middleman/middleman-autoprefixer\n[autoprefixer-rails]:     https://github.com/ai/autoprefixer-rails\n[broccoli-postcss]:       https://github.com/jeffjewiss/broccoli-postcss\n[postcss-brunch]:         https://github.com/iamvdo/postcss-brunch\n\n### Preprocessors\n\n* **Less**: [less-plugin-autoprefix]\n* **Stylus**: [autoprefixer-stylus]\n* **Compass**: [autoprefixer-rails#compass]\n\n[less-plugin-autoprefix]: https://github.com/less/less-plugin-autoprefix\n[autoprefixer-stylus]:    https://github.com/jenius/autoprefixer-stylus\n[autoprefixer-rails#compass]:     https://github.com/ai/autoprefixer-rails#compass\n\n### CSS-in-JS\n\nThere is [postcss-js] to use Autoprefixer in React Inline Styles, [Free Style],\nRadium and other CSS-in-JS solutions.\n\n```js\nlet prefixer = postcssJs.sync([ autoprefixer ]);\nlet style = prefixer({\n    display: 'flex'\n});\n```\n\n[postcss-js]: https://github.com/postcss/postcss-js\n[Free Style]: https://github.com/blakeembrey/free-style\n\n### GUI Tools\n\n* [CodeKit](https://codekitapp.com/help/autoprefixer/)\n* [Prepros](https://prepros.io)\n\n### CLI\n\nYou can use the [postcss-cli] to run Autoprefixer from CLI:\n\n```sh\nnpm install --global postcss-cli autoprefixer\npostcss *.css --use autoprefixer -d build/\n```\n\nSee `postcss -h` for help.\n\n[postcss-cli]: https://github.com/postcss/postcss-cli\n\n### JavaScript\n\nYou can use Autoprefixer with [PostCSS] in your Node.js application\nor if you want to develop an Autoprefixer plugin for new environment.\n\n```js\nvar autoprefixer = require('autoprefixer');\nvar postcss      = require('postcss');\n\npostcss([ autoprefixer ]).process(css).then(function (result) {\n    result.warnings().forEach(function (warn) {\n        console.warn(warn.toString());\n    });\n    console.log(result.css);\n});\n```\n\nThere is also [standalone build] for the browser or as a non-Node.js runtime.\n\nYou can use [html-autoprefixer] to process HTML with inlined CSS.\n\n[html-autoprefixer]: https://github.com/RebelMail/html-autoprefixer\n[standalone build]:  https://raw.github.com/ai/autoprefixer-rails/master/vendor/autoprefixer.js\n[PostCSS]:           https://github.com/postcss/postcss\n\n### Text Editors and IDE\n\nAutoprefixer should be used in assets build tools. Text editor plugins are not\na good solution, because prefixes decrease code readability and you will need\nto change value in all prefixed properties.\n\nI recommend you to learn how to use build tools like [Gulp].\nThey work much better and will open you a whole new world of useful plugins\nand automatization.\n\nBut, if you can’t move to a build tool, you can use text editor plugins:\n\n* [Sublime Text](https://github.com/sindresorhus/sublime-autoprefixer)\n* [Brackets](https://github.com/mikaeljorhult/brackets-autoprefixer)\n* [Atom Editor](https://github.com/sindresorhus/atom-autoprefixer)\n* [Visual Studio](http://vswebessentials.com/)\n\n[Gulp]:  http://gulpjs.com/\n\n## Warnings\n\nAutoprefixer uses the [PostCSS warning API] to warn about really important problems\nin your CSS:\n\n* Old direction syntax in gradients.\n* Old unprefixed `display: box` instead of `display: flex`\n  by latest specification version.\n\nYou can get warnings from `result.warnings()`:\n\n```js\nresult.warnings().forEach(function (warn) {\n    console.warn(warn.toString());\n});\n```\n\nEvery Autoprefixer runner should display this warnings.\n\n[PostCSS warning API]: https://github.com/postcss/postcss/blob/master/docs/api.md#warning-class\n\n## Disabling\n\nAutoprefixer was designed to have no interface – it just works.\nIf you need some browser specific hack just write a prefixed property\nafter the unprefixed one.\n\n```css\na {\n    transform: scale(0.5);\n    -moz-transform: scale(0.6);\n}\n```\n\nIf some prefixes were generated in a wrong way,\nplease create an issue on GitHub.\n\nAutoprefixer has 4 features, which can be enabled or disabled by options:\n\n* `supports: false` will disable `@supports` parameters prefixing.\n* `flexbox: false` will disable flexbox properties prefixing.\n  Or `flexbox: \"no-2009\"` will add prefixes only for final and IE\n  versions of specification.\n* `remove: false` will disable cleaning outdated prefixes.\n* `grid: true` will enable Grid Layout prefixes for IE.\n\nIf you do not need Autoprefixer in some part of your CSS,\nyou can use control comments to disable Autoprefixer.\n\n```css\na {\n    transition: 1s; /* it will be prefixed */\n}\n\nb {\n    /* autoprefixer: off */\n    transition: 1s; /* it will not be prefixed */\n}\n```\n\nControl comments disable Autoprefixer within the whole rule in which\nyou place it. In the above example, Autoprefixer will be disabled\nin the entire `b` rule scope, not only after the comment.\n\nYou can also use comments recursively:\n\n```css\n/* autoprefixer: off */\n@supports (transition: all) {\n    /* autoprefixer: on */\n    a {\n        /* autoprefixer: off */\n    }\n}\n```\n\nIn Sass/SCSS you can use all the disable options above, add an exclamation mark\nin the start of comment: `/*! autoprefixer: off */`.\n\n## Options\n\nFunction `autoprefixer(options)` returns new PostCSS plugin.\nSee [PostCSS API] for plugin usage documentation.\n\n```js\nvar plugin = autoprefixer({ cascade: false });\n```\n\nThere are 8 options:\n\n* `browsers` (array): list of browsers query (like `last 2 versions`),\n  which are supported in your project. We recommend to use `browserslist`\n  config or `browserslist` key in `package.json`, rather than this option\n  to share browsers with other tools. See [Browserslist docs] for available\n  queries and default value.\n* `env` (string): environment for Browserslist.\n* `cascade` (boolean): should Autoprefixer use Visual Cascade,\n  if CSS is uncompressed. Default: `true`\n* `add` (boolean): should Autoprefixer add prefixes. Default is `true`.\n* `remove` (boolean): should Autoprefixer [remove outdated] prefixes.\n  Default is `true`.\n* `supports` (boolean): should Autoprefixer add prefixes for `@supports`\n  parameters. Default is `true`.\n* `flexbox` (boolean|string): should Autoprefixer add prefixes for flexbox\n  properties. With `\"no-2009\"` value Autoprefixer will add prefixes only\n  for final and IE versions of specification. Default is `true`.\n* `grid` (boolean): should Autoprefixer add IE prefixes for Grid Layout\n  properties. Default is `false`.\n* `stats` (object): custom [usage statistics] for `> 10% in my stats`\n  browsers query.\n\nPlugin object has `info()` method for debugging purpose.\n\nYou can use PostCSS processor to process several CSS files\nto increase performance.\n\n[usage statistics]: https://github.com/ai/browserslist#custom-usage-data\n[PostCSS API]:      http://api.postcss.org\n\n## Debug\n\nYou can check which browsers are selected and which properties will be prefixed:\n\n```js\nvar info = autoprefixer().info();\nconsole.log(info);\n```\n",
  "readmeFilename": "README.md",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/postcss/autoprefixer.git"
  },
  "scripts": {
    "lint-staged": "lint-staged",
    "test": "gulp"
  },
  "version": "7.0.0"
}
