import Color from "@arcgis/core/Color.js";const Color = await $arcgis.import("@arcgis/core/Color.js");- Since
- ArcGIS Maps SDK for JavaScript 4.0
Creates a new color object by passing either a hex, rgb(a), hsl(a) or named color value. Hex, hsl(a) and named color values can be passed as a string:
// Examples for greenlet color = new Color("lime"); // named valuelet color = new Color("#0f0"); // shortened three digit hexadecimal valuelet color = new Color("#00ff00"); // six digit hexadecimal valuelet color = new Color("hsl(120, 100%, 50%)"); // hsllet color = new Color("hsla(120, 100%, 50%, 0.5)"); // hslaRGB values can be passed in as either an array, a string or an object:
// Examples for greenlet color = new Color([0, 255, 0]);let color = new Color([0, 255, 0, 0.5]);let color = new Color("rgb(0, 255, 0)");let color = new Color("rgba(0, 255, 0, 0.5)");let color = new Color({r: 0, g: 255, b: 0});let color = new Color({r: 0, g: 255, b: 0, a: 0.5});The alpha-channel (opacity) in rgba and hsla can have a value between 0.0 (fully transparent) and 1.0 (fully opaque).
Constructors
Constructor
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| color | The color to create. This parameter can be a string representing a named color or a hex value; an array of three or four numbers representing r, g, b, a values; or an object with r, g, b, a properties. | |
Example
// Creates a green Color object using a named valuelet color = new Color("green");
// Creates a green Color object using a hex valuelet color = new Color("#00ff00");
// Creates a new Color object using an array of r, g, b valueslet color = new Color([125, 255, 13]);
// Add a fourth value to the array to add opacity (range between 0 and 1)let color = new Color([125, 255, 13, 0.5]);
// Creates a new Color object using an objectlet color = new Color({ r: 125, g: 255, b: 13, a: 0.3 // Optional});Properties
a
- Type
- number
The alpha value. This value can be any number between 0 and 1 and represents the opacity of the Color.
0 indicates the color is fully transparent and 1 indicates it is fully opaque.
- Default value
- 1
Methods
| Method | Signature | Class |
|---|---|---|
blendColors static | blendColors(start: Color, end: Color, weight: number, out?: Color): Color | |
fromArray static | fromArray(a: ColorJSON | readonly number[], t?: Color): Color | |
fromHex static | fromHex(hex: string, out?: Color): Color | null | undefined | |
fromJSON static | fromJSON(json: ColorJSON | null | undefined): Color | null | undefined | |
fromRgb static | fromRgb(color: string, out?: Color): Color | null | undefined | |
fromString static | fromString(color: string, obj?: Color): Color | null | undefined | |
clone(): Color | | |
equals(other: Color | null | undefined): boolean | | |
setColor(color: string | ColorLike | ColorJSON | number[]): this | | |
toCss(includeAlpha?: boolean): string | | |
toHex(options?: HexOutputOptions): string | | |
toJSON(): ColorJSON | | |
toRgb(): [
number,
number,
number
] | | |
toRgba(): [
number,
number,
number,
number
] | |
blendColors
- Signature
-
blendColors (start: Color, end: Color, weight: number, out?: Color): Color
Creates a Color instance by blending two colors using a weight factor. Optionally accepts a Color object to update and return instead of creating a new object.
Parameters
- Returns
- Color
Returns a new Color object.
Example
const startColor = new Color("#0000ff");const endColor = new Color("#ca0013");const blendedColor = Color.blendColors(startColor, endColor, 0.5); fromArray
- Signature
-
fromArray (a: ColorJSON | readonly number[], t?: Color): Color
Creates a Color instance using a 3 or 4 element array, mapping each element in sequence to the rgb(a) values of the color. Optionally accepts a Color object to update with the color value and return instead of creating a new object.
Parameters
- Returns
- Color
Returns a new Color object.
Example
let redColor = Color.fromArray([201, 0, 19]); fromHex
- Signature
-
fromHex (hex: string, out?: Color): Color | null | undefined
Creates a Color from hexadecimal string.
Colors can be expressed as:
- Hex triplet, a six or eight digit hexadecimal number. For example:
- "#ffff00" for Yellow, or
- "#dc143c20" for a semi-transparent Crimson
- Shorthand variant, a three or four digit hexadecimal number. For example:
- "#F0F" for Fuchsia, or
- "#FFF8" for semi-transparent white
Hexadecimal numbers must be prefixed with the number (or "hash") sign (#). Strings can be upper or lower case.
This static method returns a new Color object. Optionally the method accepts an existing color instance that is updated and returned.
Parameters
Example
const red = Color.fromHex("#ff0000"); // Color from hex tripletconst blue = Color.fromHex("#00F"); // Color from hex shorthandconst green = Color.fromHex("#00ff0080"); // Color with 50% transparency fromRgb
- Signature
-
fromRgb (color: string, out?: Color): Color | null | undefined
Creates a Color instance from a string of the form "rgb()" or "rgba()". Optionally accepts a Color object to update with the parsed value and return instead of creating a new object.
Parameters
Example
const redColor = Color.fromRgb("rgb(202,0,19)"); fromString
- Signature
-
fromString (color: string, obj?: Color): Color | null | undefined
Creates a Color instance by parsing a generic string. Accepts hex, rgb, and rgba style color values. Optionally accepts a Color object to update with the parsed value and return instead of creating a new object.
Parameters
Example
let blueColor = Color.fromString("blue"); clone
- Signature
-
clone (): Color
Creates a deep clone of the Color instance.
- Returns
- Color
A deep clone of the Color instance.
Example
// Creates a deep clone of the graphic's colorlet colorClone = graphic.symbol.color.clone(); setColor
- Signature
-
setColor (color: string | ColorLike | ColorJSON | number[]): this
Takes an array of rgb(a) values, named string, hex string or an hsl(a) string,
an object with r, g, b, and a properties, or a Color object
and sets this color instance to the input value.
Parameters
- Returns
- this
Sets the Color instance used to call this method to the new color.
toHex
- Signature
-
toHex (options?: HexOutputOptions): string
Returns the color in hexadecimal format.
- See also
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| options | Additional options. | |
- Returns
- string
A three, four, six or eight-digit hexadecimal number.
Example
// Three digit notationconst hex = Color.fromString("red").toHex({ digits: 3 }); // returns "#f00"const hex = Color.fromString("red").toHex({ digits: 3, capitalize: true }); // returns "#F00"
// Four digit notationconst hex = Color.fromString("red").toHex({ digits: 4 }); // returns "#f00f"const hex = Color.fromString("red").toHex({ digits: 4, capitalize: true }); // returns "#F00F"
// Six digit notationconst hex = Color.fromString("red").toHex({ digits: 6 }); // returns "#ff0000"const hex = Color.fromString("red").toHex({ digits: 6, capitalize: true }); // returns "#ff0000"
// Eight digit notationconst hex = Color.fromString("red").toHex({ digits: 8 }); // returns "#ff0000ff"const hex = Color.fromString("red").toHex({ digits: 8, capitalize: true }); // returns "#ff0000ff" toJSON
- Signature
-
toJSON (): ColorJSON
Returns a JSON object with all the values from a Color instance.
- Returns
- ColorJSON
A JSON representation of the Color instance.
Type definitions
HexOutputOptions
Additional options to set when converting a Color to a hexadecimal string via toHex() method.
digits
- Type
- 3 | 4 | 6 | 8 | undefined
The intended size of the output hexadecimal number. Valid values are 3, 4, 6 and 8. The default value is 6. Values 3 and 4 represent the shortened variant. Values 4 and 8 include an alpha channel.
- Default value
- 6
ColorLike
The color to create. This parameter can be a string representing a named color or a hex value; an array of three or four numbers representing r, g, b, a values; or an object with r, g, b, a properties.
- See also