CKEDITOR.tools.color
Class representing a color. Provides conversion between various color formats:
- Named colors.
- Hexadecimal format (with alpha support).
- RGB and RGBA formats.
- HSL and HSLA formats.
It can be used to validate and convert color between above formats.
var color = new CKEDITOR.tools.color( 'rgb( 225, 225, 225 )' );
console.log( color.getHex() ); // #FFFFFF
var color = new CKEDITOR.tools.color( 'red' );
console.log( color.getHexWithAlpha() ); // #FF0000FF
Filtering
Properties
-
-
-
-
-
-
-
Lightness value. Ranges between 0-100 (inclusive).
The value of
0means that the color will be black, while the value of100means that it will be white.Used in HSL colors.
Defaults to
0 -
-
Saturation value. Ranges between 0-100 (inclusive).
The value of
0means that the color will be a shade of gray.Used in HSL colors.
Defaults to
0 -
Original color type.
Available types:
+------+---------------+---------------------------------------+ | Type | Integer value | Constant | +------+---------------+---------------------------------------+ | RGB | 1 | TYPE_RGB | +------+---------------+---------------------------------------+ | HSL | 2 | TYPE_HSL | +------+---------------+---------------------------------------+Defaults to
0
Static properties
-
Color list based on W3 named colors list.
Defaults to
{aliceblue: '#F0F8FF', antiquewhite: '#FAEBD7', aqua: '#00FFFF', aquamarine: '#7FFFD4', azure: '#F0FFFF', beige: '#F5F5DC', bisque: '#FFE4C4', black: '#000000', blanchedalmond: '#FFEBCD', blue: '#0000FF', blueviolet: '#8A2BE2', brown: '#A52A2A', burlywood: '#DEB887', cadetblue: '#5F9EA0', chartreuse: '#7FFF00', chocolate: '#D2691E', coral: '#FF7F50', cornflowerblue: '#6495ED', cornsilk: '#FFF8DC', crimson: '#DC143C', cyan: '#00FFFF', darkblue: '#00008B', darkcyan: '#008B8B', darkgoldenrod: '#B8860B', darkgray: '#A9A9A9', darkgreen: '#006400', darkgrey: '#A9A9A9', darkkhaki: '#BDB76B', darkmagenta: '#8B008B', darkolivegreen: '#556B2F', darkorange: '#FF8C00', darkorchid: '#9932CC', darkred: '#8B0000', darksalmon: '#E9967A', darkseagreen: '#8FBC8F', darkslateblue: '#483D8B', darkslategray: '#2F4F4F', darkslategrey: '#2F4F4F', darkturquoise: '#00CED1', darkviolet: '#9400D3', deeppink: '#FF1493', deepskyblue: '#00BFFF', dimgray: '#696969', dimgrey: '#696969', dodgerblue: '#1E90FF', firebrick: '#B22222', floralwhite: '#FFFAF0', forestgreen: '#228B22', fuchsia: '#FF00FF', gainsboro: '#DCDCDC', ghostwhite: '#F8F8FF', gold: '#FFD700', goldenrod: '#DAA520', gray: '#808080', green: '#008000', greenyellow: '#ADFF2F', grey: '#808080', honeydew: '#F0FFF0', hotpink: '#FF69B4', indianred: '#CD5C5C', indigo: '#4B0082', ivory: '#FFFFF0', khaki: '#F0E68C', lavender: '#E6E6FA', lavenderblush: '#FFF0F5', lawngreen: '#7CFC00', lemonchiffon: '#FFFACD', lightblue: '#ADD8E6', lightcoral: '#F08080', lightcyan: '#E0FFFF', lightgoldenrodyellow: '#FAFAD2', lightgray: '#D3D3D3', lightgreen: '#90EE90', lightgrey: '#D3D3D3', lightpink: '#FFB6C1', lightsalmon: '#FFA07A', lightseagreen: '#20B2AA', lightskyblue: '#87CEFA', lightslategray: '#778899', lightslategrey: '#778899', lightsteelblue: '#B0C4DE', lightyellow: '#FFFFE0', lime: '#00FF00', limegreen: '#32CD32', linen: '#FAF0E6', magenta: '#FF00FF', maroon: '#800000', mediumaquamarine: '#66CDAA', mediumblue: '#0000CD', mediumorchid: '#BA55D3', mediumpurple: '#9370DB', mediumseagreen: '#3CB371', mediumslateblue: '#7B68EE', mediumspringgreen: '#00FA9A', mediumturquoise: '#48D1CC', mediumvioletred: '#C71585', midnightblue: '#191970', mintcream: '#F5FFFA', mistyrose: '#FFE4E1', moccasin: '#FFE4B5', navajowhite: '#FFDEAD', navy: '#000080', oldlace: '#FDF5E6', olive: '#808000', olivedrab: '#6B8E23', orange: '#FFA500', orangered: '#FF4500', orchid: '#DA70D6', palegoldenrod: '#EEE8AA', palegreen: '#98FB98', paleturquoise: '#AFEEEE', palevioletred: '#DB7093', papayawhip: '#FFEFD5', peachpuff: '#FFDAB9', peru: '#CD853F', pink: '#FFC0CB', plum: '#DDA0DD', powderblue: '#B0E0E6', purple: '#800080', rebeccapurple: '#663399', red: '#FF0000', rosybrown: '#BC8F8F', royalblue: '#4169E1', saddlebrown: '#8B4513', salmon: '#FA8072', sandybrown: '#F4A460', seagreen: '#2E8B57', seashell: '#FFF5EE', sienna: '#A0522D', silver: '#C0C0C0', skyblue: '#87CEEB', slateblue: '#6A5ACD', slategray: '#708090', slategrey: '#708090', snow: '#FFFAFA', springgreen: '#00FF7F', steelblue: '#4682B4', tan: '#D2B48C', teal: '#008080', thistle: '#D8BFD8', tomato: '#FF6347', turquoise: '#40E0D0', violet: '#EE82EE', windowtext: 'windowtext', wheat: '#F5DEB3', white: '#FFFFFF', whitesmoke: '#F5F5F5', yellow: '#FFFF00', yellowgreen: '#9ACD32'} -
-
-
private readonly static
MAX_SATURATION_LIGHTNESS_CHANNEL_VALUE : NumberCKEDITOR.tools.color#MAX_SATURATION_LIGHTNESS_CHANNEL_VALUE-
-
-
Regular expression to match hash (
#) followed by three characters long hexadecimal color value.Defaults to
/#([0-9a-f]{3}$)/gim -
Regular expression to match hash (
#) followed by four characters long hexadecimal color value.Defaults to
/#([0-9a-f]{4}$)/gim -
Regular expression to match hash (
#) followed by six characters long hexadecimal color value.Defaults to
/#([0-9a-f]{6}$)/gim -
Regular expression to match hash (
#) followed by eight characters long hexadecimal color value.Defaults to
/#([0-9a-f]{8}$)/gim -
Regular expression to extract numbers from HSL and HSLA color value.
Allowed prefix is
hslorhsla. After prefix are values in parentheses. Only dots, coma, digit and percent sign are allowed.Defaults to
/hsla?\((\s*(?:[.\d]+(?:deg)?)(?:\s*,?\s*[.\d]+%){2})((?:(?:\s*\/\s*)|(?:\s*,\s*))[\d.]+%?)?\s*\)/i -
Regular expression to extract numbers from RGB and RGBA color value.
Allowed prefix is
rgborrgba. After prefix are values in parentheses. Only dots, coma, digit and percent sign are allowed.Defaults to
/rgba?\(([.,\d\s%]*)(\s*\/\s*[\d.%]+)?\s*\)/i
Methods
constructor( colorCode, defaultValue ) → colorCKEDITOR.tools.color#constructorCreates CKEDITOR.tools.color class instance.
Parameters
colorCode : StringdefaultValue : *Value which will be returned by any getter if passed color code is not valid.
Returns
color
getHex() → String | *CKEDITOR.tools.color#getHexGets hexadecimal color representation.
Returns
String | *Hexadecimal color code (e.g.
#FF00FF) or default value.
getHexWithAlpha() → String | *CKEDITOR.tools.color#getHexWithAlphaGets hexadecimal color representation with separate alpha channel.
Returns
String | *Hexadecimal color code (e.g.
#FF00FF00) or default value.
getHsl() → String | *CKEDITOR.tools.color#getHslGets HSL color representation.
Returns
String | *HSL color representation (e.g.
hsl(360,100%,50%)) or default value.
getHsla() → String | *CKEDITOR.tools.color#getHslaGets HSLA color representation.
Returns
String | *HSLA color representation (e.g.
hsla(360,100%,50%,0)) or default value.
getInitialValue() → StringCKEDITOR.tools.color#getInitialValueGets raw value passed to the constructor during color object creation.
Returns
StringRaw value passed during color object creation.
getRgb() → String | *CKEDITOR.tools.color#getRgbGets RGB color representation.
Returns
String | *RGB color representation (e.g.
rgb(255,255,255)) or default value.
getRgba() → String | *CKEDITOR.tools.color#getRgbaGets RGBA color representation.
Returns
String | *RGBA color representation (e.g.
rgba(255,255,255,0)) or default value.
private
areColorChannelsValid( red, green, blue, alpha ) → BooleanCKEDITOR.tools.color#areColorChannelsValidValidates whether red, green, blue and alpha color channels are within required range.
For red, green and blue channels range is 0 to MAX_RGB_CHANNEL_VALUE inclusive. For alpha channel range is 0 to MAX_ALPHA_CHANNEL_VALUE inclusive.
Parameters
red : NumberRed channel value.
green : NumberGreen channel value.
blue : NumberBlue channel value.
alpha : NumberAlpha channel value.
Returns
Boolean
-
Blends alpha into RGB color channels. Assumes that background is white.
Parameters
red : NumberRed channel value.
green : NumberGreen channel value.
blue : NumberBlue channel value.
alpha : NumberAlpha channel value.
Returns
ArrayArray containing RGB channels with alpha mixed.
private
extractColorChannelsByPattern( value, regExp ) → Array | nullCKEDITOR.tools.color#extractColorChannelsByPatternExtracts color channels values based on provided regular expression.
Parameters
value : StringString tested with pattern.
regExp : RegExpRegular expression pattern.
Returns
Array | nullArray with extracted values or null if value doesn't match regular expression.
private
extractColorChannelsFromHex( colorCode ) → Object | nullCKEDITOR.tools.color#extractColorChannelsFromHexExtracts RGBA channels from given HEX string.
Parameters
colorCode : StringHEX color representation.
Returns
Object | null
private
extractColorChannelsFromHsla( colorCode ) → Object | nullCKEDITOR.tools.color#extractColorChannelsFromHslaExtracts RGBA channels from given HSL or HSLA string.
Parameters
colorCode : StringHSL or HSLA color representation.
Returns
Object | null
private
extractColorChannelsFromRgba( colorCode ) → Object | nullCKEDITOR.tools.color#extractColorChannelsFromRgbaExtracts RGBA channels from given RGB or RGBA string.
Parameters
colorCode : StringRGB or RGBA color representation.
Returns
Object | null
-
Returns color channels formatted as hexadecimal color code preceded by '#'.
Parameters
red : NumberRed channel value.
green : NumberGreen channel value.
blue : NumberBlue channel value.
[ alpha ] : NumberOptional alpha channel value.
Returns
StringFormatted color value (e.g.
#FF00FFor with alpha#FF00FF00).
private
formatHslString( hslPrefix, hue, saturation, lightness, [ alpha ] ) → StringCKEDITOR.tools.color#formatHslStringReturns color channels formatted as HSL or HSLA color code preceded by given prefix.
Parameters
hslPrefix : StringColor code prefix:
hslorhsla.hue : NumberHue channel value.
saturation : NumberSaturation channel value.
lightness : NumberLightness channel value.
[ alpha ] : NumberOptional alpha channel value. Should be used with
hslaprefix only to create valid color value.
Returns
StringFormatted color value (e.g.
hsl(360,50%,50%)orhsla(360,50%,50%,1)).
private
formatRgbString( rgbPrefix, red, green, blue, [ alpha ] ) → StringCKEDITOR.tools.color#formatRgbStringReturns color channels formatted as RGB or RGBA color code preceded by given prefix.
Parameters
rgbPrefix : StringColor code prefix:
rgborrgba.red : NumberRed channel value.
green : NumberGreen channel value.
blue : NumberBlue channel value.
[ alpha ] : NumberOptional alpha channel value. Should be used with
rgbaprefix only to create valid color value.
Returns
StringFormatted color value (e.g.
rgb(255,255,255)or with alphargba(255,255,255,1)).
-
Converts 3-characters hexadecimal color format to 6-characters one.
Parameters
hex3ColorCode : String3-characters hexadecimal color, e.g.
#F0F.
Returns
String6-characters hexadecimal color e.g.
#FF00FF.
-
Converts 4-characters hexadecimal color format to 8-characters one.
Parameters
hex4ColorCode : String4-characters hexadecimal color, e.g.
#F0F0.
Returns
String8-characters hexadecimal color e.g.
#FF00FF00.
-
Converts HSL color channel values into RGB ones.
Parameters
hue : Numbersaturation : Numberlightness : Number
Returns
ArrayArray of decimal RGB values.
private
matchStringToNamedColor( colorName ) → String | nullCKEDITOR.tools.color#matchStringToNamedColorReturns hexadecimal color value from namedColors based on provided color name.
Parameters
colorName : Stringcolor name, e.g.
red.
Returns
String | nullHexadecimal color representation or
nullif such named color does not exists.
-
Parses color code string trying to match it to any supported format and extract RGBA channels.
Parameters
colorCode : StringColor to parse.
-
Converts RGB color channel values to HSL ones.
Parameters
red : NumberNumber of red channel.
green : NumberNumber of green channel.
blue : NumberNumber of blue channel.
Returns
ArrayArray of HSL values.