postcss-em ![Node.js CI](https://github.com/pierreburel/postcss-em/actions/workflows/node.js.yml/badge.svg)
PostCSS plugin to convert px in em. Based on sass-em.
Breaking change in 3.0: changed default function name to em-convert
to match postcss-rem, as CSS now use rem()
for calculating the remainder.
How it works
The plugin provides a em-convert()
function which takes at least 2 parameters: the value (px, mixed) and the context (px).
There can be multiple comma-separated values (eg. multiple box shadow), but the last parameter must be the context.
Example
Input
.demo {
font-size: em-convert(24px, 16px);
padding: em-convert(5px 10px, 24px);
margin: em-convert(10px 0.5em, 24px);
border-bottom: em-convert(1px solid black, 24px);
box-shadow: em-convert(
0 0 2px #ccc,
inset 0 0 5px #eee,
24px
);
text-shadow: em-convert(1px 1px, 24px) #eee, em-convert(-1px, 24px) 0 #eee;
}
Output
.demo {
font-size: 1.5em;
padding: 0.20833em 0.41666em;
margin: 0.41666em 0.5em;
border-bottom: 0.04166em solid black;
box-shadow: 0 0 0.08333em #ccc, inset 0 0 0.20833em #eee;
text-shadow: 0.04166em 0.04166em #eee, -0.04166em 0 #eee;
}
Usage
Install with npm i postcss-em
and use with PostCSS:
postcss([require("postcss-em")]);
Example with custom options:
postcss([ require('postcss-em')({
precision: 6
name: 'convert-em'
}) ])
See PostCSS docs for examples for your environment.