1 | # postcss-pxtorem [![NPM version](https://badge.fury.io/js/postcss-pxtorem.svg)](http://badge.fury.io/js/postcss-pxtorem)
|
2 |
|
3 | A plugin for [PostCSS](https://github.com/ai/postcss) that generates rem units from pixel units.
|
4 |
|
5 |
|
6 | ## Usage
|
7 |
|
8 | 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.
|
9 |
|
10 |
|
11 | ### Example
|
12 |
|
13 | ```js
|
14 | var fs = require('fs');
|
15 | var postcss = require('postcss');
|
16 | var pxtorem = require('postcss-pxtorem');
|
17 | var css = fs.readFileSync('main.css', 'utf8');
|
18 | var options = {
|
19 | replace: false
|
20 | };
|
21 | var processedCss = postcss(pxtorem(options)).process(css).css;
|
22 |
|
23 | fs.writeFile('main-rem.css', processedCss, function (err) {
|
24 | if (err) {
|
25 | throw err;
|
26 | }
|
27 | console.log('Rem file written.');
|
28 | });
|
29 | ```
|
30 |
|
31 | ### options
|
32 |
|
33 | Type: `Object | Null`
|
34 | Default:
|
35 | ```js
|
36 | {
|
37 | root_value: 16,
|
38 | unit_precision: 5,
|
39 | prop_white_list: ['font', 'font-size', 'line-height', 'letter-spacing'],
|
40 | replace: true,
|
41 | media_query: false
|
42 | }
|
43 | ```
|
44 |
|
45 | - `root_value` (Number) The root element font size.
|
46 | - `unit_precision` (Number) The decimal numbers to allow the REM units to grow to.
|
47 | - `prop_white_list` (Array) The properties that can change from px to rem.
|
48 | - `replace` (Boolean) replaces rules containing rems instead of adding fallbacks.
|
49 | - `media_query` (Boolean) Allow px to be converted in media queries.
|
50 |
|
51 |
|
52 | ### Use with gulp-postcss and autoprefixer-core
|
53 | ```js
|
54 | var gulp = require('gulp');
|
55 | var postcss = require('gulp-postcss');
|
56 | var autoprefixer = require('autoprefixer-core');
|
57 | var pxtorem = require('postcss-pxtorem');
|
58 |
|
59 | gulp.task('css', function () {
|
60 |
|
61 | var processors = [
|
62 | autoprefixer({
|
63 | browsers: 'last 1 version'
|
64 | }),
|
65 | pxtorem({
|
66 | replace: false
|
67 | })
|
68 | ];
|
69 |
|
70 | return gulp.src(['build/css/**/*.css'])
|
71 | .pipe(postcss(processors))
|
72 | .pipe(gulp.dest('build/css'));
|
73 | });
|
74 | ```
|