postcss-color-rgb
Version:
PostCSS plugin to transform W3C CSS Color Module Level 4 rgb() new syntax to more compatible CSS (comma-separated rgb() or rgba())
38 lines (29 loc) • 1.3 kB
JavaScript
;
var _postcss = require('postcss');
var _postcss2 = _interopRequireDefault(_postcss);
var _postcssValueParser = require('postcss-value-parser');
var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);
var _rgbFunctionalNotation = require('./lib/rgb-functional-notation');
var _rgbFunctionalNotation2 = _interopRequireDefault(_rgbFunctionalNotation);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function transformRgb(value) {
return (0, _postcssValueParser2.default)(value).walk(function (node) {
/* istanbul ignore if */
if (node.type !== 'function' || node.value !== 'rgb' && node.value !== 'rgba') {
return;
}
node.value = _rgbFunctionalNotation2.default.legacy(_postcssValueParser2.default.stringify(node));
node.type = 'word';
}).toString();
}
module.exports = _postcss2.default.plugin('postcss-color-rgb', function () {
return function (root) {
root.walkDecls(function (decl) {
/* istanbul ignore if */
if (!decl.value || decl.value.indexOf('rgb(') === -1 && decl.value.indexOf('rgba(') === -1) {
return;
}
decl.value = transformRgb(decl.value);
});
};
});