This is an old revision of the document!


[Constructor(double r, double g, double b, optional double a=1),
 Constructor(RGBAColorInit color)]
interface RGBAColor {
  attribute double r;
  attribute double g;
  attribute double b;
  attribute double a;
  
  HSLAColor asHSL();
  static RGBAColor fromHSLA(double h, double s, double l, optional double a=1);
  static RGBAColor fromHSLA(optional HSLAColorInit color);
  
  HexColor asHex();
  static RGBAColor fromHex(octet r, octet g, octet b, optional octet a=255);
  static RGBAColor fromHex(optional HexColorInit color);
  
  stringifier DOMString (optional DOMString type="rgba");
  static readonly attribute Map serializationTypes;
};

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”.

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 RGBAColorInit {
  double r = 0;
  double g = 0;
  double b = 0;
  double a = 1;
};

dictionary HSLAColorInit {
  double h = 0;
  double s = 1;
  double l = .5;
  double a = 1;
};

dictionary HexColorInit {
  octet r = 0;
  octet g = 0;
  octet b = 0;
  octet a = 255;
};

partial interface CSS {
  CSSColor parseColor(DOMString color, optional Element el);
};

If parseColor is called with a color that depends on the element on which it is used, such as currentcolor or inherit, but no el argument was passed, throw a XXX error.

 
ideas/color-object.1404780541.txt.gz · Last modified: 2014/12/09 15:48 (external edit)
Recent changes RSS feed Valid XHTML 1.0 Valid CSS Driven by DokuWiki