IO ANSI Plus
Functionality to render ANSI escape sequences. Clone of module IO.ANSI but supporting named xterm colors.
Installation
Add io_ansi_plus to your list of dependencies in mix.exs:
def deps do
[
{:io_ansi_plus, "~> 0.1"}
]
endNotes
In addition to the 16 standard ANSI colors[^1] and their background counterparts, this package also supports the 256 xterm colors (foreground and background).
All
:aqua
:chartreuse
:psychedelic_purple
For the full list of color names (there are 1,378 of them), see the section Color Samples below. Most of these color names are based on the post Naming the 256 XTerm colors.
You can also use color number atoms instead of specific names:
alias IO.ANSI.Plus, as: ANSI
["Hello, ", :color163, "world!"] |> ANSI.format(true) |> IO.puts()
["Hi, ", :color163_background, "world!"] |> ANSI.format(true) |> IO.puts()
Most colors have <ins>multiple</ins> names, for example, :moccasin and
:navajo_white for color code 223.
[^1]: Actually 8 colors and their "bright" variants.
Shortcuts
The package also provides shortcuts allowing to drop the format calls in the
following expressions:
alias IO.ANSI.Plus, as: ANSI
["Hello, ", :brown, "world!"] |> ANSI.format(true) |> IO.puts()
["Hello, ", :purple, "world!"] |> ANSI.format(true) |> IO.write()
[:aqua, "Your move:", :reset, " "] |> ANSI.format(true) |> IO.gets()The above expressions can be respectively shortened to:
alias IO.ANSI.Plus, as: ANSI
["Hello, ", :brown, "world!"] |> ANSI.puts(true)
["Hello, ", :purple, "world!"] |> ANSI.write(true)
[:aqua, "Your move:", :reset, " "] |> ANSI.gets(true)Note
You can click on any of the 3 images below for a clearer view.


