Product
Introducing SSO
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
postcss-pt2rem
Advanced tools
Readme
A plugin for PostCSS that generates rem units from pt( pixel units , pt = px just alias. because px in other used and pt rarely used ).
The code fork for postcss-pxtorem,just modify little.
$ npm install postcss-pttorem --save-dev
Pixels are the easiest unit to use (opinion). 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.
With the default settings, only font related properties are targeted.
// input
h1 {
margin: 0 0 20px;
font-size: 32pt;
padding-top: 32Pt;
line-height: 1.2;
letter-spacing: 1pt;
}
// output
h1 {
margin: 0 0 20px;
font-size: 2rem;
padding-top: 2rem;
line-height: 1.2;
letter-spacing: 0.0625rem;
}
var fs = require('fs');
var postcss = require('postcss');
var pttorem = require('postcss-pttorem');
var css = fs.readFileSync('main.css', 'utf8');
var options = {
replace: false
};
var processedCss = postcss(pttorem(options)).process(css).css;
fs.writeFile('main-rem.css', processedCss, function (err) {
if (err) {
throw err;
}
console.log('Rem file written.');
});
Type: Object | Null
Default:
{
rootValue: 16,
unitPrecision: 8,
propList: ['font', 'font-size', 'line-height', 'letter-spacing'],
selectorBlackList: [],
replace: true,
mediaQuery: false,
minPixelValue: 0,
exclude: /node_modules/i
}
rootValue
(Number | Function) Represents the root element font size or returns the root element font size based on the input
parameterunitPrecision
(Number) The decimal numbers to allow the REM units to grow to.propList
(Array) The properties that can change from pt to rem.
*
to enable all properties. Example: ['*']
*
at the start or end of a word. (['*position*']
will match background-position-y
)!
to not match a property. Example: ['*', '!letter-spacing']
['*', '!font*']
selectorBlackList
(Array) The selectors to ignore and leave as pt.
['body']
will match .body-class
[/^body$/]
will match body
but not .body
replace
(Boolean) Replaces rules containing rems instead of adding fallbacks.mediaQuery
(Boolean) Allow pt to be converted in media queries.minPixelValue
(Number) Set the minimum pixel value to replace.exclude
(String, Regexp, Function) The file path to ignore and leave as pt.
'exclude'
will match \project\postcss-pxtorem\exclude\path
/exclude/i
will match \project\postcss-pxtorem\exclude\path
function (file) { return file.indexOf('exclude') !== -1; }
var gulp = require('gulp');
var postcss = require('gulp-postcss');
var autoprefixer = require('autoprefixer');
var pttorem = require('postcss-pttorem');
gulp.task('css', function () {
var processors = [
autoprefixer({
browsers: 'last 1 version'
}),
pttorem({
replace: false
})
];
return gulp.src(['build/css/**/*.css'])
.pipe(postcss(processors))
.pipe(gulp.dest('build/css'));
});
Currently, the easiest way to have a single property ignored is to use a capital in the pixel unit declaration.
// `pt` is converted to `rem`
.convert {
font-size: 16pt; // converted to 1rem
}
FAQs
A CSS post-processor that converts pt(not real pt) to rem. the source form postcss-pxtorem
The npm package postcss-pt2rem receives a total of 1 weekly downloads. As such, postcss-pt2rem popularity was classified as not popular.
We found that postcss-pt2rem demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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.
Product
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.