# Module CSS.Color

    module Color: sig .. end

All about CSS colors. MDC documentation here: https://developer.mozilla.org/en/CSS/color_value . Specifications here: http://www.w3.org/TR/css3-color/#svg-color .

    type name =

`|` | `Aliceblue`
`|` | `Antiquewhite`
`|` | `Aqua`
`|` | `Aquamarine`
`|` | `Azure`
`|` | `Beige`
`|` | `Bisque`
`|` | `Black`
`|` | `Blanchedalmond`
`|` | `Blue`
`|` | `Blueviolet`
`|` | `Brown`
`|` | `Burlywood`
`|` | `Cadetblue`
`|` | `Chartreuse`
`|` | `Chocolate`
`|` | `Coral`
`|` | `Cornflowerblue`
`|` | `Cornsilk`
`|` | `Crimson`
`|` | `Cyan`
`|` | `Darkblue`
`|` | `Darkcyan`
`|` | `Darkgoldenrod`
`|` | `Darkgray`
`|` | `Darkgreen`
`|` | `Darkgrey`
`|` | `Darkkhaki`
`|` | `Darkmagenta`
`|` | `Darkolivegreen`
`|` | `Darkorange`
`|` | `Darkorchid`
`|` | `Darkred`
`|` | `Darksalmon`
`|` | `Darkseagreen`
`|` | `Darkslateblue`
`|` | `Darkslategray`
`|` | `Darkslategrey`
`|` | `Darkturquoise`
`|` | `Darkviolet`
`|` | `Deeppink`
`|` | `Deepskyblue`
`|` | `Dimgray`
`|` | `Dimgrey`
`|` | `Dodgerblue`
`|` | `Firebrick`
`|` | `Floralwhite`
`|` | `Forestgreen`
`|` | `Fuchsia`
`|` | `Gainsboro`
`|` | `Ghostwhite`
`|` | `Gold`
`|` | `Goldenrod`
`|` | `Gray`
`|` | `Grey`
`|` | `Green`
`|` | `Greenyellow`
`|` | `Honeydew`
`|` | `Hotpink`
`|` | `Indianred`
`|` | `Indigo`
`|` | `Ivory`
`|` | `Khaki`
`|` | `Lavender`
`|` | `Lavenderblush`
`|` | `Lawngreen`
`|` | `Lemonchiffon`
`|` | `Lightblue`
`|` | `Lightcoral`
`|` | `Lightcyan`
`|` | `Lightgoldenrodyellow`
`|` | `Lightgray`
`|` | `Lightgreen`
`|` | `Lightgrey`
`|` | `Lightpink`
`|` | `Lightsalmon`
`|` | `Lightseagreen`
`|` | `Lightskyblue`
`|` | `Lightslategray`
`|` | `Lightslategrey`
`|` | `Lightsteelblue`
`|` | `Lightyellow`
`|` | `Lime`
`|` | `Limegreen`
`|` | `Linen`
`|` | `Magenta`
`|` | `Maroon`
`|` | `Mediumaquamarine`
`|` | `Mediumblue`
`|` | `Mediumorchid`
`|` | `Mediumpurple`
`|` | `Mediumseagreen`
`|` | `Mediumslateblue`
`|` | `Mediumspringgreen`
`|` | `Mediumturquoise`
`|` | `Mediumvioletred`
`|` | `Midnightblue`
`|` | `Mintcream`
`|` | `Mistyrose`
`|` | `Moccasin`
`|` | `Navajowhite`
`|` | `Navy`
`|` | `Oldlace`
`|` | `Olive`
`|` | `Olivedrab`
`|` | `Orange`
`|` | `Orangered`
`|` | `Orchid`
`|` | `Palegoldenrod`
`|` | `Palegreen`
`|` | `Paleturquoise`
`|` | `Palevioletred`
`|` | `Papayawhip`
`|` | `Peachpuff`
`|` | `Peru`
`|` | `Pink`
`|` | `Plum`
`|` | `Powderblue`
`|` | `Purple`
`|` | `Red`
`|` | `Rosybrown`
`|` | `Royalblue`
`|` | `Saddlebrown`
`|` | `Salmon`
`|` | `Sandybrown`
`|` | `Seagreen`
`|` | `Seashell`
`|` | `Sienna`
`|` | `Silver`
`|` | `Skyblue`
`|` | `Slateblue`
`|` | `Slategray`
`|` | `Slategrey`
`|` | `Snow`
`|` | `Springgreen`
`|` | `Steelblue`
`|` | `Tan`
`|` | `Teal`
`|` | `Thistle`
`|` | `Tomato`
`|` | `Turquoise`
`|` | `Violet`
`|` | `Wheat`
`|` | `White`
`|` | `Whitesmoke`
`|` | `Yellow`
`|` | `Yellowgreen`

The colors by name.

    val string_of_name : name -> string

Gives the string equivalent of the argument.

    val rgb_of_name : name -> int * int * int

Converts a color name into three integers representing the Red, Green and Blue channels. Channel values are in between `0` and `255`.

    type t =

`|` | `Name of `name`` | `(*` | A color by name | `*)`
`|` | `RGB of `(int * int * int)`` | `(*` | Red, Green and Blue values. Clipped to `0..255` by most (All?) browsers. | `*)`
`|` | `RGB_percent of `(int * int * int)`` | `(*` | RBG channels are specified as a percentage of their maximal value. | `*)`
`|` | `RGBA of `(int * int * int * float)`` | `(*` | Same as RGB with additionnal transparency argument. Opacity should be between `0.` (completely transparent) and `1.` (completely opaque). | `*)`
`|` | `RGBA_percent of `(int * int * int * float)`` | `(*` | RGB channels specified as percentage of their maximal value. Alpha channel (opacity) is still a `0.` to `1.` float. | `*)`
`|` | `HSL of `(int * int * int)`` | `(*` | Hue, Saturation and Lightness values. Hue is an angle in degree (in interval `0..360`). Saturation is a percentage (`0..100`) with `0` being colorless. Lightness is also a percentage (`0..100`) with `0` being black. | `*)`
`|` | `HSLA of `(int * int * int * float)`` | `(*` | Same as HSL with an opacity argument between `0.` and `1.`. | `*)`

The type of colors, either by name, by Red-Green-Blue constructor or by Hue-Saturation-Lightness constructors.

    val rgb : ?a:float -> int -> int -> int -> t

build a color from the values of red, green, and blue channels. optional `a` argument can be used to specify alpha channel (aka opacity).

    val hsl : ?a:float -> int -> int -> int -> t

build a color from the values of hue, saturation, and lightness channels. optional `a` argument can be used to specify alpha channel (aka opacity).

    type js_t = private Js.js_string Js.t

A `js_t` is a valid string representation of a CSS color
A few conversion functions

    val string_of_t : t -> string

Convert to a string representation (for debugging purpose mainly).

    val js : t -> js_t

Projection from OCaml to Js. `js c` is equivalent to `Js.string (string_of_t c)` but with a `js_t` return type.

    val ml : js_t -> t

Projection from Js to OCaml. The function is the dual of `js`.

    val js_t_of_js_string : Js.js_string Js.t -> js_t

Checks the well-formedness of a string or fails with `Invalid_argument`