Package ansi is a small, fast library to create ANSI colored strings and codes.
Get it
go get -u github.com/mgutz/ansi
import "github.com/mgutz/ansi"
// colorize a string, SLOW
msg := ansi.Color("foo", "red+b:white")
// create a FAST closure function to avoid computation of ANSI code
phosphorize := ansi.ColorFunc("green+h:black")
msg = phosphorize("Bring back the 80s!")
msg2 := phospohorize("Look, I'm a CRT!")
// cache escape codes and build strings manually
lime := ansi.ColorCode("green+h:black")
reset := ansi.ColorCode("reset")
fmt.Println(lime, "Bring back the 80s!", reset)
Other examples
Color(s, "red") // red
Color(s, "red+d") // red dim
Color(s, "red+b") // red bold
Color(s, "red+B") // red blinking
Color(s, "red+u") // red underline
Color(s, "red+bh") // red bold bright
Color(s, "red:white") // red on white
Color(s, "red+b:white+h") // red bold on white bright
Color(s, "red+B:white+h") // red blink on white bright
Color(s, "off") // turn off ansi codes
To view color combinations, from project directory in terminal.
go test
"foregroundColor+attributes:backgroundColor+attributes"
Colors
- black
- red
- green
- yellow
- blue
- magenta
- cyan
- white
- 0...255 (256 colors)
Foreground Attributes
- B = Blink
- b = bold
- h = high intensity (bright)
- d = dim
- i = inverse
- s = strikethrough
- u = underline
Background Attributes
- h = high intensity (bright)
- ansi.Reset
- ansi.DefaultBG
- ansi.DefaultFG
- ansi.Black
- ansi.Red
- ansi.Green
- ansi.Yellow
- ansi.Blue
- ansi.Magenta
- ansi.Cyan
- ansi.White
- ansi.LightBlack
- ansi.LightRed
- ansi.LightGreen
- ansi.LightYellow
- ansi.LightBlue
- ansi.LightMagenta
- ansi.LightCyan
- ansi.LightWhite
Wikipedia ANSI escape codes Colors
General tips and formatting
What about support on Windows? Use colorable by mattn. Ansi and colorable are used by logxi to support logging in color on Windows.
Copyright (c) 2013 Mario Gutierrez mario@mgutz.com
See the file LICENSE for copying permission.