module Material::Color

Constants

VERSION

Public Class Methods

generate(color_code="") click to toggle source
# File lib/material/color.rb, line 5
def self.generate(color_code="")
  decimal_code = nil
  decimal_code = color_code[1..-1].to_i(16).to_s(10).to_i unless color_code.empty?

  if decimal_code
    closest = decimal_values.sort.group_by{|e| e <=> decimal_code}
    closest_decimal = closest[-1].last || closest[1].first

    generated_code = color_codes.select{|key, value| value == closest_decimal }
  else
    generated_code = color_codes.to_a.sample(1).to_h
  end

  '#'+generated_code.keys.first.to_s
end

Private Class Methods

color_codes() click to toggle source
# File lib/material/color.rb, line 22
def self.color_codes
  {
      "FFEBEE": 16772078,
      "FFCDD2": 16764370,
      "EF9A9A": 15702682,
      "E57373": 15037299,
      "EF5350": 15684432,
      "F44336": 16007990,
      "E53935": 15022389,
      "D32F2F": 13840175,
      "C62828": 12986408,
      "B71C1C": 12000284,
      "FF8A80": 16747136,
      "FF5252": 16732754,
      "FF1744": 16717636,
      "D50000": 13959168,
      "FCE4EC": 16573676,
      "F8BBD0": 16301008,
      "F48FB1": 16027569,
      "F06292": 15753874,
      "EC407A": 15483002,
      "E91E63": 15277667,
      "D81B60": 14162784,
      "C2185B": 12720219,
      "AD1457": 11342935,
      "880E4F": 8916559,
      "FF80AB": 16744619,
      "FF4081": 16728193,
      "F50057": 16056407,
      "C51162": 12915042,
      "F3E5F5": 15984117,
      "E1BEE7": 14794471,
      "CE93D8": 13538264,
      "BA68C8": 12216520,
      "AB47BC": 11225020,
      "9C27B0": 10233776,
      "8E24AA": 9315498,
      "7B1FA2": 8069026,
      "6A1B9A": 6953882,
      "4A148C": 4854924,
      "EA80FC": 15368444,
      "E040FB": 14696699,
      "D500F9": 13959417,
      "AA00FF": 11141375,
      "EDE7F6": 15591414,
      "D1C4E9": 13747433,
      "B39DDB": 11771355,
      "9575CD": 9795021,
      "7E57C2": 8280002,
      "673AB7": 6765239,
      "5E35B1": 6174129,
      "512DA8": 5320104,
      "4527A0": 4532128,
      "311B92": 3218322,
      "B388FF": 11766015,
      "7C4DFF": 8146431,
      "651FFF": 6627327,
      "6200EA": 6422762,
      "E8EAF6": 15264502,
      "C5CAE9": 12962537,
      "9FA8DA": 10463450,
      "7986CB": 7964363,
      "5C6BC0": 6056896,
      "3F51B5": 4149685,
      "3949AB": 3754411,
      "303F9F": 3162015,
      "283593": 2635155,
      "1A237E": 1713022,
      "8C9EFF": 9215743,
      "536DFE": 5467646,
      "3D5AFE": 4020990,
      "304FFE": 3166206,
      "E3F2FD": 14938877,
      "BBDEFB": 12312315,
      "90CAF9": 9489145,
      "64B5F6": 6600182,
      "42A5F5": 4367861,
      "2196F3": 2201331,
      "1E88E5": 2001125,
      "1976D2": 1668818,
      "1565C0": 1402304,
      "0D47A1": 870305,
      "82B1FF": 8565247,
      "448AFF": 4492031,
      "2979FF": 2718207,
      "2962FF": 2712319,
      "E1F5FE": 14808574,
      "B3E5FC": 11789820,
      "81D4fA": 8508666,
      "4fC3F7": 5227511,
      "29B6FC": 2733820,
      "03A9F4": 240116,
      "039BE5": 236517,
      "0288D1": 166097,
      "0277BD": 161725,
      "01579B": 87963,
      "80D8FF": 8444159,
      "40C4FF": 4244735,
      "00B0FF": 45311,
      "0091EA": 37354,
      "E0F7FA": 14743546,
      "B2EBF2": 11725810,
      "80DEEA": 8445674,
      "4DD0E1": 5099745,
      "26C6DA": 2541274,
      "00BCD4": 48340,
      "00ACC1": 44225,
      "0097A7": 38823,
      "00838F": 33679,
      "006064": 24676,
      "84FFFF": 8716287,
      "18FFFF": 1638399,
      "00E5FF": 58879,
      "00B8D4": 47316,
      "E0F2F1": 14742257,
      "B2DFDB": 11722715,
      "80CBC4": 8440772,
      "4DB6AC": 5093036,
      "26A69A": 2533018,
      "009688": 38536,
      "00897B": 35195,
      "00796B": 31083,
      "00695C": 26972,
      "004D40": 19776,
      "A7FFEB": 11010027,
      "64FFDA": 6619098,
      "1DE9B6": 1960374,
      "00BFA5": 49061,
      "E8F5E9": 15267305,
      "C8E6C9": 13166281,
      "A5D6A7": 10868391,
      "81C784": 8505220,
      "66BB6A": 6732650,
      "4CAF50": 5025616,
      "43A047": 4431943,
      "388E3C": 3706428,
      "2E7D32": 3046706,
      "1B5E20": 1793568,
      "B9F6CA": 12187338,
      "69F0AE": 6942894,
      "00E676": 58998,
      "00C853": 51283,
      "F1F8E9": 15857897,
      "DCEDC8": 14478792,
      "C5E1A5": 12968357,
      "AED581": 11457921,
      "9CCC65": 10275941,
      "8BC34A": 9159498,
      "7CB342": 8172354,
      "689F38": 6856504,
      "558B2F": 5606191,
      "33691E": 3369246,
      "CCFF90": 13434768,
      "B2FF59": 11730777,
      "76FF03": 7798531,
      "64DD17": 6610199,
      "F9FBE7": 16382951,
      "F0F4C3": 15791299,
      "E6EE9C": 15134364,
      "DCE775": 14477173,
      "D4E157": 13951319,
      "CDDC39": 13491257,
      "C0CA33": 12634675,
      "A4B42B": 10794027,
      "9E9D24": 10394916,
      "827717": 8550167,
      "F4FF81": 16056193,
      "EEFF41": 15662913,
      "C6FF00": 13041408,
      "AEEA00": 11463168,
      "FFFDE7": 16776679,
      "FFF9C4": 16775620,
      "FFF590": 16774544,
      "FFF176": 16773494,
      "FFEE58": 16772696,
      "FFEB3B": 16771899,
      "FDD835": 16635957,
      "FBC02D": 16498733,
      "F9A825": 16361509,
      "F57F17": 16088855,
      "FFFF82": 16777090,
      "FFFF00": 16776960,
      "FFEA00": 16771584,
      "FFD600": 16766464,
      "FFF8E1": 16775393,
      "FFECB3": 16772275,
      "FFE082": 16769154,
      "FFD54F": 16766287,
      "FFCA28": 16763432,
      "FFC107": 16761095,
      "FFB300": 16757504,
      "FFA000": 16752640,
      "FF8F00": 16748288,
      "FF6F00": 16740096,
      "FFE57F": 16770431,
      "FFD740": 16766784,
      "FFC400": 16761856,
      "FFAB00": 16755456,
      "FFF3E0": 16774112,
      "FFE0B2": 16769202,
      "FFCC80": 16764032,
      "FFB74D": 16758605,
      "FFA726": 16754470,
      "FF9800": 16750592,
      "FB8C00": 16485376,
      "F57C00": 16088064,
      "EF6C00": 15690752,
      "E65100": 15094016,
      "FFD180": 16765312,
      "FFAB40": 16755520,
      "FF9100": 16748800,
      "FF6D00": 16739584,
      "FBE9A7": 16509351,
      "FFCCBC": 16764092,
      "FFAB91": 16755601,
      "FF8A65": 16747109,
      "FF7043": 16740419,
      "FF5722": 16733986,
      "F4511E": 16011550,
      "E64A19": 15092249,
      "D84315": 14172949,
      "BF360C": 12531212,
      "FF9E80": 16752256,
      "FF6E40": 16739904,
      "FF3D00": 16727296,
      "DD2600": 14493184,
      "EFEBE9": 15723497,
      "D7CCC8": 14142664,
      "BCAAA4": 12364452,
      "A1887F": 10586239,
      "8D6E63": 9268835,
      "795548": 7951688,
      "6D4C41": 7162945,
      "5D4037": 6111287,
      "4E342E": 5125166,
      "3E2723": 4073251,
      "FAFAFA": 16448250,
      "F5F5F5": 16119285,
      "EEEEEE": 15658734,
      "E0E0E0": 14737632,
      "BDBDBD": 12434877,
      "9E9E9E": 10395294,
      "757575": 7697781,
      "616161": 6381921,
      "424242": 4342338,
      "212121": 2171169,
      "000000": 0,
      "ffffff": 16777215,
      "ECEFF1": 15527921,
      "CFD8DC": 13621468,
      "B0BBC5": 11582405,
      "90A4AE": 9479342,
      "78909C": 7901340,
      "607D8B": 6323595,
      "546E7A": 5533306,
      "455A64": 4545124,
      "37474F": 3622735,
      "263238": 2503224
  }
end
decimal_values() click to toggle source
# File lib/material/color.rb, line 283
def self.decimal_values
  [16772078, 16764370, 15702682, 15037299, 15684432, 16007990, 15022389, 13840175, 12986408, 12000284, 16747136, 16732754, 16717636, 13959168, 16573676, 16301008, 16027569, 15753874, 15483002, 15277667, 14162784, 12720219, 11342935, 8916559, 16744619, 16728193, 16056407, 12915042, 15984117, 14794471, 13538264, 12216520, 11225020, 10233776, 9315498, 8069026, 6953882, 4854924, 15368444, 14696699, 13959417, 11141375, 15591414, 13747433, 11771355, 9795021, 8280002, 6765239, 6174129, 5320104, 4532128, 3218322, 11766015, 8146431, 6627327, 6422762, 15264502, 12962537, 10463450, 7964363, 6056896, 4149685, 3754411, 3162015, 2635155, 1713022, 9215743, 5467646, 4020990, 3166206, 14938877, 12312315, 9489145, 6600182, 4367861, 2201331, 2001125, 1668818, 1402304, 870305, 8565247, 4492031, 2718207, 2712319, 14808574, 11789820, 8508666, 5227511, 2733820, 240116, 236517, 166097, 161725, 87963, 8444159, 4244735, 45311, 37354, 14743546, 11725810, 8445674, 5099745, 2541274, 48340, 44225, 38823, 33679, 24676, 8716287, 1638399, 58879, 47316, 14742257, 11722715, 8440772, 5093036, 2533018, 38536, 35195, 31083, 26972, 19776, 11010027, 6619098, 1960374, 49061, 15267305, 13166281, 10868391, 8505220, 6732650, 5025616, 4431943, 3706428, 3046706, 1793568, 12187338, 6942894, 58998, 51283, 15857897, 14478792, 12968357, 11457921, 10275941, 9159498, 8172354, 6856504, 5606191, 3369246, 13434768, 11730777, 7798531, 6610199, 16382951, 15791299, 15134364, 14477173, 13951319, 13491257, 12634675, 10794027, 10394916, 8550167, 16056193, 15662913, 13041408, 11463168, 16776679, 16775620, 16774544, 16773494, 16772696, 16771899, 16635957, 16498733, 16361509, 16088855, 16777090, 16776960, 16771584, 16766464, 16775393, 16772275, 16769154, 16766287, 16763432, 16761095, 16757504, 16752640, 16748288, 16740096, 16770431, 16766784, 16761856, 16755456, 16774112, 16769202, 16764032, 16758605, 16754470, 16750592, 16485376, 16088064, 15690752, 15094016, 16765312, 16755520, 16748800, 16739584, 16509351, 16764092, 16755601, 16747109, 16740419, 16733986, 16011550, 15092249, 14172949, 12531212, 16752256, 16739904, 16727296, 14493184, 15723497, 14142664, 12364452, 10586239, 9268835, 7951688, 7162945, 6111287, 5125166, 4073251, 16448250, 16119285, 15658734, 14737632, 12434877, 10395294, 7697781, 6381921, 4342338, 2171169, 0, 16777215, 15527921, 13621468, 11582405, 9479342, 7901340, 6323595, 5533306, 4545124, 3622735, 2503224]
end