Class: Color
Defined in: classes/Color.ts:64
A comprehensive color class that supports multiple color formats including decimal, hexadecimal, RGB, HSL, and CMYK. Provides methods for color conversion, manipulation (lighten, darken, mix), and utility operations.
Examples
// Creating colors from different formats
const color1 = Color.fromHex('#FF5733');
const color2 = Color.fromRgb({ r: 255, g: 87, b: 51 });
const color3 = Color.fromHsl({ h: 11, s: 100, l: 60 });
const color4 = Color.fromCmyk({ c: 0, m: 66, y: 80, k: 0 });
const color5 = Color.fromDecimal(0xFF5733);
// Converting between formats
const color = Color.fromHex('#FF5733');
console.log(color.toHex()); // "#FF5733"
console.log(color.toRgb()); // { r: 255, g: 87, b: 51 }
console.log(color.toHsl()); // { h: 10.588235294117647, s: 100, l: 60 }
console.log(color.toCmyk()); // { c: 0, m: 65.9, y: 80, k: 0 }
console.log(color.toDecimal()); // 16729359
// Color manipulation
const color = Color.fromHex('#FF5733');
color.lighten(30); // Lighten by 30%
color.darken(10); // Darken by 10%
const anotherColor = Color.fromHex('#33FF57');
color.mix(anotherColor, 60); // Mix 60% with another color
// Working with alpha channels
const colorWithAlpha = Color.fromHex('#FF5733FF');
console.log(colorWithAlpha.hasAlphaChannel); // true
console.log(colorWithAlpha.toRgb()); // { r: 255, g: 87, b: 51, a: 1 }
// Color properties and utilities
const color = Color.fromHex('#FF5733');
console.log(color.lightness); // 60
console.log(color.isLight); // true
console.log(color.isDark); // false
console.log(color.valueOf()); // 16734003
console.log(color.toString()); // "#FF5733"
// Cloning and JSON representation
const original = Color.fromHex('#FF5733');
const cloned = original.clone();
console.log(original.toJSON()); // Complete color representation
// Custom byte ordering for decimal conversion
const color = Color.fromHex('#FF5733FF');
const rgbOnly = color.toDecimal([RgbByte.Red, RgbByte.Green, RgbByte.Blue]);
console.log(rgbOnly); // 16734003 (without alpha)
Accessors
hasAlphaChannel
Get Signature
get hasAlphaChannel():
boolean
Defined in: classes/Color.ts:562
Checks if the color has an alpha channel.
Examples
const color = Color.fromHex('#FF5733');
// Check if the color has an alpha channel
console.log(color.hasAlphaChannel); // false
const colorWithAlpha = Color.fromHex('#FF5733FF');
// Check if the color has an alpha channel
console.log(colorWithAlpha.hasAlphaChannel); // true
Returns
boolean
true if the color has an alpha channel, false otherwise.
isDark
Get Signature
get isDark():
boolean
Defined in: classes/Color.ts:609
Checks if the color is dark.
Example
const color = Color.fromHex('#FF5733');
// Check if the color is dark
console.log(color.isDark); // false
Returns
boolean
true if the color is dark, false otherwise.
isLight
Get Signature
get isLight():
boolean
Defined in: classes/Color.ts:594
Checks if the color is light.
Example
const color = Color.fromHex('#FF5733');
// Check if the color is light
console.log(color.isLight); // true
Returns
boolean
true if the color is light, false otherwise.
lightness
Get Signature
get lightness():
number
Defined in: classes/Color.ts:577
Returns the lightness percentage of the color.
Example
const color = Color.fromHex('#FF5733');
// Get lightness
console.log(color.lightness); // 60
Returns
number
The lightness of the color.
Methods
clone()
clone():
Color
Defined in: classes/Color.ts:541
Clones the current Color instance.
Returns
Color
A new Color instance with the same properties.
Example
const color = Color.fromHex('#FF5733');
// Clone the color
const clonedColor = color.clone();
console.log(clonedColor.toHex()); // "#FF5733"
darken()
darken(
amount):Color
Defined in: classes/Color.ts:481
Darkens the color by a specified percentage.
Parameters
amount
number = 20
The percentage to darken the color by (0-100). Defaults to 20.
Returns
Color
The Color instance.
Example
const color = Color.fromHex('#FF5733');
// Darken the color by 20%
console.log(color.darken().toHex()); // "#CC4529"
lighten()
lighten(
amount):Color
Defined in: classes/Color.ts:456
Lightens the color by a specified percentage.
Parameters
amount
number = 20
The percentage to lighten the color by (0-100). Defaults to 20.
Returns
Color
The Color instance.
Example
const color = Color.fromHex('#FF5733');
// Lighten the color by 20%
console.log(color.lighten().toHex()); // "#FF7F66"
mix()
mix(
color,amount):Color
Defined in: classes/Color.ts:508
Mixes the color with another Color instance by a specified percentage.
Parameters
color
Color
The Color instance to mix with.
amount
number = 50
The percentage to mix the colors by (0-100). 0 keeps the original color, 100 keeps the other color. Defaults to 50.
Returns
Color
The Color instance.
Example
const color1 = Color.fromHex('#FF5733');
const color2 = Color.fromHex('#33FF57');
// Mix the two colors by 50%
console.log(color1.mix(color2).toHex()); // "#99A85A"
toCmyk()
toCmyk():
CMYK
Defined in: classes/Color.ts:418
Converts the color to a CMYK object.
Returns
The CMYK object.
Example
const color = Color.fromHex("#FF5733");
console.log(color.toCmyk()); // { c: 0, m: 66, y: 80, k: 0 }
toDecimal()
toDecimal(
byteOrder?):number
Defined in: classes/Color.ts:249
Converts the color to a decimal color value.
Parameters
byteOrder?
The order of the bytes in the decimal value. Defaults to [RgbByte.Alpha, RgbByte.Red, RgbByte.Green, RgbByte.Blue] (0xAARRGGBB).
[RgbByte, RgbByte, RgbByte] | [RgbByte, RgbByte, RgbByte, RgbByte]
Returns
number
The decimal color value.
Examples
const color = Color.fromHex("#FF5733");
console.log(color.toDecimal()); // 16729359
const color = Color.fromHex("#FF5733FF");
console.log(color.toDecimal([RgbByte.Red, RgbByte.Green, RgbByte.Blue])); // 16729359
toHex()
toHex(
digits?):`#${string}`
Defined in: classes/Color.ts:313
Converts the color to a hexadecimal color code.
Parameters
digits?
number
The number of digits in the hexadecimal color code. Must be 3, 4, 6, or 8. Defaults to 6 (or 8 if the color has an alpha channel).
Returns
`#${string}`
The hexadecimal color code (e.g. #FFFFFF).
Examples
const color = Color.fromDecimal(0xFF5733FF);
console.log(color.toHex()); // "#FF5733FF"
const color = Color.fromDecimal(0xFF5733FF);
console.log(color.toHex(6)); // "#5733FF"
toHsl()
toHsl():
HSL
Defined in: classes/Color.ts:368
Converts the color to an HSL object.
Returns
The HSL object.
Example
const color = Color.fromHex("#FF5733");
console.log(color.toHsl()); // { h: 11, s: 100, l: 60 }
toJSON()
toJSON():
object
Defined in: classes/Color.ts:654
Returns a JSON representation of the color.
Returns
object
A JSON representation of the color.
cmyk
cmyk:
CMYK
decimal
decimal:
number
hex
hex:
`#${string}`
hsl
hsl:
HSL
rgb
rgb:
RGB
Example
const color = Color.fromHex('#FF5733');
// Convert to JSON
console.log(color.toJSON()); // { decimal: 16729359, hex: '#FF5733', ... }
toRgb()
toRgb():
RGB
Defined in: classes/Color.ts:349
Converts the color to an RGB object.
Returns
The RGB object.
Example
const color = Color.fromHex("#FF5733");
console.log(color.toRgb()); // { r: 255, g: 87, b: 51 }
toString()
toString():
string
Defined in: classes/Color.ts:639
Returns a string representation of the color in hexadecimal format.
Returns
string
A string representation of the color.
Example
const color = Color.fromRgb({ r: 255, g: 87, b: 51 });
// Convert to string
console.log(color.toString()); // "#FF5733"
valueOf()
valueOf():
number
Defined in: classes/Color.ts:624
Returns the decimal representation of the color.
Returns
number
The decimal representation of the color.
Example
const color = Color.fromHex('#FF5733');
// Get decimal value
console.log(color.valueOf()); // 16729359
fromCmyk()
staticfromCmyk(cmyk):Color
Defined in: classes/Color.ts:213
Creates a new Color instance from a CMYK object.
Parameters
cmyk
The CMYK object.
Returns
Color
The Color instance.
Example
const color = Color.fromCmyk({ c: 0, m: 100, y: 100, k: 0 });
fromDecimal()
staticfromDecimal(decimal,hasAlpha):Color
Defined in: classes/Color.ts:82
Creates a new Color instance from a decimal color value.
Parameters
decimal
number
The decimal color value.
hasAlpha
boolean = false
Whether the color has an alpha channel. You should set this to true if the color is fully transparent because when the alpha byte is 0x00, the value cannot be added to the decimal value.
Returns
Color
The Color instance.
Example
const color = Color.fromDecimal(0xFF5733);
fromHex()
staticfromHex(hex):Color
Defined in: classes/Color.ts:98
Creates a new Color instance from a hexadecimal color code.
Parameters
hex
`#${string}`
The hexadecimal color code (e.g. #FFFFFF). Must be 4, 5, 7, or 9 characters long.
Returns
Color
The Color instance.
Example
const color = Color.fromHex('#FF5733');
fromHsl()
staticfromHsl(hsl):Color
Defined in: classes/Color.ts:164
Creates a new Color instance from an HSL object.
Parameters
hsl
The HSL object.
Returns
Color
The Color instance.
Example
const color = Color.fromHsl({ h: 360, s: 100, l: 50 });
fromRgb()
staticfromRgb(rgb):Color
Defined in: classes/Color.ts:131
Creates a new Color instance from an RGB object.
Parameters
rgb
The RGB object.
Returns
Color
The Color instance.
Example
const color = Color.fromRgb({ r: 255, g: 87, b: 51 });