# [postcss][postcss]-svgo [![Build Status](https://travis-ci.org/ben-eb/postcss-svgo.svg?branch=master)][ci] [![NPM version](https://badge.fury.io/js/postcss-svgo.svg)][npm] [![Dependency Status](https://gemnasium.com/ben-eb/postcss-svgo.svg)][deps]
> Optimise inline SVG with PostCSS.
## Install
With [npm](https://npmjs.org/package/postcss-svgo) do:
```
npm install postcss-svgo --save
```
## Example
### Input
```css
h1 {
background: url('data:image/svg+xml;charset=utf-8,');
}
```
### Output
```css
h1 {
background: url('data:image/svg+xml;charset=utf-8,');
}
```
## API
### `svgo([options])`
Note that postcss-svgo is an *asynchronous* processor. It cannot be used
like this:
```js
var result = postcss([ svgo() ]).process(css).css;
console.log(result);
```
Instead make sure your PostCSS runner uses the asynchronous API:
```js
postcss([ svgo() ]).process(css).then(function (result) {
console.log(result.css);
});
```
#### options
##### encode
Type: `boolean`
Default: `undefined`
If `true`, it will encode URL-unsafe characters such as `<`, `>` and `&`;
`false` will decode these characters, and `undefined` will neither encode nor
decode the original input. Note that regardless of this setting, `#` will
always be URL-encoded.
##### plugins
Optionally, you can customise the output by specifying the `plugins` option. You
will need to provide the config in comma separated objects, like the example
below. Note that you can either disable the plugin by setting it to `false`,
or pass different options to change the default behaviour.
```js
var postcss = require('postcss');
var svgo = require('postcss-svgo');
var opts = {
plugins: [{
removeDoctype: false
}, {
removeComments: false
}, {
cleanupNumericValues: {
floatPrecision: 2
}
}, {
convertColors: {
names2hex: false,
rgb2hex: false
}
}]
};
postcss([ svgo(opts) ]).process(css).then(function (result) {
console.log(result.css)
});
```
You can view the [full list of plugins here][plugins].
## Usage
See the [PostCSS documentation](https://github.com/postcss/postcss#usage) for
examples for your environment.
## Contributors
Thanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):
| [ Ben Briggs](http://beneb.info) [๐ป](https://github.com/ben-eb/postcss-svgo/commits?author=ben-eb) [๐](https://github.com/ben-eb/postcss-svgo/commits?author=ben-eb) ๐ [โ ๏ธ](https://github.com/ben-eb/postcss-svgo/commits?author=ben-eb) | [ Sebastian Misch](https://sebastian-misch.de) [๐ป](https://github.com/ben-eb/postcss-svgo/commits?author=sbstnmsch) [โ ๏ธ](https://github.com/ben-eb/postcss-svgo/commits?author=sbstnmsch) | [ ะััะตัะปะฐะฒ ะััะตะฝะบะพ](https://github.com/ophyros) [๐ป](https://github.com/ben-eb/postcss-svgo/commits?author=ophyros) [โ ๏ธ](https://github.com/ben-eb/postcss-svgo/commits?author=ophyros) | [ shinnn](https://shinnn.github.io) [๐ป](https://github.com/ben-eb/postcss-svgo/commits?author=shinnn) | [ Jung-gun Lim](https://github.com/j6lim) [๐](https://github.com/ben-eb/postcss-svgo/issues?q=author%3Aj6lim) | [ Bogdan Chadkin](https://github.com/TrySound) [๐ป](https://github.com/ben-eb/postcss-svgo/commits?author=TrySound) ๐ [โ ๏ธ](https://github.com/ben-eb/postcss-svgo/commits?author=TrySound) | [ Piotr Walczyszyn](http://outof.me) [๐](https://github.com/ben-eb/postcss-svgo/issues?q=author%3Apwalczyszyn) |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
This project follows the [all-contributors] specification. Contributions of
any kind welcome!
## License
MIT ยฉ [Ben Briggs](http://beneb.info)
[all-contributors]: https://github.com/kentcdodds/all-contributors
[ci]: https://travis-ci.org/ben-eb/postcss-svgo
[deps]: https://gemnasium.com/ben-eb/postcss-svgo
[npm]: http://badge.fury.io/js/postcss-svgo
[postcss]: https://github.com/postcss/postcss
[plugins]: https://github.com/svg/svgo/tree/master/plugins