svgo
Last updated
Last updated
english | русский
SVG Optimizer is a Nodejs-based tool for optimizing SVG vector graphics files.
SVG files, especially those exported from various editors, usually contain a lot of redundant and useless information. This can include editor metadata, comments, hidden elements, default or non-optimal values and other stuff that can be safely removed or converted without affecting the SVG rendering result.
SVGO has a plugin-based architecture, so almost every optimization is a separate plugin.
Today we have:
Plugin | Description | Default |
---|---|---|
cleanup attributes from newlines, trailing, and repeating spaces |
| |
move and merge styles from |
| |
remove doctype declaration |
| |
remove XML processing instructions |
| |
remove comments |
| |
remove |
| |
remove |
| |
remove |
| |
remove elements of |
| |
removes |
| |
remove editors namespaces, elements, and attributes |
| |
remove empty attributes |
| |
remove hidden elements |
| |
remove empty Text elements |
| |
remove empty Container elements |
| |
remove |
| |
remove or cleanup |
| |
minify |
| |
convert styles into attributes |
| |
convert colors (from |
| |
convert Path data to relative or absolute (whichever is shorter), convert one segment to another, trim useless delimiters, smart rounding, and much more |
| |
collapse multiple transforms into one, convert matrices to the short aliases, and much more |
| |
remove unknown elements content and attributes, remove attrs with default values |
| |
remove non-inheritable group's "presentation" attributes |
| |
remove useless |
| |
remove unused namespaces declaration |
| |
prefix IDs and classes with the SVG filename or an arbitrary string |
| |
remove unused and minify used IDs |
| |
round numeric values to the fixed precision, remove default |
| |
round numeric values in attributes that take a list of numbers (like |
| |
move elements' attributes to their enclosing group |
| |
move some group attributes to the contained elements |
| |
collapse useless groups |
| |
remove raster images |
| |
merge multiple Paths into one |
| |
convert some basic shapes to |
| |
convert non-eccentric |
| |
sort element attributes for epic readability |
| |
sort children of |
| |
remove |
| |
remove attributes by pattern |
| |
removes attributes of elements that match a css selector |
| |
remove arbitrary elements by ID or className |
| |
add classnames to an outer |
| |
adds attributes to an outer |
| |
removes elements that are drawn outside of the viewbox |
| |
remove |
| |
remove |
| |
Find duplicated elements and replace them with links |
|
Want to know how it works and how to write your own plugin? Of course you want to. (동작방법)
with files:
or:
with STDIN / STDOUT:
with folder
or:
with strings:
or even with Data URI base64:
with SVGZ:
from .svgz
to .svg
:
from .svg
to .svgz
:
as a web app – SVGOMG
as a Nodejs module – examples
as a Grunt task – grunt-svgmin
as a Gulp task – gulp-svgmin
as a Mimosa module – mimosa-minify-svg
as an OSX Folder Action – svgo-osx-folder-action
as a webpack loader – image-webpack-loader
as a Telegram Bot – svgo_bot
as a PostCSS plugin – postcss-svgo
as an Inkscape plugin – inkscape-svgo
as a Sketch plugin - svgo-compressor
as macOS app - Image Shrinker
as a Rollup plugin - rollup-plugin-svgo
PayPal: https://www.paypal.me/deepsweet
This software is released under the terms of the MIT license.
Logo by Yegor Bolshakov.