postcss-minify-gradients 4.0.0-rc.2 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.js +37 -40
- package/package.json +8 -8
package/README.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -22,7 +22,7 @@ var _isColorStop2 = _interopRequireDefault(_isColorStop);
|
|
|
22
22
|
|
|
23
23
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
const angles = {
|
|
26
26
|
top: '0deg',
|
|
27
27
|
right: '90deg',
|
|
28
28
|
bottom: '180deg',
|
|
@@ -34,29 +34,30 @@ function isLessThan(a, b) {
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
function optimise(decl) {
|
|
37
|
-
if (!~decl.value.indexOf('gradient')) {
|
|
37
|
+
if (!~decl.value.toLowerCase().indexOf('gradient')) {
|
|
38
38
|
return;
|
|
39
39
|
}
|
|
40
|
-
decl.value = (0, _postcssValueParser2.default)(decl.value).walk(
|
|
40
|
+
decl.value = (0, _postcssValueParser2.default)(decl.value).walk(node => {
|
|
41
41
|
if (node.type !== 'function' || !node.nodes.length) {
|
|
42
42
|
return false;
|
|
43
43
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
const lowerCasedValue = node.value.toLowerCase();
|
|
45
|
+
if (lowerCasedValue === 'linear-gradient' || lowerCasedValue === 'repeating-linear-gradient' || lowerCasedValue === '-webkit-linear-gradient' || lowerCasedValue === '-webkit-repeating-linear-gradient') {
|
|
46
|
+
let args = (0, _cssnanoUtilGetArguments2.default)(node);
|
|
47
|
+
if (node.nodes[0].value.toLowerCase() === 'to' && args[0].length === 3) {
|
|
47
48
|
node.nodes = node.nodes.slice(2);
|
|
48
|
-
node.nodes[0].value = angles[node.nodes[0].value];
|
|
49
|
+
node.nodes[0].value = angles[node.nodes[0].value.toLowerCase()];
|
|
49
50
|
}
|
|
50
|
-
|
|
51
|
-
args.forEach(
|
|
51
|
+
let lastStop = null;
|
|
52
|
+
args.forEach((arg, index) => {
|
|
52
53
|
if (!arg[2]) {
|
|
53
54
|
return;
|
|
54
55
|
}
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
let isFinalStop = index === args.length - 1;
|
|
57
|
+
let thisStop = (0, _postcssValueParser.unit)(arg[2].value);
|
|
57
58
|
if (lastStop === null) {
|
|
58
59
|
lastStop = thisStop;
|
|
59
|
-
if (!isFinalStop && lastStop && lastStop.number === '0' && lastStop.unit !== 'deg') {
|
|
60
|
+
if (!isFinalStop && lastStop && lastStop.number === '0' && lastStop.unit.toLowerCase() !== 'deg') {
|
|
60
61
|
arg[1].value = arg[2].value = '';
|
|
61
62
|
}
|
|
62
63
|
return;
|
|
@@ -71,34 +72,32 @@ function optimise(decl) {
|
|
|
71
72
|
});
|
|
72
73
|
return false;
|
|
73
74
|
}
|
|
74
|
-
if (
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
});
|
|
80
|
-
_args.forEach(function (arg, index) {
|
|
75
|
+
if (lowerCasedValue === 'radial-gradient' || lowerCasedValue === 'repeating-radial-gradient') {
|
|
76
|
+
let args = (0, _cssnanoUtilGetArguments2.default)(node);
|
|
77
|
+
let lastStop;
|
|
78
|
+
const hasAt = args[0].find(n => n.value.toLowerCase() === 'at');
|
|
79
|
+
args.forEach((arg, index) => {
|
|
81
80
|
if (!arg[2] || !index && hasAt) {
|
|
82
81
|
return;
|
|
83
82
|
}
|
|
84
|
-
|
|
85
|
-
if (!
|
|
86
|
-
|
|
83
|
+
let thisStop = (0, _postcssValueParser.unit)(arg[2].value);
|
|
84
|
+
if (!lastStop) {
|
|
85
|
+
lastStop = thisStop;
|
|
87
86
|
return;
|
|
88
87
|
}
|
|
89
|
-
if (isLessThan(
|
|
88
|
+
if (isLessThan(lastStop, thisStop)) {
|
|
90
89
|
arg[2].value = 0;
|
|
91
90
|
}
|
|
92
|
-
|
|
91
|
+
lastStop = thisStop;
|
|
93
92
|
});
|
|
94
93
|
return false;
|
|
95
94
|
}
|
|
96
|
-
if (
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
95
|
+
if (lowerCasedValue === '-webkit-radial-gradient' || lowerCasedValue === '-webkit-repeating-radial-gradient') {
|
|
96
|
+
let args = (0, _cssnanoUtilGetArguments2.default)(node);
|
|
97
|
+
let lastStop;
|
|
98
|
+
args.forEach(arg => {
|
|
99
|
+
let color;
|
|
100
|
+
let stop;
|
|
102
101
|
if (arg[2] !== undefined) {
|
|
103
102
|
if (arg[0].type === 'function') {
|
|
104
103
|
color = `${arg[0].value}(${(0, _postcssValueParser.stringify)(arg[0].nodes)})`;
|
|
@@ -116,29 +115,27 @@ function optimise(decl) {
|
|
|
116
115
|
}
|
|
117
116
|
color = arg[0].value;
|
|
118
117
|
}
|
|
119
|
-
|
|
118
|
+
const colorStop = stop || stop === 0 ? (0, _isColorStop2.default)(color, stop) : (0, _isColorStop2.default)(color);
|
|
120
119
|
|
|
121
120
|
if (!colorStop || !arg[2]) {
|
|
122
121
|
return;
|
|
123
122
|
}
|
|
124
|
-
|
|
125
|
-
if (!
|
|
126
|
-
|
|
123
|
+
let thisStop = (0, _postcssValueParser.unit)(arg[2].value);
|
|
124
|
+
if (!lastStop) {
|
|
125
|
+
lastStop = thisStop;
|
|
127
126
|
return;
|
|
128
127
|
}
|
|
129
|
-
if (isLessThan(
|
|
128
|
+
if (isLessThan(lastStop, thisStop)) {
|
|
130
129
|
arg[2].value = 0;
|
|
131
130
|
}
|
|
132
|
-
|
|
131
|
+
lastStop = thisStop;
|
|
133
132
|
});
|
|
134
133
|
return false;
|
|
135
134
|
}
|
|
136
135
|
}).toString();
|
|
137
136
|
}
|
|
138
137
|
|
|
139
|
-
exports.default = _postcss2.default.plugin('postcss-minify-gradients',
|
|
140
|
-
return
|
|
141
|
-
return css.walkDecls(optimise);
|
|
142
|
-
};
|
|
138
|
+
exports.default = _postcss2.default.plugin('postcss-minify-gradients', () => {
|
|
139
|
+
return css => css.walkDecls(optimise);
|
|
143
140
|
});
|
|
144
141
|
module.exports = exports['default'];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "postcss-minify-gradients",
|
|
3
|
-
"version": "4.0.0
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "Minify gradient parameters with PostCSS.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -18,25 +18,25 @@
|
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"devDependencies": {
|
|
20
20
|
"babel-cli": "^6.0.0",
|
|
21
|
-
"cross-env": "^
|
|
21
|
+
"cross-env": "^5.0.0"
|
|
22
22
|
},
|
|
23
|
-
"homepage": "https://github.com/
|
|
23
|
+
"homepage": "https://github.com/cssnano/cssnano",
|
|
24
24
|
"author": {
|
|
25
25
|
"name": "Ben Briggs",
|
|
26
26
|
"email": "beneb.info@gmail.com",
|
|
27
27
|
"url": "http://beneb.info"
|
|
28
28
|
},
|
|
29
|
-
"repository": "
|
|
29
|
+
"repository": "cssnano/cssnano",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"cssnano-util-get-arguments": "^4.0.0
|
|
32
|
-
"is-color-stop": "^1.
|
|
31
|
+
"cssnano-util-get-arguments": "^4.0.0",
|
|
32
|
+
"is-color-stop": "^1.0.0",
|
|
33
33
|
"postcss": "^6.0.0",
|
|
34
34
|
"postcss-value-parser": "^3.0.0"
|
|
35
35
|
},
|
|
36
36
|
"bugs": {
|
|
37
|
-
"url": "https://github.com/
|
|
37
|
+
"url": "https://github.com/cssnano/cssnano/issues"
|
|
38
38
|
},
|
|
39
39
|
"engines": {
|
|
40
|
-
"node": ">=
|
|
40
|
+
"node": ">=6.9.0"
|
|
41
41
|
}
|
|
42
42
|
}
|