.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / autoprefixer / README.md
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/autoprefixer/README.md b/.config/coc/extensions/node_modules/coc-prettier/node_modules/autoprefixer/README.md
new file mode 100644 (file)
index 0000000..2729c14
--- /dev/null
@@ -0,0 +1,628 @@
+# Autoprefixer [![Build Status][ci-img]][ci]
+
+<img align="right" width="94" height="71"
+     src="http://postcss.github.io/autoprefixer/logo.svg"
+     title="Autoprefixer logo by Anton Lovchikov">
+
+[PostCSS] plugin to parse CSS and add vendor prefixes to CSS rules using values
+from [Can I Use]. It is [recommended] by Google and used in Twitter and Taobao.
+
+Write your CSS rules without vendor prefixes (in fact, forget about them
+entirely):
+
+```css
+:fullscreen a {
+    display: flex;
+}
+```
+
+Autoprefixer will use the data based on current browser popularity and property
+support to apply prefixes for you. You can try the [interactive demo]
+of Autoprefixer.
+
+```css
+:-webkit-full-screen a {
+    display: -webkit-box;
+    display: flex;
+}
+:-moz-full-screen a {
+    display: flex;
+}
+:-ms-fullscreen a {
+    display: -ms-flexbox;
+    display: flex;
+}
+:fullscreen a {
+    display: -webkit-box;
+    display: -ms-flexbox;
+    display: flex;
+}
+```
+
+Twitter account for news and releases: [@autoprefixer].
+
+<a href="https://evilmartians.com/?utm_source=autoprefixer">
+<img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg" alt="Sponsored by Evil Martians" width="236" height="54">
+</a>
+
+[interactive demo]: http://autoprefixer.github.io/
+[@autoprefixer]:    https://twitter.com/autoprefixer
+[recommended]:      https://developers.google.com/web/tools/setup/setup-buildtools#dont_trip_up_with_vendor_prefixes
+[Can I Use]:        http://caniuse.com/
+[PostCSS]:          https://github.com/postcss/postcss
+[ci-img]:           https://travis-ci.org/postcss/autoprefixer.svg
+[ci]:               https://travis-ci.org/postcss/autoprefixer
+
+## Features
+
+### Write Pure CSS
+
+Working with Autoprefixer is simple: just forget about vendor prefixes
+and write normal CSS according to the latest W3C specs. You don’t need
+a special language (like Sass) or remember where you must use mixins.
+
+Autoprefixer supports selectors (like `:fullscreen` and `::selection`),
+unit function (`calc()`), at‑rules (`@supports` and `@keyframes`)
+and properties.
+
+Because Autoprefixer is a postprocessor for CSS,
+you can also use it with preprocessors such as Sass, Stylus or LESS.
+
+### Flexbox, Filters, etc.
+
+Just write normal CSS according to the latest W3C specs and Autoprefixer
+will produce the code for old browsers.
+
+```css
+a {
+    display: flex;
+}
+```
+
+compiles to:
+
+```css
+a {
+    display: -webkit-box;
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+}
+```
+
+Autoprefixer has [27 special hacks] to fix web browser differences.
+
+[27 special hacks]: https://github.com/postcss/autoprefixer/tree/master/lib/hacks
+
+### Only Actual Prefixes
+
+Autoprefixer utilizes the most recent data from [Can I Use]
+to add only necessary vendor prefixes.
+
+It also removes old, unnecessary prefixes from your CSS
+(like `border-radius` prefixes, produced by many CSS libraries).
+
+```css
+a {
+    -webkit-border-radius: 5px;
+            border-radius: 5px;
+}
+```
+
+compiles to:
+
+```css
+a {
+    border-radius: 5px;
+}
+```
+
+[Can I Use]: http://caniuse.com/
+
+## Browsers
+
+Autoprefixer uses [Browserslist], so you can specify the browsers
+you want to target in your project by queries like `last 2 versions`
+or `> 5%`.
+
+The best way to provide browsers is `.browserslistrc` config
+or `package.json` with `browserslist` key. Put it in your project root.
+
+We recommend to avoid Autoprefixer option and use `.browserslistrc` config
+or `package.json`. In this case browsers will be shared with other tools
+like [babel-preset-env] or [Stylelint].
+
+See [Browserslist docs] for queries, browser names, config format,
+and default value.
+
+[Browserslist docs]: https://github.com/ai/browserslist#queries
+[babel-preset-env]:  https://github.com/babel/babel-preset-env
+[Browserslist]:      https://github.com/ai/browserslist
+[Stylelint]:         http://stylelint.io/
+
+## Outdated Prefixes
+
+By default, Autoprefixer also removes outdated prefixes.
+
+You can disable this behavior with the `remove: false` option. If you have
+no legacy code, this option will make Autoprefixer about 10% faster.
+
+Also, you can set the `add: false` option. Autoprefixer will only clean outdated
+prefixes, but will not add any new prefixes.
+
+Autoprefixer adds new prefixes between any unprefixed properties and already
+written prefixes in your CSS. If it will break the expected prefixes order,
+you can clean all prefixes from your CSS and then
+add the necessary prefixes again:
+
+```js
+var cleaner  = postcss([ autoprefixer({ add: false, browsers: [] }) ]);
+var prefixer = postcss([ autoprefixer ]);
+
+cleaner.process(css).then(function (cleaned) {
+    return prefixer.process(cleaned.css);
+}).then(function (result) {
+    console.log(result.css);
+});
+```
+
+## FAQ
+
+#### No prefixes in production
+
+Many other tools contain Autoprefixer. For example, webpack uses Autoprefixer
+to minify CSS by cleaning unnecessary prefixes.
+
+If you set browsers list to Autoprefixer by `browsers` option, only first
+Autoprefixer will know your browsers. Autoprefixer inside webpack will use
+default browsers list. As result, webpack will remove prefixes, that first
+Autoprefixer added.
+
+You need to put your browsers to [`browserslist` config] in project root —
+as result all tools (Autoprefixer, cssnano, doiuse, cssnext) will use same
+browsers list.
+
+[`browserslist` config]: https://github.com/ai/browserslist#config-file
+
+#### What is unprefixed version for `-webkit-min-device-pixel-ratio`?
+
+```css
+@media (min-resolution: 2dppx) {
+    .image {
+        background-image: url(image@2x.png);
+    }
+}
+```
+
+Will be compiled to:
+
+```css
+@media (-webkit-min-device-pixel-ratio: 2),
+       (-o-min-device-pixel-ratio: 2/1),
+       (min-resolution: 2dppx) {
+    .image {
+        background-image: url(image@2x.png);
+    }
+}
+```
+
+#### Does it add polyfills?
+
+No. Autoprefixer only adds prefixes.
+
+Most new CSS features will require client side JavaScript to handle a new
+behavior correctly.
+
+Depending on what you consider to be a “polyfill”, you can take a look at some
+other tools and libraries. If you are just looking for syntax sugar,
+you might take a look at:
+
+- [Oldie], a PostCSS plugin that handles some IE hacks (opacity, rgba, etc).
+- [postcss-flexbugs-fixes], a PostCSS plugin to fix flexbox issues.
+- [cssnext], a tool that allows you to write standard CSS syntax non-implemented
+  yet in browsers (custom properties, custom media, color functions, etc).
+
+[postcss-flexbugs-fixes]: https://github.com/luisrudge/postcss-flexbugs-fixes
+[cssnext]:                https://github.com/MoOx/postcss-cssnext
+[Oldie]:                  https://github.com/jonathantneal/oldie
+
+#### Why doesn’t Autoprefixer add prefixes to `border-radius`?
+
+Developers are often surprised by how few prefixes are required today.
+If Autoprefixer doesn’t add prefixes to your CSS, check if they’re still
+required on [Can I Use].
+
+There is a [list with all supported] properties, values, and selectors.
+
+[list with all supported]: https://github.com/postcss/autoprefixer/wiki/support-list
+[Can I Use]:               http://caniuse.com/
+
+#### Why Autoprefixer uses unprefixed properties in `@-webkit-keyframes`?
+
+Browser teams can remove some prefixes before others. So we try to use
+all combinations of prefixed/unprefixed values.
+
+#### How to work with legacy `-webkit-` only code?
+
+Autoprefixer needs unprefixed property to add prefixes. So if you only
+wrote `-webkit-gradient` without W3C’s `gradient`,
+Autoprefixer will not add other prefixes.
+
+But [PostCSS] has a plugins to convert CSS to unprefixed state.
+Use [postcss-unprefix] before Autoprefixer.
+
+[postcss-unprefix]: https://github.com/gucong3000/postcss-unprefix
+
+#### Does Autoprefixer add `-epub-` prefix?
+
+No, Autoprefixer works only with browsers prefixes from Can I Use.
+But you can use [postcss-epub](https://github.com/Rycochet/postcss-epub)
+for prefixing ePub3 properties.
+
+#### Why doesn’t Autoprefixer transform generic font-family `system-ui`?
+
+`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.
+
+## Usage
+
+### Gulp
+
+In Gulp you can use [gulp-postcss] with `autoprefixer` npm package.
+
+```js
+gulp.task('autoprefixer', function () {
+    var postcss      = require('gulp-postcss');
+    var sourcemaps   = require('gulp-sourcemaps');
+    var autoprefixer = require('autoprefixer');
+
+    return gulp.src('./src/*.css')
+        .pipe(sourcemaps.init())
+        .pipe(postcss([ autoprefixer() ]))
+        .pipe(sourcemaps.write('.'))
+        .pipe(gulp.dest('./dest'));
+});
+```
+
+With `gulp-postcss` you also can combine Autoprefixer
+with [other PostCSS plugins].
+
+[other PostCSS plugins]: https://github.com/postcss/postcss#plugins
+[gulp-postcss]:          https://github.com/postcss/gulp-postcss
+
+### Webpack
+
+In [webpack] you can use [postcss-loader] with `autoprefixer`
+and [other PostCSS plugins].
+
+```js
+module.exports = {
+    module: {
+        rules: [
+            {
+                test: /\.css$/,
+                use: ["style-loader", "css-loader", "postcss-loader"]
+            }
+        ]
+    }
+}
+```
+
+And create a `postcss.config.js` with:
+
+```js
+module.exports = {
+  plugins: [
+    require('autoprefixer')
+  ]
+}
+```
+
+[other PostCSS plugins]: https://github.com/postcss/postcss#plugins
+[postcss-loader]:        https://github.com/postcss/postcss-loader
+[webpack]:               http://webpack.github.io/
+
+### Grunt
+
+In Grunt you can use [grunt-postcss] with `autoprefixer` npm package.
+
+```js
+module.exports = function(grunt) {
+    grunt.loadNpmTasks('grunt-postcss');
+
+    grunt.initConfig({
+        postcss: {
+            options: {
+                map: true,
+                processors: [
+                    require('autoprefixer')
+                ]
+            },
+            dist: {
+                src: 'css/*.css'
+            }
+        }
+    });
+
+    grunt.registerTask('default', ['postcss:dist']);
+};
+```
+
+With `grunt-postcss` you also can combine Autoprefixer
+with [other PostCSS plugins].
+
+[other PostCSS plugins]: https://github.com/postcss/postcss#plugins
+[grunt-postcss]:         https://github.com/nDmitry/grunt-postcss
+
+### Other Build Tools:
+
+* **Ruby on Rails**: [autoprefixer-rails]
+* **Neutrino**: [neutrino-middleware-postcss]
+* **Jekyll**: add `autoprefixer-rails` and `jekyll-assets` to `Gemfile`
+* **Brunch**: [postcss-brunch]
+* **Broccoli**: [broccoli-postcss]
+* **Middleman**: [middleman-autoprefixer]
+* **Mincer**: add `autoprefixer` npm package and enable it:
+  `environment.enable('autoprefixer')`
+
+[neutrino-middleware-postcss]: https://www.npmjs.com/package/neutrino-middleware-postcss
+[middleman-autoprefixer]:      https://github.com/middleman/middleman-autoprefixer
+[autoprefixer-rails]:          https://github.com/ai/autoprefixer-rails
+[broccoli-postcss]:            https://github.com/jeffjewiss/broccoli-postcss
+[postcss-brunch]:              https://github.com/iamvdo/postcss-brunch
+
+### Preprocessors
+
+* **Less**: [less-plugin-autoprefix]
+* **Stylus**: [autoprefixer-stylus]
+* **Compass**: [autoprefixer-rails#compass]
+
+[less-plugin-autoprefix]: https://github.com/less/less-plugin-autoprefix
+[autoprefixer-stylus]:    https://github.com/jenius/autoprefixer-stylus
+[autoprefixer-rails#compass]:     https://github.com/ai/autoprefixer-rails#compass
+
+### CSS-in-JS
+
+There is [postcss-js] to use Autoprefixer in React Inline Styles, [Free Style],
+Radium and other CSS-in-JS solutions.
+
+```js
+let prefixer = postcssJs.sync([ autoprefixer ]);
+let style = prefixer({
+    display: 'flex'
+});
+```
+
+[postcss-js]: https://github.com/postcss/postcss-js
+[Free Style]: https://github.com/blakeembrey/free-style
+
+### GUI Tools
+
+* [CodeKit](https://codekitapp.com/help/autoprefixer/)
+* [Prepros](https://prepros.io)
+
+### CLI
+
+You can use the [postcss-cli] to run Autoprefixer from CLI:
+
+```sh
+npm install postcss-cli autoprefixer
+npx postcss *.css --use autoprefixer -d build/
+```
+
+See `postcss -h` for help.
+
+[postcss-cli]: https://github.com/postcss/postcss-cli
+
+### JavaScript
+
+You can use Autoprefixer with [PostCSS] in your Node.js application
+or if you want to develop an Autoprefixer plugin for new environment.
+
+```js
+var autoprefixer = require('autoprefixer');
+var postcss      = require('postcss');
+
+postcss([ autoprefixer ]).process(css).then(function (result) {
+    result.warnings().forEach(function (warn) {
+        console.warn(warn.toString());
+    });
+    console.log(result.css);
+});
+```
+
+There is also [standalone build] for the browser or as a non-Node.js runtime.
+
+You can use [html-autoprefixer] to process HTML with inlined CSS.
+
+[html-autoprefixer]: https://github.com/RebelMail/html-autoprefixer
+[standalone build]:  https://raw.github.com/ai/autoprefixer-rails/master/vendor/autoprefixer.js
+[PostCSS]:           https://github.com/postcss/postcss
+
+### Text Editors and IDE
+
+Autoprefixer should be used in assets build tools. Text editor plugins are not
+a good solution, because prefixes decrease code readability and you will need
+to change value in all prefixed properties.
+
+I recommend you to learn how to use build tools like [Gulp].
+They work much better and will open you a whole new world of useful plugins
+and automatization.
+
+But, if you can’t move to a build tool, you can use text editor plugins:
+
+* [Sublime Text](https://github.com/sindresorhus/sublime-autoprefixer)
+* [Brackets](https://github.com/mikaeljorhult/brackets-autoprefixer)
+* [Atom Editor](https://github.com/sindresorhus/atom-autoprefixer)
+* [Visual Studio](http://vswebessentials.com/)
+
+[Gulp]:  http://gulpjs.com/
+
+## Warnings
+
+Autoprefixer uses the [PostCSS warning API] to warn about really important problems
+in your CSS:
+
+* Old direction syntax in gradients.
+* Old unprefixed `display: box` instead of `display: flex`
+  by latest specification version.
+
+You can get warnings from `result.warnings()`:
+
+```js
+result.warnings().forEach(function (warn) {
+    console.warn(warn.toString());
+});
+```
+
+Every Autoprefixer runner should display this warnings.
+
+[PostCSS warning API]: https://github.com/postcss/postcss/blob/master/docs/api.md#warning-class
+
+## Disabling
+
+### Prefixes
+
+Autoprefixer was designed to have no interface – it just works.
+If you need some browser specific hack just write a prefixed property
+after the unprefixed one.
+
+```css
+a {
+    transform: scale(0.5);
+    -moz-transform: scale(0.6);
+}
+```
+
+If some prefixes were generated in a wrong way,
+please create an issue on GitHub.
+
+### Features
+
+There are 4 plugin’s options to disable some Autoprefixer features.
+
+* `supports: false` will disable `@supports` parameters prefixing.
+* `flexbox: false` will disable flexbox properties prefixing.
+  Or `flexbox: "no-2009"` will add prefixes only for final and IE
+  versions of specification.
+* `remove: false` will disable cleaning outdated prefixes.
+
+You shoud set them to the plugin:
+
+```js
+autoprefixer({ grid: true });
+```
+
+### Control Comments
+
+If you do not need Autoprefixer in some part of your CSS,
+you can use control comments to disable Autoprefixer.
+
+```css
+a {
+    transition: 1s; /* it will be prefixed */
+}
+
+b {
+    /* autoprefixer: off */
+    transition: 1s; /* it will not be prefixed */
+}
+```
+
+Control comments disable Autoprefixer within the whole rule in which
+you place it. In the above example, Autoprefixer will be disabled
+in the entire `b` rule scope, not only after the comment.
+
+You can also use comments recursively:
+
+```css
+/* autoprefixer: off */
+@supports (transition: all) {
+    /* autoprefixer: on */
+    a {
+        /* autoprefixer: off */
+    }
+}
+```
+
+In Sass/SCSS you can use all the disable options above, add an exclamation mark
+in the start of comment: `/*! autoprefixer: off */`.
+
+## Options
+
+Function `autoprefixer(options)` returns new PostCSS plugin.
+See [PostCSS API] for plugin usage documentation.
+
+```js
+autoprefixer({ cascade: false })
+```
+
+There are 8 options:
+
+* `browsers` (array): list of browsers query (like `last 2 versions`),
+  which are supported in your project. We recommend to use `browserslist`
+  config or `browserslist` key in `package.json`, rather than this option
+  to share browsers with other tools. See [Browserslist docs] for available
+  queries and default value.
+* `env` (string): environment for Browserslist.
+* `cascade` (boolean): should Autoprefixer use Visual Cascade,
+  if CSS is uncompressed. Default: `true`
+* `add` (boolean): should Autoprefixer add prefixes. Default is `true`.
+* `remove` (boolean): should Autoprefixer [remove outdated] prefixes.
+  Default is `true`.
+* `supports` (boolean): should Autoprefixer add prefixes for `@supports`
+  parameters. Default is `true`.
+* `flexbox` (boolean|string): should Autoprefixer add prefixes for flexbox
+  properties. With `"no-2009"` value Autoprefixer will add prefixes only
+  for final and IE versions of specification. Default is `true`.
+* `grid` (boolean): should Autoprefixer add IE prefixes for Grid Layout
+  properties. Default is `false`.
+* `stats` (object): custom [usage statistics] for `> 10% in my stats`
+  browsers query.
+
+Plugin object has `info()` method for debugging purpose.
+
+You can use PostCSS processor to process several CSS files
+to increase performance.
+
+[usage statistics]: https://github.com/ai/browserslist#custom-usage-data
+[PostCSS API]:      http://api.postcss.org
+
+## Debug
+
+Run `npx autoprefixer-info --package autoprefixer` in your project directory to check
+which browsers are selected and which properties will be prefixed:
+
+```
+$ npx autoprefixer-info --package autoprefixer
+Browsers:
+  Edge: 16
+
+These browsers account for 0.04% of all users globally
+
+At-Rules:
+  @viewport: ms
+
+Selectors:
+  ::placeholder: ms
+
+Properties:
+  user-select: ms
+  hyphens: ms
+  appearance: webkit
+  scroll-snap-type: ms
+  scroll-snap-coordinate: ms
+  scroll-snap-destination: ms
+  scroll-snap-points-x: ms
+  scroll-snap-points-y: ms
+  flow-into: ms
+  flow-from: ms
+  region-fragment: ms
+  text-spacing: ms
+```
+
+JS API is also available:
+
+```js
+var info = autoprefixer().info();
+console.log(info);
+```