1
+ #http://www.redguava.com.au/2011/10/lighten-or-darken-a-hexadecimal-color-in-ruby-on-rails/
2
+
3
+ # COLOR_SCHEMES = {
4
+ # default: ['#eeeeee', '#d6e685', '#8cc665', '#44a340', '#1e6823'],
5
+ # halloween: ['#EEEEEE', '#FFEE4A', '#FFC501', '#FE9600', '#03001C'],
6
+ # teal: ['#EEEEEE', "#7FFFD4", "#76EEC6", "#66CDAA", "#458B74"],
7
+ # red: ['#EEEEEE', '#990100', '#8C0100', '#720100', '#4C0100']
8
+ # }
9
+
10
+ # Amount should be a decimal between 0 and 1. Lower means darker
11
+ def darken_color ( hex_color , amount = 0.4 )
12
+ hex_color = hex_color . gsub ( '#' , '' )
13
+ rgb = hex_color . scan ( /../ ) . map { |color | color . hex }
14
+ rgb [ 0 ] = ( rgb [ 0 ] . to_i * amount ) . round
15
+ rgb [ 1 ] = ( rgb [ 1 ] . to_i * amount ) . round
16
+ rgb [ 2 ] = ( rgb [ 2 ] . to_i * amount ) . round
17
+ "#%02x%02x%02x" % rgb
18
+ end
19
+
20
+ # Amount should be a decimal between 0 and 1. Higher means lighter
21
+ def lighten_color ( hex_color , amount = 0.6 )
22
+ hex_color = hex_color . gsub ( '#' , '' )
23
+ rgb = hex_color . scan ( /../ ) . map { |color | color . hex }
24
+ rgb [ 0 ] = [ ( rgb [ 0 ] . to_i + 255 * amount ) . round , 255 ] . min
25
+ rgb [ 1 ] = [ ( rgb [ 1 ] . to_i + 255 * amount ) . round , 255 ] . min
26
+ rgb [ 2 ] = [ ( rgb [ 2 ] . to_i + 255 * amount ) . round , 255 ] . min
27
+ "#%02x%02x%02x" % rgb
28
+ end
0 commit comments