def monochromatic(options = {})
      size = options[:size] || 6

      h, s, v = @color.hsv
      modification = 1.0 / size

      palette = size.times.map do
        Color.new(ColorModes::Hsv.new(h, s, v), @color.format).tap do
          v = (v + modification) % 1
        end
      end

      with_reformat(palette, options[:as])
    end
def monochromatic(options = {})
      size = options[:size] || 6

      h, s, v = @color.hsv
      modification = 1.0 / size

      palette = size.times.map do
        Color.new(ColorModes::Hsv.new(h, s, v), @color.format).tap do
          v = (v + modification) % 1
        end
      end

      with_reformat(palette, options[:as])
    end
Generate a monochromatic palette.

 @example
   'red'.paint.palette.monochromatic           #=> [red, #2a0000, #550000, maroon, #aa0000, #d40000]
   'red'.paint.palette.monochromatic(as: :hex) #=> ['#ff0000', '#2a0000', '#550000', '#800000', '#aa0000', '#d40000']
   'red'.paint.palette.monochromatic(size: 3)  #=> [red, #550000, #aa0000]

 @param options [Hash]
 @option options :size [Symbol] (6) number of results to return
 @option options :as   [Symbol] (nil) optional format to output colors as strings
 @return [Array<Color>, Array<String>] depending on presence of `options[:as]`