Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
ideas:color-object [2014/07/07 17:43] – Properly use wiki markup tabatkinsideas:color-object [2021/10/01 15:36] (current) fantasai
Line 1: Line 1:
-  [Constructor(double r, double g, double b, optional double a=1)]+<note> 
 +This has been superseded by work on a common color API for the Web Platform and by work on Typed OM for manipulating CSS syntax specifically. 
 +</note> 
 + 
 +<code idl> 
 +  [Constructor(double r, double g, double b, optional double a=1), 
 +   Constructor(RGBAColorInit color)]
   interface RGBAColor {   interface RGBAColor {
     attribute double r;     attribute double r;
Line 6: Line 12:
     attribute double a;     attribute double a;
          
-    HSLAColor asHSL(); +    HSLAColorInit asHSL();
-    HexColor asHex(); +
-    +
     static RGBAColor fromHSLA(double h, double s, double l, optional double a=1);     static RGBAColor fromHSLA(double h, double s, double l, optional double a=1);
 +    static RGBAColor fromHSLA(optional HSLAColorInit color);
 +    
 +    HexColorInit asHex();
     static RGBAColor fromHex(octet r, octet g, octet b, optional octet a=255);     static RGBAColor fromHex(octet r, octet g, octet b, optional octet a=255);
 +    static RGBAColor fromHex(optional HexColorInit color);
 +    
 +    DOMString? asName();
          
-    stringifier DOMString (optional DOMString type="rgba");+    DOMString toString(optional DOMString type="rgba");
     static readonly attribute Map serializationTypes;     static readonly attribute Map serializationTypes;
   };   };
 +</code>
  
-The stringifier looks up the type in the RGBAColor.serializationTypes Map; if it finds a function, it calls that with the RGBAColor as the sole argument and returns whatever the function returns.  It's preloaded with UA-defined functions for "hex3", "hex6", "rgb", "rgba", "hsl", and "hsla"+The ''toString()'' method looks up the type in the ''RGBAColor.serializationTypes Map''; if it finds a function, it calls that with the ''RGBAColor'' as the sole argument and returns whatever the function returns.  It's preloaded with UA-defined functions for "hex3", "hex6", "rgb", "rgba", "hsl", and "hsla"
  
-Authors can define their own color formats by adding a fromFoo() to RGBAColor, a toFoo() to RGBAColor.prototype, and adding an appropriate serialization tag to RGBAColor.serializationTypes.+Authors can define their own color formats by adding a ''fromFoo()'' to ''RGBAColor'', a ''toFoo()'' to ''RGBAColor.prototype'', and adding an appropriate serialization tag to ''RGBAColor.serializationTypes''.
  
-  dictionary HSLAColor +<code idl> 
-    double h+  dictionary RGBAColorInit 
-    double s+    double r = 0
-    double l+    double g = 0
-    double a;+    double b = 0
 +    double a = 1;
   };   };
      
-  dictionary HexColor +  dictionary HSLAColorInit { 
-    octet r; +    double h = 0; 
-    octet g; +    double s = 1; 
-    octet b; +    double l = .5; 
-    octet a;+    double a = 1; 
 +  }; 
 +   
 +  dictionary HexColorInit 
 +    octet r = 0
 +    octet g = 0
 +    octet b = 0
 +    octet a = 255;
   };   };
      
   partial interface CSS {   partial interface CSS {
-    CSSColor parseColor(DOMString color, optional Element el);+    RGBAColor parseColor(DOMString color, optional Element el);
   };   };
 +</code>
 +
 +''parseColor()'' takes a string containing any CSS color, and returns an RGBAColor for it.  If the string isn't parseable as a color, throw a ''SyntaxError'' exception.
  
-If parseColor is called with a color that depends on the element on which it is used, +The optional second argument is used to resolve colors that vary based on the element, such as ''currentcolor''.  If such a color is parsed but the second argument is not provided, throw a XXX exception.
-such as ''currentcolor'' or ''inherit'', +
-but no el argument was passed, +
-throw a XXX error.+
 
ideas/color-object.1404780208.txt.gz · Last modified: 2014/12/09 15:48 (external edit)
Recent changes RSS feed Valid XHTML 1.0 Valid CSS Driven by DokuWiki