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