• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2009 Apple Inc.  All rights reserved.
3 * Copyright (C) 2009 Joseph Pecoraro
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * 1.  Redistributions of source code must retain the above copyright
10 *     notice, this list of conditions and the following disclaimer.
11 * 2.  Redistributions in binary form must reproduce the above copyright
12 *     notice, this list of conditions and the following disclaimer in the
13 *     documentation and/or other materials provided with the distribution.
14 * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
15 *     its contributors may be used to endorse or promote products derived
16 *     from this software without specific prior written permission.
17 *
18 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
19 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
22 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */
29
30WebInspector.Color = function(str)
31{
32    this.value = str;
33    this._parse();
34}
35
36WebInspector.Color.prototype = {
37    get shorthex()
38    {
39        if ("_short" in this)
40            return this._short;
41
42        if (!this.simple)
43            return null;
44
45        var hex = this.hex;
46        if (hex.charAt(0) === hex.charAt(1) && hex.charAt(2) === hex.charAt(3) && hex.charAt(4) === hex.charAt(5))
47            this._short = hex.charAt(0) + hex.charAt(2) + hex.charAt(4);
48        else
49            this._short = hex;
50
51        return this._short;
52    },
53
54    get hex()
55    {
56        if (!this.simple)
57            return null;
58
59        return this._hex;
60    },
61
62    set hex(x)
63    {
64        this._hex = x;
65    },
66
67    get rgb()
68    {
69        if ("_rgb" in this)
70            return this._rgb;
71
72        if (this.simple)
73            this._rgb = this._hexToRGB(this.hex);
74        else {
75            var rgba = this.rgba;
76            this._rgb = [rgba[0], rgba[1], rgba[2]];
77        }
78
79        return this._rgb;
80    },
81
82    set rgb(x)
83    {
84        this._rgb = x;
85    },
86
87    get hsl()
88    {
89        if ("_hsl" in this)
90            return this._hsl;
91
92        this._hsl = this._rgbToHSL(this.rgb);
93        return this._hsl;
94    },
95
96    set hsl(x)
97    {
98        this._hsl = x;
99    },
100
101    get nickname()
102    {
103        if (typeof this._nickname !== "undefined") // would be set on parse if there was a nickname
104            return this._nickname;
105        else
106            return null;
107    },
108
109    set nickname(x)
110    {
111        this._nickname = x;
112    },
113
114    get rgba()
115    {
116        return this._rgba;
117    },
118
119    set rgba(x)
120    {
121        this._rgba = x;
122    },
123
124    get hsla()
125    {
126        return this._hsla;
127    },
128
129    set hsla(x)
130    {
131        this._hsla = x;
132    },
133
134    hasShortHex: function()
135    {
136        var shorthex = this.shorthex;
137        return (shorthex && shorthex.length === 3);
138    },
139
140    toString: function(format)
141    {
142        if (!format)
143            format = this.format;
144
145        switch (format) {
146            case "original":
147                return this.value;
148            case "rgb":
149                return "rgb(" + this.rgb.join(", ") + ")";
150            case "rgba":
151                return "rgba(" + this.rgba.join(", ") + ")";
152            case "hsl":
153                var hsl = this.hsl;
154                return "hsl(" + hsl[0] + ", " + hsl[1] + "%, " + hsl[2] + "%)";
155            case "hsla":
156                var hsla = this.hsla;
157                return "hsla(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%, " + hsla[3] + ")";
158            case "hex":
159                return "#" + this.hex;
160            case "shorthex":
161                return "#" + this.shorthex;
162            case "nickname":
163                return this.nickname;
164        }
165
166        throw "invalid color format";
167    },
168
169    _rgbToHex: function(rgb)
170    {
171        var r = parseInt(rgb[0]).toString(16);
172        var g = parseInt(rgb[1]).toString(16);
173        var b = parseInt(rgb[2]).toString(16);
174        if (r.length === 1)
175            r = "0" + r;
176        if (g.length === 1)
177            g = "0" + g;
178        if (b.length === 1)
179            b = "0" + b;
180
181        return (r + g + b).toUpperCase();
182    },
183
184    _hexToRGB: function(hex)
185    {
186        var r = parseInt(hex.substring(0,2), 16);
187        var g = parseInt(hex.substring(2,4), 16);
188        var b = parseInt(hex.substring(4,6), 16);
189
190        return [r, g, b];
191    },
192
193    _rgbToHSL: function(rgb)
194    {
195        var r = parseInt(rgb[0]) / 255;
196        var g = parseInt(rgb[1]) / 255;
197        var b = parseInt(rgb[2]) / 255;
198        var max = Math.max(r, g, b);
199        var min = Math.min(r, g, b);
200        var diff = max - min;
201        var add = max + min;
202
203        if (min === max)
204            var h = 0;
205        else if (r === max)
206            var h = ((60 * (g - b) / diff) + 360) % 360;
207        else if (g === max)
208            var h = (60 * (b - r) / diff) + 120;
209        else
210            var h = (60 * (r - g) / diff) + 240;
211
212        var l = 0.5 * add;
213
214        if (l === 0)
215            var s = 0;
216        else if (l === 1)
217            var s = 1;
218        else if (l <= 0.5)
219            var s = diff / add;
220        else
221            var s = diff / (2 - add);
222
223        h = Math.round(h);
224        s = Math.round(s*100);
225        l = Math.round(l*100);
226
227        return [h, s, l];
228    },
229
230    _hslToRGB: function(hsl)
231    {
232        var h = parseFloat(hsl[0]) / 360;
233        var s = parseFloat(hsl[1]) / 100;
234        var l = parseFloat(hsl[2]) / 100;
235
236        if (l <= 0.5)
237            var q = l * (1 + s);
238        else
239            var q = l + s - (l * s);
240
241        var p = 2 * l - q;
242
243        var tr = h + (1 / 3);
244        var tg = h;
245        var tb = h - (1 / 3);
246
247        var r = Math.round(hueToRGB(p, q, tr) * 255);
248        var g = Math.round(hueToRGB(p, q, tg) * 255);
249        var b = Math.round(hueToRGB(p, q, tb) * 255);
250        return [r, g, b];
251
252        function hueToRGB(p, q, h) {
253            if (h < 0)
254                h += 1;
255            else if (h > 1)
256                h -= 1;
257
258            if ((h * 6) < 1)
259                return p + (q - p) * h * 6;
260            else if ((h * 2) < 1)
261                return q;
262            else if ((h * 3) < 2)
263                return p + (q - p) * ((2 / 3) - h) * 6;
264            else
265                return p;
266        }
267    },
268
269    _rgbaToHSLA: function(rgba)
270    {
271        var alpha = rgba[3];
272        var hsl = this._rgbToHSL(rgba)
273        hsl.push(alpha);
274        return hsl;
275    },
276
277    _hslaToRGBA: function(hsla)
278    {
279        var alpha = hsla[3];
280        var rgb = this._hslToRGB(hsla);
281        rgb.push(alpha);
282        return rgb;
283    },
284
285    _parse: function()
286    {
287        // Special Values - Advanced but Must Be Parsed First - transparent
288        var value = this.value.toLowerCase().replace(/%|\s+/g, "");
289        if (value in WebInspector.Color.AdvancedNickNames) {
290            this.format = "nickname";
291            var set = WebInspector.Color.AdvancedNickNames[value];
292            this.simple = false;
293            this.rgba = set[0];
294            this.hsla = set[1];
295            this.nickname = set[2];
296            this.alpha = set[0][3];
297            return;
298        }
299
300        // Simple - #hex, rgb(), nickname, hsl()
301        var simple = /^(?:#([0-9a-f]{3,6})|rgb\(([^)]+)\)|(\w+)|hsl\(([^)]+)\))$/i;
302        var match = this.value.match(simple);
303        if (match) {
304            this.simple = true;
305
306            if (match[1]) { // hex
307                var hex = match[1].toUpperCase();
308                if (hex.length === 3) {
309                    this.format = "shorthex";
310                    this.hex = hex.charAt(0) + hex.charAt(0) + hex.charAt(1) + hex.charAt(1) + hex.charAt(2) + hex.charAt(2);
311                } else {
312                    this.format = "hex";
313                    this.hex = hex;
314                }
315            } else if (match[2]) { // rgb
316                this.format = "rgb";
317                var rgb = match[2].split(/\s*,\s*/);
318                this.rgb = rgb;
319                this.hex = this._rgbToHex(rgb);
320            } else if (match[3]) { // nickname
321                var nickname = match[3].toLowerCase();
322                if (nickname in WebInspector.Color.Nicknames) {
323                    this.format = "nickname";
324                    this.hex = WebInspector.Color.Nicknames[nickname];
325                } else // unknown name
326                    throw "unknown color name";
327            } else if (match[4]) { // hsl
328                this.format = "hsl";
329                var hsl = match[4].replace(/%/g, "").split(/\s*,\s*/);
330                this.hsl = hsl;
331                this.rgb = this._hslToRGB(hsl);
332                this.hex = this._rgbToHex(this.rgb);
333            }
334
335            // Fill in the values if this is a known hex color
336            var hex = this.hex;
337            if (hex && hex in WebInspector.Color.HexTable) {
338                var set = WebInspector.Color.HexTable[hex];
339                this.rgb = set[0];
340                this.hsl = set[1];
341                this.nickname = set[2];
342            }
343
344            return;
345        }
346
347        // Advanced - rgba(), hsla()
348        var advanced = /^(?:rgba\(([^)]+)\)|hsla\(([^)]+)\))$/;
349        match = this.value.match(advanced);
350        if (match) {
351            this.simple = false;
352            if (match[1]) { // rgba
353                this.format = "rgba";
354                this.rgba = match[1].split(/\s*,\s*/);
355                this.hsla = this._rgbaToHSLA(this.rgba);
356                this.alpha = this.rgba[3];
357            } else if (match[2]) { // hsla
358                this.format = "hsla";
359                this.hsla = match[2].replace(/%/g, "").split(/\s*,\s*/);
360                this.rgba = this._hslaToRGBA(this.hsla);
361                this.alpha = this.hsla[3];
362            }
363
364            return;
365        }
366
367        // Could not parse as a valid color
368        throw "could not parse color";
369    }
370}
371
372// Simple Values: [rgb, hsl, nickname]
373WebInspector.Color.HexTable = {
374    "000000": [[0, 0, 0], [0, 0, 0], "black"],
375    "000080": [[0, 0, 128], [240, 100, 25], "navy"],
376    "00008B": [[0, 0, 139], [240, 100, 27], "darkBlue"],
377    "0000CD": [[0, 0, 205], [240, 100, 40], "mediumBlue"],
378    "0000FF": [[0, 0, 255], [240, 100, 50], "blue"],
379    "006400": [[0, 100, 0], [120, 100, 20], "darkGreen"],
380    "008000": [[0, 128, 0], [120, 100, 25], "green"],
381    "008080": [[0, 128, 128], [180, 100, 25], "teal"],
382    "008B8B": [[0, 139, 139], [180, 100, 27], "darkCyan"],
383    "00BFFF": [[0, 191, 255], [195, 100, 50], "deepSkyBlue"],
384    "00CED1": [[0, 206, 209], [181, 100, 41], "darkTurquoise"],
385    "00FA9A": [[0, 250, 154], [157, 100, 49], "mediumSpringGreen"],
386    "00FF00": [[0, 255, 0], [120, 100, 50], "lime"],
387    "00FF7F": [[0, 255, 127], [150, 100, 50], "springGreen"],
388    "00FFFF": [[0, 255, 255], [180, 100, 50], "cyan"],
389    "191970": [[25, 25, 112], [240, 64, 27], "midnightBlue"],
390    "1E90FF": [[30, 144, 255], [210, 100, 56], "dodgerBlue"],
391    "20B2AA": [[32, 178, 170], [177, 70, 41], "lightSeaGreen"],
392    "228B22": [[34, 139, 34], [120, 61, 34], "forestGreen"],
393    "2E8B57": [[46, 139, 87], [146, 50, 36], "seaGreen"],
394    "2F4F4F": [[47, 79, 79], [180, 25, 25], "darkSlateGray"],
395    "32CD32": [[50, 205, 50], [120, 61, 50], "limeGreen"],
396    "3CB371": [[60, 179, 113], [147, 50, 47], "mediumSeaGreen"],
397    "40E0D0": [[64, 224, 208], [174, 72, 56], "turquoise"],
398    "4169E1": [[65, 105, 225], [225, 73, 57], "royalBlue"],
399    "4682B4": [[70, 130, 180], [207, 44, 49], "steelBlue"],
400    "483D8B": [[72, 61, 139], [248, 39, 39], "darkSlateBlue"],
401    "48D1CC": [[72, 209, 204], [178, 60, 55], "mediumTurquoise"],
402    "4B0082": [[75, 0, 130], [275, 100, 25], "indigo"],
403    "556B2F": [[85, 107, 47], [82, 39, 30], "darkOliveGreen"],
404    "5F9EA0": [[95, 158, 160], [182, 25, 50], "cadetBlue"],
405    "6495ED": [[100, 149, 237], [219, 79, 66], "cornflowerBlue"],
406    "66CDAA": [[102, 205, 170], [160, 51, 60], "mediumAquaMarine"],
407    "696969": [[105, 105, 105], [0, 0, 41], "dimGray"],
408    "6A5ACD": [[106, 90, 205], [248, 53, 58], "slateBlue"],
409    "6B8E23": [[107, 142, 35], [80, 60, 35], "oliveDrab"],
410    "708090": [[112, 128, 144], [210, 13, 50], "slateGray"],
411    "778899": [[119, 136, 153], [210, 14, 53], "lightSlateGray"],
412    "7B68EE": [[123, 104, 238], [249, 80, 67], "mediumSlateBlue"],
413    "7CFC00": [[124, 252, 0], [90, 100, 49], "lawnGreen"],
414    "7FFF00": [[127, 255, 0], [90, 100, 50], "chartreuse"],
415    "7FFFD4": [[127, 255, 212], [160, 100, 75], "aquamarine"],
416    "800000": [[128, 0, 0], [0, 100, 25], "maroon"],
417    "800080": [[128, 0, 128], [300, 100, 25], "purple"],
418    "808000": [[128, 128, 0], [60, 100, 25], "olive"],
419    "808080": [[128, 128, 128], [0, 0, 50], "gray"],
420    "87CEEB": [[135, 206, 235], [197, 71, 73], "skyBlue"],
421    "87CEFA": [[135, 206, 250], [203, 92, 75], "lightSkyBlue"],
422    "8A2BE2": [[138, 43, 226], [271, 76, 53], "blueViolet"],
423    "8B0000": [[139, 0, 0], [0, 100, 27], "darkRed"],
424    "8B008B": [[139, 0, 139], [300, 100, 27], "darkMagenta"],
425    "8B4513": [[139, 69, 19], [25, 76, 31], "saddleBrown"],
426    "8FBC8F": [[143, 188, 143], [120, 25, 65], "darkSeaGreen"],
427    "90EE90": [[144, 238, 144], [120, 73, 75], "lightGreen"],
428    "9370D8": [[147, 112, 219], [260, 60, 65], "mediumPurple"],
429    "9400D3": [[148, 0, 211], [282, 100, 41], "darkViolet"],
430    "98FB98": [[152, 251, 152], [120, 93, 79], "paleGreen"],
431    "9932CC": [[153, 50, 204], [280, 61, 50], "darkOrchid"],
432    "9ACD32": [[154, 205, 50], [80, 61, 50], "yellowGreen"],
433    "A0522D": [[160, 82, 45], [19, 56, 40], "sienna"],
434    "A52A2A": [[165, 42, 42], [0, 59, 41], "brown"],
435    "A9A9A9": [[169, 169, 169], [0, 0, 66], "darkGray"],
436    "ADD8E6": [[173, 216, 230], [195, 53, 79], "lightBlue"],
437    "ADFF2F": [[173, 255, 47], [84, 100, 59], "greenYellow"],
438    "AFEEEE": [[175, 238, 238], [180, 65, 81], "paleTurquoise"],
439    "B0C4DE": [[176, 196, 222], [214, 41, 78], "lightSteelBlue"],
440    "B0E0E6": [[176, 224, 230], [187, 52, 80], "powderBlue"],
441    "B22222": [[178, 34, 34], [0, 68, 42], "fireBrick"],
442    "B8860B": [[184, 134, 11], [43, 89, 38], "darkGoldenrod"],
443    "BA55D3": [[186, 85, 211], [288, 59, 58], "mediumOrchid"],
444    "BC8F8F": [[188, 143, 143], [0, 25, 65], "rosyBrown"],
445    "BDB76B": [[189, 183, 107], [56, 38, 58], "darkKhaki"],
446    "C0C0C0": [[192, 192, 192], [0, 0, 75], "silver"],
447    "C71585": [[199, 21, 133], [322, 81, 43], "mediumVioletRed"],
448    "CD5C5C": [[205, 92, 92], [0, 53, 58], "indianRed"],
449    "CD853F": [[205, 133, 63], [30, 59, 53], "peru"],
450    "D2691E": [[210, 105, 30], [25, 75, 47], "chocolate"],
451    "D2B48C": [[210, 180, 140], [34, 44, 69], "tan"],
452    "D3D3D3": [[211, 211, 211], [0, 0, 83], "lightGrey"],
453    "D87093": [[219, 112, 147], [340, 60, 65], "paleVioletRed"],
454    "D8BFD8": [[216, 191, 216], [300, 24, 80], "thistle"],
455    "DA70D6": [[218, 112, 214], [302, 59, 65], "orchid"],
456    "DAA520": [[218, 165, 32], [43, 74, 49], "goldenrod"],
457    "DC143C": [[237, 164, 61], [35, 83, 58], "crimson"],
458    "DCDCDC": [[220, 220, 220], [0, 0, 86], "gainsboro"],
459    "DDA0DD": [[221, 160, 221], [300, 47, 75], "plum"],
460    "DEB887": [[222, 184, 135], [34, 57, 70], "burlyWood"],
461    "E0FFFF": [[224, 255, 255], [180, 100, 94], "lightCyan"],
462    "E6E6FA": [[230, 230, 250], [240, 67, 94], "lavender"],
463    "E9967A": [[233, 150, 122], [15, 72, 70], "darkSalmon"],
464    "EE82EE": [[238, 130, 238], [300, 76, 72], "violet"],
465    "EEE8AA": [[238, 232, 170], [55, 67, 80], "paleGoldenrod"],
466    "F08080": [[240, 128, 128], [0, 79, 72], "lightCoral"],
467    "F0E68C": [[240, 230, 140], [54, 77, 75], "khaki"],
468    "F0F8FF": [[240, 248, 255], [208, 100, 97], "aliceBlue"],
469    "F0FFF0": [[240, 255, 240], [120, 100, 97], "honeyDew"],
470    "F0FFFF": [[240, 255, 255], [180, 100, 97], "azure"],
471    "F4A460": [[244, 164, 96], [28, 87, 67], "sandyBrown"],
472    "F5DEB3": [[245, 222, 179], [39, 77, 83], "wheat"],
473    "F5F5DC": [[245, 245, 220], [60, 56, 91], "beige"],
474    "F5F5F5": [[245, 245, 245], [0, 0, 96], "whiteSmoke"],
475    "F5FFFA": [[245, 255, 250], [150, 100, 98], "mintCream"],
476    "F8F8FF": [[248, 248, 255], [240, 100, 99], "ghostWhite"],
477    "FA8072": [[250, 128, 114], [6, 93, 71], "salmon"],
478    "FAEBD7": [[250, 235, 215], [34, 78, 91], "antiqueWhite"],
479    "FAF0E6": [[250, 240, 230], [30, 67, 94], "linen"],
480    "FAFAD2": [[250, 250, 210], [60, 80, 90], "lightGoldenrodYellow"],
481    "FDF5E6": [[253, 245, 230], [39, 85, 95], "oldLace"],
482    "FF0000": [[255, 0, 0], [0, 100, 50], "red"],
483    "FF00FF": [[255, 0, 255], [300, 100, 50], "magenta"],
484    "FF1493": [[255, 20, 147], [328, 100, 54], "deepPink"],
485    "FF4500": [[255, 69, 0], [16, 100, 50], "orangeRed"],
486    "FF6347": [[255, 99, 71], [9, 100, 64], "tomato"],
487    "FF69B4": [[255, 105, 180], [330, 100, 71], "hotPink"],
488    "FF7F50": [[255, 127, 80], [16, 100, 66], "coral"],
489    "FF8C00": [[255, 140, 0], [33, 100, 50], "darkOrange"],
490    "FFA07A": [[255, 160, 122], [17, 100, 74], "lightSalmon"],
491    "FFA500": [[255, 165, 0], [39, 100, 50], "orange"],
492    "FFB6C1": [[255, 182, 193], [351, 100, 86], "lightPink"],
493    "FFC0CB": [[255, 192, 203], [350, 100, 88], "pink"],
494    "FFD700": [[255, 215, 0], [51, 100, 50], "gold"],
495    "FFDAB9": [[255, 218, 185], [28, 100, 86], "peachPuff"],
496    "FFDEAD": [[255, 222, 173], [36, 100, 84], "navajoWhite"],
497    "FFE4B5": [[255, 228, 181], [38, 100, 85], "moccasin"],
498    "FFE4C4": [[255, 228, 196], [33, 100, 88], "bisque"],
499    "FFE4E1": [[255, 228, 225], [6, 100, 94], "mistyRose"],
500    "FFEBCD": [[255, 235, 205], [36, 100, 90], "blanchedAlmond"],
501    "FFEFD5": [[255, 239, 213], [37, 100, 92], "papayaWhip"],
502    "FFF0F5": [[255, 240, 245], [340, 100, 97], "lavenderBlush"],
503    "FFF5EE": [[255, 245, 238], [25, 100, 97], "seaShell"],
504    "FFF8DC": [[255, 248, 220], [48, 100, 93], "cornsilk"],
505    "FFFACD": [[255, 250, 205], [54, 100, 90], "lemonChiffon"],
506    "FFFAF0": [[255, 250, 240], [40, 100, 97], "floralWhite"],
507    "FFFAFA": [[255, 250, 250], [0, 100, 99], "snow"],
508    "FFFF00": [[255, 255, 0], [60, 100, 50], "yellow"],
509    "FFFFE0": [[255, 255, 224], [60, 100, 94], "lightYellow"],
510    "FFFFF0": [[255, 255, 240], [60, 100, 97], "ivory"],
511    "FFFFFF": [[255, 255, 255], [0, 100, 100], "white"]
512};
513
514// Simple Values
515WebInspector.Color.Nicknames = {
516    "aliceblue": "F0F8FF",
517    "antiquewhite": "FAEBD7",
518    "aqua": "00FFFF",
519    "aquamarine": "7FFFD4",
520    "azure": "F0FFFF",
521    "beige": "F5F5DC",
522    "bisque": "FFE4C4",
523    "black": "000000",
524    "blanchedalmond": "FFEBCD",
525    "blue": "0000FF",
526    "blueviolet": "8A2BE2",
527    "brown": "A52A2A",
528    "burlywood": "DEB887",
529    "cadetblue": "5F9EA0",
530    "chartreuse": "7FFF00",
531    "chocolate": "D2691E",
532    "coral": "FF7F50",
533    "cornflowerblue": "6495ED",
534    "cornsilk": "FFF8DC",
535    "crimson": "DC143C",
536    "cyan": "00FFFF",
537    "darkblue": "00008B",
538    "darkcyan": "008B8B",
539    "darkgoldenrod": "B8860B",
540    "darkgray": "A9A9A9",
541    "darkgreen": "006400",
542    "darkkhaki": "BDB76B",
543    "darkmagenta": "8B008B",
544    "darkolivegreen": "556B2F",
545    "darkorange": "FF8C00",
546    "darkorchid": "9932CC",
547    "darkred": "8B0000",
548    "darksalmon": "E9967A",
549    "darkseagreen": "8FBC8F",
550    "darkslateblue": "483D8B",
551    "darkslategray": "2F4F4F",
552    "darkturquoise": "00CED1",
553    "darkviolet": "9400D3",
554    "deeppink": "FF1493",
555    "deepskyblue": "00BFFF",
556    "dimgray": "696969",
557    "dodgerblue": "1E90FF",
558    "firebrick": "B22222",
559    "floralwhite": "FFFAF0",
560    "forestgreen": "228B22",
561    "fuchsia": "FF00FF",
562    "gainsboro": "DCDCDC",
563    "ghostwhite": "F8F8FF",
564    "gold": "FFD700",
565    "goldenrod": "DAA520",
566    "gray": "808080",
567    "green": "008000",
568    "greenyellow": "ADFF2F",
569    "honeydew": "F0FFF0",
570    "hotpink": "FF69B4",
571    "indianred": "CD5C5C",
572    "indigo": "4B0082",
573    "ivory": "FFFFF0",
574    "khaki": "F0E68C",
575    "lavender": "E6E6FA",
576    "lavenderblush": "FFF0F5",
577    "lawngreen": "7CFC00",
578    "lemonchiffon": "FFFACD",
579    "lightblue": "ADD8E6",
580    "lightcoral": "F08080",
581    "lightcyan": "E0FFFF",
582    "lightgoldenrodyellow": "FAFAD2",
583    "lightgreen": "90EE90",
584    "lightgrey": "D3D3D3",
585    "lightpink": "FFB6C1",
586    "lightsalmon": "FFA07A",
587    "lightseagreen": "20B2AA",
588    "lightskyblue": "87CEFA",
589    "lightslategray": "778899",
590    "lightsteelblue": "B0C4DE",
591    "lightyellow": "FFFFE0",
592    "lime": "00FF00",
593    "limegreen": "32CD32",
594    "linen": "FAF0E6",
595    "magenta": "FF00FF",
596    "maroon": "800000",
597    "mediumaquamarine": "66CDAA",
598    "mediumblue": "0000CD",
599    "mediumorchid": "BA55D3",
600    "mediumpurple": "9370DB",
601    "mediumseagreen": "3CB371",
602    "mediumslateblue": "7B68EE",
603    "mediumspringgreen": "00FA9A",
604    "mediumturquoise": "48D1CC",
605    "mediumvioletred": "C71585",
606    "midnightblue": "191970",
607    "mintcream": "F5FFFA",
608    "mistyrose": "FFE4E1",
609    "moccasin": "FFE4B5",
610    "navajowhite": "FFDEAD",
611    "navy": "000080",
612    "oldlace": "FDF5E6",
613    "olive": "808000",
614    "olivedrab": "6B8E23",
615    "orange": "FFA500",
616    "orangered": "FF4500",
617    "orchid": "DA70D6",
618    "palegoldenrod": "EEE8AA",
619    "palegreen": "98FB98",
620    "paleturquoise": "AFEEEE",
621    "palevioletred": "DB7093",
622    "papayawhip": "FFEFD5",
623    "peachpuff": "FFDAB9",
624    "peru": "CD853F",
625    "pink": "FFC0CB",
626    "plum": "DDA0DD",
627    "powderblue": "B0E0E6",
628    "purple": "800080",
629    "red": "FF0000",
630    "rosybrown": "BC8F8F",
631    "royalblue": "4169E1",
632    "saddlebrown": "8B4513",
633    "salmon": "FA8072",
634    "sandybrown": "F4A460",
635    "seagreen": "2E8B57",
636    "seashell": "FFF5EE",
637    "sienna": "A0522D",
638    "silver": "C0C0C0",
639    "skyblue": "87CEEB",
640    "slateblue": "6A5ACD",
641    "slategray": "708090",
642    "snow": "FFFAFA",
643    "springgreen": "00FF7F",
644    "steelblue": "4682B4",
645    "tan": "D2B48C",
646    "teal": "008080",
647    "thistle": "D8BFD8",
648    "tomato": "FF6347",
649    "turquoise": "40E0D0",
650    "violet": "EE82EE",
651    "wheat": "F5DEB3",
652    "white": "FFFFFF",
653    "whitesmoke": "F5F5F5",
654    "yellow": "FFFF00",
655    "yellowgreen": "9ACD32"
656};
657
658// Advanced Values [rgba, hsla, nickname]
659WebInspector.Color.AdvancedNickNames = {
660    "transparent": [[0, 0, 0, 0], [0, 0, 0, 0], "transparent"],
661    "rgba(0,0,0,0)": [[0, 0, 0, 0], [0, 0, 0, 0], "transparent"],
662    "hsla(0,0,0,0)": [[0, 0, 0, 0], [0, 0, 0, 0], "transparent"],
663};
664