Random Color Picker
A lightweight and easy‑to‑use utility to generate random colors in multiple formats. Perfect for dynamic themes, UI testing, design tools, or creative coding projects.
Features
- Generate random colors in hex, rgb, rgba, hsl, and hsla formats
- Get a single random color or an array of colors
- Supports alpha transparency with
rgba
andhsla
- No dependencies – lightweight and fast
- Simple API for easy integration
Installation
npm install random-color-picker
or
yarn add random-color-picker
Usage
// CommonJS
const colors = require('random-color-picker');
// ES Modules
// import colors from 'random-color-picker';
// Get a random HEX color
console.log(colors.getRandomHexColor()); // e.g. #a3f9c1
// Get a random RGBA color (with alpha)
console.log(colors.getRandomRgbaColor()); // e.g. rgba(12, 200, 123, 0.76)
// Get an array of 5 random HSL colors
console.log(colors.getRandomColorsArray(5, 'hsl'));
// [
// 'hsl(120, 45%, 55%)',
// 'hsl(240, 70%, 40%)',
// ...
// ]
// List all supported formats
console.log(colors.SUPPORTED_FORMATS);
// Output: ['hex', 'rgb', 'rgba', 'hsl', 'hsla']
API
getRandomHexColor()
Returns a random hex color string, e.g.
#12a4f9
.
getRandomRgbColor()
Returns a random rgb color string, e.g.
rgb(255, 100, 50)
.
getRandomRgbaColor()
Returns a random rgba color string with alpha, e.g.
rgba(255, 100, 50, 0.5)
.
getRandomHslColor()
Returns a random hsl color string, e.g.
hsl(240, 100%, 50%)
.
getRandomHslaColor()
Returns a random hsla color string with alpha, e.g.
hsla(240, 100%, 50%, 0.5)
.
getRandomColorsArray(count = 5, format = 'hex')
Returns an array of random colors.
Parameter | Type | Description |
---|---|---|
count |
number |
Number of colors to generate. Default is 5. |
format |
string |
Desired color format – one of 'hex' , 'rgb' , 'rgba' , 'hsl' , 'hsla' . Default is 'hex'. |
Throws an error if an unsupported format is provided.
SUPPORTED_FORMATS
An array of supported color formats:
['hex', 'rgb', 'rgba', 'hsl', 'hsla'];
License
MIT © Uday Shankar Purbey
Feel free to contribute, open issues, or suggest new features!