I've been complaining lately about how our practice of running SVGs for the
mobile interface through SVGO to minimize them causes lots of problems:
* Stripping the XML declaration breaks rendering in some browsers
* Stripping all the whitespace makes them very difficult to edit by hand
(which I commonly do to tweak colors or bounding boxes)
* Removing all the IDs makes them harder to edit in graphics programs that
use the IDs to label objects and/or groups.
* Collapsing all the groups also makes them harder to edit in graphics
programs.
It turns out that a lot of SVGO's behavior is configurable from the
command-line. In order to minimize the issues listed above, I would like to
propose that we start running SVGO with the following options within
MobileFrontend:
svgo file.svg --pretty --disable=removeXMLProcInst --disable=cleanupIDs
--disable=collapseGroups
Here are some comparisons of compression size:
Simple SVG (8.8 KiB):
With options: 48.1% reduction
Without options: 55.5% reduction
Complex SVG (636 KiB):
With options: 31.1% reduction
Without options: 36.7% reduction
As you can see, adding the options above doesn't have a large effect on
compression efficiency. They do, however, allow our SVG files to retain a
lot of legitimately useful information.
Ryan Kaldari