1.0.0 • Published 5 years ago

postcss-rpx-loader v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
5 years ago

PostCSS Rpx Loader Build Status

中文说明请见README.zh-hans.md

PostCSS plugin that makes you to use rpx (responsive px) unit in style sheets.

It may replace rem and flexible.js solution.

Features

Copy UI mark to code

Enables you to directly copy the px value in marked UI to your CSS (or other preprocessors), and the loader will compile them responsively without manually converting px values to rem or other units.

Better performance

PostCSS will handle the unit conversion, and you needn't import any JS libs in the client. In other words, a better performance.

No conflict with third-party UI libs

It doesn't depend on <html data-dpr="", therefore, you won't get oversized or shrinked third-party UI lib.

No overwriting exsiting units

Since rpx is a new unit, existing units like rem, em and px are not overwritten and work as what they originally does.

VW core

It performs well on retina screens, and it well resolves real 1px problem, since the essence of rpx is vw.

Usage (Take SCSS for example)

Ensure that you've installed postcss-loader and the PostCSS plugin of your preferred preprocessor.

Run npm i postcss-rpx-loader -D in the root directory of your project.

In webpack.config.js, invoke postcss-loader.

module.exports = {
  module: {
    rules: [{
    test: /\.scss$/,
    use: [
      'vue-style-loader',
      'css-loader',
      'postcss-loader', // If you use a preprocessor,please insert `postcss-loader`before the loader of the preprocessor
      'sass-loader'
    ]
    }]
  }
}

Create postcss.config.js in the root directory of your project and write

module.exports = {
  syntax: 'postcss-scss',
  plugins: [
    // Default UI width is 750px
    require('postcss-rpx-loader')
    // May accept a parameter which indicates UI width
    // require('postcss-rpx-loader')(1080)
  ]
}

Now you can use rpx in your style sheets.

div {
  /* If it is 50px in the marked UI, you just need to write 50rpx */
  height: 50rpx;  
}
div {
  /* What you get */
  /* In devices with different screen widths, you will get uniform visual effects */
  height: 6.67vw;
}

Integrate with Vue CLI

Run npm i postcss-rpx-loader -D in the root directory of your project.

In package.json

{
  "name": "",
  "version": "",
  // ...
  "postcss": {
    "plugins": {
      "autoprefixer": {},
      "postcss-rpx-loader": {} // Add this
    }
  }
}
1.0.0

5 years ago

0.0.0

5 years ago