in packages/posthtml-transform/lib/utils.js [22:59]
function convertAlphaColorsRules(rules) {
const additionalRules = [];
const transformedRules = rules.map(rule => {
const clonedRule = cloneDeep(rule);
const opacityRule = cloneDeep(rule);
const fillColor = rule.value && rule.attr && rule.attr === 'fill'
? parseColor(rule.value)
: null;
const strokeColor = rule.value && rule.attr && rule.attr === 'stroke'
? parseColor(rule.value)
: null;
if (fillColor && fillColor.alpha < 1) {
clonedRule.value = `${fillColor.space}(${fillColor.values.join(', ')})`;
opacityRule.attr = 'fill-opacity';
opacityRule.value = fillColor.alpha.toString();
additionalRules.push({ rule: clonedRule, ruleToAppend: opacityRule });
}
if (strokeColor && strokeColor.alpha < 1) {
clonedRule.value = `${strokeColor.space}(${strokeColor.values.join(', ')})`;
opacityRule.attr = 'stroke-opacity';
opacityRule.value = strokeColor.alpha.toString();
additionalRules.push({ rule: clonedRule, ruleToAppend: opacityRule });
}
return clonedRule;
});
additionalRules.forEach(({ rule, ruleToAppend }) => {
transformedRules.splice(transformedRules.indexOf(rule) + 1, 0, ruleToAppend);
});
return transformedRules;
}