replace(/:0 0 0 0([^\.])/g, ':0$1');
replace(/([: ,=\-])0\.(\d)/g, '$1.$2');
+ // same values into one
+ replace(/(padding|margin|border\-width):([\d\w\.%]+) ([\d\w\.%]+) ([\d\w\.%]+) ([\d\w\.%]+)/g, function(match, property, size1, size2, size3, size4) {
+ if (size1 === size2 && size1 === size3 && size1 === size4)
+ return property + ":" + size1;
+ else
+ return match;
+ });
+
// restore rect(...) zeros syntax for 4 zeros
replace(/rect\(\s?0(\s|,)0[ ,]0[ ,]0\s?\)/g, 'rect(0$10$10$10)');
'div{clip:rect(0 0 0 10px)}'
]
}),
+ 'shorthands': cssContext({
+ 'padding - same values': [
+ 'div{padding:1px 1px 1px 1px}',
+ 'div{padding:1px}'
+ ],
+ 'margin - same values': [
+ 'div{margin:1% 1% 1% 1%}',
+ 'div{margin:1%}'
+ ],
+ 'border-width - same values': [
+ 'div{border-width:1em 1em 1em 1em}',
+ 'div{border-width:1em}'
+ ],
+ 'different units': 'div{padding:1px 1em 1% 1rem}',
+ 'fractions': [
+ 'div{margin:.1em .1em .1em .1em}',
+ 'div{margin:.1em}'
+ ]
+ }),
'floats': cssContext({
'strips zero in fractions': [
'a{ margin-bottom: 0.5em}',