summaryrefslogtreecommitdiff
path: root/node_modules/postcss-unopacity/index.js
blob: b67472c8b02da30c35627772707dccf1fd9c8279 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var postcss = require('postcss');

module.exports = postcss.plugin('postcss-unopacity', function (opts) {
	var method = opts && /^(copy|warn)$/.test(opts.method) ? opts.method : 'replace';
	var prefixed = opts && 'prefixed' in opts ? opts.prefixed : false;

	return function (css, result) {
		css.walkDecls('opacity', function (decl) {
			var value = Math.floor(decl.value * 100);
			var clone = prefixed ? decl.clone({ prop: '-ms-filter', value: '"progid:DXImageTransform.Microsoft.Alpha(Opacity=' + value + ')"' }) : decl.clone({ prop: 'filter', value: 'alpha(opacity=' + value + ')' });

			if (method === 'replace') decl.replaceWith(clone);
			else if (method === 'copy') decl.parent.insertBefore(decl, clone);
			else if (method === 'warn') result.warn('opacity detected', { node: decl });
		});
	};
});