d2-ui
Version:
61 lines (49 loc) • 1.89 kB
JavaScript
exports.__esModule = true;
var _postcss = require('postcss');
var _postcss2 = _interopRequireDefault(_postcss);
var _postcssValueParser = require('postcss-value-parser');
var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);
var _colormin = require('colormin');
var _colormin2 = _interopRequireDefault(_colormin);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function reduceWhitespaces(decl) {
decl.value = (0, _postcssValueParser2.default)(decl.value).walk(function (node) {
if (node.type === 'function' || node.type === 'div') {
node.before = node.after = '';
}
}).toString();
}
function transform(decl, opts) {
if (decl.prop === '-webkit-tap-highlight-color') {
if (decl.value === 'inherit' || decl.value === 'transparent') {
return;
}
reduceWhitespaces(decl);
return;
}
if (/^(font|filter)/.test(decl.prop)) {
return;
}
decl.value = (0, _postcssValueParser2.default)(decl.value).walk(function (node) {
if (node.type === 'function') {
if (/^(rgb|hsl)a?$/.test(node.value)) {
node.value = (0, _colormin2.default)((0, _postcssValueParser.stringify)(node), opts);
node.type = 'word';
} else if (node.value === 'calc') {
return false;
}
} else {
node.value = (0, _colormin2.default)(node.value, opts);
}
}).toString();
}
exports.default = _postcss2.default.plugin('postcss-colormin', function () {
var opts = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
return function (css) {
return css.walkDecls(function (node) {
return transform(node, opts);
});
};
});
module.exports = exports['default'];
;