simplifies transparency check to only look for zeroes in all parameters. fixes overea...
authorBrian Whitton <me@brianwhitton.com>
Fri, 22 Aug 2014 17:43:50 +0000 (13:43 -0400)
committerBrian Whitton <me@brianwhitton.com>
Fri, 22 Aug 2014 17:43:50 +0000 (13:43 -0400)
lib/clean.js
test/unit-test.js

index 704c2d8..fd1aa38 100644 (file)
@@ -313,7 +313,7 @@ var minify = function(data, callback) {
 
   // transparent rgba/hsla to 'transparent' unless in compatibility mode
   if (!options.compatibility) {
-    replace(/:([^;]*)(?:rgba|hsla)\(\d+,\d+%?,\d+%?,0\)/g, function (match, prefix) {
+    replace(/:([^;]*)(?:rgba|hsla)\(0,0%?,0%?,0\)/g, function (match, prefix) {
       if (new Splitter(',').split(match).pop().indexOf('gradient(') > -1)
         return match;
 
index 73b62c3..b77932d 100644 (file)
@@ -793,22 +793,29 @@ vows.describe('clean-units').addBatch({
       'a{color:rgba(0,0,0,0)}',
       'a{color:transparent}'
     ],
-    'turns rgba(0.0,0.0,.0,0) to transparent': [
-      'a{color:rgba(0.0,0.0,.0,0)}',
+    'turns rgba(0.0,0.0,0.0,0) to transparent': [
+      'a{color:rgba(0.0,0.0,0.0,0)}',
       'a{color:transparent}'
     ],
-    'turns rgba(255,255,255,0) to transparent': [
-      'a{color:rgba(255,255,255,0)}',
+    'turns hsla(0,0%,0%,0) to transparent': [
+      'a{color:hsla(0,0%,0%,0)}',
       'a{color:transparent}'
     ],
-    'turns rgba(255,0,255,0) to transparent': [
-      'a{color:rgba(255,0,255,0)}',
+    'turns hsla(0,0,0,0) to transparent': [
+      'a{color:hsla(0,0,0,0)}',
       'a{color:transparent}'
     ],
-    'turns hsla(120,100%,50%,0) to transparent': [
-      'a{color:hsla(120,100%,50%,0)}',
+    'turns hsla(0.0,0.0%,0.0%,0) to transparent': [
+      'a{color:hsla(0.0,0.0%,0.0%,0)}',
       'a{color:transparent}'
     ],
+    'turns hsla(0.0,0.0,0.0,0) to transparent': [
+      'a{color:hsla(0.0,0.0,0.0,0)}',
+      'a{color:transparent}'
+    ],
+    'keeps rgba(255,255,255,0)': 'a{color:rgba(255,255,255,0)}',
+    'keeps rgba(255,0,255,0)': 'a{color:rgba(255,0,255,0)}',
+    'keeps hsla(120,100%,50%,0)': 'a{color:hsla(120,100%,50%,0)}',
     'keeps rgba(0,0,0,.5)': 'a{color:rgba(0,0,0,.5)}',
     'keeps rgba(0,255,0,.5)': 'a{color:rgba(0,255,0,.5)}',
     'keeps hsla(120,100%,50%,.5)': 'a{color:hsla(120,100%,50%,.5)}',