Add corresponding class to element that has specific colors.
npm install --dev svgo-plugin-add-classes-to-colors
# or
yarn add --dev svgo-plugin-add-classes-to-colors
// svgo.config.js
const addClassesToColors = require("svgo-plugin-add-classes-to-colors");
module.exports = {
plugins: [
{
...addClassesToColors,
params: {
mapping: {
// [color]: className
"currentColor": "tone1",
"#fff": "tone2",
}
}
}
],
};
will transform
<svg xmlns="http://www.w3.org/2000/svg">
<g color="#fff"/>
<g color="currentColor"/>
</svg>
to
<svg xmlns="http://www.w3.org/2000/svg">
<g color="#fff" class="tone2"/>
<g color="currentColor" class="tone1"/>
</svg>
// svgo.config.js
const addClassesToColors = require("svgo-plugin-add-classes-to-colors");
module.exports = {
plugins: [
{
...addClassesToColors,
params: {
mapping: {
// [color attribute]: { [color]: className }
fill: {
"#fff": "fill--tone1",
},
stroke: "fill" // will add class `fill--tone1` to stroke="#fff"
}
}
}
],
};
This will make controlling SVG colors easier. You can write CSS like
.tone1 {
color: white;
fill: white;
stroke: white;
}
to change all the colors of SVG in your page.