27 lines
933 B
JavaScript
27 lines
933 B
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.rem = exports.default = void 0;
|
|
var _postcss_plugin = _interopRequireDefault(require("../../helpers/postcss_plugin"));
|
|
var _font_size = require("./font_size");
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
/** @module */
|
|
|
|
const skipParsingMatcher = /("[^"]*"|'[^']*'|(?:attr|url|var)\([^)]*\))/g;
|
|
|
|
/**
|
|
* Marpit PostCSS rem plugin.
|
|
*
|
|
* Replace `rem` unit to calculated value from CSS variable.
|
|
*
|
|
* @function rem
|
|
*/
|
|
const rem = exports.rem = (0, _postcss_plugin.default)('marpit-postcss-rem', () => css => css.walkDecls(decl => {
|
|
decl.value = decl.value.split(skipParsingMatcher).map((v, i) => {
|
|
if (i % 2) return v;
|
|
return v.replace(/(\d*\.?\d+)rem\b/g, (_, num) => `calc(var(${_font_size.rootFontSizeCustomProp}, 1rem) * ${num})`);
|
|
}).join('');
|
|
}));
|
|
var _default = exports.default = rem; |