colors
nimony/lib/std/colors.nim
This module implements color handling for Nimony, namely color mixing and parsing the CSS color names.
type Color = distinct int64A color stored as RGB, e.g.
0xff00cc.proc ==(a: Color; b: Color): boolCompares two colors.
proc +(a: Color; b: Color): ColorAdds two colors.
This uses saturated arithmetic, so that each color component cannot overflow (255 is used as a maximum).
proc -(a: Color; b: Color): ColorSubtracts two colors.
This uses saturated arithmetic, so that each color component cannot underflow (0 is used as a minimum).
proc extractRGB(a: Color): tuple[r: 0..255, g: 0..255, b: 0..255]Extracts the red/green/blue components of the color
a.proc intensity(a: Color; f: float64): ColorReturns
awith intensityf.fshould be a float from 0.0 (completely dark) to 1.0 (full color intensity).template mix(a: Color; b: Color; fn: untyped): ColorUses
fnto mix the colorsaandb.fnis invoked for each component R, G, and B. Iffn's result is not in therange[0..255], it will be saturated to be so.const colAliceBlue: Colorconst colAntiqueWhite: Colorconst colAqua: Colorconst colAquamarine: Colorconst colAzure: Colorconst colBeige: Colorconst colBisque: Colorconst colBlack: Colorconst colBlanchedAlmond: Colorconst colBlue: Colorconst colBlueViolet: Colorconst colBrown: Colorconst colBurlyWood: Colorconst colCadetBlue: Colorconst colChartreuse: Colorconst colChocolate: Colorconst colCoral: Colorconst colCornflowerBlue: Colorconst colCornsilk: Colorconst colCrimson: Colorconst colCyan: Colorconst colDarkBlue: Colorconst colDarkCyan: Colorconst colDarkGoldenRod: Colorconst colDarkGray: Colorconst colDarkGreen: Colorconst colDarkGrey: Colorconst colDarkKhaki: Colorconst colDarkMagenta: Colorconst colDarkOliveGreen: Colorconst colDarkorange: Colorconst colDarkOrchid: Colorconst colDarkRed: Colorconst colDarkSalmon: Colorconst colDarkSeaGreen: Colorconst colDarkSlateBlue: Colorconst colDarkSlateGray: Colorconst colDarkSlateGrey: Colorconst colDarkTurquoise: Colorconst colDarkViolet: Colorconst colDeepPink: Colorconst colDeepSkyBlue: Colorconst colDimGray: Colorconst colDimGrey: Colorconst colDodgerBlue: Colorconst colFireBrick: Colorconst colFloralWhite: Colorconst colForestGreen: Colorconst colFuchsia: Colorconst colGainsboro: Colorconst colGhostWhite: Colorconst colGold: Colorconst colGoldenRod: Colorconst colGray: Colorconst colGreen: Colorconst colGreenYellow: Colorconst colGrey: Colorconst colHoneyDew: Colorconst colHotPink: Colorconst colIndianRed: Colorconst colIndigo: Colorconst colIvory: Colorconst colKhaki: Colorconst colLavender: Colorconst colLavenderBlush: Colorconst colLawnGreen: Colorconst colLemonChiffon: Colorconst colLightBlue: Colorconst colLightCoral: Colorconst colLightCyan: Colorconst colLightGoldenRodYellow: Colorconst colLightGray: Colorconst colLightGreen: Colorconst colLightGrey: Colorconst colLightPink: Colorconst colLightSalmon: Colorconst colLightSeaGreen: Colorconst colLightSkyBlue: Colorconst colLightSlateGray: Colorconst colLightSlateGrey: Colorconst colLightSteelBlue: Colorconst colLightYellow: Colorconst colLime: Colorconst colLimeGreen: Colorconst colLinen: Colorconst colMagenta: Colorconst colMaroon: Colorconst colMediumAquaMarine: Colorconst colMediumBlue: Colorconst colMediumOrchid: Colorconst colMediumPurple: Colorconst colMediumSeaGreen: Colorconst colMediumSlateBlue: Colorconst colMediumSpringGreen: Colorconst colMediumTurquoise: Colorconst colMediumVioletRed: Colorconst colMidnightBlue: Colorconst colMintCream: Colorconst colMistyRose: Colorconst colMoccasin: Colorconst colOldLace: Colorconst colOlive: Colorconst colOliveDrab: Colorconst colOrange: Colorconst colOrangeRed: Colorconst colOrchid: Colorconst colPaleGoldenRod: Colorconst colPaleGreen: Colorconst colPaleTurquoise: Colorconst colPaleVioletRed: Colorconst colPapayaWhip: Colorconst colPeachPuff: Colorconst colPeru: Colorconst colPink: Colorconst colPlum: Colorconst colPowderBlue: Colorconst colPurple: Colorconst colRebeccaPurple: Colorconst colRed: Colorconst colRosyBrown: Colorconst colRoyalBlue: Colorconst colSaddleBrown: Colorconst colSalmon: Colorconst colSandyBrown: Colorconst colSeaGreen: Colorconst colSeaShell: Colorconst colSienna: Colorconst colSilver: Colorconst colSkyBlue: Colorconst colSlateBlue: Colorconst colSlateGray: Colorconst colSlateGrey: Colorconst colSnow: Colorconst colSpringGreen: Colorconst colSteelBlue: Colorconst colTan: Colorconst colTeal: Colorconst colThistle: Colorconst colTomato: Colorconst colTurquoise: Colorconst colViolet: Colorconst colWheat: Colorconst colWhite: Colorconst colWhiteSmoke: Colorconst colYellow: Colorconst colYellowGreen: Colorproc $(c: Color): stringConverts a color into its textual representation.
proc parseColor(name: string): ColorParses
nameto a color value.If no valid color could be parsed
ValueErroris raised. Case insensitive.proc isColor(name: string): boolReturns true if
nameis a known color name or a hexadecimal color prefixed with#. Case insensitive.proc rgb(r: 0..255; g: 0..255; b: 0..255): ColorConstructs a color from RGB values.