79 lines
1.7 KiB
JavaScript
79 lines
1.7 KiB
JavaScript
'use strict';
|
|
|
|
var UNITLESS_NUMBER_PROPS = [
|
|
'animation-iteration-count',
|
|
'border-image-outset',
|
|
'border-image-slice',
|
|
'border-image-width',
|
|
'box-flex',
|
|
'box-flex-group',
|
|
'box-ordinal-group',
|
|
'column-count',
|
|
'columns',
|
|
'flex',
|
|
'flex-grow',
|
|
'flex-positive',
|
|
'flex-shrink',
|
|
'flex-negative',
|
|
'flex-order',
|
|
'grid-row',
|
|
'grid-row-end',
|
|
'grid-row-span',
|
|
'grid-row-start',
|
|
'grid-column',
|
|
'grid-column-end',
|
|
'grid-column-span',
|
|
'grid-column-start',
|
|
'font-weight',
|
|
'line-clamp',
|
|
'line-height',
|
|
'opacity',
|
|
'order',
|
|
'orphans',
|
|
'tabSize',
|
|
'widows',
|
|
'z-index',
|
|
'zoom',
|
|
|
|
// SVG-related properties
|
|
'fill-opacity',
|
|
'flood-opacity',
|
|
'stop-opacity',
|
|
'stroke-dasharray',
|
|
'stroke-dashoffset',
|
|
'stroke-miterlimit',
|
|
'stroke-opacity',
|
|
'stroke-width',
|
|
];
|
|
|
|
var unitlessCssProperties = {};
|
|
|
|
for (var i = 0; i < UNITLESS_NUMBER_PROPS.length; i++) {
|
|
var prop = UNITLESS_NUMBER_PROPS[i];
|
|
|
|
unitlessCssProperties[prop] = 1;
|
|
unitlessCssProperties['-webkit-' + prop] = 1;
|
|
unitlessCssProperties['-ms-' + prop] = 1;
|
|
unitlessCssProperties['-moz-' + prop] = 1;
|
|
unitlessCssProperties['-o-' + prop] = 1;
|
|
}
|
|
|
|
exports.addon = function (renderer) {
|
|
var decl = renderer.decl;
|
|
|
|
renderer.decl = function (prop, value) {
|
|
var str = decl(prop, value);
|
|
|
|
if (typeof value === 'number') {
|
|
var pos = str.indexOf(':');
|
|
var propKebab = str.substr(0, pos);
|
|
|
|
if (!unitlessCssProperties[propKebab]) {
|
|
return decl(prop, value + 'px');
|
|
}
|
|
}
|
|
|
|
return str;
|
|
};
|
|
};
|