isValidFontSize.js 646 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. 'use strict';
  2. const { fontSizeKeywords } = require('../reference/keywords');
  3. const { lengthUnits } = require('../reference/units');
  4. const valueParser = require('postcss-value-parser');
  5. /**
  6. * Check if a word is a font-size value.
  7. *
  8. * @param {string} word
  9. * @returns {boolean}
  10. */
  11. module.exports = function (word) {
  12. if (!word) {
  13. return false;
  14. }
  15. if (fontSizeKeywords.has(word)) {
  16. return true;
  17. }
  18. const numberUnit = valueParser.unit(word);
  19. if (!numberUnit) {
  20. return false;
  21. }
  22. const unit = numberUnit.unit;
  23. if (unit === '%') {
  24. return true;
  25. }
  26. if (lengthUnits.has(unit.toLowerCase())) {
  27. return true;
  28. }
  29. return false;
  30. };