A port of the RandomColor JavaScript library for Raku.
A tiny script for generating attractive random colors.
You can pass an options object to influence the type of color it produces. The options object accepts the following properties:
hue
– Controls the hue of the generated color. You can pass a string
representing a color name: red
, orange
, yellow
, green
, blue
,
purple
, pink
and monochrome
are currently supported. If you pass a
hexidecimal color string such as #00FFFF
, randomColor will extract its hue
value and use that to generate colors.
luminosity
– Controls the luminosity of the generated color. You can
specify a string containing bright
, light
or dark
.
count
– An integer which specifies the number of colors to generate.
seed
- An integer or string which when passed will cause randomColor to
return the same color each time.
format
– A string which specifies the format of the generated color.
Possible values are rgb
, rgba
, rgbArray
, hsl
, hsla
, hslArray
and
hex
(default).
alpha
– A decimal between 0 and 1. Only relevant when using a format with
an alpha channel (rgba
and hsla
). Defaults to a random value.
# Returns a hex code for an attractive color
RandomColor.new.list;
# Returns an array of ten green colors
RandomColor.new(
count => 10,
hue => 'green'
}).list;
# Returns a hex code for a light blue
RandomColor.new(
luminosity => 'light',
hue => 'blue'
).list;
# Returns a hex code for a 'truly random' color
RandomColor(
luminosity => 'random',
hue => 'random'
).list;
# Returns a bright color in RGB
RandomColor.new(
luminosity => 'bright',
format => 'rgb' # e.g. 'rgb(225,200,20)'
).list;
# Returns a dark RGB color with random alpha
RandomColor.new(
luminosity => 'dark',
format => 'rgba' # e.g. 'rgba(9, 1, 107, 0.6482447960879654)'
});
# Returns a dark RGB color with specified alpha
RandomColor.new(
luminosity => 'dark',
format => 'rgba',
alpha => 0.5 # e.g. 'rgba(9, 1, 107, 0.5)',
);
# Returns a light HSL color with random alpha
RandomColor.new(
luminosity => 'light',
format => 'hsla' # e.g. 'hsla(27, 88.99%, 81.83%, 0.6450211517512798)'
);
For more information, see the homepage