Convert all px to rem
npm i -D gulp-px2rem-converter
const gulp = require('gulp');
const pxToRem = require('gulp-px2rem-converter')
function css(){
return gulp.src('./*.css')
.pipe(pxToRem())
.pipe(gulp.dest('./dist'))
}
module.exports.css = css;
If you are not using :root or html or they do not have a font-size then you can ignore it. The default value 16px will be taken or you can specify this value manually
pxToRem(16)
or
pxToRem('16px')
or
pxToRem('100%')
gulp css
input
html{
font-size: 62.5%;
}
div{
padding: 160px;
border:1px solid red;
}
@media (min-width:120px){
div{
padding: 120px;
}
}
output
html{
font-size: 62.5%;
}
div{
padding: 16rem;
border:0.1rem solid red;
}
@media (min-width:12em){
div{
padding: 12rem;
}
}
input
:root{
font-size: 20px;
}
html{
font-size: 20px;
}
div{
padding: 40px;
}
@media(min-width:1200px){
div{
padding: 60px;
}
}
output
:root{
font-size: 20px;
}
html{
font-size: 1rem;
}
div{
padding: 2rem;
}
@media(min-width:60em){
div{
padding: 3rem;
}
}
The plugin works with units such as % or px. If you are using other devices, do not use this plugin. Unable to compute units that are dynamic by the browser.
Also converts all @media to em where px was used. Using em will resize all dimensions to those specified by the user. rem is not used due to bugs in Safari browsers
The plugin is not case sensitive.
You can enter both px and PX or Px
Doesn't work if you use font-size in :root or html
in @ media.
By default will take only the first font-size in :root or html if there is no font-size value in :root
css less(http://lesscss.org/) scss