colorModule:
module color // since PR 1085
// Types
type t
// Create colors from components
def SRGB_unit : number -> number -> number -> t
def SRGBA_unit : number -> number -> number -> number -> t
def SRGB_8bit : number -> number -> number -> t
def SRGBA_8bit : number -> number -> number -> number -> t
def LinRGB : number -> number -> number -> t
def LinRGBA : number -> number -> number -> number -> t
def HSL : number -> number -> number -> t
def HSLA : number -> number -> number -> number -> t
def HWB : number -> number -> number -> t
def HWBA : number -> number -> number -> number -> t
// Import and export
def importSRGB_unit : data -> t
def importSRGB_8bit : data -> t
def importLinRGB : data -> t
def importHSL : data -> t
def importHWB : data -> t
def exportSRGB_unit : t -> { red:number, green:number, blue:number, alpha:number }
def exportSRGB_8bit : t -> { red:number, green:number, blue:number, alpha:number }
def exportLinRGB : t -> { red:number, green:number, blue:number, alpha:number }
def exportHSL : t -> { hue:number, sat:number, light:number, alpha:number }
def exportHWB : t -> { hue:number, white:number, black:number, alpha:number }
// Conversion
def toSRGB : t -> t
def toLinRGB : t -> t
def toHSL : t -> t
def toHWB : t -> t
// Parsing and printing
def parseHex : string -> t
def formatHex : t -> string
def formatCSS : t -> string
// Mixing colors
def add : t -> t -> t
def sub : t -> t -> t
def blend : t -> t -> number -> t
def blendMany : array([t, number]) -> t
// Adjusting brightness and black/white tone
def lighter : number -> t -> t
def darker : number -> t -> t
def updateLightness : (number -> number) -> t -> t
def addWhite : number -> t -> t
def subWhite : number -> t -> t
def updateWhiteness : (number -> number) -> t -> t
def addBlack : number -> t -> t
def subBlack : number -> t -> t
def updateBlackness : (number -> number) -> t -> t
def setLuminance : number -> t -> t
def blackAndWhite : t -> t
// Inspecting color(s)
def luminance : t -> number
def perceivedLightness : t -> number
def contrastRatio : t -> t -> number // since PR #1107
// Alpha channel
def alpha : t -> number
def updateAlpha : (number -> number) -> t -> t
module end
type t
The type t is the type of the colors. This modules supports four color spaces:
All four color spaces support alpha channels.
All four color spaces are encoded with double precision numbers, i.e. colors are not limited to just 8 bits.
def SRGB_unit : number -> number -> number -> t
def SRGBA_unit : number -> number -> number -> number -> t
def SRGB_8bit : number -> number -> number -> t
def SRGBA_8bit : number -> number -> number -> number -> t
def LinRGB : number -> number -> number -> t
def LinRGBA : number -> number -> number -> number -> t
def HSL : number -> number -> number -> t
def HSLA : number -> number -> number -> number -> t
def HWB : number -> number -> number -> t
def HWBA : number -> number -> number -> number -> t
SRGB_unit(r, g, b) with values in the range 0..1SRGBA_unit(r, g, b, alpha) with values in the range 0..1SRGB_8bit(r, g, b) with values in the range 0..255SRGBA_8bit(r, g, b, alpha) with values in the range 0..255LinRGB(r, g, b) with values in the range 0..1LinRGBA(r, g, b, alpha) with values in the range 0..1HSL(hue, sat, light) where hue is in the range 0..360 and sat and light are in the range 0..1HSLA(hue, sat, light, alpha) where hue is in the range 0..360 and sat, light, and alpha are in the range 0..1HWB(hue, white, black) where hue is in the range 0..360 and white and black are in the range 0..1HSLA(hue, white, black, alpha) where hue is in the range 0..360 and white, black, and alpha are in the range 0..1