diff --git a/.svgo.yml b/.svgo.yml index 9c64815c..1f8881b5 100644 --- a/.svgo.yml +++ b/.svgo.yml @@ -47,4 +47,5 @@ plugins: - transformsWithOnePath - sortAttrs - removeTitle - - removeDesc \ No newline at end of file + - removeDesc + - addClassesToSVGElement \ No newline at end of file diff --git a/plugins/addClassesToSVGElement.js b/plugins/addClassesToSVGElement.js new file mode 100644 index 00000000..ee83b613 --- /dev/null +++ b/plugins/addClassesToSVGElement.js @@ -0,0 +1,38 @@ +'use strict'; + +exports.type = 'full'; + +exports.active = true; + +/** + * Add classnames to an outer element. + * + * @author April Arcus + */ +exports.fn = function(data, params) { + + var classNames = params.classNames || [ params.className ] + var svg = data.content[0] + + if (svg.isElem('svg')) { + + if (svg.hasAttr('class')) { + svg.attr('class').value = + svg.attr('class').value + .split(' ') + .concat(classNames) + .join(' '); + } else { + svg.addAttr({ + name: 'class', + value: classNames.join(' '), + prefix: '', + local: 'class' + }); + } + + } + + return data; + +};