Huffle daebcdeccd
All checks were successful
Backend Deploy / build (push) Successful in 29s
Backend Build and Test / build (push) Successful in 3m3s
AP-63 (#85)
closes #63

Reviewed-on: #85
2025-05-25 17:05:31 +02:00

84 lines
1.9 KiB
TypeScript

/* eslint-disable no-redeclare */
export interface Options {
/**
The RGB output format.
Note that when using the `css` format, the value of the alpha channel is rounded to two decimal places.
@default 'object'
*/
readonly format?: 'object' | 'array' | 'css';
/**
Set the alpha of the color.
This overrides any existing alpha component in the Hex color string. For example, the `99` in `#22222299`.
The number must be in the range 0 to 1.
*/
readonly alpha?: number;
}
export interface RgbaObject {
red: number;
green: number;
blue: number;
alpha: number;
}
export type RgbaTuple = [
red: number,
green: number,
blue: number,
alpha: number
];
/**
Convert HEX color to RGBA.
@param hex - The color in HEX format. Leading `#` is optional.
@example
```
import hexRgb from 'hex-rgb';
hexRgb('4183c4');
//=> {red: 65, green: 131, blue: 196, alpha: 1}
hexRgb('#4183c4');
//=> {red: 65, green: 131, blue: 196, alpha: 1}
hexRgb('#fff');
//=> {red: 255, green: 255, blue: 255, alpha: 1}
hexRgb('#22222299');
//=> {red: 34, green: 34, blue: 34, alpha: 0.6}
hexRgb('#0006');
//=> {red: 0, green: 0, blue: 0, alpha: 0.4}
hexRgb('#cd2222cc');
//=> {red: 205, green: 34, blue: 34, alpha: 0.8}
hexRgb('#cd2222cc', {format: 'array'});
//=> [205, 34, 34, 0.8]
hexRgb('#cd2222cc', {format: 'css'});
//=> 'rgb(205 34 34 / 80%)'
hexRgb('#000', {format: 'css'});
//=> 'rgb(0 0 0)'
hexRgb('#22222299', {alpha: 1});
//=> {red: 34, green: 34, blue: 34, alpha: 1}
hexRgb('#fff', {alpha: 0.5});
//=> {red: 255, green: 255, blue: 255, alpha: 0.5}
```
*/
export default function hexRgb(hex: string): RgbaObject;
export default function hexRgb(hex: string, options: Options & {format: 'object'}): RgbaObject; // eslint-disable-line @typescript-eslint/unified-signatures
export default function hexRgb(hex: string, options: Options & {format: 'array'}): RgbaTuple;
export default function hexRgb(hex: string, options: Options & {format: 'css'}): string;