Skip to content
This repository has been archived by the owner. It is now read-only.
DEPRECATED, see https://github.com/cssnano/cssnano | Optimise inline SVG with PostCSS.
JavaScript
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Always encode hashes in the output. Closes cssnano/cssnano#245. Dec 17, 2016
.all-contributorsrc Update contributors. Jul 11, 2016
.babelrc Tidy up, switch to ava/eslint, upgrade to babel 6. Jan 18, 2016
.editorconfig Initial commit. Jul 9, 2015
.gitignore Tidy up, switch to ava/eslint, upgrade to babel 6. Jan 18, 2016
.travis.yml Update to ESLint 3. Jul 6, 2016
CHANGELOG.md Update changelog. Dec 17, 2016
LICENSE-MIT Initial commit. Jul 9, 2015
README.md Always encode hashes in the output. Closes cssnano/cssnano#245. Dec 17, 2016
package.json 2.1.6 Dec 17, 2016

README.md

postcss-svgo Build Status NPM version Dependency Status

Optimise inline SVG with PostCSS.

Install

With npm do:

npm install postcss-svgo --save

Example

Input

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>');
}

Output

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>');
}

API

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);
});

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.

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.

Usage

See the PostCSS documentation for examples for your environment.

Contributors

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!

License

MIT © Ben Briggs

You can’t perform that action at this time.