diff --git a/.gitignore b/.gitignore index 4796eb8..7f5dd6e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,33 +2,5 @@ logs *.log npm-debug.log* - -# Runtime data -pids -*.pid -*.seed - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release - -# Dependency directory -# https://docs.npmjs.com/misc/faq#should-i-check-my-node-modules-folder-into-git node_modules - -# Optional npm cache directory -.npm - -# Optional REPL history -.node_repl_history +postcss-px-to-em-master diff --git a/.npmignore b/.npmignore new file mode 100755 index 0000000..8747b5a --- /dev/null +++ b/.npmignore @@ -0,0 +1,5 @@ +.idea +.gitignore +npm-debug.log* +node_modules +spec diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/example/main-viewport.css b/example/main-viewport.css index 5dc5021..43c31b0 100644 --- a/example/main-viewport.css +++ b/example/main-viewport.css @@ -1,11 +1,14 @@ .class { margin: -3.125vw .5vh; - padding: 5vmin 2.96875vw; + 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; } diff --git a/example/main.css b/example/main.css index 62039bc..0f3d1ac 100755 --- a/example/main.css +++ b/example/main.css @@ -1,11 +1,14 @@ .class { margin: -10px .5vh; - padding: 5vmin 9.5px; + 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; } diff --git a/index.js b/index.js index b29e4c5..24c0521 100755 --- a/index.js +++ b/index.js @@ -17,15 +17,14 @@ var defaults = { unitPrecision: 5, viewportUnit: 'vw', selectorBlackList: [], - //propWhiteList: ['font', 'font-size', 'line-height', 'letter-spacing'], - replace: true, + minPixelValue: 1, mediaQuery: false }; module.exports = postcss.plugin('postcss-px-to-viewport', function (options) { var opts = objectAssign({}, defaults, options); - var pxReplace = createPxReplace(opts.viewportWidth, opts.unitPrecision, opts.viewportUnit); + var pxReplace = createPxReplace(opts.viewportWidth, opts.minPixelValue, opts.unitPrecision, opts.viewportUnit); return function (css) { @@ -33,16 +32,8 @@ module.exports = postcss.plugin('postcss-px-to-viewport', function (options) { // This should be the fastest test and will remove most declarations if (decl.value.indexOf('px') === -1) return; - // if (opts.propWhiteList.length && opts.propWhiteList.indexOf(decl.prop) === -1) return; - if (blacklistedSelector(opts.selectorBlackList, decl.parent.selector)) return; - //var value = decl.value.replace(pxRegex, pxReplace); - // - ////// if viewport unit already exists, do not replace - ////if (declarationExists(decl.parent, decl.prop, value)) return; - // - //decl.value = value; decl.value = decl.value.replace(pxRegex, pxReplace); }); @@ -56,10 +47,11 @@ module.exports = postcss.plugin('postcss-px-to-viewport', function (options) { }; }); -function createPxReplace(viewportSize, unitPrecision, viewportUnit) { +function createPxReplace(viewportSize, minPixelValue, unitPrecision, viewportUnit) { return function (m, $1) { if (!$1) return m; var pixels = parseFloat($1); + if (pixels <= minPixelValue) return m; return toFixed((pixels / viewportSize * 100), unitPrecision) + viewportUnit; }; } diff --git a/package.json b/package.json index ca650fb..b0af222 100755 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "postcss-px-to-viewport", "description": "A CSS post-processor that converts px to viewport units (vw, vh, vmin, vmax).", - "version": "0.0.1", + "version": "0.0.2", "author": "Dmitry Karpunin ", "license": "MIT", "repository": {