NAME

Data::Faker::Colour - Generate random colours

SYNOPSIS

use Data::Faker::Colour;

local $, = ' ';
my $f = Data::Faker::Colour->new;
say 'Random colour: ', $f->colour_hex;
say 'Three random colours of 60% lightness: ',
    $f->colour_hsluv_hex(3, -1, -1, 60);
say 'A colour with 70% saturation, in CSS format: ',
    $f->colour_hsluv_css(1, -1, 70);
say '5 colours with hue 120 and lightness 45%: ',
    $f->colour_hsluv_hex(5, 150, -1, 45);

DESCRIPTION

This module is a plugin for Data::Faker for generating random colours. It uses the HSLuv colour space to permit generation of colours with specific hue, saturation, or lightness values. One use case would be generating colour schemes.

It is recommended to use this without Data::Faker, as Data::Faker does not currently pass arguments to methods.

DATA PROVIDERS

colour([$cnt])

Generate $cnt (default 1) random colours. Returns a list of 3-element arrayrefs, representing the R, G, and B components, each ranging 0-255.

colour_hex([$cnt])

As above, but returns a list of strings like #rrggbb.

colour_css([$cnt])

As above, but returns a list of strings like rgb(r, g, b).

colour_hsluv([$cnt, $H, $S, $L])

Generates $cnt (default 1) random colours using the HSLuv colour space. You can specify your desired hue, saturation and/or lightness, and all generated colours will have that hue/saturation/lightness.

Set $H, $S, $L to a positive value to request a specific hue/saturation/lightness, or to -1 for a randomly chosen one. They all default to -1.

colour_hsluv_hex([$cnt, $H, $S, $L])
colour_hsluv_css([$cnt, $H, $S, $L])

As above but with hex/css output.

color can be substituted for colour in any of the methods above.

SEE ALSO

Data::Faker, Convert::Colour, Convert::Colour::HSLuv

AUTHOR

Marius Gavrilescu, <marius@ieval.ro>

COPYRIGHT AND LICENSE

Copyright (C) 2017 by Marius Gavrilescu

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.24.1 or, at your option, any later version of Perl 5 you may have available.