[6a3a178] | 1 | # [postcss][postcss]-svgo
|
---|
| 2 |
|
---|
| 3 | > Optimise inline SVG with PostCSS.
|
---|
| 4 |
|
---|
| 5 |
|
---|
| 6 | ## Install
|
---|
| 7 |
|
---|
| 8 | With [npm](https://npmjs.org/package/postcss-svgo) do:
|
---|
| 9 |
|
---|
| 10 | ```
|
---|
| 11 | npm install postcss-svgo --save
|
---|
| 12 | ```
|
---|
| 13 |
|
---|
| 14 |
|
---|
| 15 | ## Example
|
---|
| 16 |
|
---|
| 17 | ### Input
|
---|
| 18 |
|
---|
| 19 | ```css
|
---|
| 20 | h1 {
|
---|
| 21 | background: url('data:image/svg+xml;charset=utf-8,<?xml version="1.0" encoding="utf-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"><circle cx="50" cy="50" r="40" fill="yellow" /></svg>');
|
---|
| 22 | }
|
---|
| 23 |
|
---|
| 24 | h2 {
|
---|
| 25 | background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNDAiIGZpbGw9InllbGxvdyIgLz48IS0tdGVzdCBjb21tZW50LS0+PC9zdmc+');
|
---|
| 26 | }
|
---|
| 27 | ```
|
---|
| 28 |
|
---|
| 29 | ### Output
|
---|
| 30 |
|
---|
| 31 | ```css
|
---|
| 32 | h1 {
|
---|
| 33 | background: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="40" fill="%23ff0"/></svg>');
|
---|
| 34 | }
|
---|
| 35 |
|
---|
| 36 | h2 {
|
---|
| 37 | background: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjQwIiBmaWxsPSIjZmYwIi8+PC9zdmc+');
|
---|
| 38 | }
|
---|
| 39 | ```
|
---|
| 40 |
|
---|
| 41 |
|
---|
| 42 | ## API
|
---|
| 43 |
|
---|
| 44 | ### `svgo([options])`
|
---|
| 45 |
|
---|
| 46 | #### options
|
---|
| 47 |
|
---|
| 48 | ##### encode
|
---|
| 49 |
|
---|
| 50 | Type: `boolean`
|
---|
| 51 | Default: `undefined`
|
---|
| 52 |
|
---|
| 53 | If `true`, it will encode URL-unsafe characters such as `<`, `>` and `&`;
|
---|
| 54 | `false` will decode these characters, and `undefined` will neither encode nor
|
---|
| 55 | decode the original input. Note that regardless of this setting, `#` will
|
---|
| 56 | always be URL-encoded.
|
---|
| 57 |
|
---|
| 58 | ##### plugins
|
---|
| 59 |
|
---|
| 60 | Optionally, you can customise the output by specifying the `plugins` option. You
|
---|
| 61 | will need to provide the config in comma separated objects, like the example
|
---|
| 62 | below. Note that you can either disable the plugin by setting it to `false`,
|
---|
| 63 | or pass different options to change the default behaviour.
|
---|
| 64 |
|
---|
| 65 | ```js
|
---|
| 66 | var postcss = require('postcss');
|
---|
| 67 | var svgo = require('postcss-svgo');
|
---|
| 68 |
|
---|
| 69 | var opts = {
|
---|
| 70 | plugins: [{
|
---|
| 71 | removeDoctype: false
|
---|
| 72 | }, {
|
---|
| 73 | removeComments: false
|
---|
| 74 | }, {
|
---|
| 75 | cleanupNumericValues: {
|
---|
| 76 | floatPrecision: 2
|
---|
| 77 | }
|
---|
| 78 | }, {
|
---|
| 79 | convertColors: {
|
---|
| 80 | names2hex: false,
|
---|
| 81 | rgb2hex: false
|
---|
| 82 | }
|
---|
| 83 | }]
|
---|
| 84 | };
|
---|
| 85 |
|
---|
| 86 | postcss([ svgo(opts) ]).process(css).then(function (result) {
|
---|
| 87 | console.log(result.css)
|
---|
| 88 | });
|
---|
| 89 | ```
|
---|
| 90 |
|
---|
| 91 | You can view the [full list of plugins here][plugins].
|
---|
| 92 |
|
---|
| 93 |
|
---|
| 94 | ## Usage
|
---|
| 95 |
|
---|
| 96 | See the [PostCSS documentation](https://github.com/postcss/postcss#usage) for
|
---|
| 97 | examples for your environment.
|
---|
| 98 |
|
---|
| 99 |
|
---|
| 100 | ## Contributors
|
---|
| 101 |
|
---|
| 102 | See [CONTRIBUTORS.md](https://github.com/cssnano/cssnano/blob/master/CONTRIBUTORS.md).
|
---|
| 103 |
|
---|
| 104 |
|
---|
| 105 | ## License
|
---|
| 106 |
|
---|
| 107 | MIT © [Ben Briggs](http://beneb.info)
|
---|
| 108 |
|
---|
| 109 | [postcss]: https://github.com/postcss/postcss
|
---|
| 110 | [plugins]: https://github.com/svg/svgo/tree/master/plugins
|
---|