rubyplot 0.0.1 → 0.1.pre.a1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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