@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
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); // PurpleConstructors
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
readonlya:number
b
readonlyb:number
g
readonlyg:number
r
readonlyr: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
toVec4()
toVec4():
Vec4
Returns
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()
staticblack():Color
Returns
Color
blue()
staticblue():Color
Returns
Color
cyan()
staticcyan():Color
Returns
Color
fromArray()
staticfromArray(arr,offset?):Color
Parameters
arr
ArrayLike<number>
offset?
number = 0
Returns
Color
fromHex()
staticfromHex(hex,format?):Color
Creates a color from a 32-bit packed integer (0xRRGGBBAA or 0xAARRGGBB).
Parameters
hex
number
format?
"rgba" | "argb"
Returns
Color
fromHexString()
staticfromHexString(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
const red = Color.fromHexString('#FF0000');
const green = Color.fromHexString('#0F0'); // Short form
const semiTransparent = Color.fromHexString('#FF000080');fromHSL()
staticfromHSL(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()
staticfromHSV(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()
staticfromRGBA8(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()
staticfromVec3(v,alpha?):Color
Parameters
v
alpha?
number = 1
Returns
Color
fromVec4()
staticfromVec4(v):Color
Parameters
v
Returns
Color
green()
staticgreen():Color
Returns
Color
magenta()
staticmagenta():Color
Returns
Color
red()
staticred():Color
Returns
Color
transparent()
statictransparent():Color
Returns
Color
white()
staticwhite():Color
Returns
Color
yellow()
staticyellow():Color
Returns
Color