svg / svgo

⚙️ Node.js tool for optimizing SVG files
https://svgo.dev/
MIT License
20.88k stars 1.39k forks source link

Disable inline styles by default if CSS at rules are present. #2056

Open johnkenny54 opened 1 month ago

johnkenny54 commented 1 month ago

The inlineStyles plugin will move styles inline even if they are used in media queries, which causes the media queries to not work.

This PR changes the default behavior of the plugin so that it will not inline any styles if there are at-rules present in the CSS.

There is logic in the plugin to skip over some media queries. I can't think of a use case for this, but there are 2 test cases that rely on it, so I preserved this behavior. Since the default is now to not inline the styles if at-rules are present, I added a new configuration parameter ("disableIfAtRulesPresent"), and changed these 2 test cases to override the default setting of this parameter.

Resolves #1834, resolves #1726, resolves #1359.