| Copyright | (c) 2025 |
|---|---|
| License | MIT |
| Maintainer | mschavinda@gmail.com |
| Safe Haskell | None |
| Language | GHC2021 |
Granite.Color
Description
Color primitives shared by the terminal and SVG backends.
Color is a 24-bit RGB value. The classic ANSI palette names (Black,
BrightBlue, Default, …) are provided as bidirectional pattern synonyms
that expand to fixed RGB triples, so they may be used both as expressions
and in patterns exactly as before.
The two backends deliberately diverge on how a colour is realised:
- the SVG backend renders the RGB exactly via
colorHex; - the terminal backend approximates via
ansiCode, which maps an arbitrary colour to the nearest of the 16 ANSI slots.
Because Color is now a plain RGB triple, its derived Show prints
Color r g b rather than the alias name.
Synopsis
- data Color where
- Color !Word8 !Word8 !Word8
- pattern Black :: Color
- pattern Red :: Color
- pattern Green :: Color
- pattern Yellow :: Color
- pattern Blue :: Color
- pattern Magenta :: Color
- pattern Cyan :: Color
- pattern White :: Color
- pattern BrightBlack :: Color
- pattern BrightRed :: Color
- pattern BrightGreen :: Color
- pattern BrightYellow :: Color
- pattern BrightBlue :: Color
- pattern BrightMagenta :: Color
- pattern BrightCyan :: Color
- pattern BrightWhite :: Color
- pattern Default :: Color
- parseHex :: Text -> Maybe Color
- ansiCode :: Color -> Int
- ansiOn :: Color -> Text
- ansiOff :: Text
- paint :: Color -> Char -> Text
- colorHex :: Color -> Text
- paletteColors :: [Color]
- pieColors :: [Color]
Documentation
A 24-bit RGB colour.
Bundled Patterns
| pattern Black :: Color | |
| pattern Red :: Color | |
| pattern Green :: Color | |
| pattern Yellow :: Color | |
| pattern Blue :: Color | |
| pattern Magenta :: Color | |
| pattern Cyan :: Color | |
| pattern White :: Color | |
| pattern BrightBlack :: Color | |
| pattern BrightRed :: Color | |
| pattern BrightGreen :: Color | |
| pattern BrightYellow :: Color | |
| pattern BrightBlue :: Color | |
| pattern BrightMagenta :: Color | |
| pattern BrightCyan :: Color | |
| pattern BrightWhite :: Color | |
| pattern Default :: Color |
ansiCode :: Color -> Int Source #
ANSI escape code for a colour. The 16 named slots (plus Default) return
their canonical code; any other colour maps to the nearest ANSI slot.
ansiOn :: Color -> Text Source #
Opening ANSI escape sequence selecting a colour (its nearest ANSI slot).
paint :: Color -> Char -> Text Source #
Wrap a character in ANSI on/off sequences. Spaces pass through unchanged.
paletteColors :: [Color] Source #
Default palette for layered charts (scatter, line, bars, …).