From dff48e577f776d8f7023fd79d098b2b131152897 Mon Sep 17 00:00:00 2001 From: Paul Welsh Date: Thu, 18 Jun 2015 12:45:12 +0100 Subject: [PATCH] Add selector black list --- README.md | 2 ++ index.js | 13 +++++++++++++ package.json | 2 +- spec/pxtorem-spec.js | 11 +++++++++++ 4 files changed, 27 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 77d7c5e..66eaee5 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,7 @@ Default: root_value: 16, unit_precision: 5, prop_white_list: ['font', 'font-size', 'line-height', 'letter-spacing'], + selector_black_list: [], replace: true, media_query: false } @@ -45,6 +46,7 @@ Default: - `root_value` (Number) The root element font size. - `unit_precision` (Number) The decimal numbers to allow the REM units to grow to. - `prop_white_list` (Array) The properties that can change from px to rem. +- `selector_black_list` (Array) The selectors to ignore and leave as px. - `replace` (Boolean) replaces rules containing rems instead of adding fallbacks. - `media_query` (Boolean) Allow px to be converted in media queries. diff --git a/index.js b/index.js index e2b4c02..77a5c4f 100644 --- a/index.js +++ b/index.js @@ -9,6 +9,7 @@ module.exports = postcss.plugin('postcss-pxtorem', function (options) { options = options || {}; var rootValue = options.root_value || 16; var unitPrecision = options.unit_precision || 5; + var selectorBlackList = options.selector_black_list || []; var propWhiteList = options.prop_white_list || ['font', 'font-size', 'line-height', 'letter-spacing']; var replace = (options.replace === false) ? false : true; var mediaQuery = options.media_query || false; @@ -22,6 +23,18 @@ module.exports = postcss.plugin('postcss-pxtorem', function (options) { css.eachDecl(function (decl, i) { if (propWhiteList.indexOf(decl.prop) === -1) return; + var selector = decl.parent.selector; + var match = false; + for (var j=0; j