rubyplot 0.0.1 → 0.1.pre.a1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +11 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +133 -0
  5. data/.travis.yml +18 -0
  6. data/CHANGELOG.md +9 -0
  7. data/CONTRIBUTING.md +48 -0
  8. data/Gemfile +6 -0
  9. data/README.md +47 -0
  10. data/Rakefile +32 -0
  11. data/ext/grruby/extconf.rb +6 -0
  12. data/ext/grruby/grruby.c +1163 -0
  13. data/ext/grruby/grruby.h +135 -0
  14. data/lib/rubyplot.rb +30 -1
  15. data/lib/rubyplot/artist.rb +13 -0
  16. data/lib/rubyplot/artist/axes.rb +328 -0
  17. data/lib/rubyplot/artist/axis.rb +3 -0
  18. data/lib/rubyplot/artist/axis/base.rb +34 -0
  19. data/lib/rubyplot/artist/axis/x_axis.rb +35 -0
  20. data/lib/rubyplot/artist/axis/y_axis.rb +40 -0
  21. data/lib/rubyplot/artist/base.rb +14 -0
  22. data/lib/rubyplot/artist/circle.rb +28 -0
  23. data/lib/rubyplot/artist/figure.rb +90 -0
  24. data/lib/rubyplot/artist/legend.rb +59 -0
  25. data/lib/rubyplot/artist/legend_box.rb +89 -0
  26. data/lib/rubyplot/artist/line2d.rb +24 -0
  27. data/lib/rubyplot/artist/plot.rb +9 -0
  28. data/lib/rubyplot/artist/plot/area.rb +38 -0
  29. data/lib/rubyplot/artist/plot/bar.rb +69 -0
  30. data/lib/rubyplot/artist/plot/bar_type.rb +31 -0
  31. data/lib/rubyplot/artist/plot/base.rb +67 -0
  32. data/lib/rubyplot/artist/plot/bubble.rb +41 -0
  33. data/lib/rubyplot/artist/plot/line.rb +61 -0
  34. data/lib/rubyplot/artist/plot/multi_bars.rb +75 -0
  35. data/lib/rubyplot/artist/plot/multi_stacked_bar.rb +78 -0
  36. data/lib/rubyplot/artist/plot/scatter.rb +29 -0
  37. data/lib/rubyplot/artist/plot/stacked_bar.rb +69 -0
  38. data/lib/rubyplot/artist/polygon.rb +21 -0
  39. data/lib/rubyplot/artist/rectangle.rb +39 -0
  40. data/lib/rubyplot/artist/text.rb +49 -0
  41. data/lib/rubyplot/artist/tick.rb +3 -0
  42. data/lib/rubyplot/artist/tick/base.rb +35 -0
  43. data/lib/rubyplot/artist/tick/x_tick.rb +25 -0
  44. data/lib/rubyplot/artist/tick/y_tick.rb +24 -0
  45. data/lib/rubyplot/backend.rb +2 -0
  46. data/lib/rubyplot/backend/gr_wrapper.rb +7 -0
  47. data/lib/rubyplot/backend/magick_wrapper.rb +141 -0
  48. data/lib/rubyplot/color.rb +992 -0
  49. data/lib/rubyplot/figure.rb +2 -0
  50. data/lib/rubyplot/spi.rb +8 -0
  51. data/lib/rubyplot/subplot.rb +4 -0
  52. data/lib/rubyplot/themes.rb +47 -0
  53. data/lib/rubyplot/utils.rb +14 -0
  54. data/lib/rubyplot/version.rb +1 -1
  55. data/rubyplot.gemspec +10 -0
  56. data/spec/axes_spec.rb +477 -0
  57. data/spec/figure_spec.rb +12 -0
  58. data/spec/spec_helper.rb +62 -0
  59. data/spec/spi/multi_plot_graph_spec.rb +33 -0
  60. data/spec/spi/single_plot_graph_spec.rb +227 -0
  61. data/spec/spi/subplots_spec.rb +55 -0
  62. metadata +166 -8
@@ -0,0 +1,69 @@
1
+ module Rubyplot
2
+ module Artist
3
+ module Plot
4
+ class StackedBar < Artist::Plot::Base
5
+ # Ratio of the total avialable width that is left as padding space.
6
+ attr_accessor :spacing_ratio
7
+ # Array of X co-ordinates of the lower left corner of each stacked bar.
8
+ attr_accessor :abs_x_left
9
+ # Array of Y co-ordinates of the lower left corner of each stacked bar.
10
+ attr_accessor :abs_y_left
11
+ # Width in pixels of each bar.
12
+ attr_accessor :bar_width
13
+
14
+ def initialize(*)
15
+ super
16
+ @spacing_ratio = 0.1
17
+ @abs_x_left = []
18
+ @abs_y_left = []
19
+ @rectangles = []
20
+ @renormalized_y_values = []
21
+ end
22
+
23
+ def data y_values
24
+ super(Array(0...(y_values.size)), y_values)
25
+ end
26
+
27
+ def num_bars
28
+ @data[:y_values].size
29
+ end
30
+
31
+ # Normalize this data w.r.t other plots in this graph.
32
+ #
33
+ # @param max_plots [Integer] Max number of stacked bars in this plot.
34
+ def renormalize max_plots
35
+ @renormalized_y_values = @normalized_data[:y_values].map do |iy|
36
+ iy / max_plots
37
+ end
38
+ end
39
+
40
+ # Return the height in pixels of the bar at 'index'.
41
+ def member_height index
42
+ @renormalized_y_values[index] * @axes.y_axis.length
43
+ end
44
+
45
+ def draw
46
+ setup_bar_rectangles
47
+ @rectangles.each(&:draw)
48
+ end
49
+
50
+ private
51
+
52
+ def setup_bar_rectangles
53
+ @renormalized_y_values.each_with_index do |iy, i|
54
+ height = iy * @axes.y_axis.length
55
+ @rectangles << Rubyplot::Artist::Rectangle.new(
56
+ self,
57
+ abs_x: @abs_x_left[i],
58
+ abs_y: @abs_y_left[i] - height,
59
+ width: @bar_width,
60
+ height: height,
61
+ border_color: @data[:color],
62
+ fill_color: @data[:color]
63
+ )
64
+ end
65
+ end
66
+ end # class StackedBar
67
+ end # module Plot
68
+ end # module Artist
69
+ end # module Rubyplot
@@ -0,0 +1,21 @@
1
+ module Rubyplot
2
+ module Artist
3
+ class Polygon < Base
4
+ def initialize(owner, coords:, fill_opacity: 0.0, color: :default, stroke: 'transparent')
5
+ @coords = coords
6
+ @fill_opacity = fill_opacity
7
+ @color = color
8
+ @stroke = stroke
9
+ end
10
+
11
+ def draw
12
+ Rubyplot.backend.draw_polygon(
13
+ coords: @coords,
14
+ stroke: @stroke,
15
+ color: Rubyplot::Color::COLOR_INDEX[@color],
16
+ fill_opacity: @fill_opacity
17
+ )
18
+ end
19
+ end # class Polygon
20
+ end # module Artist
21
+ end # module Rubyplot
@@ -0,0 +1,39 @@
1
+ module Rubyplot
2
+ module Artist
3
+ class Rectangle < Base
4
+ attr_reader :width, :height, :border_color, :fill_color
5
+
6
+ # Create a Rectangle for drawing on the canvas.
7
+ #
8
+ # @param abs_x [Float] Absolute X co-ordinate of the upper left corner.
9
+ # @param abs_y [Float] Absolute Y co-ordinate of the upper left corner.
10
+ # @param width [Float] Width in pixels of the rectangle.
11
+ # @param height [Float] Height in pixels of the rectangle.
12
+ # @param border_color [Symbol] Symbol from Rubyplot::Color::COLOR_INDEX
13
+ # denoting border color.
14
+ # @param fill_color [Symbol] nil Symbol from Rubyplot::Color::COLOR_INDEX
15
+ # denoting the fill color.
16
+
17
+ # rubocop:disable Metrics/ParameterLists
18
+ def initialize(owner,abs_x:,abs_y:,width:,height:,border_color:,fill_color: nil)
19
+ super(abs_x, abs_y)
20
+ @height = height
21
+ @width = width
22
+ @border_color = Rubyplot::Color::COLOR_INDEX[border_color]
23
+ @fill_color = Rubyplot::Color::COLOR_INDEX[fill_color] if fill_color
24
+ end
25
+ # rubocop:enable Metrics/ParameterLists
26
+
27
+ def draw
28
+ Rubyplot.backend.draw_rectangle(
29
+ x1: @abs_x,
30
+ y1: @abs_y,
31
+ x2: @abs_x + @width,
32
+ y2: @abs_y + @height,
33
+ border_color: @border_color,
34
+ fill_color: @fill_color
35
+ )
36
+ end
37
+ end # class Rectangle
38
+ end # class Artist
39
+ end # module Rubyplot
@@ -0,0 +1,49 @@
1
+ module Rubyplot
2
+ module Artist
3
+ class Text < Artist::Base
4
+ # (X,Y) of upper left corner of the rectangle.
5
+ attr_reader :color, :font, :pointsize,
6
+ :stroke, :weight, :gravity, :text, :backend
7
+
8
+ # rubocop:disable Metrics/ParameterLists
9
+ def initialize(text, owner, abs_x:, abs_y:,font: nil,
10
+ color: '#000000',pointsize:,stroke: 'transparent',
11
+ internal_label: '', rotation: nil,
12
+ weight: nil, gravity: nil)
13
+ super(abs_x, abs_y)
14
+ @text = text
15
+ @owner = owner
16
+ @font = font
17
+ @color = color
18
+ @pointsize = pointsize
19
+ @stroke = stroke
20
+ @internal_label = internal_label
21
+ @rotation = rotation
22
+ end
23
+ # rubocop:enable Metrics/ParameterLists
24
+
25
+ # Height in pixels of this text
26
+ def height
27
+ Rubyplot.backend.text_height(@text, @font, @font_size)
28
+ end
29
+
30
+ # Width in pixels of this text
31
+ def width
32
+ Rubyplot.backend.text_width(@text, @font, @font_size)
33
+ end
34
+
35
+ def draw
36
+ Rubyplot.backend.draw_text(
37
+ @text,
38
+ font_color: @color,
39
+ font: @font,
40
+ pointsize: @pointsize,
41
+ stroke: @stroke,
42
+ x: @abs_x,
43
+ y: @abs_y,
44
+ rotation: @rotation
45
+ )
46
+ end
47
+ end # class Text
48
+ end # class Artist
49
+ end # module Rubyplot
@@ -0,0 +1,3 @@
1
+ require_relative 'tick/base'
2
+ require_relative 'tick/x_tick'
3
+ require_relative 'tick/y_tick'
@@ -0,0 +1,35 @@
1
+ module Rubyplot
2
+ module Artist
3
+ class Tick
4
+ class Base < Artist::Base
5
+ # Distance between tick mark and number.
6
+ attr_reader :label_distance
7
+ # Label of this Tick
8
+ attr_reader :label
9
+ attr_reader :tick_opacity
10
+ attr_reader :tick_width
11
+
12
+ # @param owner [Rubyplot::Artist] Artist that owns this tick.
13
+ # @param abs_x [Integer] X co-ordinate of the origin of this tick.
14
+ # @param abs_y [Integer] Y co-ordinate of the origin of this tick.
15
+ # @param length [Integer] Length of the tick.
16
+ # @param label [String] Label below the tick.
17
+ # @param label_distance [Integer] Distance between the label and tick.
18
+ # @param tick_opacity [Float] Number describing the opacity of the tick drawn. 0-1.0.
19
+
20
+ # rubocop:disable Metrics/ParameterLists
21
+ def initialize(owner,abs_x:,abs_y:,length:,label:,label_distance:,
22
+ tick_opacity: 0.0,tick_width: 1.0)
23
+ super(abs_x, abs_y)
24
+ @owner = owner
25
+ @length = length
26
+ @label_text = label # Rubyplot::Utils.format_label label
27
+ @label_distance = label_distance
28
+ @tick_opacity = tick_opacity
29
+ @tick_width = tick_width
30
+ end
31
+ # rubocop:enable Metrics/ParameterLists
32
+ end # class Base
33
+ end # class Tick
34
+ end # class Artist
35
+ end # module Rubyplot
@@ -0,0 +1,25 @@
1
+ module Rubyplot
2
+ module Artist
3
+ class XTick < Tick::Base
4
+ def initialize(*)
5
+ super
6
+ @label = Rubyplot::Artist::Text.new(
7
+ @label_text.to_s,
8
+ @owner,
9
+ abs_x: @abs_x - 5,
10
+ abs_y: @abs_y + @length + @label_distance,
11
+ pointsize: @owner.marker_font_size
12
+ )
13
+ end
14
+
15
+ def draw
16
+ Rubyplot.backend.draw_line(
17
+ x1: @abs_x, y1: @abs_y, x2: @abs_x, y2: @abs_y + @length,
18
+ stroke_opacity: @tick_opacity,
19
+ stroke_width: @tick_width
20
+ )
21
+ @label.draw
22
+ end
23
+ end # class XTick
24
+ end # class Artist
25
+ end # module Rubyplot
@@ -0,0 +1,24 @@
1
+ module Rubyplot
2
+ module Artist
3
+ class YTick < Tick::Base
4
+ def initialize(*)
5
+ super
6
+ @label = Rubyplot::Artist::Text.new(
7
+ @label_text.to_s,
8
+ @owner,
9
+ abs_x: @abs_x - 5 - @label_distance,
10
+ abs_y: @abs_y + @length,
11
+ pointsize: @owner.marker_font_size,
12
+ )
13
+ end
14
+
15
+ def draw
16
+ Rubyplot.backend.draw_line(
17
+ x1: @abs_x, y1: @abs_y, x2: @abs_x - @length, y2: @abs_y,
18
+ stroke_opacity: @tick_opacity,
19
+ stroke_width: @tick_width)
20
+ @label.draw
21
+ end
22
+ end # class YTick
23
+ end # module Artist
24
+ end # module Rubyplot
@@ -0,0 +1,2 @@
1
+ require_relative 'backend/magick_wrapper'
2
+ require_relative 'backend/gr_wrapper'
@@ -0,0 +1,7 @@
1
+ module Rubyplot
2
+ module Backend
3
+ class GRWrapper
4
+
5
+ end # class GRWrapper
6
+ end # module Backend
7
+ end # module Rubyplot
@@ -0,0 +1,141 @@
1
+ module Rubyplot
2
+ module Backend
3
+ class MagickWrapper
4
+ include ::Magick
5
+ GRAVITY_MEASURE = {
6
+ nil => Magick::ForgetGravity,
7
+ :center => Magick::CenterGravity,
8
+ :west => Magick::WestGravity,
9
+ :east => Magick::EastGravity,
10
+ :north => Magick::NorthGravity
11
+ }.freeze
12
+
13
+ attr_reader :draw
14
+
15
+ def initialize
16
+ @draw = Magick::Draw.new
17
+ end
18
+
19
+ # Height in pixels of particular text.
20
+ # @param text [String] Text to be measured.
21
+ def text_height(text, font, font_size)
22
+ @draw.pointsize = font_size
23
+ @draw.font = font if font
24
+ @draw.get_type_metrics(@base_image, text.to_s).height
25
+ end
26
+
27
+ # Width in pixels of particular text.
28
+ # @param text [String] Text to be measured.
29
+ def text_width(text, font, font_size)
30
+ @draw.pointsize = font_size
31
+ @draw.font = font if font
32
+ @draw.get_type_metrics(@base_image, text.to_s).width
33
+ end
34
+
35
+ # Scale backend canvas to required proportion.
36
+ def scale(scale)
37
+ @draw.scale(scale, scale)
38
+ end
39
+
40
+ def set_base_image_gradient(top_color, bottom_color, width, height, direct=:top_bottom)
41
+ @base_image = render_gradient top_color, bottom_color, width, height, direct
42
+ end
43
+
44
+ # Get the width and height of the text in pixels.
45
+ def get_text_width_height(text)
46
+ metrics = @draw.get_type_metrics(@base_image, text)
47
+ [metrics.width, metrics.height]
48
+ end
49
+
50
+ # rubocop:disable Metrics/ParameterLists
51
+ # Unused method argument - stroke
52
+ def draw_text(text,font_color:,font: nil,pointsize:,
53
+ font_weight: Magick::NormalWeight, gravity: nil,
54
+ x:,y:,rotation: nil, stroke: 'transparent')
55
+ @draw.fill = font_color
56
+ @draw.font = font if font
57
+ @draw.pointsize = pointsize
58
+ @draw.font_weight = font_weight
59
+ @draw.gravity = GRAVITY_MEASURE[gravity] || Magick::ForgetGravity
60
+ @draw.stroke stroke
61
+ @draw.stroke_antialias false
62
+ @draw.text_antialias = false
63
+ @draw.rotation = rotation if rotation
64
+ @draw.annotate(@base_image, 0,0,x.to_i,y.to_i, text.gsub('%', '%%'))
65
+ @draw.rotation = 90.0 if rotation
66
+ end
67
+
68
+ # Draw a rectangle.
69
+ def draw_rectangle(x1:,y1:,x2:,y2:,border_color: '#000000',stroke: 'transparent',
70
+ fill_color: nil, stroke_width: 1.0)
71
+ if fill_color # solid rectangle
72
+ @draw.stroke stroke
73
+ @draw.fill fill_color
74
+ @draw.stroke_width stroke_width
75
+ @draw.rectangle x1, y1, x2, y2
76
+ else # just edges
77
+ @draw.stroke_width stroke_width
78
+ @draw.fill border_color
79
+ @draw.line x1, y1, x1 + (x2-x1), y1 # top line
80
+ @draw.line x1 + (x2-x1), y1, x2, y2 # right line
81
+ @draw.line x2, y2, x1, y1 + (y2-y1) # bottom line
82
+ @draw.line x1, y1, x1, y1 + (y2-y1) # left line
83
+ end
84
+ end
85
+
86
+ def draw_line(x1:,y1:,x2:,y2:,color: '#000000', stroke: 'transparent',
87
+ stroke_opacity: 0.0, stroke_width: 2.0)
88
+ @draw.stroke_opacity stroke_opacity
89
+ @draw.stroke_width stroke_width
90
+ @draw.fill color
91
+ @draw.line x1, y1, x2, y2
92
+ end
93
+
94
+ def draw_circle(x:,y:,radius:,stroke_opacity:,stroke_width:,color:)
95
+ @draw.stroke_opacity stroke_opacity
96
+ @draw.stroke_width stroke_width
97
+ @draw.fill color
98
+ @draw.circle(x,y,x-radius,y)
99
+ end
100
+ # rubocop:enable Metrics/ParameterLists
101
+
102
+ # Draw a polygon.
103
+ #
104
+ # @param coords [Array[Array]] Array of Arrays where first element of each sub-array is
105
+ # the X co-ordinate and the second element is the Y co-ordinate.
106
+ def draw_polygon(coords:, fill_opacity: 0.0, color: '#000000',
107
+ stroke: 'transparent')
108
+ @draw.stroke stroke
109
+ @draw.fill color
110
+ @draw.fill_opacity fill_opacity
111
+ @draw.polygon *coords.flatten
112
+ end
113
+
114
+ def write file_name
115
+ @draw.draw(@base_image)
116
+ @base_image.write(file_name)
117
+ end
118
+
119
+ private
120
+
121
+ # Render a gradient and return an Image.
122
+ def render_gradient(top_color, bottom_color, width, height, direct)
123
+ gradient_fill = case direct
124
+ when :bottom_top
125
+ GradientFill.new(0, 0, 100, 0, bottom_color, top_color)
126
+ when :left_right
127
+ GradientFill.new(0, 0, 0, 100, top_color, bottom_color)
128
+ when :right_left
129
+ GradientFill.new(0, 0, 0, 100, bottom_color, top_color)
130
+ when :topleft_bottomright
131
+ GradientFill.new(0, 100, 100, 0, top_color, bottom_color)
132
+ when :topright_bottomleft
133
+ GradientFill.new(0, 0, 100, 100, bottom_color, top_color)
134
+ else
135
+ GradientFill.new(0, 0, 100, 0, top_color, bottom_color)
136
+ end
137
+ Image.new(width, height, gradient_fill)
138
+ end
139
+ end # class MagickWrapper
140
+ end # module Backend
141
+ end # module Rubyplot
@@ -0,0 +1,992 @@
1
+ module Rubyplot
2
+ module Color
3
+ # A list of contrasting colors that is used in Bartype BasePlots by default
4
+ CONTRASTING_COLORS = {
5
+ gun_powder: '#4a465a',
6
+ eastern_blue: '#0083a3',
7
+ bittersweet: '#ff6a6a',
8
+ light_pink: '#ffaeb9',
9
+ violet: '#ee82ee',
10
+ bright_turquoise: '#00e5ee',
11
+ spring_green: '#00ff7f',
12
+ green_yellow: '#c0ff3e',
13
+ orange: '#ffa500',
14
+ misty_rose: '#ffe4e1',
15
+ silver: '#bdbdbd',
16
+ falu_red: '#8b2500',
17
+ royal_blue: '#436eee',
18
+ crimson: '#dc143c',
19
+ crimson: '#e6194b',
20
+ fruit_salad: '#3cb44b',
21
+ lemon: '#ffe119',
22
+ bondi_blue: '#0082c8',
23
+ sun: '#f58231',
24
+ dark_orchid: '#911eb4',
25
+ turquoise: '#46f0f0',
26
+ razzle_dazzle_rose: '#f032e6',
27
+ pear: '#d2f53c',
28
+ your_pink: '#fabebe',
29
+ teal: '#008080',
30
+ mauve: '#e6beff',
31
+ hot_toddy: '#aa6e28',
32
+ lemon_chiffon: '#fffac8',
33
+ maroon: '#800000',
34
+ magic_mint: '#aaffc3',
35
+ olive: '#808000',
36
+ sandy_beach: '#ffd8b1',
37
+ navy: '#000080',
38
+ grey: '#808080',
39
+ pattens_blue: '#d1edf5'
40
+ }.freeze
41
+
42
+ # A list of color symbols inspired by xkcd survey
43
+ # https://xkcd.com/color/rgb/
44
+ COLOR_INDEX = {
45
+ default: '#000000',
46
+ cloudy_blue: '#acc2d9',
47
+ dark_pastel_green: '#56ae57',
48
+ dust: '#b2996e',
49
+ electric_lime: '#a8ff04',
50
+ fresh_green: '#69d84f',
51
+ light_eggplant: '#894585',
52
+ nasty_green: '#70b23f',
53
+ really_light_blue: '#d4ffff',
54
+ tea: '#65ab7c',
55
+ warm_purple: '#952e8f',
56
+ yellowish_tan: '#fcfc81',
57
+ cement: '#a5a391',
58
+ dark_grass_green: '#388004',
59
+ dusty_teal: '#4c9085',
60
+ grey_teal: '#5e9b8a',
61
+ macaroni_and_cheese: '#efb435',
62
+ pinkish_tan: '#d99b82',
63
+ spruce: '#0a5f38',
64
+ strong_blue: '#0c06f7',
65
+ toxic_green: '#61de2a',
66
+ windows_blue: '#3778bf',
67
+ blue_blue: '#2242c7',
68
+ blue_with_a_hint_of_purple: '#533cc6',
69
+ booger: '#9bb53c',
70
+ bright_sea_green: '#05ffa6',
71
+ dark_green_blue: '#1f6357',
72
+ deep_turquoise: '#017374',
73
+ green_teal: '#0cb577',
74
+ strong_pink: '#ff0789',
75
+ bland: '#afa88b',
76
+ deep_aqua: '#08787f',
77
+ lavender_pink: '#dd85d7',
78
+ light_moss_green: '#a6c875',
79
+ light_seafoam_green: '#a7ffb5',
80
+ olive_yellow: '#c2b709',
81
+ pig_pink: '#e78ea5',
82
+ deep_lilac: '#966ebd',
83
+ desert: '#ccad60',
84
+ dusty_lavender: '#ac86a8',
85
+ purpley_grey: '#947e94',
86
+ purply: '#983fb2',
87
+ candy_pink: '#ff63e9',
88
+ light_pastel_green: '#b2fba5',
89
+ boring_green: '#63b365',
90
+ kiwi_green: '#8ee53f',
91
+ light_grey_green: '#b7e1a1',
92
+ orange_pink: '#ff6f52',
93
+ tea_green: '#bdf8a3',
94
+ very_light_brown: '#d3b683',
95
+ egg_shell: '#fffcc4',
96
+ eggplant_purple: '#430541',
97
+ powder_pink: '#ffb2d0',
98
+ reddish_grey: '#997570',
99
+ baby_shit_brown: '#ad900d',
100
+ liliac: '#c48efd',
101
+ stormy_blue: '#507b9c',
102
+ ugly_brown: '#7d7103',
103
+ custard: '#fffd78',
104
+ darkish_pink: '#da467d',
105
+ deep_brown: '#410200',
106
+ greenish_beige: '#c9d179',
107
+ manilla: '#fffa86',
108
+ off_blue: '#5684ae',
109
+ battleship_grey: '#6b7c85',
110
+ browny_green: '#6f6c0a',
111
+ bruise: '#7e4071',
112
+ kelley_green: '#009337',
113
+ sickly_yellow: '#d0e429',
114
+ sunny_yellow: '#fff917',
115
+ azul: '#1d5dec',
116
+ darkgreen: '#054907',
117
+ lichen: '#8fb67b',
118
+ light_light_green: '#c8ffb0',
119
+ pale_gold: '#fdde6c',
120
+ sun_yellow: '#ffdf22',
121
+ tan_green: '#a9be70',
122
+ burple: '#6832e3',
123
+ butterscotch: '#fdb147',
124
+ toupe: '#c7ac7d',
125
+ dark_cream: '#fff39a',
126
+ indian_red: '#850e04',
127
+ light_lavendar: '#efc0fe',
128
+ poison_green: '#40fd14',
129
+ baby_puke_green: '#b6c406',
130
+ bright_yellow_green: '#9dff00',
131
+ charcoal_grey: '#3c4142',
132
+ squash: '#f2ab15',
133
+ cinnamon: '#ac4f06',
134
+ light_pea_green: '#c4fe82',
135
+ radioactive_green: '#2cfa1f',
136
+ raw_sienna: '#9a6200',
137
+ baby_purple: '#ca9bf7',
138
+ cocoa: '#875f42',
139
+ light_royal_blue: '#3a2efe',
140
+ orangeish: '#fd8d49',
141
+ rust_brown: '#8b3103',
142
+ sand_brown: '#cba560',
143
+ swamp: '#698339',
144
+ tealish_green: '#0cdc73',
145
+ burnt_siena: '#b75203',
146
+ camo: '#7f8f4e',
147
+ dusk_blue: '#26538d',
148
+ fern: '#63a950',
149
+ old_rose: '#c87f89',
150
+ pale_light_green: '#b1fc99',
151
+ peachy_pink: '#ff9a8a',
152
+ rosy_pink: '#f6688e',
153
+ light_bluish_green: '#76fda8',
154
+ light_bright_green: '#53fe5c',
155
+ light_neon_green: '#4efd54',
156
+ light_seafoam: '#a0febf',
157
+ tiffany_blue: '#7bf2da',
158
+ washed_out_green: '#bcf5a6',
159
+ browny_orange: '#ca6b02',
160
+ nice_blue: '#107ab0',
161
+ sapphire: '#2138ab',
162
+ greyish_teal: '#719f91',
163
+ orangey_yellow: '#fdb915',
164
+ parchment: '#fefcaf',
165
+ straw: '#fcf679',
166
+ very_dark_brown: '#1d0200',
167
+ terracota: '#cb6843',
168
+ ugly_blue: '#31668a',
169
+ clear_blue: '#247afd',
170
+ creme: '#ffffb6',
171
+ foam_green: '#90fda9',
172
+ light_gold: '#fddc5c',
173
+ seafoam_blue: '#78d1b6',
174
+ topaz: '#13bbaf',
175
+ violet_pink: '#fb5ffc',
176
+ wintergreen: '#20f986',
177
+ yellow_tan: '#ffe36e',
178
+ dark_fuchsia: '#9d0759',
179
+ indigo_blue: '#3a18b1',
180
+ light_yellowish_green: '#c2ff89',
181
+ pale_magenta: '#d767ad',
182
+ rich_purple: '#720058',
183
+ sunflower_yellow: '#ffda03',
184
+ leather: '#ac7434',
185
+ racing_green: '#014600',
186
+ vivid_purple: '#9900fa',
187
+ dark_royal_blue: '#02066f',
188
+ hazel: '#8e7618',
189
+ muted_pink: '#d1768f',
190
+ booger_green: '#96b403',
191
+ canary: '#fdff63',
192
+ cool_grey: '#95a3a6',
193
+ dark_taupe: '#7f684e',
194
+ darkish_purple: '#751973',
195
+ true_green: '#089404',
196
+ coral_pink: '#ff6163',
197
+ dark_sage: '#598556',
198
+ dark_slate_blue: '#214761',
199
+ flat_blue: '#3c73a8',
200
+ mushroom: '#ba9e88',
201
+ rich_blue: '#021bf9',
202
+ dirty_purple: '#734a65',
203
+ greenblue: '#23c48b',
204
+ icky_green: '#8fae22',
205
+ light_khaki: '#e6f2a2',
206
+ warm_blue: '#4b57db',
207
+ dark_hot_pink: '#d90166',
208
+ deep_sea_blue: '#015482',
209
+ carmine: '#9d0216',
210
+ dark_yellow_green: '#728f02',
211
+ pale_peach: '#ffe5ad',
212
+ plum_purple: '#4e0550',
213
+ golden_rod: '#f9bc08',
214
+ neon_red: '#ff073a',
215
+ old_pink: '#c77986',
216
+ very_pale_blue: '#d6fffe',
217
+ blood_orange: '#fe4b03',
218
+ grapefruit: '#fd5956',
219
+ sand_yellow: '#fce166',
220
+ clay_brown: '#b2713d',
221
+ dark_blue_grey: '#1f3b4d',
222
+ flat_green: '#699d4c',
223
+ light_green_blue: '#56fca2',
224
+ warm_pink: '#fb5581',
225
+ dodger_blue: '#3e82fc',
226
+ gross_green: '#a0bf16',
227
+ ice: '#d6fffa',
228
+ metallic_blue: '#4f738e',
229
+ pale_salmon: '#ffb19a',
230
+ sap_green: '#5c8b15',
231
+ algae: '#54ac68',
232
+ bluey_grey: '#89a0b0',
233
+ greeny_grey: '#7ea07a',
234
+ highlighter_green: '#1bfc06',
235
+ light_light_blue: '#cafffb',
236
+ light_mint: '#b6ffbb',
237
+ raw_umber: '#a75e09',
238
+ vivid_blue: '#152eff',
239
+ deep_lavender: '#8d5eb7',
240
+ dull_teal: '#5f9e8f',
241
+ light_greenish_blue: '#63f7b4',
242
+ mud_green: '#606602',
243
+ pinky: '#fc86aa',
244
+ red_wine: '#8c0034',
245
+ shit_green: '#758000',
246
+ tan_brown: '#ab7e4c',
247
+ darkblue: '#030764',
248
+ rosa: '#fe86a4',
249
+ lipstick: '#d5174e',
250
+ pale_mauve: '#fed0fc',
251
+ claret: '#680018',
252
+ dandelion: '#fedf08',
253
+ orangered: '#fe420f',
254
+ poop_green: '#6f7c00',
255
+ ruby: '#ca0147',
256
+ dark: '#1b2431',
257
+ greenish_turquoise: '#00fbb0',
258
+ pastel_red: '#db5856',
259
+ piss_yellow: '#ddd618',
260
+ bright_cyan: '#41fdfe',
261
+ dark_coral: '#cf524e',
262
+ algae_green: '#21c36f',
263
+ darkish_red: '#a90308',
264
+ reddy_brown: '#6e1005',
265
+ blush_pink: '#fe828c',
266
+ camouflage_green: '#4b6113',
267
+ lawn_green: '#4da409',
268
+ putty: '#beae8a',
269
+ vibrant_blue: '#0339f8',
270
+ dark_sand: '#a88f59',
271
+ saffron: '#feb209',
272
+ twilight: '#4e518b',
273
+ warm_brown: '#964e02',
274
+ bluegrey: '#85a3b2',
275
+ bubble_gum_pink: '#ff69af',
276
+ duck_egg_blue: '#c3fbf4',
277
+ greenish_cyan: '#2afeb7',
278
+ petrol: '#005f6a',
279
+ royal: '#0c1793',
280
+ butter: '#ffff81',
281
+ dusty_orange: '#f0833a',
282
+ off_yellow: '#f1f33f',
283
+ pale_olive_green: '#b1d27b',
284
+ orangish: '#fc824a',
285
+ leaf: '#71aa34',
286
+ light_blue_grey: '#b7c9e2',
287
+ dried_blood: '#4b0101',
288
+ lightish_purple: '#a552e6',
289
+ rusty_red: '#af2f0d',
290
+ lavender_blue: '#8b88f8',
291
+ light_grass_green: '#9af764',
292
+ light_mint_green: '#a6fbb2',
293
+ sunflower: '#ffc512',
294
+ velvet: '#750851',
295
+ brick_orange: '#c14a09',
296
+ lightish_red: '#fe2f4a',
297
+ pure_blue: '#0203e2',
298
+ twilight_blue: '#0a437a',
299
+ violet_red: '#a50055',
300
+ yellowy_brown: '#ae8b0c',
301
+ carnation: '#fd798f',
302
+ muddy_yellow: '#bfac05',
303
+ dark_seafoam_green: '#3eaf76',
304
+ deep_rose: '#c74767',
305
+ dusty_red: '#b9484e',
306
+ lemon_lime: '#bffe28',
307
+ brown_yellow: '#b29705',
308
+ purple_brown: '#673a3f',
309
+ wisteria: '#a87dc2',
310
+ banana_yellow: '#fafe4b',
311
+ lipstick_red: '#c0022f',
312
+ water_blue: '#0e87cc',
313
+ brown_grey: '#8d8468',
314
+ vibrant_purple: '#ad03de',
315
+ baby_green: '#8cff9e',
316
+ barf_green: '#94ac02',
317
+ eggshell_blue: '#c4fff7',
318
+ sandy_yellow: '#fdee73',
319
+ cool_green: '#33b864',
320
+ pale: '#fff9d0',
321
+ hot_magenta: '#f504c9',
322
+ greyblue: '#77a1b5',
323
+ purpley: '#8756e4',
324
+ baby_shit_green: '#889717',
325
+ brownish_pink: '#c27e79',
326
+ dark_aquamarine: '#017371',
327
+ diarrhea: '#9f8303',
328
+ light_mustard: '#f7d560',
329
+ pale_sky_blue: '#bdf6fe',
330
+ turtle_green: '#75b84f',
331
+ bright_olive: '#9cbb04',
332
+ dark_grey_blue: '#29465b',
333
+ greeny_brown: '#696006',
334
+ lemon_green: '#adf802',
335
+ light_periwinkle: '#c1c6fc',
336
+ seaweed_green: '#35ad6b',
337
+ sunshine_yellow: '#fffd37',
338
+ ugly_purple: '#a442a0',
339
+ medium_pink: '#f36196',
340
+ puke_brown: '#947706',
341
+ very_light_pink: '#fff4f2',
342
+ viridian: '#1e9167',
343
+ bile: '#b5c306',
344
+ faded_yellow: '#feff7f',
345
+ very_pale_green: '#cffdbc',
346
+ vibrant_green: '#0add08',
347
+ bright_lime: '#87fd05',
348
+ spearmint: '#1ef876',
349
+ light_aquamarine: '#7bfdc7',
350
+ light_sage: '#bcecac',
351
+ yellowgreen: '#bbf90f',
352
+ baby_poo: '#ab9004',
353
+ dark_seafoam: '#1fb57a',
354
+ deep_teal: '#00555a',
355
+ heather: '#a484ac',
356
+ rust_orange: '#c45508',
357
+ dirty_blue: '#3f829d',
358
+ fern_green: '#548d44',
359
+ bright_lilac: '#c95efb',
360
+ weird_green: '#3ae57f',
361
+ peacock_blue: '#016795',
362
+ avocado_green: '#87a922',
363
+ faded_orange: '#f0944d',
364
+ grape_purple: '#5d1451',
365
+ hot_green: '#25ff29',
366
+ lime_yellow: '#d0fe1d',
367
+ mango: '#ffa62b',
368
+ shamrock: '#01b44c',
369
+ bubblegum: '#ff6cb5',
370
+ purplish_brown: '#6b4247',
371
+ vomit_yellow: '#c7c10c',
372
+ pale_cyan: '#b7fffa',
373
+ key_lime: '#aeff6e',
374
+ tomato_red: '#ec2d01',
375
+ lightgreen: '#76ff7b',
376
+ merlot: '#730039',
377
+ night_blue: '#040348',
378
+ purpleish_pink: '#df4ec8',
379
+ apple: '#6ecb3c',
380
+ baby_poop_green: '#8f9805',
381
+ green_apple: '#5edc1f',
382
+ heliotrope: '#d94ff5',
383
+ almost_black: '#070d0d',
384
+ cool_blue: '#4984b8',
385
+ leafy_green: '#51b73b',
386
+ mustard_brown: '#ac7e04',
387
+ dusk: '#4e5481',
388
+ dull_brown: '#876e4b',
389
+ frog_green: '#58bc08',
390
+ vivid_green: '#2fef10',
391
+ bright_light_green: '#2dfe54',
392
+ fluro_green: '#0aff02',
393
+ kiwi: '#9cef43',
394
+ seaweed: '#18d17b',
395
+ navy_green: '#35530a',
396
+ ultramarine_blue: '#1805db',
397
+ iris: '#6258c4',
398
+ pastel_orange: '#ff964f',
399
+ yellowish_orange: '#ffab0f',
400
+ perrywinkle: '#8f8ce7',
401
+ tealish: '#24bca8',
402
+ dark_plum: '#3f012c',
403
+ pear: '#cbf85f',
404
+ pinkish_orange: '#ff724c',
405
+ midnight_purple: '#280137',
406
+ light_urple: '#b36ff6',
407
+ dark_mint: '#48c072',
408
+ greenish_tan: '#bccb7a',
409
+ light_burgundy: '#a8415b',
410
+ turquoise_blue: '#06b1c4',
411
+ ugly_pink: '#cd7584',
412
+ sandy: '#f1da7a',
413
+ electric_pink: '#ff0490',
414
+ muted_purple: '#805b87',
415
+ mid_green: '#50a747',
416
+ greyish: '#a8a495',
417
+ neon_yellow: '#cfff04',
418
+ banana: '#ffff7e',
419
+ carnation_pink: '#ff7fa7',
420
+ tomato: '#ef4026',
421
+ sea: '#3c9992',
422
+ muddy_brown: '#886806',
423
+ turquoise_green: '#04f489',
424
+ buff: '#fef69e',
425
+ fawn: '#cfaf7b',
426
+ muted_blue: '#3b719f',
427
+ pale_rose: '#fdc1c5',
428
+ dark_mint_green: '#20c073',
429
+ amethyst: '#9b5fc0',
430
+ chestnut: '#742802',
431
+ sick_green: '#9db92c',
432
+ pea: '#a4bf20',
433
+ rusty_orange: '#cd5909',
434
+ stone: '#ada587',
435
+ rose_red: '#be013c',
436
+ pale_aqua: '#b8ffeb',
437
+ deep_orange: '#dc4d01',
438
+ earth: '#a2653e',
439
+ mossy_green: '#638b27',
440
+ grassy_green: '#419c03',
441
+ pale_lime_green: '#b1ff65',
442
+ light_grey_blue: '#9dbcd4',
443
+ pale_grey: '#fdfdfe',
444
+ asparagus: '#77ab56',
445
+ blueberry: '#464196',
446
+ purple_red: '#990147',
447
+ pale_lime: '#befd73',
448
+ greenish_teal: '#32bf84',
449
+ caramel: '#af6f09',
450
+ deep_magenta: '#a0025c',
451
+ light_peach: '#ffd8b1',
452
+ milk_chocolate: '#7f4e1e',
453
+ ocher: '#bf9b0c',
454
+ off_green: '#6ba353',
455
+ purply_pink: '#f075e6',
456
+ lightblue: '#7bc8f6',
457
+ dusky_blue: '#475f94',
458
+ golden: '#f5bf03',
459
+ light_beige: '#fffeb6',
460
+ butter_yellow: '#fffd74',
461
+ dusky_purple: '#895b7b',
462
+ french_blue: '#436bad',
463
+ ugly_yellow: '#d0c101',
464
+ greeny_yellow: '#c6f808',
465
+ orangish_red: '#f43605',
466
+ shamrock_green: '#02c14d',
467
+ orangish_brown: '#b25f03',
468
+ tree_green: '#2a7e19',
469
+ deep_violet: '#490648',
470
+ gunmetal: '#536267',
471
+ cherry: '#cf0234',
472
+ sandy_brown: '#c4a661',
473
+ warm_grey: '#978a84',
474
+ dark_indigo: '#1f0954',
475
+ midnight: '#03012d',
476
+ bluey_green: '#2bb179',
477
+ grey_pink: '#c3909b',
478
+ soft_purple: '#a66fb5',
479
+ blood: '#770001',
480
+ brown_red: '#922b05',
481
+ medium_grey: '#7d7f7c',
482
+ berry: '#990f4b',
483
+ poo: '#8f7303',
484
+ purpley_pink: '#c83cb9',
485
+ light_salmon: '#fea993',
486
+ snot: '#acbb0d',
487
+ easter_purple: '#c071fe',
488
+ light_yellow_green: '#ccfd7f',
489
+ dark_navy_blue: '#00022e',
490
+ drab: '#828344',
491
+ light_rose: '#ffc5cb',
492
+ rouge: '#ab1239',
493
+ purplish_red: '#b0054b',
494
+ slime_green: '#99cc04',
495
+ baby_poop: '#937c00',
496
+ irish_green: '#019529',
497
+ dark_navy: '#000435',
498
+ greeny_blue: '#42b395',
499
+ light_plum: '#9d5783',
500
+ pinkish_grey: '#c8aca9',
501
+ dirty_orange: '#c87606',
502
+ rust_red: '#aa2704',
503
+ pale_lilac: '#e4cbff',
504
+ orangey_red: '#fa4224',
505
+ primary_blue: '#0804f9',
506
+ kermit_green: '#5cb200',
507
+ brownish_purple: '#76424e',
508
+ murky_green: '#6c7a0e',
509
+ wheat: '#fbdd7e',
510
+ very_dark_purple: '#2a0134',
511
+ bottle_green: '#044a05',
512
+ watermelon: '#fd4659',
513
+ deep_sky_blue: '#0d75f8',
514
+ fire_engine_red: '#fe0002',
515
+ yellow_ochre: '#cb9d06',
516
+ pumpkin_orange: '#fb7d07',
517
+ pale_olive: '#b9cc81',
518
+ light_lilac: '#edc8ff',
519
+ lightish_green: '#61e160',
520
+ carolina_blue: '#8ab8fe',
521
+ mulberry: '#920a4e',
522
+ shocking_pink: '#fe02a2',
523
+ auburn: '#9a3001',
524
+ bright_lime_green: '#65fe08',
525
+ celadon: '#befdb7',
526
+ pinkish_brown: '#b17261',
527
+ poo_brown: '#885f01',
528
+ bright_sky_blue: '#02ccfe',
529
+ celery: '#c1fd95',
530
+ dirt_brown: '#836539',
531
+ strawberry: '#fb2943',
532
+ dark_lime: '#84b701',
533
+ copper: '#b66325',
534
+ medium_brown: '#7f5112',
535
+ muted_green: '#5fa052',
536
+ robins_egg: '#6dedfd',
537
+ bright_aqua: '#0bf9ea',
538
+ bright_lavender: '#c760ff',
539
+ ivory: '#ffffcb',
540
+ very_light_purple: '#f6cefc',
541
+ light_navy: '#155084',
542
+ pink_red: '#f5054f',
543
+ olive_brown: '#645403',
544
+ poop_brown: '#7a5901',
545
+ mustard_green: '#a8b504',
546
+ ocean_green: '#3d9973',
547
+ very_dark_blue: '#000133',
548
+ dusty_green: '#76a973',
549
+ light_navy_blue: '#2e5a88',
550
+ minty_green: '#0bf77d',
551
+ adobe: '#bd6c48',
552
+ barney: '#ac1db8',
553
+ jade_green: '#2baf6a',
554
+ bright_light_blue: '#26f7fd',
555
+ light_lime: '#aefd6c',
556
+ dark_khaki: '#9b8f55',
557
+ orange_yellow: '#ffad01',
558
+ ocre: '#c69c04',
559
+ maize: '#f4d054',
560
+ faded_pink: '#de9dac',
561
+ british_racing_green: '#05480d',
562
+ sandstone: '#c9ae74',
563
+ mud_brown: '#60460f',
564
+ light_sea_green: '#98f6b0',
565
+ robin_egg_blue: '#8af1fe',
566
+ aqua_marine: '#2ee8bb',
567
+ dark_sea_green: '#11875d',
568
+ soft_pink: '#fdb0c0',
569
+ orangey_brown: '#b16002',
570
+ cherry_red: '#f7022a',
571
+ burnt_yellow: '#d5ab09',
572
+ brownish_grey: '#86775f',
573
+ camel: '#c69f59',
574
+ purplish_grey: '#7a687f',
575
+ marine: '#042e60',
576
+ greyish_pink: '#c88d94',
577
+ pale_turquoise: '#a5fbd5',
578
+ pastel_yellow: '#fffe71',
579
+ bluey_purple: '#6241c7',
580
+ canary_yellow: '#fffe40',
581
+ faded_red: '#d3494e',
582
+ sepia: '#985e2b',
583
+ coffee: '#a6814c',
584
+ bright_magenta: '#ff08e8',
585
+ mocha: '#9d7651',
586
+ ecru: '#feffca',
587
+ purpleish: '#98568d',
588
+ cranberry: '#9e003a',
589
+ darkish_green: '#287c37',
590
+ brown_orange: '#b96902',
591
+ dusky_rose: '#ba6873',
592
+ melon: '#ff7855',
593
+ sickly_green: '#94b21c',
594
+ silver: '#c5c9c7',
595
+ purply_blue: '#661aee',
596
+ purpleish_blue: '#6140ef',
597
+ hospital_green: '#9be5aa',
598
+ shit_brown: '#7b5804',
599
+ mid_blue: '#276ab3',
600
+ amber: '#feb308',
601
+ easter_green: '#8cfd7e',
602
+ soft_blue: '#6488ea',
603
+ cerulean_blue: '#056eee',
604
+ golden_brown: '#b27a01',
605
+ bright_turquoise: '#0ffef9',
606
+ red_pink: '#fa2a55',
607
+ red_purple: '#820747',
608
+ greyish_brown: '#7a6a4f',
609
+ vermillion: '#f4320c',
610
+ russet: '#a13905',
611
+ steel_grey: '#6f828a',
612
+ lighter_purple: '#a55af4',
613
+ bright_violet: '#ad0afd',
614
+ prussian_blue: '#004577',
615
+ slate_green: '#658d6d',
616
+ dirty_pink: '#ca7b80',
617
+ dark_blue_green: '#005249',
618
+ pine: '#2b5d34',
619
+ yellowy_green: '#bff128',
620
+ dark_gold: '#b59410',
621
+ bluish: '#2976bb',
622
+ darkish_blue: '#014182',
623
+ dull_red: '#bb3f3f',
624
+ pinky_red: '#fc2647',
625
+ bronze: '#a87900',
626
+ pale_teal: '#82cbb2',
627
+ military_green: '#667c3e',
628
+ barbie_pink: '#fe46a5',
629
+ bubblegum_pink: '#fe83cc',
630
+ pea_soup_green: '#94a617',
631
+ dark_mustard: '#a88905',
632
+ shit: '#7f5f00',
633
+ medium_purple: '#9e43a2',
634
+ very_dark_green: '#062e03',
635
+ dirt: '#8a6e45',
636
+ dusky_pink: '#cc7a8b',
637
+ red_violet: '#9e0168',
638
+ lemon_yellow: '#fdff38',
639
+ pistachio: '#c0fa8b',
640
+ dull_yellow: '#eedc5b',
641
+ strong_green: '#7ebd01',
642
+ dark_lime_green: '#2ca02c',
643
+ denim_blue: '#3b5b92',
644
+ teal_blue: '#01889f',
645
+ lightish_blue: '#3d7afd',
646
+ purpley_blue: '#5f34e7',
647
+ light_indigo: '#6d5acf',
648
+ swamp_green: '#748500',
649
+ brown_green: '#706c11',
650
+ dark_maroon: '#3c0008',
651
+ hot_purple: '#cb00f5',
652
+ dark_forest_green: '#002d04',
653
+ faded_blue: '#658cbb',
654
+ drab_green: '#749551',
655
+ light_lime_green: '#b9ff66',
656
+ snot_green: '#9dc100',
657
+ yellowish: '#faee66',
658
+ light_blue_green: '#7efbb3',
659
+ bordeaux: '#7b002c',
660
+ light_mauve: '#c292a1',
661
+ ocean: '#017b92',
662
+ marigold: '#fcc006',
663
+ muddy_green: '#657432',
664
+ dull_orange: '#d8863b',
665
+ steel: '#738595',
666
+ electric_purple: '#aa23ff',
667
+ fluorescent_green: '#08ff08',
668
+ yellowish_brown: '#9b7a01',
669
+ blush: '#f29e8e',
670
+ soft_green: '#6fc276',
671
+ bright_orange: '#ff5b00',
672
+ lemon: '#fdff52',
673
+ purple_grey: '#866f85',
674
+ acid_green: '#8ffe09',
675
+ pale_lavender: '#eecffe',
676
+ violet_blue: '#510ac9',
677
+ light_forest_green: '#4f9153',
678
+ burnt_red: '#9f2305',
679
+ khaki_green: '#728639',
680
+ cerise: '#de0c62',
681
+ faded_purple: '#916e99',
682
+ apricot: '#ffb16d',
683
+ dark_olive_green: '#3c4d03',
684
+ grey_brown: '#7f7053',
685
+ green_grey: '#77926f',
686
+ true_blue: '#010fcc',
687
+ pale_violet: '#ceaefa',
688
+ periwinkle_blue: '#8f99fb',
689
+ light_sky_blue: '#c6fcff',
690
+ blurple: '#5539cc',
691
+ green_brown: '#544e03',
692
+ bluegreen: '#017a79',
693
+ bright_teal: '#01f9c6',
694
+ brownish_yellow: '#c9b003',
695
+ pea_soup: '#929901',
696
+ forest: '#0b5509',
697
+ barney_purple: '#a00498',
698
+ ultramarine: '#2000b1',
699
+ purplish: '#94568c',
700
+ puke_yellow: '#c2be0e',
701
+ bluish_grey: '#748b97',
702
+ dark_periwinkle: '#665fd1',
703
+ dark_lilac: '#9c6da5',
704
+ reddish: '#c44240',
705
+ light_maroon: '#a24857',
706
+ dusty_purple: '#825f87',
707
+ terra_cotta: '#c9643b',
708
+ avocado: '#90b134',
709
+ marine_blue: '#01386a',
710
+ teal_green: '#25a36f',
711
+ slate_grey: '#59656d',
712
+ lighter_green: '#75fd63',
713
+ electric_green: '#21fc0d',
714
+ dusty_blue: '#5a86ad',
715
+ golden_yellow: '#fec615',
716
+ bright_yellow: '#fffd01',
717
+ light_lavender: '#dfc5fe',
718
+ umber: '#b26400',
719
+ poop: '#7f5e00',
720
+ dark_peach: '#de7e5d',
721
+ jungle_green: '#048243',
722
+ eggshell: '#ffffd4',
723
+ denim: '#3b638c',
724
+ yellow_brown: '#b79400',
725
+ dull_purple: '#84597e',
726
+ chocolate_brown: '#411900',
727
+ wine_red: '#7b0323',
728
+ neon_blue: '#04d9ff',
729
+ dirty_green: '#667e2c',
730
+ light_tan: '#fbeeac',
731
+ ice_blue: '#d7fffe',
732
+ cadet_blue: '#4e7496',
733
+ dark_mauve: '#874c62',
734
+ very_light_blue: '#d5ffff',
735
+ grey_purple: '#826d8c',
736
+ pastel_pink: '#ffbacd',
737
+ very_light_green: '#d1ffbd',
738
+ dark_sky_blue: '#448ee4',
739
+ evergreen: '#05472a',
740
+ dull_pink: '#d5869d',
741
+ aubergine: '#3d0734',
742
+ mahogany: '#4a0100',
743
+ reddish_orange: '#f8481c',
744
+ deep_green: '#02590f',
745
+ vomit_green: '#89a203',
746
+ purple_pink: '#e03fd8',
747
+ dusty_pink: '#d58a94',
748
+ faded_green: '#7bb274',
749
+ camo_green: '#526525',
750
+ pinky_purple: '#c94cbe',
751
+ pink_purple: '#db4bda',
752
+ brownish_red: '#9e3623',
753
+ dark_rose: '#b5485d',
754
+ mud: '#735c12',
755
+ brownish: '#9c6d57',
756
+ emerald_green: '#028f1e',
757
+ pale_brown: '#b1916e',
758
+ dull_blue: '#49759c',
759
+ burnt_umber: '#a0450e',
760
+ medium_green: '#39ad48',
761
+ clay: '#b66a50',
762
+ light_aqua: '#8cffdb',
763
+ light_olive_green: '#a4be5c',
764
+ brownish_orange: '#cb7723',
765
+ dark_aqua: '#05696b',
766
+ purplish_pink: '#ce5dae',
767
+ dark_salmon: '#c85a53',
768
+ greenish_grey: '#96ae8d',
769
+ jade: '#1fa774',
770
+ ugly_green: '#7a9703',
771
+ dark_beige: '#ac9362',
772
+ emerald: '#01a049',
773
+ pale_red: '#d9544d',
774
+ strong_red: '#d62728',
775
+ strong_cyan: '#d62728',
776
+ strong_yellow: '#bcbd22',
777
+ light_magenta: '#fa5ff7',
778
+ sky: '#82cafc',
779
+ light_cyan: '#acfffc',
780
+ yellow_orange: '#fcb001',
781
+ reddish_purple: '#910951',
782
+ reddish_pink: '#fe2c54',
783
+ orchid: '#c875c4',
784
+ dirty_yellow: '#cdc50a',
785
+ orange_red: '#fd411e',
786
+ deep_red: '#9a0200',
787
+ orange_brown: '#be6400',
788
+ cobalt_blue: '#030aa7',
789
+ neon_pink: '#fe019a',
790
+ rose_pink: '#f7879a',
791
+ greyish_purple: '#887191',
792
+ raspberry: '#b00149',
793
+ aqua_green: '#12e193',
794
+ salmon_pink: '#fe7b7c',
795
+ tangerine: '#ff9408',
796
+ brownish_green: '#6a6e09',
797
+ red_brown: '#8b2e16',
798
+ greenish_brown: '#696112',
799
+ pumpkin: '#e17701',
800
+ pine_green: '#0a481e',
801
+ charcoal: '#343837',
802
+ baby_pink: '#ffb7ce',
803
+ cornflower: '#6a79f7',
804
+ blue_violet: '#5d06e9',
805
+ chocolate: '#3d1c02',
806
+ greyish_green: '#82a67d',
807
+ scarlet: '#be0119',
808
+ green_yellow: '#c9ff27',
809
+ dark_olive: '#373e02',
810
+ sienna: '#a9561e',
811
+ pastel_purple: '#caa0ff',
812
+ terracotta: '#ca6641',
813
+ aqua_blue: '#02d8e9',
814
+ sage_green: '#88b378',
815
+ blood_red: '#980002',
816
+ deep_pink: '#cb0162',
817
+ grass: '#5cac2d',
818
+ moss: '#769958',
819
+ pastel_blue: '#a2bffe',
820
+ bluish_green: '#10a674',
821
+ green_blue: '#06b48b',
822
+ dark_tan: '#af884a',
823
+ greenish_blue: '#0b8b87',
824
+ pale_orange: '#ffa756',
825
+ vomit: '#a2a415',
826
+ forrest_green: '#154406',
827
+ dark_lavender: '#856798',
828
+ dark_violet: '#34013f',
829
+ purple_blue: '#632de9',
830
+ dark_cyan: '#0a888a',
831
+ olive_drab: '#6f7632',
832
+ pinkish: '#d46a7e',
833
+ cobalt: '#1e488f',
834
+ neon_purple: '#bc13fe',
835
+ light_turquoise: '#7ef4cc',
836
+ apple_green: '#76cd26',
837
+ dull_green: '#74a662',
838
+ wine: '#80013f',
839
+ powder_blue: '#b1d1fc',
840
+ off_white: '#ffffe4',
841
+ electric_blue: '#0652ff',
842
+ dark_turquoise: '#045c5a',
843
+ blue_purple: '#5729ce',
844
+ azure: '#069af3',
845
+ bright_red: '#ff000d',
846
+ pinkish_red: '#f10c45',
847
+ cornflower_blue: '#5170d7',
848
+ light_olive: '#acbf69',
849
+ grape: '#6c3461',
850
+ greyish_blue: '#5e819d',
851
+ purplish_blue: '#601ef9',
852
+ yellowish_green: '#b0dd16',
853
+ greenish_yellow: '#cdfd02',
854
+ medium_blue: '#2c6fbb',
855
+ dusty_rose: '#c0737a',
856
+ light_violet: '#d6b4fc',
857
+ midnight_blue: '#020035',
858
+ bluish_purple: '#703be7',
859
+ red_orange: '#fd3c06',
860
+ dark_magenta: '#960056',
861
+ greenish: '#40a368',
862
+ ocean_blue: '#03719c',
863
+ coral: '#fc5a50',
864
+ cream: '#ffffc2',
865
+ reddish_brown: '#7f2b0a',
866
+ burnt_sienna: '#b04e0f',
867
+ brick: '#a03623',
868
+ sage: '#87ae73',
869
+ grey_green: '#789b73',
870
+ white: '#ffffff',
871
+ robins_egg_blue: '#98eff9',
872
+ moss_green: '#658b38',
873
+ steel_blue: '#5a7d9a',
874
+ eggplant: '#380835',
875
+ light_yellow: '#fffe7a',
876
+ leaf_green: '#5ca904',
877
+ light_grey: '#d8dcd6',
878
+ puke: '#a5a502',
879
+ pinkish_purple: '#d648d7',
880
+ sea_blue: '#047495',
881
+ pale_purple: '#b790d4',
882
+ slate_blue: '#5b7c99',
883
+ blue_grey: '#607c8e',
884
+ hunter_green: '#0b4008',
885
+ fuchsia: '#ed0dd9',
886
+ crimson: '#8c000f',
887
+ pale_yellow: '#ffff84',
888
+ ochre: '#bf9005',
889
+ mustard_yellow: '#d2bd0a',
890
+ light_red: '#ff474c',
891
+ cerulean: '#0485d1',
892
+ pale_pink: '#ffcfdc',
893
+ deep_blue: '#040273',
894
+ rust: '#a83c09',
895
+ light_teal: '#90e4c1',
896
+ slate: '#516572',
897
+ goldenrod: '#fac205',
898
+ dark_yellow: '#d5b60a',
899
+ dark_grey: '#363737',
900
+ slightly_desaturated_violet: '#9467bd',
901
+ army_green: '#4b5d16',
902
+ grey_blue: '#6b8ba4',
903
+ seafoam: '#80f9ad',
904
+ puce: '#a57e52',
905
+ spring_green: '#a9f971',
906
+ dark_orange: '#c65102',
907
+ sand: '#e2ca76',
908
+ pastel_green: '#b0ff9d',
909
+ mint: '#9ffeb0',
910
+ light_orange: '#fdaa48',
911
+ bright_pink: '#fe01b1',
912
+ chartreuse: '#c1f80a',
913
+ deep_purple: '#36013f',
914
+ dark_brown: '#341c02',
915
+ taupe: '#b9a281',
916
+ pea_green: '#8eab12',
917
+ puke_green: '#9aae07',
918
+ kelly_green: '#02ab2e',
919
+ seafoam_green: '#7af9ab',
920
+ blue_green: '#137e6d',
921
+ khaki: '#aaa662',
922
+ burgundy: '#610023',
923
+ dark_teal: '#014d4e',
924
+ brick_red: '#8f1402',
925
+ royal_purple: '#4b006e',
926
+ plum: '#580f41',
927
+ mint_green: '#8fff9f',
928
+ gold: '#dbb40c',
929
+ baby_blue: '#a2cffe',
930
+ yellow_green: '#c0fb2d',
931
+ bright_purple: '#be03fd',
932
+ dark_red: '#840000',
933
+ pale_blue: '#d0fefe',
934
+ grass_green: '#3f9b0b',
935
+ navy: '#01153e',
936
+ aquamarine: '#04d8b2',
937
+ burnt_orange: '#c04e01',
938
+ neon_green: '#0cff0c',
939
+ bright_blue: '#0165fc',
940
+ rose: '#cf6275',
941
+ light_pink: '#ffd1df',
942
+ mustard: '#ceb301',
943
+ indigo: '#380282',
944
+ lime: '#aaff32',
945
+ sea_green: '#53fca1',
946
+ periwinkle: '#8e82fe',
947
+ dark_pink: '#cb416b',
948
+ olive_green: '#677a04',
949
+ peach: '#ffb07c',
950
+ pale_green: '#c7fdb5',
951
+ light_brown: '#ad8150',
952
+ hot_pink: '#ff028d',
953
+ black: '#000000',
954
+ lilac: '#cea2fd',
955
+ navy_blue: '#001146',
956
+ royal_blue: '#0504aa',
957
+ beige: '#e6daa6',
958
+ salmon: '#ff796c',
959
+ olive: '#6e750e',
960
+ maroon: '#650021',
961
+ bright_green: '#01ff07',
962
+ dark_purple: '#35063e',
963
+ mauve: '#ae7181',
964
+ forest_green: '#06470c',
965
+ aqua: '#13eac9',
966
+ cyan: '#00ffff',
967
+ tan: '#d1b26f',
968
+ dark_blue: '#00035b',
969
+ lavender: '#c79fef',
970
+ turquoise: '#06c2ac',
971
+ dark_green: '#033500',
972
+ violet: '#9a0eea',
973
+ light_purple: '#bf77f6',
974
+ lime_green: '#89fe05',
975
+ grey: '#929591',
976
+ sky_blue: '#75bbfd',
977
+ yellow: '#FFFF00',
978
+ magenta: '#c20078',
979
+ light_green: '#96f97b',
980
+ orange: '#f97306',
981
+ teal: '#029386',
982
+ light_blue: '#95d0fc',
983
+ red: '#e50000',
984
+ brown: '#653700',
985
+ pink: '#ff81c0',
986
+ blue: '#0000FF',
987
+ green: '#008000',
988
+ purple: '#7e1e9c',
989
+ vivid_orange: '#ff7f0e'
990
+ }.freeze
991
+ end
992
+ end