units.js 931 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. 'use strict';
  2. const uniteSets = require('../utils/uniteSets.js');
  3. const lengthUnits = new Set([
  4. // Font-relative length units
  5. 'cap',
  6. 'ch',
  7. 'em',
  8. 'ex',
  9. 'ic',
  10. 'lh',
  11. 'rcap',
  12. 'rch',
  13. 'rem',
  14. 'rex',
  15. 'ric',
  16. 'rlh',
  17. // Viewport-percentage lengths
  18. 'dvb',
  19. 'dvh',
  20. 'dvi',
  21. 'dvmax',
  22. 'dvmin',
  23. 'dvw',
  24. 'lvb',
  25. 'lvh',
  26. 'lvi',
  27. 'lvmax',
  28. 'lvmin',
  29. 'lvw',
  30. 'svb',
  31. 'svh',
  32. 'svi',
  33. 'svmax',
  34. 'svmin',
  35. 'svw',
  36. 'vb',
  37. 'vh',
  38. 'vi',
  39. 'vw',
  40. 'vmin',
  41. 'vmax',
  42. 'vm',
  43. // Absolute length units
  44. 'px',
  45. 'mm',
  46. 'cm',
  47. 'in',
  48. 'pt',
  49. 'pc',
  50. 'q',
  51. 'mozmm',
  52. // Flexible length units
  53. 'fr',
  54. // Container query units
  55. 'cqw',
  56. 'cqh',
  57. 'cqi',
  58. 'cqb',
  59. 'cqmin',
  60. 'cqmax',
  61. ]);
  62. const units = uniteSets(lengthUnits, [
  63. // Relative length units
  64. '%',
  65. // Time length units
  66. 's',
  67. 'ms',
  68. // Angle
  69. 'deg',
  70. 'grad',
  71. 'turn',
  72. 'rad',
  73. // Frequency
  74. 'Hz',
  75. 'kHz',
  76. // Resolution
  77. 'dpi',
  78. 'dpcm',
  79. 'dppx',
  80. ]);
  81. module.exports = {
  82. lengthUnits,
  83. units,
  84. };