You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
886 B
37 lines
886 B
"use strict";
|
|
|
|
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; |