Research
Security News
Kill Switch Hidden in npm Packages Typosquatting Chalk and Chokidar
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
The pixrem npm package is a PostCSS plugin that converts pixel units to rem units in CSS. This is particularly useful for responsive web design, where rem units can provide more flexibility and scalability compared to fixed pixel units.
Convert px to rem
This feature converts pixel units to rem units in the provided CSS. The rootValue option specifies the root font size, which is used as the base for the conversion.
const postcss = require('postcss');
const pixrem = require('pixrem');
const css = 'body { font-size: 16px; }';
const options = { rootValue: 16 };
postcss([pixrem(options)])
.process(css)
.then(result => {
console.log(result.css);
});
Custom root value
This feature allows you to specify a custom root value for the conversion. In this example, the root value is set to 10, so 32px will be converted to 3.2rem.
const postcss = require('postcss');
const pixrem = require('pixrem');
const css = 'h1 { margin: 32px 0; }';
const options = { rootValue: 10 };
postcss([pixrem(options)])
.process(css)
.then(result => {
console.log(result.css);
});
Replace only specific properties
This feature allows you to replace only specific properties or at-rules. The options object can be configured to target specific CSS properties or at-rules for conversion.
const postcss = require('postcss');
const pixrem = require('pixrem');
const css = 'h1 { margin: 32px 0; padding: 16px; }';
const options = { rootValue: 16, replace: true, atrules: true, html: true, browsers: 'last 2 versions' };
postcss([pixrem(options)])
.process(css)
.then(result => {
console.log(result.css);
});
The postcss-pxtorem package is another PostCSS plugin that converts pixel units to rem units. It offers similar functionality to pixrem but includes additional options for controlling which properties are converted and supports media queries.
The postcss-px-to-viewport package converts pixel units to viewport units (vw, vh). While it serves a different purpose compared to pixrem, it is also used for responsive design by converting fixed units to scalable units based on the viewport size.
The postcss-px-to-em package converts pixel units to em units. Similar to pixrem, it helps in creating responsive designs by converting fixed units to relative units, but it uses em instead of rem.
PostCSS plugin that generates pixel fallbacks for rem units.
npm install --save pixrem
Pixrem is a CSS post-processor that, given CSS and a root em value, returns CSS with pixel unit fallbacks or replacements. It's based on browser data so only needed fallbacks will be added. Basically, it's for IE8 or less, and for IE9 & IE10 in the font
shorthand property and in pseudo-elements.
'use strict';
var fs = require('fs');
var pixrem = require('pixrem');
var postcss = require('postcss');
var css = fs.readFileSync('main.css', 'utf8');
var processedCss = postcss([pixrem]).process(css).css;
fs.writeFile('main.with-fallbacks.css', processedCss, function (err) {
if (err) {
throw err;
}
console.log('IE8, you\'re welcome.');
});
Pixrem takes this:
.sky {
margin: 2.5rem 2px 3em 100%;
color: blue;
}
@media screen and (min-width: 20rem) {
.leaf {
margin-bottom: 1.333rem;
font-size: 1.5rem;
}
}
And returns this:
.sky {
margin: 80px 2px 3em 100%;
margin: 2.5rem 2px 3em 100%;
color: blue;
}
@media screen and (min-width: 20rem) {
.leaf {
margin-bottom: 1.333rem;
font-size: 1.5rem;
}
}
Type: Object | Null
Default: {rootValue: 16, replace: false, atrules: false, html: true, browsers: 'ie <= 8', unitPrecision: 3}
rootValue
the root element font size. Can be px
, rem
, em
, %
, or unitless pixel value. Pixrem also tries to get the root font-size from CSS (html
or :root
) and overrides this option. Use html
option to disable this behaviour.replace
replaces rules containing rem
s instead of adding fallbacks.atrules
generates fallback in at-rules too (media-queries)html
overrides root font-size from CSS html {}
or :root {}
browsers
sets browser's range you want to target, based on browserslistunitPrecision
control the significant digits after the decimal pointReport bugs and feature proposals in the Github issue tracker. Run tests with npm test
. In lieu of a formal styleguide, take care to maintain the existing coding style.
FAQs
A CSS post-processor that generates pixel fallbacks for rem units.
The npm package pixrem receives a total of 110,979 weekly downloads. As such, pixrem popularity was classified as popular.
We found that pixrem demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.