Nefarious Planetary Meddling
    Have ideas to improve npm?Join in the discussion! »

    postcss-px-to-viewport-fix

    0.0.2 • Public • Published

    改造postcss-px-to-viewport

    增加exclude配置项

    配置文件.postcssrc.js(修改第三方库被影响的情况)

    "postcss-px-to-viewport-fix": {
          viewportWidth: 750,
          viewportHeight: 1334,
          unitPrecision: 3,
          viewportUnit: 'vw',
          selectorBlackList: ['.ignore', '.hairlines'],
          minPixelValue: 1,
          mediaQuery: false,
          exclude: /(\/|\\)(node_modules)(\/|\\)/
        },
    

    postcss-px-to-viewport NPM version

    A plugin for PostCSS that generates viewport units (vw, vh, vmin, vmax) from pixel units.

    Usage

    If your project involves a fixed width, this script will help to convert pixels into viewport units.

    Input/Output

    // input
     
    .class {
      margin: -10px .5vh;
      padding: 5vmin 9.5px 1px;
      border: 3px solid black;
      border-bottom-width: 1px;
      font-size: 14px;
      line-height: 20px;
    }
     
    .class2 {
      border: 1px solid black;
      margin-bottom: 1px;
      font-size: 20px;
      line-height: 30px;
    }
     
    @media (min-width: 750px) {
      .class3 {
        font-size: 16px;
        line-height: 22px;
      }
    }
     
    // output
     
    .class {
      margin: -3.125vw .5vh;
      padding: 5vmin 2.96875vw 1px;
      border: 0.9375vw solid black;
      border-bottom-width: 1px;
      font-size: 4.375vw;
      line-height: 6.25vw;
    }
     
    .class2 {
      border: 1px solid black;
      margin-bottom: 1px;
      font-size: 6.25vw;
      line-height: 9.375vw;
    }
     
    @media (min-width: 234.375vw) {
      .class3 {
        font-size: 5vw;
        line-height: 6.875vw;
      }
    }

    Example

    'use strict';
     
    var fs = require('fs');
    var postcss = require('postcss');
    var pxToViewport = require('..');
    var css = fs.readFileSync('main.css', 'utf8');
    var options = {
        replace: false
    };
    var processedCss = postcss(pxToViewport(options)).process(css).css;
     
    fs.writeFile('main-viewport.css', processedCss, function (err) {
      if (err) {
        throw err;
      }
      console.log('File with viewport units written.');
    });

    Options

    Default:

    {
      viewportWidth: 320,
      viewportHeight: 568,
      unitPrecision: 5,
      viewportUnit: 'vw',
      selectorBlackList: [],
      minPixelValue: 1,
      mediaQuery: false
    }
    • viewportWidth (Number) The width of the viewport.
    • viewportHeight (Number) The height of the viewport.
    • unitPrecision (Number) The decimal numbers to allow the REM units to grow to.
    • viewportUnit (String) Expected units.
    • selectorBlackList (Array) The selectors to ignore and leave as px.
      • If value is string, it checks to see if selector contains the string.
        • ['body'] will match .body-class
      • If value is regexp, it checks to see if the selector matches the regexp.
        • [/^body$/] will match body but not .body
    • minPixelValue (Number) Set the minimum pixel value to replace.
    • mediaQuery (Boolean) Allow px to be converted in media queries.

    Use with gulp-postcss

    var gulp = require('gulp');
    var postcss = require('gulp-postcss');
    var pxtoviewport = require('postcss-px-to-viewport');
     
    gulp.task('css', function () {
     
        var processors = [
            pxtoviewport({
                viewportWidth: 320,
                viewportUnit: 'vmin'
            })
        ];
     
        return gulp.src(['build/css/**/*.css'])
            .pipe(postcss(processors))
            .pipe(gulp.dest('build/css'));
    });

    Install

    npm i postcss-px-to-viewport-fix

    DownloadsWeekly Downloads

    3

    Version

    0.0.2

    License

    MIT

    Unpacked Size

    9.28 kB

    Total Files

    7

    Last publish

    Collaborators

    • avatar