Skip to content

@web-engine-dev/math


@web-engine-dev/math / Color

Class: Color

An RGBA color with components in [0, 1] range. Immutable by design - all operations return new instances.

Example

ts
const red = Color.red();
const blue = Color.fromHexString('#0000FF');
const custom = new Color(0.5, 0.8, 0.2, 1);
const blended = red.lerp(blue, 0.5);  // Purple

Constructors

Constructor

new Color(r?, g?, b?, a?): Color

Parameters

r?

number = 0

g?

number = 0

b?

number = 0

a?

number = 1

Returns

Color

Properties

a

readonly a: number


b

readonly b: number


g

readonly g: number


r

readonly r: number

Methods

add()

add(c): Color

Parameters

c

Color

Returns

Color


clamp()

clamp(): Color

Clamps all components to [0, 1].

Returns

Color


copyToArray()

copyToArray(arr, offset?): void

Parameters

arr

number[] | Float32Array<ArrayBufferLike>

offset?

number = 0

Returns

void


div()

div(s): Color

Parameters

s

number

Returns

Color


equals()

equals(c, epsilon?): boolean

Parameters

c

Color

epsilon?

number = 0

Returns

boolean


grayscale()

grayscale(): Color

Converts to grayscale using luminance.

Returns

Color


invert()

invert(): Color

Inverts the color (1 - c).

Returns

Color


lerp()

lerp(c, t): Color

Linear interpolation between colors.

Parameters

c

Color

t

number

Returns

Color


luminance()

luminance(): number

Computes the luminance using standard coefficients.

Returns

number


mul()

mul(s): Color

Parameters

s

number

Returns

Color


mulColor()

mulColor(c): Color

Parameters

c

Color

Returns

Color


premultiply()

premultiply(): Color

Premultiplies RGB by alpha.

Returns

Color


sub()

sub(c): Color

Parameters

c

Color

Returns

Color


toArray()

toArray(): [number, number, number, number]

Returns

[number, number, number, number]


toCSSString()

toCSSString(): string

Returns

string


toFloat32Array()

toFloat32Array(): Float32Array

Returns

Float32Array


toHex()

toHex(includeAlpha?): number

Parameters

includeAlpha?

boolean = false

Returns

number


toHexString()

toHexString(includeAlpha?): string

Parameters

includeAlpha?

boolean = false

Returns

string


toHSL()

toHSL(): [number, number, number]

Converts to HSL.

Returns

[number, number, number]

[h, s, l] in [0, 1] range


toHSV()

toHSV(): [number, number, number]

Converts to HSV.

Returns

[number, number, number]

[h, s, v] in [0, 1] range


toLinear()

toLinear(): Color

Converts from sRGB to linear color space.

Returns

Color


toRGBA8()

toRGBA8(): [number, number, number, number]

Returns

[number, number, number, number]


toSRGB()

toSRGB(): Color

Converts from linear to sRGB color space.

Returns

Color


toString()

toString(): string

Returns

string


toVec3()

toVec3(): Vec3

Returns

Vec3


toVec4()

toVec4(): Vec4

Returns

Vec4


withAlpha()

withAlpha(a): Color

Parameters

a

number

Returns

Color


withBlue()

withBlue(b): Color

Parameters

b

number

Returns

Color


withGreen()

withGreen(g): Color

Parameters

g

number

Returns

Color


withRed()

withRed(r): Color

Parameters

r

number

Returns

Color


black()

static black(): Color

Returns

Color


blue()

static blue(): Color

Returns

Color


cyan()

static cyan(): Color

Returns

Color


fromArray()

static fromArray(arr, offset?): Color

Parameters

arr

ArrayLike<number>

offset?

number = 0

Returns

Color


fromHex()

static fromHex(hex, format?): Color

Creates a color from a 32-bit packed integer (0xRRGGBBAA or 0xAARRGGBB).

Parameters

hex

number

format?

"rgba" | "argb"

Returns

Color


fromHexString()

static fromHexString(hex): Color

Creates a color from a CSS-style hex string (#RGB, #RGBA, #RRGGBB, or #RRGGBBAA).

Parameters

hex

string

CSS-style hex color string

Returns

Color

Color instance

Example

ts
const red = Color.fromHexString('#FF0000');
const green = Color.fromHexString('#0F0');  // Short form
const semiTransparent = Color.fromHexString('#FF000080');

fromHSL()

static fromHSL(h, s, l, a?): Color

Creates a color from HSL values.

Parameters

h

number

Hue in [0, 1]

s

number

Saturation in [0, 1]

l

number

Lightness in [0, 1]

a?

number = 1

Alpha in [0, 1]

Returns

Color


fromHSV()

static fromHSV(h, s, v, a?): Color

Creates a color from HSV values.

Parameters

h

number

Hue in [0, 1]

s

number

Saturation in [0, 1]

v

number

Value in [0, 1]

a?

number = 1

Alpha in [0, 1]

Returns

Color


fromRGBA8()

static fromRGBA8(r, g, b, a?): Color

Creates a color from 8-bit RGBA values (0-255).

Parameters

r

number

g

number

b

number

a?

number = 255

Returns

Color


fromVec3()

static fromVec3(v, alpha?): Color

Parameters

v

Vec3

alpha?

number = 1

Returns

Color


fromVec4()

static fromVec4(v): Color

Parameters

v

Vec4

Returns

Color


green()

static green(): Color

Returns

Color


magenta()

static magenta(): Color

Returns

Color


red()

static red(): Color

Returns

Color


transparent()

static transparent(): Color

Returns

Color


white()

static white(): Color

Returns

Color


yellow()

static yellow(): Color

Returns

Color

Proprietary software. All rights reserved.