Código fuente de WordPress - jquery-plugins (jquery.colour-2.1.0.js)

1	/*!
2	 * jQuery Color Animations v2.1.0
3	 * http://jquery.com/
4	 *
5	 * Copyright 2012 jQuery Foundation and other contributors
6	 * Released under the MIT license.
7	 * http://jquery.org/license
8	 *
9	 * Date: Fri Aug 24 12:02:24 2012 -0500
10	 */
11	(function( jQuery, undefined ) {
12	
13	        var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",
14	
15	        // plusequals test for += 100 -= 100
16	        rplusequals = /^([\-+])=\s*(\d+\.?\d*)/,
17	        // a set of RE's that can match strings and generate color tuples.
18	        stringParsers = [{
19	                        re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,
20	                        parse: function( execResult ) {
21	                                return [
22	                                        execResult[ 1 ],
23	                                        execResult[ 2 ],
24	                                        execResult[ 3 ],
25	                                        execResult[ 4 ]
26	                                ];
27	                        }
28	                }, {
29	                        re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,
30	                        parse: function( execResult ) {
31	                                return [
32	                                        execResult[ 1 ] * 2.55,
33	                                        execResult[ 2 ] * 2.55,
34	                                        execResult[ 3 ] * 2.55,
35	                                        execResult[ 4 ]
36	                                ];
37	                        }
38	                }, {
39	                        // this regex ignores A-F because it's compared against an already lowercased string
40	                        re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,
41	                        parse: function( execResult ) {
42	                                return [
43	                                        parseInt( execResult[ 1 ], 16 ),
44	                                        parseInt( execResult[ 2 ], 16 ),
45	                                        parseInt( execResult[ 3 ], 16 )
46	                                ];
47	                        }
48	                }, {
49	                        // this regex ignores A-F because it's compared against an already lowercased string
50	                        re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,
51	                        parse: function( execResult ) {
52	                                return [
53	                                        parseInt( execResult[ 1 ] + execResult[ 1 ], 16 ),
54	                                        parseInt( execResult[ 2 ] + execResult[ 2 ], 16 ),
55	                                        parseInt( execResult[ 3 ] + execResult[ 3 ], 16 )
56	                                ];
57	                        }
58	                }, {
59	                        re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,
60	                        space: "hsla",
61	                        parse: function( execResult ) {
62	                                return [
63	                                        execResult[ 1 ],
64	                                        execResult[ 2 ] / 100,
65	                                        execResult[ 3 ] / 100,
66	                                        execResult[ 4 ]
67	                                ];
68	                        }
69	                }],
70	
71	        // jQuery.Color( )
72	        color = jQuery.Color = function( color, green, blue, alpha ) {
73	                return new jQuery.Color.fn.parse( color, green, blue, alpha );
74	        },
75	        spaces = {
76	                rgba: {
77	                        props: {
78	                                red: {
79	                                        idx: 0,
80	                                        type: "byte"
81	                                },
82	                                green: {
83	                                        idx: 1,
84	                                        type: "byte"
85	                                },
86	                                blue: {
87	                                        idx: 2,
88	                                        type: "byte"
89	                                }
90	                        }
91	                },
92	
93	                hsla: {
94	                        props: {
95	                                hue: {
96	                                        idx: 0,
97	                                        type: "degrees"
98	                                },
99	                                saturation: {
100	                                        idx: 1,
101	                                        type: "percent"
102	                                },
103	                                lightness: {
104	                                        idx: 2,
105	                                        type: "percent"
106	                                }
107	                        }
108	                }
109	        },
110	        propTypes = {
111	                "byte": {
112	                        floor: true,
113	                        max: 255
114	                },
115	                "percent": {
116	                        max: 1
117	                },
118	                "degrees": {
119	                        mod: 360,
120	                        floor: true
121	                }
122	        },
123	        support = color.support = {},
124	
125	        // element for support tests
126	        supportElem = jQuery( "<p>" )[ 0 ],
127	
128	        // colors = jQuery.Color.names
129	        colors,
130	
131	        // local aliases of functions called often
132	        each = jQuery.each;
133	
134	// determine rgba support immediately
135	supportElem.style.cssText = "background-color:rgba(1,1,1,.5)";
136	support.rgba = supportElem.style.backgroundColor.indexOf( "rgba" ) > -1;
137	
138	// define cache name and alpha properties
139	// for rgba and hsla spaces
140	each( spaces, function( spaceName, space ) {
141	        space.cache = "_" + spaceName;
142	        space.props.alpha = {
143	                idx: 3,
144	                type: "percent",
145	                def: 1
146	        };
147	});
148	
149	function clamp( value, prop, allowEmpty ) {
150	        var type = propTypes[ prop.type ] || {};
151	
152	        if ( value == null ) {
153	                return (allowEmpty || !prop.def) ? null : prop.def;
154	        }
155	
156	        // ~~ is an short way of doing floor for positive numbers
157	        value = type.floor ? ~~value : parseFloat( value );
158	
159	        // IE will pass in empty strings as value for alpha,
160	        // which will hit this case
161	        if ( isNaN( value ) ) {
162	                return prop.def;
163	        }
164	
165	        if ( type.mod ) {
166	                // we add mod before modding to make sure that negatives values
167	                // get converted properly: -10 -> 350
168	                return (value + type.mod) % type.mod;
169	        }
170	
171	        // for now all property types without mod have min and max
172	        return 0 > value ? 0 : type.max < value ? type.max : value;
173	}
174	
175	function stringParse( string ) {
176	        var inst = color(),
177	                rgba = inst._rgba = [];
178	
179	        string = string.toLowerCase();
180	
181	        each( stringParsers, function( i, parser ) {
182	                var parsed,
183	                        match = parser.re.exec( string ),
184	                        values = match && parser.parse( match ),
185	                        spaceName = parser.space || "rgba";
186	
187	                if ( values ) {
188	                        parsed = inst[ spaceName ]( values );
189	
190	                        // if this was an rgba parse the assignment might happen twice
191	                        // oh well....
192	                        inst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ];
193	                        rgba = inst._rgba = parsed._rgba;
194	
195	                        // exit each( stringParsers ) here because we matched
196	                        return false;
197	                }
198	        });
199	
200	        // Found a stringParser that handled it
201	        if ( rgba.length ) {
202	
203	                // if this came from a parsed string, force "transparent" when alpha is 0
204	                // chrome, (and maybe others) return "transparent" as rgba(0,0,0,0)
205	                if ( rgba.join() === "0,0,0,0" ) {
206	                        jQuery.extend( rgba, colors.transparent );
207	                }
208	                return inst;
209	        }
210	
211	        // named colors
212	        return colors[ string ];
213	}
214	
215	color.fn = jQuery.extend( color.prototype, {
216	        parse: function( red, green, blue, alpha ) {
217	                if ( red === undefined ) {
218	                        this._rgba = [ null, null, null, null ];
219	                        return this;
220	                }
221	                if ( red.jquery || red.nodeType ) {
222	                        red = jQuery( red ).css( green );
223	                        green = undefined;
224	                }
225	
226	                var inst = this,
227	                        type = jQuery.type( red ),
228	                        rgba = this._rgba = [],
229	                        source;
230	
231	                // more than 1 argument specified - assume ( red, green, blue, alpha )
232	                if ( green !== undefined ) {
233	                        red = [ red, green, blue, alpha ];
234	                        type = "array";
235	                }
236	
237	                if ( type === "string" ) {
238	                        return this.parse( stringParse( red ) || colors._default );
239	                }
240	
241	                if ( type === "array" ) {
242	                        each( spaces.rgba.props, function( key, prop ) {
243	                                rgba[ prop.idx ] = clamp( red[ prop.idx ], prop );
244	                        });
245	                        return this;
246	                }
247	
248	                if ( type === "object" ) {
249	                        if ( red instanceof color ) {
250	                                each( spaces, function( spaceName, space ) {
251	                                        if ( red[ space.cache ] ) {
252	                                                inst[ space.cache ] = red[ space.cache ].slice();
253	                                        }
254	                                });
255	                        } else {
256	                                each( spaces, function( spaceName, space ) {
257	                                        var cache = space.cache;
258	                                        each( space.props, function( key, prop ) {
259	
260	                                                // if the cache doesn't exist, and we know how to convert
261	                                                if ( !inst[ cache ] && space.to ) {
262	
263	                                                        // if the value was null, we don't need to copy it
264	                                                        // if the key was alpha, we don't need to copy it either
265	                                                        if ( key === "alpha" || red[ key ] == null ) {
266	                                                                return;
267	                                                        }
268	                                                        inst[ cache ] = space.to( inst._rgba );
269	                                                }
270	
271	                                                // this is the only case where we allow nulls for ALL properties.
272	                                                // call clamp with alwaysAllowEmpty
273	                                                inst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true );
274	                                        });
275	
276	                                        // everything defined but alpha?
277	                                        if ( inst[ cache ] && jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) {
278	                                                // use the default of 1
279	                                                inst[ cache ][ 3 ] = 1;
280	                                                if ( space.from ) {
281	                                                        inst._rgba = space.from( inst[ cache ] );
282	                                                }
283	                                        }
284	                                });
285	                        }
286	                        return this;
287	                }
288	        },
289	        is: function( compare ) {
290	                var is = color( compare ),
291	                        same = true,
292	                        inst = this;
293	
294	                each( spaces, function( _, space ) {
295	                        var localCache,
296	                                isCache = is[ space.cache ];
297	                        if (isCache) {
298	                                localCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || [];
299	                                each( space.props, function( _, prop ) {
300	                                        if ( isCache[ prop.idx ] != null ) {
301	                                                same = ( isCache[ prop.idx ] === localCache[ prop.idx ] );
302	                                                return same;
303	                                        }
304	                                });
305	                        }
306	                        return same;
307	                });
308	                return same;
309	        },
310	        _space: function() {
311	                var used = [],
312	                        inst = this;
313	                each( spaces, function( spaceName, space ) {
314	                        if ( inst[ space.cache ] ) {
315	                                used.push( spaceName );
316	                        }
317	                });
318	                return used.pop();
319	        },
320	        transition: function( other, distance ) {
321	                var end = color( other ),
322	                        spaceName = end._space(),
323	                        space = spaces[ spaceName ],
324	                        startColor = this.alpha() === 0 ? color( "transparent" ) : this,
325	                        start = startColor[ space.cache ] || space.to( startColor._rgba ),
326	                        result = start.slice();
327	
328	                end = end[ space.cache ];
329	                each( space.props, function( key, prop ) {
330	                        var index = prop.idx,
331	                                startValue = start[ index ],
332	                                endValue = end[ index ],
333	                                type = propTypes[ prop.type ] || {};
334	
335	                        // if null, don't override start value
336	                        if ( endValue === null ) {
337	                                return;
338	                        }
339	                        // if null - use end
340	                        if ( startValue === null ) {
341	                                result[ index ] = endValue;
342	                        } else {
343	                                if ( type.mod ) {
344	                                        if ( endValue - startValue > type.mod / 2 ) {
345	                                                startValue += type.mod;
346	                                        } else if ( startValue - endValue > type.mod / 2 ) {
347	                                                startValue -= type.mod;
348	                                        }
349	                                }
350	                                result[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop );
351	                        }
352	                });
353	                return this[ spaceName ]( result );
354	        },
355	        blend: function( opaque ) {
356	                // if we are already opaque - return ourself
357	                if ( this._rgba[ 3 ] === 1 ) {
358	                        return this;
359	                }
360	
361	                var rgb = this._rgba.slice(),
362	                        a = rgb.pop(),
363	                        blend = color( opaque )._rgba;
364	
365	                return color( jQuery.map( rgb, function( v, i ) {
366	                        return ( 1 - a ) * blend[ i ] + a * v;
367	                }));
368	        },
369	        toRgbaString: function() {
370	                var prefix = "rgba(",
371	                        rgba = jQuery.map( this._rgba, function( v, i ) {
372	                                return v == null ? ( i > 2 ? 1 : 0 ) : v;
373	                        });
374	
375	                if ( rgba[ 3 ] === 1 ) {
376	                        rgba.pop();
377	                        prefix = "rgb(";
378	                }
379	
380	                return prefix + rgba.join() + ")";
381	        },
382	        toHslaString: function() {
383	                var prefix = "hsla(",
384	                        hsla = jQuery.map( this.hsla(), function( v, i ) {
385	                                if ( v == null ) {
386	                                        v = i > 2 ? 1 : 0;
387	                                }
388	
389	                                // catch 1 and 2
390	                                if ( i && i < 3 ) {
391	                                        v = Math.round( v * 100 ) + "%";
392	                                }
393	                                return v;
394	                        });
395	
396	                if ( hsla[ 3 ] === 1 ) {
397	                        hsla.pop();
398	                        prefix = "hsl(";
399	                }
400	                return prefix + hsla.join() + ")";
401	        },
402	        toHexString: function( includeAlpha ) {
403	                var rgba = this._rgba.slice(),
404	                        alpha = rgba.pop();
405	
406	                if ( includeAlpha ) {
407	                        rgba.push( ~~( alpha * 255 ) );
408	                }
409	
410	                return "#" + jQuery.map( rgba, function( v, i ) {
411	
412	                        // default to 0 when nulls exist
413	                        v = ( v || 0 ).toString( 16 );
414	                        return v.length === 1 ? "0" + v : v;
415	                }).join("");
416	        },
417	        toString: function() {
418	                return this._rgba[ 3 ] === 0 ? "transparent" : this.toRgbaString();
419	        }
420	});
421	color.fn.parse.prototype = color.fn;
422	
423	// hsla conversions adapted from:
424	// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021
425	
426	function hue2rgb( p, q, h ) {
427	        h = ( h + 1 ) % 1;
428	        if ( h * 6 < 1 ) {
429	                return p + (q - p) * h * 6;
430	        }
431	        if ( h * 2 < 1) {
432	                return q;
433	        }
434	        if ( h * 3 < 2 ) {
435	                return p + (q - p) * ((2/3) - h) * 6;
436	        }
437	        return p;
438	}
439	
440	spaces.hsla.to = function ( rgba ) {
441	        if ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) {
442	                return [ null, null, null, rgba[ 3 ] ];
443	        }
444	        var r = rgba[ 0 ] / 255,
445	                g = rgba[ 1 ] / 255,
446	                b = rgba[ 2 ] / 255,
447	                a = rgba[ 3 ],
448	                max = Math.max( r, g, b ),
449	                min = Math.min( r, g, b ),
450	                diff = max - min,
451	                add = max + min,
452	                l = add * 0.5,
453	                h, s;
454	
455	        if ( min === max ) {
456	                h = 0;
457	        } else if ( r === max ) {
458	                h = ( 60 * ( g - b ) / diff ) + 360;
459	        } else if ( g === max ) {
460	                h = ( 60 * ( b - r ) / diff ) + 120;
461	        } else {
462	                h = ( 60 * ( r - g ) / diff ) + 240;
463	        }
464	
465	        if ( l === 0 || l === 1 ) {
466	                s = l;
467	        } else if ( l <= 0.5 ) {
468	                s = diff / add;
469	        } else {
470	                s = diff / ( 2 - add );
471	        }
472	        return [ Math.round(h) % 360, s, l, a == null ? 1 : a ];
473	};
474	
475	spaces.hsla.from = function ( hsla ) {
476	        if ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) {
477	                return [ null, null, null, hsla[ 3 ] ];
478	        }
479	        var h = hsla[ 0 ] / 360,
480	                s = hsla[ 1 ],
481	                l = hsla[ 2 ],
482	                a = hsla[ 3 ],
483	                q = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s,
484	                p = 2 * l - q,
485	                r, g, b;
486	
487	        return [
488	                Math.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ),
489	                Math.round( hue2rgb( p, q, h ) * 255 ),
490	                Math.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ),
491	                a
492	        ];
493	};
494	
495	
496	each( spaces, function( spaceName, space ) {
497	        var props = space.props,
498	                cache = space.cache,
499	                to = space.to,
500	                from = space.from;
501	
502	        // makes rgba() and hsla()
503	        color.fn[ spaceName ] = function( value ) {
504	
505	                // generate a cache for this space if it doesn't exist
506	                if ( to && !this[ cache ] ) {
507	                        this[ cache ] = to( this._rgba );
508	                }
509	                if ( value === undefined ) {
510	                        return this[ cache ].slice();
511	                }
512	
513	                var ret,
514	                        type = jQuery.type( value ),
515	                        arr = ( type === "array" || type === "object" ) ? value : arguments,
516	                        local = this[ cache ].slice();
517	
518	                each( props, function( key, prop ) {
519	                        var val = arr[ type === "object" ? key : prop.idx ];
520	                        if ( val == null ) {
521	                                val = local[ prop.idx ];
522	                        }
523	                        local[ prop.idx ] = clamp( val, prop );
524	                });
525	
526	                if ( from ) {
527	                        ret = color( from( local ) );
528	                        ret[ cache ] = local;
529	                        return ret;
530	                } else {
531	                        return color( local );
532	                }
533	        };
534	
535	        // makes red() green() blue() alpha() hue() saturation() lightness()
536	        each( props, function( key, prop ) {
537	                // alpha is included in more than one space
538	                if ( color.fn[ key ] ) {
539	                        return;
540	                }
541	                color.fn[ key ] = function( value ) {
542	                        var vtype = jQuery.type( value ),
543	                                fn = ( key === "alpha" ? ( this._hsla ? "hsla" : "rgba" ) : spaceName ),
544	                                local = this[ fn ](),
545	                                cur = local[ prop.idx ],
546	                                match;
547	
548	                        if ( vtype === "undefined" ) {
549	                                return cur;
550	                        }
551	
552	                        if ( vtype === "function" ) {
553	                                value = value.call( this, cur );
554	                                vtype = jQuery.type( value );
555	                        }
556	                        if ( value == null && prop.empty ) {
557	                                return this;
558	                        }
559	                        if ( vtype === "string" ) {
560	                                match = rplusequals.exec( value );
561	                                if ( match ) {
562	                                        value = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === "+" ? 1 : -1 );
563	                                }
564	                        }
565	                        local[ prop.idx ] = value;
566	                        return this[ fn ]( local );
567	                };
568	        });
569	});
570	
571	// add cssHook and .fx.step function for each named hook.
572	// accept a space separated string of properties
573	color.hook = function( hook ) {
574	        var hooks = hook.split( " " );
575	        each( hooks, function( i, hook ) {
576	                jQuery.cssHooks[ hook ] = {
577	                        set: function( elem, value ) {
578	                                var parsed, curElem,
579	                                        backgroundColor = "";
580	
581	                                if ( jQuery.type( value ) !== "string" || ( parsed = stringParse( value ) ) ) {
582	                                        value = color( parsed || value );
583	                                        if ( !support.rgba && value._rgba[ 3 ] !== 1 ) {
584	                                                curElem = hook === "backgroundColor" ? elem.parentNode : elem;
585	                                                while (
586	                                                        (backgroundColor === "" || backgroundColor === "transparent") &&
587	                                                        curElem && curElem.style
588	                                                ) {
589	                                                        try {
590	                                                                backgroundColor = jQuery.css( curElem, "backgroundColor" );
591	                                                                curElem = curElem.parentNode;
592	                                                        } catch ( e ) {
593	                                                        }
594	                                                }
595	
596	                                                value = value.blend( backgroundColor && backgroundColor !== "transparent" ?
597	                                                        backgroundColor :
598	                                                        "_default" );
599	                                        }
600	
601	                                        value = value.toRgbaString();
602	                                }
603	                                try {
604	                                        elem.style[ hook ] = value;
605	                                } catch( value ) {
606	                                        // wrapped to prevent IE from throwing errors on "invalid" values like 'auto' or 'inherit'
607	                                }
608	                        }
609	                };
610	                jQuery.fx.step[ hook ] = function( fx ) {
611	                        if ( !fx.colorInit ) {
612	                                fx.start = color( fx.elem, hook );
613	                                fx.end = color( fx.end );
614	                                fx.colorInit = true;
615	                        }
616	                        jQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) );
617	                };
618	        });
619	
620	};
621	
622	color.hook( stepHooks );
623	
624	jQuery.cssHooks.borderColor = {
625	        expand: function( value ) {
626	                var expanded = {};
627	
628	                each( [ "Top", "Right", "Bottom", "Left" ], function( i, part ) {
629	                        expanded[ "border" + part + "Color" ] = value;
630	                });
631	                return expanded;
632	        }
633	};
634	
635	// Basic color names only.
636	// Usage of any of the other color names requires adding yourself or including
637	// jquery.color.svg-names.js.
638	colors = jQuery.Color.names = {
639	        // 4.1. Basic color keywords
640	        aqua: "#00ffff",
641	        black: "#000000",
642	        blue: "#0000ff",
643	        fuchsia: "#ff00ff",
644	        gray: "#808080",
645	        green: "#008000",
646	        lime: "#00ff00",
647	        maroon: "#800000",
648	        navy: "#000080",
649	        olive: "#808000",
650	        purple: "#800080",
651	        red: "#ff0000",
652	        silver: "#c0c0c0",
653	        teal: "#008080",
654	        white: "#ffffff",
655	        yellow: "#ffff00",
656	
657	        // 4.2.3. ‘transparent’ color keyword
658	        transparent: [ null, null, null, 0 ],
659	
660	        _default: "#ffffff"
661	};
662	
663	})( jQuery );
664	
665	/*!
666	 * jQuery Color Animations v2.1.0 - SVG Color Names
667	 * http://jquery.org/
668	 *
669	 * Remaining HTML/CSS color names per W3C's CSS Color Module Level 3.
670	 * http://www.w3.org/TR/css3-color/#svg-color
671	 *
672	 * Copyright 2012 jQuery Foundation and other contributors
673	 * Released under the MIT license.
674	 * http://jquery.org/license
675	 *
676	 * Date: Fri Aug 24 12:02:24 2012 -0500
677	 */
678	jQuery.extend( jQuery.Color.names, {
679	        // 4.3. Extended color keywords (minus the basic ones in core color plugin)
680	        aliceblue: "#f0f8ff",
681	        antiquewhite: "#faebd7",
682	        aquamarine: "#7fffd4",
683	        azure: "#f0ffff",
684	        beige: "#f5f5dc",
685	        bisque: "#ffe4c4",
686	        blanchedalmond: "#ffebcd",
687	        blueviolet: "#8a2be2",
688	        brown: "#a52a2a",
689	        burlywood: "#deb887",
690	        cadetblue: "#5f9ea0",
691	        chartreuse: "#7fff00",
692	        chocolate: "#d2691e",
693	        coral: "#ff7f50",
694	        cornflowerblue: "#6495ed",
695	        cornsilk: "#fff8dc",
696	        crimson: "#dc143c",
697	        cyan: "#00ffff",
698	        darkblue: "#00008b",
699	        darkcyan: "#008b8b",
700	        darkgoldenrod: "#b8860b",
701	        darkgray: "#a9a9a9",
702	        darkgreen: "#006400",
703	        darkgrey: "#a9a9a9",
704	        darkkhaki: "#bdb76b",
705	        darkmagenta: "#8b008b",
706	        darkolivegreen: "#556b2f",
707	        darkorange: "#ff8c00",
708	        darkorchid: "#9932cc",
709	        darkred: "#8b0000",
710	        darksalmon: "#e9967a",
711	        darkseagreen: "#8fbc8f",
712	        darkslateblue: "#483d8b",
713	        darkslategray: "#2f4f4f",
714	        darkslategrey: "#2f4f4f",
715	        darkturquoise: "#00ced1",
716	        darkviolet: "#9400d3",
717	        deeppink: "#ff1493",
718	        deepskyblue: "#00bfff",
719	        dimgray: "#696969",
720	        dimgrey: "#696969",
721	        dodgerblue: "#1e90ff",
722	        firebrick: "#b22222",
723	        floralwhite: "#fffaf0",
724	        forestgreen: "#228b22",
725	        gainsboro: "#dcdcdc",
726	        ghostwhite: "#f8f8ff",
727	        gold: "#ffd700",
728	        goldenrod: "#daa520",
729	        greenyellow: "#adff2f",
730	        grey: "#808080",
731	        honeydew: "#f0fff0",
732	        hotpink: "#ff69b4",
733	        indianred: "#cd5c5c",
734	        indigo: "#4b0082",
735	        ivory: "#fffff0",
736	        khaki: "#f0e68c",
737	        lavender: "#e6e6fa",
738	        lavenderblush: "#fff0f5",
739	        lawngreen: "#7cfc00",
740	        lemonchiffon: "#fffacd",
741	        lightblue: "#add8e6",
742	        lightcoral: "#f08080",
743	        lightcyan: "#e0ffff",
744	        lightgoldenrodyellow: "#fafad2",
745	        lightgray: "#d3d3d3",
746	        lightgreen: "#90ee90",
747	        lightgrey: "#d3d3d3",
748	        lightpink: "#ffb6c1",
749	        lightsalmon: "#ffa07a",
750	        lightseagreen: "#20b2aa",
751	        lightskyblue: "#87cefa",
752	        lightslategray: "#778899",
753	        lightslategrey: "#778899",
754	        lightsteelblue: "#b0c4de",
755	        lightyellow: "#ffffe0",
756	        limegreen: "#32cd32",
757	        linen: "#faf0e6",
758	        mediumaquamarine: "#66cdaa",
759	        mediumblue: "#0000cd",
760	        mediumorchid: "#ba55d3",
761	        mediumpurple: "#9370db",
762	        mediumseagreen: "#3cb371",
763	        mediumslateblue: "#7b68ee",
764	        mediumspringgreen: "#00fa9a",
765	        mediumturquoise: "#48d1cc",
766	        mediumvioletred: "#c71585",
767	        midnightblue: "#191970",
768	        mintcream: "#f5fffa",
769	        mistyrose: "#ffe4e1",
770	        moccasin: "#ffe4b5",
771	        navajowhite: "#ffdead",
772	        oldlace: "#fdf5e6",
773	        olivedrab: "#6b8e23",
774	        orange: "#ffa500",
775	        orangered: "#ff4500",
776	        orchid: "#da70d6",
777	        palegoldenrod: "#eee8aa",
778	        palegreen: "#98fb98",
779	        paleturquoise: "#afeeee",
780	        palevioletred: "#db7093",
781	        papayawhip: "#ffefd5",
782	        peachpuff: "#ffdab9",
783	        peru: "#cd853f",
784	        pink: "#ffc0cb",
785	        plum: "#dda0dd",
786	        powderblue: "#b0e0e6",
787	        rosybrown: "#bc8f8f",
788	        royalblue: "#4169e1",
789	        saddlebrown: "#8b4513",
790	        salmon: "#fa8072",
791	        sandybrown: "#f4a460",
792	        seagreen: "#2e8b57",
793	        seashell: "#fff5ee",
794	        sienna: "#a0522d",
795	        skyblue: "#87ceeb",
796	        slateblue: "#6a5acd",
797	        slategray: "#708090",
798	        slategrey: "#708090",
799	        snow: "#fffafa",
800	        springgreen: "#00ff7f",
801	        steelblue: "#4682b4",
802	        tan: "#d2b48c",
803	        thistle: "#d8bfd8",
804	        tomato: "#ff6347",
805	        turquoise: "#40e0d0",
806	        violet: "#ee82ee",
807	        wheat: "#f5deb3",
808	        whitesmoke: "#f5f5f5",
809	        yellowgreen: "#9acd32",
810	});

Contacte con nosotros
¿No puede leer el artículo? ¡Póngase en contacto con nosotros para obtener una respuesta gratuita! Ayuda gratuita para sitios personales y de pequeñas empresas
Tel: 020-2206-9892
QQ咨询:1025174874
(iii) Correo electrónico: info@361sale.com
Horario de trabajo: de lunes a viernes, de 9:30 a 18:30, días festivos libres
© Declaración de reproducción
Este artículo fue escrito por Harry
EL FIN
Si le gusta, apóyela.
felicitaciones0 compartir (alegrías, beneficios, privilegios, etc.) con los demás
comentarios compra de sofás

Por favor, inicie sesión para enviar un comentario

    Sin comentarios