/postcss-custom-css-units

Define custom css unit and convert them to CSS variable

Primary LanguageTypeScriptMIT LicenseMIT

PostCSS Custom CSS Units PostCSS

npm

Define custom css unit and convert them to CSS variable.

Input:

:root {
    --cusomt-base-unit: 1vw;
}

div {
    width: 100rpx;
}

Output:

div {
    width: calc(var(--cusomt-base-unit) * 100);
}

Installation

npm install postcss-custom-css-units

Usage

Add postcss-custom-css-units plugin to postcss.config.js

module.exports = {
    plugins: [
        require('postcss-custom-css-units')({
            baseUnit: `--cusomt-base-unit`,
            customUnit: 'rpx'
        })
    ]
}

Options

baseUnit (default: --base-unit)

CSS variable which you defined. customUnit will be converted to that CSS variable.

:root {
    --cusomt-base-unit: 1vw;
}

customUnit (default: rpx)

Custom CSS unit that should be converted.

div {
    width: 100rpx;
}

Optimize CSS performance

CSS variables get even more powerful when we combine them with the calc(). However, performance can become a problem while using calc() and CSS Variables. Here is the solution to reduce CSS calculation and variables if we don't need them in production environment.

Importing postcss-preset-env and postcss-calc, make sure that preserve is false

module.exports = {
    plugins: [
        require('postcss-custom-css-units')({
            baseUnit: `--cusomt-base-unit`,
            customUnit: 'rpx'
        }),
        require('postcss-preset-env')({
            // Some other options...
            preserve: false
        }),
        require("postcss-calc", {
            preserve: false
        })
    ]
}

Our input CSS

:root {
    --cusomt-base-unit: 10px;
}

div {
    width: 40rpx;
}

will becomes to

div {
    width: 400px;
}

LICENSE

MIT