Invisible link to canonical for Microformats

colour (slug.term)


slug.term.colour

slug.term.colour — terminal colour and text effect library

Wraps strings with ANSI escape codes for coloured terminal output. Inspired by the Python colorist library. See also the ANSI escape code reference.

Quick start

val { red, green, effectBold, bgBlue } = import("slug.term.colour")

"Hello" /> red /> println
"Success" /> green /> effectBold /> println
"Warning" /> bgBlue /> println

Colour functions

Each named colour is available as a function taking a string and returning the ANSI-wrapped string. Text colours: black, red, green, yellow, blue, magenta, cyan, white and bright variants (brightRed etc.). Background variants are prefixed with bg (bgRed, bgBrightBlue etc.).

Extended colour support

For terminals supporting 256 colours or true colour:

  • VGA (0–255): vga(str, code), bgVga(str, code)
  • RGB: rgb(str, r, g, b), bgRgb(str, r, g, b)
  • Hex: hex(str, "#ff5733"), bgHex(str, "#ff5733")
  • xkcd: xkcd(str, :electricLime), bgXkcd(str, :neonBlue)

Effects

effectBold, effectDim, effectUnderline, effectBlink, effectReverse, effectHide

Colour support detection

ColourSupport is set at module load time by running tput colors. Use it to gracefully degrade in environments without colour support.

Pre-built maps

Colour, BrightColour, BgColour, BgBrightColour are maps of colour name → ANSI code string for programmatic use. Effects is a map of effect name → ANSI code string. Styles is the raw map of style name → ANSI code number list.

TOC

Constants

BgBrightColour

map slug.term.colour#BgBrightColour

map of colour name → ANSI escape code string for bright background colours.

BgColour

map slug.term.colour#BgColour

map of colour name → ANSI escape code string for background colours.

BrightColour

map slug.term.colour#BrightColour

map of colour name → ANSI escape code string for bright colours.

Colour

map slug.term.colour#Colour

map of colour name (PascalCase) → ANSI escape code string for standard colours.

ColourSupport

num slug.term.colour#ColourSupport

number of colours supported by the current terminal, as reported by tput colors.

Common values: 0 (no colour), 8, 16, 256.

Effects

map slug.term.colour#Effects

map of effect name → ANSI escape code string.

Keys: Bold, BoldOff, Dim, DimOff, Underline, UnderlineOff, Blink, BlinkOff, Reverse, ReverseOff, Hide, HideOff

Styles

map slug.term.colour#Styles

raw ANSI code number lists per style name.

Keys include colour names, bright/bg variants, reset, and effects.

reset

str slug.term.colour#reset

ANSI reset escape code — resets all styles to terminal default.

Functions

bgBlack(str)

fn slug.term.colour#bgBlack(str:str):any
Parameter Type Default
str str —

bgBlue(str)

fn slug.term.colour#bgBlue(str:str):any
Parameter Type Default
str str —

bgBrightBlack(str)

fn slug.term.colour#bgBrightBlack(str:str):any
Parameter Type Default
str str —

bgBrightBlue(str)

fn slug.term.colour#bgBrightBlue(str:str):any
Parameter Type Default
str str —

bgBrightCyan(str)

fn slug.term.colour#bgBrightCyan(str:str):any
Parameter Type Default
str str —

bgBrightGreen(str)

fn slug.term.colour#bgBrightGreen(str:str):any
Parameter Type Default
str str —

bgBrightMagenta(str)

fn slug.term.colour#bgBrightMagenta(str:str):any
Parameter Type Default
str str —

bgBrightRed(str)

fn slug.term.colour#bgBrightRed(str:str):any
Parameter Type Default
str str —

bgBrightWhite(str)

fn slug.term.colour#bgBrightWhite(str:str):any
Parameter Type Default
str str —

bgBrightYellow(str)

fn slug.term.colour#bgBrightYellow(str:str):any
Parameter Type Default
str str —

bgCyan(str)

fn slug.term.colour#bgCyan(str:str):any
Parameter Type Default
str str —

bgGreen(str)

fn slug.term.colour#bgGreen(str:str):any
Parameter Type Default
str str —

bgHex(str, code)

fn slug.term.colour#bgHex(str:str, code:str):any

wraps str with hex background colour.

Parameter Type Default
str str —
code str —

bgHexCode(code)

fn slug.term.colour#bgHexCode(code:str):any

returns the ANSI escape code string for hex background colour.

Parameter Type Default
code str —

bgMagenta(str)

fn slug.term.colour#bgMagenta(str:str):any
Parameter Type Default
str str —

bgRed(str)

fn slug.term.colour#bgRed(str:str):any
Parameter Type Default
str str —

bgRgb(str, r, g, b)

fn slug.term.colour#bgRgb(str:str, r:num, g:num, b:num):any

wraps str with RGB background colour.

Parameter Type Default
str str —
r num —
g num —
b num —

bgRgbCode(r, g, b)

fn slug.term.colour#bgRgbCode(r:num, g:num, b:num):any

returns the ANSI escape code string for RGB background colour.

Parameter Type Default
r num —
g num —
b num —

bgVga(str, code)

fn slug.term.colour#bgVga(str:str, code:num):any

wraps str with VGA background colour code (0–255).

Parameter Type Default
str str —
code num —

bgVgaCode(code)

fn slug.term.colour#bgVgaCode(code:num):any

returns the ANSI escape code string for VGA background colour index code (0–255).

Parameter Type Default
code num —

bgWhite(str)

fn slug.term.colour#bgWhite(str:str):any
Parameter Type Default
str str —

bgXkcd(str, name)

fn slug.term.colour#bgXkcd(str:str, name:sym):any

wraps str with an xkcd background colour.

Parameter Type Default
str str —
name sym —

bgXkcdCode(name)

fn slug.term.colour#bgXkcdCode(name:sym):any

returns the ANSI escape code string for an xkcd background colour.

Parameter Type Default
name sym —

bgYellow(str)

fn slug.term.colour#bgYellow(str:str):any
Parameter Type Default
str str —

black(str)

fn slug.term.colour#black(str:str):any
Parameter Type Default
str str —

blue(str)

fn slug.term.colour#blue(str:str):any
Parameter Type Default
str str —

brightBlack(str)

fn slug.term.colour#brightBlack(str:str):any
Parameter Type Default
str str —

brightBlue(str)

fn slug.term.colour#brightBlue(str:str):any
Parameter Type Default
str str —

brightCyan(str)

fn slug.term.colour#brightCyan(str:str):any
Parameter Type Default
str str —

brightGreen(str)

fn slug.term.colour#brightGreen(str:str):any
Parameter Type Default
str str —

brightMagenta(str)

fn slug.term.colour#brightMagenta(str:str):any
Parameter Type Default
str str —

brightRed(str)

fn slug.term.colour#brightRed(str:str):any
Parameter Type Default
str str —

brightWhite(str)

fn slug.term.colour#brightWhite(str:str):any
Parameter Type Default
str str —

brightYellow(str)

fn slug.term.colour#brightYellow(str:str):any
Parameter Type Default
str str —

cyan(str)

fn slug.term.colour#cyan(str:str):any
Parameter Type Default
str str —

effectBlink(str)

fn slug.term.colour#effectBlink(str:str):any
Parameter Type Default
str str —

effectBold(str)

fn slug.term.colour#effectBold(str:str):any
Parameter Type Default
str str —

effectDim(str)

fn slug.term.colour#effectDim(str:str):any
Parameter Type Default
str str —

effectHide(str)

fn slug.term.colour#effectHide(str:str):any
Parameter Type Default
str str —

effectReverse(str)

fn slug.term.colour#effectReverse(str:str):any
Parameter Type Default
str str —

effectUnderline(str)

fn slug.term.colour#effectUnderline(str:str):any
Parameter Type Default
str str —

green(str)

fn slug.term.colour#green(str:str):any
Parameter Type Default
str str —

hex(str, code)

fn slug.term.colour#hex(str:str, code:str):any

wraps str with hex colour (e.g. hex("Hello", "#ff5733")).

Parameter Type Default
str str —
code str —

hexCode(code)

fn slug.term.colour#hexCode(code:str):any

returns the ANSI escape code string for hex colour code (e.g. "#ff5733").

Parameter Type Default
code str —

magenta(str)

fn slug.term.colour#magenta(str:str):any
Parameter Type Default
str str —

red(str)

fn slug.term.colour#red(str:str):any
Parameter Type Default
str str —

rgb(str, r, g, b)

fn slug.term.colour#rgb(str:str, r:num, g:num, b:num):any

wraps str with RGB colour r, g, b (0–255 each).

Parameter Type Default
str str —
r num —
g num —
b num —

rgbCode(r, g, b)

fn slug.term.colour#rgbCode(r:num, g:num, b:num):any

returns the ANSI escape code string for RGB colour.

Parameter Type Default
r num —
g num —
b num —

vga(str, code)

fn slug.term.colour#vga(str:str, code:num):any

wraps str with VGA colour code (0–255).

Parameter Type Default
str str —
code num —

vgaCode(code)

fn slug.term.colour#vgaCode(code:num):any

returns the ANSI escape code string for VGA colour index code (0–255).

Parameter Type Default
code num —

white(str)

fn slug.term.colour#white(str:str):any
Parameter Type Default
str str —

xkcd(str, name)

fn slug.term.colour#xkcd(str:str, name:sym):any

wraps str with an xkcd colour (e.g. xkcd("Hello", :electricLime)).

Parameter Type Default
str str —
name sym —

xkcdCode(name)

fn slug.term.colour#xkcdCode(name:sym):any

returns the ANSI escape code string for an xkcd colour name (e.g. :electricLime).

Parameter Type Default
name sym —

yellow(str)

fn slug.term.colour#yellow(str:str):any
Parameter Type Default
str str —