gulp-px2rem-converter
Version:
Gulp plugin. Converts all properties in pixels to rem, also converts all media in pixels in em
39 lines (38 loc) • 1.17 kB
JavaScript
;
const replace = require("./replace");
const findRoot = require("./findRoot");
const getType = require("./getType");
let param;
let type;
let rootParam;
const template = '<template root>';
const pxToRem = (file, rootSize) => {
if (rootSize) {
type = getType(rootSize).toLocaleLowerCase() || 'px';
param = parseInt(rootSize.replace(type, '').trim());
}
else {
const arg = findRoot.getParams(file);
type = getType(arg).toLocaleLowerCase();
param = parseInt(arg.replace(type, '').trim());
rootParam = findRoot.getRoot();
if (rootParam)
file = file.replace(rootParam, template);
}
switch (type) {
case 'px':
file = replace(file, param);
if (rootParam)
file = file.replace(template, rootParam);
break;
case '%':
param = 16 * param / 100;
file = replace(file, param);
if (rootParam)
file = file.replace(template, rootParam);
break;
}
file = file.replace(/rem+[ \)|\)|\)\n]+{/ig, 'em){');
return file;
};
module.exports = pxToRem;