postcss-adaptive
A postcss plugin that calculates and generates adaptive css code, such as rem
and 0.5px borders for retina devices
.
Table of Contents
Requirements
Set rem unit and hairline class. For example:
{ var docEl = docdocumentElement; { var docWidth = docElclientWidth; var rem = docWidth / 10; docElstylefontSize = rem + 'px'; } win; win; ; if windevicePixelRatio && windevicePixelRatio >= 2 var testEl = doc; var fakeBody = doc; testElstyleborder = '0.5px solid transparent'; fakeBody; docEl; if testEloffsetHeight === 1 docElclassList; docEl; } window document;
Usage
The raw stylesheet only contains @2x style, and if you
- intend to use
rem
unit,add/*rem*/
after the declaration - don't intend to transform the original value, add
/*no*/
after the declaration - intend to use
px
unit whenautoRem
is set totrue
, add/*px*/
after the declaration
Attention: Dealing with SASS or LESS, only /*...*/
comment can be used, in order to have the comments persisted.
Before processing:
After processing:
API
adaptive(config)
Config:
remUnit
: number, rem unit value (default: 75)baseDpr
: number, base device pixel ratio (default: 2)remPrecision
: number, rem value precision (default: 6)hairlineClass
: string, class name of 1px border (default 'hairlines')autoRem
: boolean, whether to transform to rem unit (default: false)
Node
npm install postcss-adaptive
var postcss = ;var adaptive = ;var originCssText = '...';var newCssText = css;
Gulp
var gulp = ;var postcss = ;var adaptive = ; gulp;
Webpack
var adaptive = ; moduleexports = module: loaders: test: /\.css$/ loader: "style-loader!css-loader!postcss-loader" { return ; }
Grunt
module { grunt; grunt; grunt;}
Changelog
0.4.0
- Do not generate
hairline
when the declaration is commented with/*no*/
.
0.3.2
- Upgrade postcss version to 6.x.
- The value below 1px will not transfer to rem.
0.3.1
- Delete
minify
option, please use other postcss plugins likecssnano
instead.
0.3.0
- Support
minify
option to minify the output css code.
0.2.0
- Support
autoRem
option.
0.1.4
- Support
/*no*/
comment.
0.1.0
- First release.
License
MIT