_nameToHex.js.flow 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. // @flow
  2. const namedColorMap = {
  3. aliceblue: 'f0f8ff',
  4. antiquewhite: 'faebd7',
  5. aqua: '00ffff',
  6. aquamarine: '7fffd4',
  7. azure: 'f0ffff',
  8. beige: 'f5f5dc',
  9. bisque: 'ffe4c4',
  10. black: '000',
  11. blanchedalmond: 'ffebcd',
  12. blue: '0000ff',
  13. blueviolet: '8a2be2',
  14. brown: 'a52a2a',
  15. burlywood: 'deb887',
  16. cadetblue: '5f9ea0',
  17. chartreuse: '7fff00',
  18. chocolate: 'd2691e',
  19. coral: 'ff7f50',
  20. cornflowerblue: '6495ed',
  21. cornsilk: 'fff8dc',
  22. crimson: 'dc143c',
  23. cyan: '00ffff',
  24. darkblue: '00008b',
  25. darkcyan: '008b8b',
  26. darkgoldenrod: 'b8860b',
  27. darkgray: 'a9a9a9',
  28. darkgreen: '006400',
  29. darkgrey: 'a9a9a9',
  30. darkkhaki: 'bdb76b',
  31. darkmagenta: '8b008b',
  32. darkolivegreen: '556b2f',
  33. darkorange: 'ff8c00',
  34. darkorchid: '9932cc',
  35. darkred: '8b0000',
  36. darksalmon: 'e9967a',
  37. darkseagreen: '8fbc8f',
  38. darkslateblue: '483d8b',
  39. darkslategray: '2f4f4f',
  40. darkslategrey: '2f4f4f',
  41. darkturquoise: '00ced1',
  42. darkviolet: '9400d3',
  43. deeppink: 'ff1493',
  44. deepskyblue: '00bfff',
  45. dimgray: '696969',
  46. dimgrey: '696969',
  47. dodgerblue: '1e90ff',
  48. firebrick: 'b22222',
  49. floralwhite: 'fffaf0',
  50. forestgreen: '228b22',
  51. fuchsia: 'ff00ff',
  52. gainsboro: 'dcdcdc',
  53. ghostwhite: 'f8f8ff',
  54. gold: 'ffd700',
  55. goldenrod: 'daa520',
  56. gray: '808080',
  57. green: '008000',
  58. greenyellow: 'adff2f',
  59. grey: '808080',
  60. honeydew: 'f0fff0',
  61. hotpink: 'ff69b4',
  62. indianred: 'cd5c5c',
  63. indigo: '4b0082',
  64. ivory: 'fffff0',
  65. khaki: 'f0e68c',
  66. lavender: 'e6e6fa',
  67. lavenderblush: 'fff0f5',
  68. lawngreen: '7cfc00',
  69. lemonchiffon: 'fffacd',
  70. lightblue: 'add8e6',
  71. lightcoral: 'f08080',
  72. lightcyan: 'e0ffff',
  73. lightgoldenrodyellow: 'fafad2',
  74. lightgray: 'd3d3d3',
  75. lightgreen: '90ee90',
  76. lightgrey: 'd3d3d3',
  77. lightpink: 'ffb6c1',
  78. lightsalmon: 'ffa07a',
  79. lightseagreen: '20b2aa',
  80. lightskyblue: '87cefa',
  81. lightslategray: '789',
  82. lightslategrey: '789',
  83. lightsteelblue: 'b0c4de',
  84. lightyellow: 'ffffe0',
  85. lime: '0f0',
  86. limegreen: '32cd32',
  87. linen: 'faf0e6',
  88. magenta: 'f0f',
  89. maroon: '800000',
  90. mediumaquamarine: '66cdaa',
  91. mediumblue: '0000cd',
  92. mediumorchid: 'ba55d3',
  93. mediumpurple: '9370db',
  94. mediumseagreen: '3cb371',
  95. mediumslateblue: '7b68ee',
  96. mediumspringgreen: '00fa9a',
  97. mediumturquoise: '48d1cc',
  98. mediumvioletred: 'c71585',
  99. midnightblue: '191970',
  100. mintcream: 'f5fffa',
  101. mistyrose: 'ffe4e1',
  102. moccasin: 'ffe4b5',
  103. navajowhite: 'ffdead',
  104. navy: '000080',
  105. oldlace: 'fdf5e6',
  106. olive: '808000',
  107. olivedrab: '6b8e23',
  108. orange: 'ffa500',
  109. orangered: 'ff4500',
  110. orchid: 'da70d6',
  111. palegoldenrod: 'eee8aa',
  112. palegreen: '98fb98',
  113. paleturquoise: 'afeeee',
  114. palevioletred: 'db7093',
  115. papayawhip: 'ffefd5',
  116. peachpuff: 'ffdab9',
  117. peru: 'cd853f',
  118. pink: 'ffc0cb',
  119. plum: 'dda0dd',
  120. powderblue: 'b0e0e6',
  121. purple: '800080',
  122. rebeccapurple: '639',
  123. red: 'f00',
  124. rosybrown: 'bc8f8f',
  125. royalblue: '4169e1',
  126. saddlebrown: '8b4513',
  127. salmon: 'fa8072',
  128. sandybrown: 'f4a460',
  129. seagreen: '2e8b57',
  130. seashell: 'fff5ee',
  131. sienna: 'a0522d',
  132. silver: 'c0c0c0',
  133. skyblue: '87ceeb',
  134. slateblue: '6a5acd',
  135. slategray: '708090',
  136. slategrey: '708090',
  137. snow: 'fffafa',
  138. springgreen: '00ff7f',
  139. steelblue: '4682b4',
  140. tan: 'd2b48c',
  141. teal: '008080',
  142. thistle: 'd8bfd8',
  143. tomato: 'ff6347',
  144. turquoise: '40e0d0',
  145. violet: 'ee82ee',
  146. wheat: 'f5deb3',
  147. white: 'fff',
  148. whitesmoke: 'f5f5f5',
  149. yellow: 'ff0',
  150. yellowgreen: '9acd32',
  151. }
  152. /**
  153. * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.
  154. * @private
  155. */
  156. function nameToHex(color: string): string {
  157. if (typeof color !== 'string') return color
  158. const normalizedColorName = color.toLowerCase()
  159. return namedColorMap[normalizedColorName] ? `#${namedColorMap[normalizedColorName]}` : color
  160. }
  161. export default nameToHex