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.
40 lines
661 B
40 lines
661 B
|
2 years ago
|
'use strict';
|
||
|
|
|
||
|
|
const { fontSizeKeywords } = require('../reference/keywords');
|
||
|
|
const { lengthUnits } = require('../reference/units');
|
||
|
|
const valueParser = require('postcss-value-parser');
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Check if a word is a font-size value.
|
||
|
|
*
|
||
|
|
* @param {string} word
|
||
|
|
* @returns {boolean}
|
||
|
|
*/
|
||
|
|
module.exports = function isValidFontSize(word) {
|
||
|
|
if (!word) {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (fontSizeKeywords.has(word)) {
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
|
||
|
|
const numberUnit = valueParser.unit(word);
|
||
|
|
|
||
|
|
if (!numberUnit) {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
const unit = numberUnit.unit;
|
||
|
|
|
||
|
|
if (unit === '%') {
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (lengthUnits.has(unit.toLowerCase())) {
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
|
||
|
|
return false;
|
||
|
|
};
|