Class: RedmineCrm::ColorsHelper

Inherits:
Object
  • Object
show all
Defined in:
lib/redmine_crm/colors_helper.rb

Constant Summary collapse

NAMED_COLORS =
{
  'aliceblue' => 'f0f8ff',
  'antiquewhite' => 'faebd7',
  'aqua' => '00ffff',
  'aquamarine' => '7fffd4',
  'azure' => 'f0ffff',
  'beige' => 'f5f5dc',
  'bisque' => 'ffe4c4',
  'black' => '000',
  'blanchedalmond' => 'ffebcd',
  'blue' => '0000ff',
  'blueviolet' => '8a2be2',
  'brown' => 'a52a2a',
  'burlywood' => 'deb887',
  'burntsienna' => 'ea7e5d',
  'cadetblue' => '5f9ea0',
  'chartreuse' => '7fff00',
  'chocolate' => 'd2691e',
  'coral' => 'ff7f50',
  'cornflowerblue' => '6495ed',
  'cornsilk' => 'fff8dc',
  'crimson' => 'dc143c',
  'cyan' => '00ffff',
  'darkblue' => '00008b',
  'darkcyan' => '008b8b',
  'darkgoldenrod' => 'b8860b',
  'darkgray' => 'a9a9a9',
  'darkgreen' => '006400',
  'darkgrey' => 'a9a9a9',
  'darkkhaki' => 'bdb76b',
  'darkmagenta' => '8b008b',
  'darkolivegreen' => '556b2f',
  'darkorange' => 'ff8c00',
  'darkorchid' => '9932cc',
  'darkred' => '8b0000',
  'darksalmon' => 'e9967a',
  'darkseagreen' => '8fbc8f',
  'darkslateblue' => '483d8b',
  'darkslategray' => '2f4f4f',
  'darkslategrey' => '2f4f4f',
  'darkturquoise' => '00ced1',
  'darkviolet' => '9400d3',
  'deeppink' => 'ff1493',
  'deepskyblue' => '00bfff',
  'dimgray' => '696969',
  'dimgrey' => '696969',
  'dodgerblue' => '1e90ff',
  'firebrick' => 'b22222',
  'floralwhite' => 'fffaf0',
  'forestgreen' => '228b22',
  'fuchsia' => 'ff00ff',
  'gainsboro' => 'dcdcdc',
  'ghostwhite' => 'f8f8ff',
  'gold' => 'ffd700',
  'goldenrod' => 'daa520',
  'gray' => '808080',
  'green' => '008000',
  'greenyellow' => 'adff2f',
  'grey' => '808080',
  'honeydew' => 'f0fff0',
  'hotpink' => 'ff69b4',
  'indianred' => 'cd5c5c',
  'indigo' => '4b0082',
  'ivory' => 'fffff0',
  'khaki' => 'f0e68c',
  'lavender' => 'e6e6fa',
  'lavenderblush' => 'fff0f5',
  'lawngreen' => '7cfc00',
  'lemonchiffon' => 'fffacd',
  'lightblue' => 'add8e6',
  'lightcoral' => 'f08080',
  'lightcyan' => 'e0ffff',
  'lightgoldenrodyellow' => 'fafad2',
  'lightgray' => 'd3d3d3',
  'lightgreen' => '90ee90',
  'lightgrey' => 'd3d3d3',
  'lightpink' => 'ffb6c1',
  'lightsalmon' => 'ffa07a',
  'lightseagreen' => '20b2aa',
  'lightskyblue' => '87cefa',
  'lightslategray' => '789',
  'lightslategrey' => '789',
  'lightsteelblue' => 'b0c4de',
  'lightyellow' => 'ffffe0',
  'lime' => '00ff00',
  'limegreen' => '32cd32',
  'linen' => 'faf0e6',
  'magenta' => 'ff00ff',
  'maroon' => '800000',
  'mediumaquamarine' => '66cdaa',
  'mediumblue' => '0000cd',
  'mediumorchid' => 'ba55d3',
  'mediumpurple' => '9370db',
  'mediumseagreen' => '3cb371',
  'mediumslateblue' => '7b68ee',
  'mediumspringgreen' => '00fa9a',
  'mediumturquoise' => '48d1cc',
  'mediumvioletred' => 'c71585',
  'midnightblue' => '191970',
  'mintcream' => 'f5fffa',
  'mistyrose' => 'ffe4e1',
  'moccasin' => 'ffe4b5',
  'navajowhite' => 'ffdead',
  'navy' => '000080',
  'oldlace' => 'fdf5e6',
  'olive' => '808000',
  'olivedrab' => '6b8e23',
  'orange' => 'ffa500',
  'orangered' => 'ff4500',
  'orchid' => 'da70d6',
  'palegoldenrod' => 'eee8aa',
  'palegreen' => '98fb98',
  'paleturquoise' => 'afeeee',
  'palevioletred' => 'db7093',
  'papayawhip' => 'ffefd5',
  'peachpuff' => 'ffdab9',
  'peru' => 'cd853f',
  'pink' => 'ffc0cb',
  'plum' => 'dda0dd',
  'powderblue' => 'b0e0e6',
  'purple' => '800080',
  'rebeccapurple' => '663399',
  'red' => 'ff0000',
  'rosybrown' => 'bc8f8f',
  'royalblue' => '4169e1',
  'saddlebrown' => '8b4513',
  'salmon' => 'fa8072',
  'sandybrown' => 'f4a460',
  'seagreen' => '2e8b57',
  'seashell' => 'fff5ee',
  'sienna' => 'a0522d',
  'silver' => 'c0c0c0',
  'skyblue' => '87ceeb',
  'slateblue' => '6a5acd',
  'slategray' => '708090',
  'slategrey' => '708090',
  'snow' => 'fffafa',
  'springgreen' => '00ff7f',
  'steelblue' => '4682b4',
  'tan' => 'd2b48c',
  'teal' => '008080',
  'thistle' => 'd8bfd8',
  'tomato' => 'ff6347',
  'turquoise' => '40e0d0',
  'violet' => 'ee82ee',
  'wheat' => 'f5deb3',
  'white' => 'fff',
  'whitesmoke' => 'f5f5f5',
  'yellow' => 'ffff00',
  'yellowgreen' => '9acd32'
}

Class Method Summary collapse

Class Method Details

.contrasting_text_color(input_color) ⇒ Object



177
178
179
180
# File 'lib/redmine_crm/colors_helper.rb', line 177

def contrasting_text_color(input_color)
  color = hex_color(input_color).gsub('#','')
  convert_to_brightness_value(color) > 382.5 ? darken_color(color) : lighten_color(color)
end

.convert_to_brightness_value(input_color) ⇒ Object



186
187
188
# File 'lib/redmine_crm/colors_helper.rb', line 186

def convert_to_brightness_value(input_color)
   (hex_color(input_color).scan(/../).map {|color| color.hex}).sum
end

.darken_color(input_color, amount = 0.4) ⇒ Object

Amount should be a decimal between 0 and 1. Lower means darker



158
159
160
161
162
163
164
165
# File 'lib/redmine_crm/colors_helper.rb', line 158

def darken_color(input_color, amount=0.4)
  hex_color = hex_color(input_color).gsub('#','')
  rgb = hex_color.scan(/../).map {|color| color.hex}
  rgb[0] = (rgb[0].to_i * amount).round
  rgb[1] = (rgb[1].to_i * amount).round
  rgb[2] = (rgb[2].to_i * amount).round
  "#%02x%02x%02x" % rgb
end

.hex_color(input_color) ⇒ Object



182
183
184
# File 'lib/redmine_crm/colors_helper.rb', line 182

def hex_color(input_color)
  "##{NAMED_COLORS[input_color] || input_color}"
end

.lighten_color(input_color, amount = 0.6) ⇒ Object

Amount should be a decimal between 0 and 1. Higher lightgreen lighter



168
169
170
171
172
173
174
175
# File 'lib/redmine_crm/colors_helper.rb', line 168

def lighten_color(input_color, amount=0.6)
  hex_color = hex_color(input_color).gsub('#','')
  rgb = hex_color.scan(/../).map {|color| color.hex}
  rgb[0] = [(rgb[0].to_i + 255 * amount).round, 255].min
  rgb[1] = [(rgb[1].to_i + 255 * amount).round, 255].min
  rgb[2] = [(rgb[2].to_i + 255 * amount).round, 255].min
  "#%02x%02x%02x" % rgb
end