Currently SVGO settings and svg_check.sh are both including removal of whitespace and newline in SVG source code.
SVG icons are not render-blocking anymore.
On the other hand, removing whitespace from the SVGs is seriously impacting readability and maintainance. Making it very hard for humans (devs) to read the source code and identify issues aside from pure visual comparison.
Comparison of several gzipped SVG icons in bytes
|icon||without whitespace/newlines||w whitespace/newlines||difference in bytes|
As you can see the byte savings are not worth the extra effort and burden on developers. Note that the biggest of currently available icons in MinervaNeue is 'issue-severity-low.svg' and it is not perfectly optimized. Manually optimizing it (removing duplicated <g> and unncessary ids would save more than the few bytes saved by removing whitespace/newlines.
Even if we take into account all icons above the fold and in the main menu, 19 altogether, the bytes saved wouldn't make up for half a kb after gzipping.
With more icons coming from central OOUI library's dist directory, the already minimal overhead will be declining even further.
- Disable whitespace/newline removal and align MF/MN with other Wikimedia projects in SVG coding guidelines and add pretty print as expected SVGO output.
- Recursively update all icons via svgo --config=.svgo.yml -r -f resources/