API Reference > imodeljs-common > Symbology > ColorDef ColorDef Class An integer representation of a color. Colors are stored as 4 components: Red, Blue, Green, and Transparency (0=fully opaque). Each is an 8-bit integer between 0-255. Much confusion results from attempting to interpret those 4 one-byte values as a 4 byte integer. There are generally two sources of confusion: The order the Red, Green, Blue bytes Whether to specify transparency or opacity (sometimes referred to as "alpha") Generally, iModel.js prefers to use 0xTTBBGGRR (red in the low byte. 0==fully opaque in high byte), but this class provides methods to convert to 0xRRGGBB (see ColorDef.getRgb) and 0xAABBGGRR (red in the low byte, 0==fully transparent in high byte. see ColorDef.getAbgr). The constructor also accepts strings in the common HTML formats. Methods Name Description constructor(val?: string | ColorDefProps): ColorDef Create a new ColorDef. adjustForContrast(other: ColorDef, alpha?: number): ColorDef Create a new ColorDef that is adjusted from this ColorDef for maximum contrast against another color. clone(result?: ColorDef): ColorDef Make a copy of this ColorDef. equals(other: ColorDef): boolean True if the value of this ColorDef is the same as another ColorDef. getAbgr(): number Get the value of the color as a number in 0xAABBGGRR format (i.e. getAlpha(): number Get the alpha value for this ColorDef. getRgb(): number Get the RGB value of the color as a number in 0xRRGGBB format (i.e blue is in the low byte). getTransparency(): number Get the transparency value for this ColorDef (inverse of alpha). invert(): ColorDef Create a new ColorDef that is the inverse (all colors set to 255 - this) of this color. lerp(color2: ColorDef, weight: number, result?: ColorDef): ColorDef Create a ColorDef that is the linear interpolation of this ColorDef and another ColorDef, using a weighting factor. setAlpha(alpha: number): void Change the alpha value for this ColorDef. setFrom(other: ColorDef): void Set the color of this ColorDef from another ColorDef setTransparency(transparency: number): void Change the transparency value for this ColorDef toHSL(opt?: HSLColor): HSLColor Create an HSLColor from this ColorDef toHSV(out?: HSVColor): HSVColor Create an HSVColor from this ColorDef toHexString(): string Convert this ColorDef to a string in the form "#rrggbb" where values are hex digits of the respective colors toJSON(): ColorDefProps Convert this ColorDef to a 32 bit number representing the 0xTTBBGGRR value toRgbString(): string Convert this ColorDef to a string in the form "rgb(r,g,b)" where values are decimal digits of the respective colors from(red: number, green: number, blue: number, transparency?: number, result?: ColorDef): ColorDef Static Initialize or create a ColorDef fromn Red,Green,Blue,Transparency values. fromHSL(h: number, s: number, l: number, out?: ColorDef): ColorDef Static Create a ColorDef from hue, saturation, lightness values fromHSV(hsv: HSVColor, out?: ColorDef): ColorDef Static Create a ColorDef from an HSVColor fromJSON(json?: any): ColorDef Static Create a new ColorDef from a json object. rgb2bgr(val: number): number Static Swap the red and blue values of a 32-bit integer representing a color. Properties Name Type Description black Static ColorDef A black frozen ColorDef. blue Static ColorDef A blue frozen ColorDef. colors Accessor ReadOnly { b: number, g: number, r: number, t: number } Get the r,g,b,t values from this ColorDef. green Static ColorDef A green frozen ColorDef. isOpaque Accessor ReadOnly boolean True if this ColorDef is fully opaque name Accessor ReadOnly string | undefined The "known name" for this ColorDef. red Static ColorDef A red frozen ColorDef. tbgr Accessor number The color value of this ColorDef as an integer in the form 0xTTBBGGRR (red in the low byte) white Static ColorDef A white frozen ColorDef. Defined in core/common/src/ColorDef.ts Line 257 Last Updated: 13 June, 2024