Optimise inline SVG with PostCSS.
With npm do:
npm install postcss-svgo --save
h1 {
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>');
}
h1 {
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>');
}
svgo([options])
Note that postcss-svgo is an asynchronous processor. It cannot be used like this:
var result = postcss([ svgo() ]).process(css).css;
console.log(result);
Instead make sure your PostCSS runner uses the asynchronous API:
postcss([ svgo() ]).process(css).then(function (result) {
console.log(result.css);
});
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.
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.
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.
See the PostCSS documentation for examples for your environment.
Thanks goes to these wonderful people (emoji key):
| Ben Briggs๐ป ๐ ๐ โ ๏ธ | Sebastian Misch๐ป โ ๏ธ | ะััะตัะปะฐะฒ ะััะตะฝะบะพ๐ป โ ๏ธ | shinnn๐ป | Jung-gun Lim๐ | Bogdan Chadkin๐ป ๐ โ ๏ธ | Piotr Walczyszyn๐ | | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
This project follows the all-contributors specification. Contributions of any kind welcome!
MIT ยฉ Ben Briggs
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.