@qooxdoo/framework
Version:
The JS Framework for Coders
225 lines (209 loc) • 8.8 kB
JavaScript
/* ************************************************************************
qooxdoo - the new era of web development
http://qooxdoo.org
Copyright:
2004-2008 1&1 Internet AG, Germany, http://www.1und1.de
License:
MIT: https://opensource.org/licenses/MIT
See the LICENSE file in the project's top-level directory for details.
Authors:
* Sebastian Werner (wpbasti)
* Andreas Ecker (ecker)
************************************************************************ */
/**
* Support for extended CSS color names
*/
qx.Class.define("qx.util.ExtendedColor",
{
statics :
{
/**
* CSS 3 colors (http://www.w3.org/TR/css3-color/#svg-color)
* This includes all classic HTML Color names (http://www.w3.org/TR/css3-color/#html4) and the <code>transparent</code> keyword.
*/
EXTENDED :
{
transparent : [ -1, -1, -1 ],
aliceblue : [ 240, 248, 255 ],
antiquewhite : [ 250, 235, 215 ],
aqua : [ 0, 255, 255 ],
aquamarine : [ 127, 255, 212 ],
azure : [ 240, 255, 255 ],
beige : [ 245, 245, 220 ],
bisque : [ 255, 228, 196 ],
black : [ 0, 0, 0 ],
blanchedalmond : [ 255, 235, 205 ],
blue : [ 0, 0, 255 ],
blueviolet : [ 138, 43, 226 ],
brown : [ 165, 42, 42 ],
burlywood : [ 222, 184, 135 ],
cadetblue : [ 95, 158, 160 ],
chartreuse : [ 127, 255, 0 ],
chocolate : [ 210, 105, 30 ],
coral : [ 255, 127, 80 ],
cornflowerblue : [ 100, 149, 237 ],
cornsilk : [ 255, 248, 220 ],
crimson : [ 220, 20, 60 ],
cyan : [ 0, 255, 255 ],
darkblue : [ 0, 0, 139 ],
darkcyan : [ 0, 139, 139 ],
darkgoldenrod : [ 184, 134, 11 ],
darkgray : [ 169, 169, 169 ],
darkgreen : [ 0, 100, 0 ],
darkgrey : [ 169, 169, 169 ],
darkkhaki : [ 189, 183, 107 ],
darkmagenta : [ 139, 0, 139 ],
darkolivegreen : [ 85, 107, 47 ],
darkorange : [ 255, 140, 0 ],
darkorchid : [ 153, 50, 204 ],
darkred : [ 139, 0, 0 ],
darksalmon : [ 233, 150, 122 ],
darkseagreen : [ 143, 188, 143 ],
darkslateblue : [ 72, 61, 139 ],
darkslategray : [ 47, 79, 79 ],
darkslategrey : [ 47, 79, 79 ],
darkturquoise : [ 0, 206, 209 ],
darkviolet : [ 148, 0, 211 ],
deeppink : [ 255, 20, 147 ],
deepskyblue : [ 0, 191, 255 ],
dimgray : [ 105, 105, 105 ],
dimgrey : [ 105, 105, 105 ],
dodgerblue : [ 30, 144, 255 ],
firebrick : [ 178, 34, 34 ],
floralwhite : [ 255, 250, 240 ],
forestgreen : [ 34, 139, 34 ],
fuchsia : [ 255, 0, 255 ],
gainsboro : [ 220, 220, 220 ],
ghostwhite : [ 248, 248, 255 ],
gold : [ 255, 215, 0 ],
goldenrod : [ 218, 165, 32 ],
gray : [ 128, 128, 128 ],
green : [ 0, 128, 0 ],
greenyellow : [ 173, 255, 47 ],
grey : [ 128, 128, 128 ],
honeydew : [ 240, 255, 240 ],
hotpink : [ 255, 105, 180 ],
indianred : [ 205, 92, 92 ],
indigo : [ 75, 0, 130 ],
ivory : [ 255, 255, 240 ],
khaki : [ 240, 230, 140 ],
lavender : [ 230, 230, 250 ],
lavenderblush : [ 255, 240, 245 ],
lawngreen : [ 124, 252, 0 ],
lemonchiffon : [ 255, 250, 205 ],
lightblue : [ 173, 216, 230 ],
lightcoral : [ 240, 128, 128 ],
lightcyan : [ 224, 255, 255 ],
lightgoldenrodyellow : [ 250, 250, 210 ],
lightgray : [ 211, 211, 211 ],
lightgreen : [ 144, 238, 144 ],
lightgrey : [ 211, 211, 211 ],
lightpink : [ 255, 182, 193 ],
lightsalmon : [ 255, 160, 122 ],
lightseagreen : [ 32, 178, 170 ],
lightskyblue : [ 135, 206, 250 ],
lightslategray : [ 119, 136, 153 ],
lightslategrey : [ 119, 136, 153 ],
lightsteelblue : [ 176, 196, 222 ],
lightyellow : [ 255, 255, 224 ],
lime : [ 0, 255, 0 ],
limegreen : [ 50, 205, 50 ],
linen : [ 250, 240, 230 ],
magenta : [ 255, 0, 255 ],
maroon : [ 128, 0, 0 ],
mediumaquamarine : [ 102, 205, 170 ],
mediumblue : [ 0, 0, 205 ],
mediumorchid : [ 186, 85, 211 ],
mediumpurple : [ 147, 112, 219 ],
mediumseagreen : [ 60, 179, 113 ],
mediumslateblue : [ 123, 104, 238 ],
mediumspringgreen : [ 0, 250, 154 ],
mediumturquoise : [ 72, 209, 204 ],
mediumvioletred : [ 199, 21, 133 ],
midnightblue : [ 25, 25, 112 ],
mintcream : [ 245, 255, 250 ],
mistyrose : [ 255, 228, 225 ],
moccasin : [ 255, 228, 181 ],
navajowhite : [ 255, 222, 173 ],
navy : [ 0, 0, 128 ],
oldlace : [ 253, 245, 230 ],
olive : [ 128, 128, 0 ],
olivedrab : [ 107, 142, 35 ],
orange : [ 255, 165, 0 ],
orangered : [ 255, 69, 0 ],
orchid : [ 218, 112, 214 ],
palegoldenrod : [ 238, 232, 170 ],
palegreen : [ 152, 251, 152 ],
paleturquoise : [ 175, 238, 238 ],
palevioletred : [ 219, 112, 147 ],
papayawhip : [ 255, 239, 213 ],
peachpuff : [ 255, 218, 185 ],
peru : [ 205, 133, 63 ],
pink : [ 255, 192, 203 ],
plum : [ 221, 160, 221 ],
powderblue : [ 176, 224, 230 ],
purple : [ 128, 0, 128 ],
red : [ 255, 0, 0 ],
rosybrown : [ 188, 143, 143 ],
royalblue : [ 65, 105, 225 ],
saddlebrown : [ 139, 69, 19 ],
salmon : [ 250, 128, 114 ],
sandybrown : [ 244, 164, 96 ],
seagreen : [ 46, 139, 87 ],
seashell : [ 255, 245, 238 ],
sienna : [ 160, 82, 45 ],
silver : [ 192, 192, 192 ],
skyblue : [ 135, 206, 235 ],
slateblue : [ 106, 90, 205 ],
slategray : [ 112, 128, 144 ],
slategrey : [ 112, 128, 144 ],
snow : [ 255, 250, 250 ],
springgreen : [ 0, 255, 127 ],
steelblue : [ 70, 130, 180 ],
tan : [ 210, 180, 140 ],
teal : [ 0, 128, 128 ],
thistle : [ 216, 191, 216 ],
tomato : [ 255, 99, 71 ],
turquoise : [ 64, 224, 208 ],
violet : [ 238, 130, 238 ],
wheat : [ 245, 222, 179 ],
white : [ 255, 255, 255 ],
whitesmoke : [ 245, 245, 245 ],
yellow : [ 255, 255, 0 ],
yellowgreen : [ 154, 205, 50 ]
},
/**
* Whether the incoming value is an extended named color.
*
* @param value {String} the color value to test
* @return {Boolean} true if the color is an extended named color
*/
isExtendedColor : function(value) {
return this.EXTENDED[value] !== undefined;
},
/**
* Converts an extended color to the RGB value
*
* @param value {String} The incoming string
* @return {Array} the resulting RGB array
*/
toRgb : function(value)
{
var ret = this.EXTENDED[value];
if (ret) {
return ret;
}
throw new Error("Could not convert other than extended colors to RGB: " + value);
},
/**
* Converts an extended color to a CSS RGB string
*
* @param value {String} The incoming string
* @return {String} the resulting RGB string
*/
toRgbString : function(value)
{
return qx.util.ColorUtil.rgbToRgbString(this.toRgb(value));
}
}
});