Standalone types/methods ported from treeform/chroma.
See chroma LICENSE.
Types
Color = object r*: float32 ## red (0-1) g*: float32 ## green (0-1) b*: float32 ## blue (0-1) a*: float32 ## alpha (0-1, 0 is fully transparent)
- Main color type, float32 points Source Edit
ColorHSL = object h*: float32 ## hue 0 to 360 s*: float32 ## saturation 0 to 100 l*: float32 ## lightness 0 to 100
- HSL attempts to resemble more perceptual color models Source Edit
ColorRGB = object r*: uint8 ## Red 0-255 g*: uint8 ## Green 0-255 b*: uint8 ## Blue 0-255
- Color stored as 3 uint8s Source Edit
ColorRGBA = object r*: uint8 ## Red 0-255 g*: uint8 ## Green 0-255 b*: uint8 ## Blue 0-255 a*: uint8 ## Alpha 0-255
- Color stored as 4 uint8s Source Edit
InvalidColor = object of ValueError
- Source Edit
Procs
proc color(c: ColorHSL): Color {....raises: [], tags: [], forbids: [].}
- convert ColorHSL to Color Source Edit
proc color(c: ColorRGB): Color {.inline, ...raises: [], tags: [], forbids: [].}
- Convert ColorRGB to Color Source Edit
func hash(c: Color): Hash {....raises: [], tags: [], forbids: [].}
- Hashes a Color - used in tables. Source Edit
func hash(c: ColorHSL): Hash {....raises: [], tags: [], forbids: [].}
- Hashes a ColorHSL - used in tables. Source Edit
proc toHexAlpha(c: Color): string {....raises: [], tags: [], forbids: [].}
-
Formats color as hex (upper case):
- red -> FF0000FF
- blue -> 0000FFFF
- white -> FFFFFFFF
- opaque black -> 000000FF
- transparent black -> 00000000
proc toHtmlHexTiny(c: Color): string {....raises: [], tags: [], forbids: [].}
-
Formats color as HTML 3 hex numbers (upper case):
- red -> #F00
- blue -> #00F
- white -> #FFF
proc toHtmlRgba(c: Color): string {....raises: [], tags: [], forbids: [].}
-
Parses colors in html's rgb format:
- red -> rgb(255, 0, 0)
- blue -> rgb(0,0,255)
- white -> rgb(255,255,255)