polished
Version:
A lightweight toolset for writing styles in Javascript.
36 lines (34 loc) • 885 B
JavaScript
exports.__esModule = true;
exports["default"] = getValueAndUnit;
var cssRegex = /^([+-]?(?:\d+|\d*\.\d+))([a-z]*|%)$/;
/**
* Returns a given CSS value and its unit as elements of an array.
*
* @example
* // Styles as object usage
* const styles = {
* '--dimension': getValueAndUnit('100px')[0],
* '--unit': getValueAndUnit('100px')[1],
* }
*
* // styled-components usage
* const div = styled.div`
* --dimension: ${getValueAndUnit('100px')[0]};
* --unit: ${getValueAndUnit('100px')[1]};
* `
*
* // CSS in JS Output
*
* element {
* '--dimension': 100,
* '--unit': 'px',
* }
*/
function getValueAndUnit(value) {
if (typeof value !== 'string') return [value, ''];
var matchedValue = value.match(cssRegex);
if (matchedValue) return [parseFloat(value), matchedValue[2]];
return [value, undefined];
}
module.exports = exports.default;
;