Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including pxtorem with all npm packages installed. Try it out:

var pxtorem = require("pxtorem")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

pxtorem v1.0.0

A CSS post-processor that converts px to rem.

pxtorem NPM version

A plugin for PostCSS that generates rem units from pixel units.


Pixels are the easiest unit to use. The only issue with them is that they don't let browsers change the default font size of 16. This script converts every px value to a rem from the properties you choose to allow the browser to set the font size.


var fs = require('fs');
var postcss = require('postcss');
var pxtorem = require('pxtorem');
var css = fs.readFileSync('main.css', 'utf8');
var options = {
    replace: false
var processedCss = postcss(pxtorem(options)).process(css).css;

fs.writeFile('main-rem.css', processedCss, function (err) {
  if (err) {
    throw err;
  console.log('Rem file written.');


Type: Object | Null

    root_value: 16,
    unit_precision: 5,
    prop_white_list: ['font', 'font-size', 'line-height', 'letter-spacing'],
    replace: true,
    media_query: false
  • root_value (Number) The root element font size.
  • unit_precision (Number) The decimal numbers to allow the REM units to grow to.
  • prop_white_list (Array) The properties that can change from px to rem.
  • replace (Boolean) replaces rules containing rems instead of adding fallbacks.
  • media_query (Boolean) Allow px to be converted in media queries.




RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free