Documentation ¶
Overview ¶
Package color is Command line color library. Support rich color rendering output, universal API method, compatible with Windows system
Source code and other details for the project are available at GitHub:
https://github.com/gookit/color
More usage please see README and tests.
Example ¶
// quick use like fmt.Print* Red.Println("Simple to use color") Green.Print("Simple to use color") Cyan.Printf("Simple to use %s\n", "color") Gray.Printf("Simple to use %s\n", "color") Blue.Printf("Simple to use %s\n", "color") Yellow.Printf("Simple to use %s\n", "color") Magenta.Printf("Simple to use %s\n", "color") // use like func red := FgRed.Render green := FgGreen.Render fmt.Printf("%s line %s library\n", red("Command"), green("color")) // custom color New(FgWhite, BgBlack).Println("custom color style") // can also: Style{FgCyan, OpBold}.Println("custom color style") // internal theme/style: Info.Tips("message") Info.Prompt("message") Info.Println("info message") Warn.Println("warning message") Error.Println("error message") Danger.Println("danger message") // use style tag Print("<suc>he</><comment>llo</>, <cyan>wel</><red>come</>\n") // apply a style tag Tag("info").Println("info style text") // prompt message Info.Prompt("prompt style message") Warn.Prompt("prompt style message") // tips message Info.Tips("tips style message") Warn.Tips("tips style message")
Output:
Index ¶
- Constants
- Variables
- func AddStyle(name string, s Style)
- func AddTheme(name string, style Style)
- func ApplyTag(tag string, a ...interface{}) string
- func Basic2hex(val uint8) string
- func Basic2nameMap() map[uint8]string
- func Bg2Fg(val uint8) uint8
- func Blueln(a ...interface{})
- func Bluep(a ...interface{})
- func C256ToRgb(val uint8) (rgb []uint8)
- func C256ToRgbV1(val uint8) (rgb []uint8)
- func ClearCode(str string) string
- func ClearTag(s string) string
- func Colors2code(colors ...Color) string
- func Cyanln(a ...interface{})
- func Cyanp(a ...interface{})
- func DetectColorLevel() terminfo.ColorLevel
- func Disable() bool
- func Errorf(format string, a ...interface{})
- func Errorln(a ...interface{})
- func Fg2Bg(val uint8) uint8
- func ForceColor() terminfo.ColorLevel
- func ForceOpenColor() terminfo.ColorLevel
- func ForceSetColorLevel(level terminfo.ColorLevel) terminfo.ColorLevel
- func Fprint(w io.Writer, a ...interface{})
- func Fprintf(w io.Writer, format string, a ...interface{})
- func Fprintln(w io.Writer, a ...interface{})
- func GetColorTags() map[string]string
- func GetTagCode(name string) string
- func Grayln(a ...interface{})
- func Grayp(a ...interface{})
- func Greenln(a ...interface{})
- func Greenp(a ...interface{})
- func Hex2basic(hex string, asBg ...bool) uint8
- func Hex2rgb(hex string) []int
- func HexToRGB(hex string) []int
- func HexToRgb(hex string) (rgb []int)
- func HslIntToRgb(h, s, l int) (rgb []uint8)
- func HslToRgb(h, s, l float64) (rgb []uint8)
- func HsvToRgb(h, s, v int) (rgb []uint8)
- func Infof(format string, a ...interface{})
- func Infoln(a ...interface{})
- func InnerErrs() []error
- func IsConsole(w io.Writer) bool
- func IsDefinedTag(name string) bool
- func IsLikeInCmd() bool
- func IsMSys() bool
- func IsSupport16Color() bool
- func IsSupport256Color() bool
- func IsSupportColor() bool
- func IsSupportRGBColor() bool
- func IsSupportTrueColor() bool
- func IsTerminal(fd uintptr) bool
- func IsWindows() bool
- func Lprint(l *log.Logger, a ...interface{})
- func Magentaln(a ...interface{})
- func Magentap(a ...interface{})
- func NotRenderTag()
- func ParseCodeFromAttr(attr string) (code string)
- func Print(a ...interface{})
- func Printf(format string, a ...interface{})
- func Println(a ...interface{})
- func Redln(a ...interface{})
- func Redp(a ...interface{})
- func Render(a ...interface{}) string
- func RenderCode(code string, args ...interface{}) string
- func RenderString(code string, str string) string
- func RenderWithSpaces(code string, args ...interface{}) string
- func ReplaceTag(str string) string
- func Reset() (int, error)
- func ResetOptions()
- func ResetOutput()
- func ResetTerminal() error
- func Rgb2ansi(r, g, b uint8, isBg bool) uint8
- func Rgb2basic(r, g, b uint8, isBg bool) uint8
- func Rgb2hex(rgb []int) string
- func Rgb2short(r, g, b uint8) uint8
- func RgbTo256(r, g, b uint8) uint8
- func RgbTo256Table() map[string]uint8
- func RgbToAnsi(r, g, b uint8, isBg bool) uint8
- func RgbToHex(rgb []int) string
- func RgbToHsl(r, g, b uint8) []float64
- func RgbToHslInt(r, g, b uint8) []int
- func Set(colors ...Color) (int, error)
- func SetOutput(w io.Writer)
- func SetTerminal(code string) error
- func Sprint(a ...interface{}) string
- func Sprintf(format string, a ...interface{}) string
- func String(s string) string
- func Support256Color() bool
- func SupportColor() bool
- func SupportTrueColor() bool
- func TermColorLevel() terminfo.ColorLevel
- func Text(s string) string
- func Warnf(format string, a ...interface{})
- func Warnln(a ...interface{})
- func WrapTag(s string, tag string) string
- func Yellowln(a ...interface{})
- func Yellowp(a ...interface{})
- type Basic
- type Bit8Color
- type Color
- func (c Color) C256() Color256
- func (c Color) Code() string
- func (c Color) Darken() Color
- func (c Color) IsValid() bool
- func (c Color) Light() Color
- func (c Color) Name() string
- func (c Color) Print(args ...interface{})
- func (c Color) Printf(format string, a ...interface{})
- func (c Color) Println(a ...interface{})
- func (c Color) RGB() RGBColor
- func (c Color) Render(a ...interface{}) string
- func (c Color) Renderln(a ...interface{}) string
- func (c Color) Sprint(a ...interface{}) string
- func (c Color) Sprintf(format string, args ...interface{}) string
- func (c Color) String() string
- func (c Color) Text(message string) string
- func (c Color) ToBg() Color
- func (c Color) ToFg() Color
- type Color256
- func (c Color256) Basic() Color
- func (c Color256) C16() Color
- func (c Color256) Code() string
- func (c Color256) FullCode() string
- func (c Color256) IsBg() bool
- func (c Color256) IsEmpty() bool
- func (c Color256) IsFg() bool
- func (c Color256) Print(a ...interface{})
- func (c Color256) Printf(format string, a ...interface{})
- func (c Color256) Println(a ...interface{})
- func (c Color256) RGB() RGBColor
- func (c Color256) RGBColor() RGBColor
- func (c Color256) Reset() error
- func (c Color256) Set() error
- func (c Color256) Sprint(a ...interface{}) string
- func (c Color256) Sprintf(format string, a ...interface{}) string
- func (c Color256) String() string
- func (c Color256) ToBg() Color256
- func (c Color256) ToFg() Color256
- func (c Color256) Value() uint8
- type Opts
- type Printer
- func (p *Printer) IsEmpty() bool
- func (p *Printer) Print(a ...interface{})
- func (p *Printer) Printf(format string, a ...interface{})
- func (p *Printer) Println(a ...interface{})
- func (p *Printer) Sprint(a ...interface{}) string
- func (p *Printer) Sprintf(format string, a ...interface{}) string
- func (p *Printer) String() string
- type PrinterFace
- type RGBColor
- func Bit24(r, g, b uint8, isBg ...bool) RGBColor
- func HEX(hex string, isBg ...bool) RGBColor
- func HSL(h, s, l float64, isBg ...bool) RGBColor
- func HSLInt(h, s, l int, isBg ...bool) RGBColor
- func Hex(hex string, isBg ...bool) RGBColor
- func Hsl(h, s, l float64, isBg ...bool) RGBColor
- func HslInt(h, s, l int, isBg ...bool) RGBColor
- func RGB(r, g, b uint8, isBg ...bool) RGBColor
- func RGBFromSlice(rgb []uint8, isBg ...bool) RGBColor
- func RGBFromString(rgb string, isBg ...bool) RGBColor
- func Rgb(r, g, b uint8, isBg ...bool) RGBColor
- func RgbFromInt(r, g, b int, isBg ...bool) RGBColor
- func RgbFromInts(rgb []int, isBg ...bool) RGBColor
- func (c RGBColor) Basic() Color
- func (c RGBColor) C16() Color
- func (c RGBColor) C256() Color256
- func (c RGBColor) Code() string
- func (c RGBColor) Color() Color
- func (c RGBColor) FullCode() string
- func (c RGBColor) Hex() string
- func (c RGBColor) IsEmpty() bool
- func (c RGBColor) Print(a ...interface{})
- func (c RGBColor) Printf(format string, a ...interface{})
- func (c RGBColor) Println(a ...interface{})
- func (c RGBColor) Reset() error
- func (c RGBColor) RgbString() string
- func (c RGBColor) Set() error
- func (c RGBColor) Sprint(a ...interface{}) string
- func (c RGBColor) Sprintf(format string, a ...interface{}) string
- func (c RGBColor) String() string
- func (c RGBColor) Values() []int
- type RGBStyle
- func (s *RGBStyle) AddOpts(opts ...Color) *RGBStyle
- func (s *RGBStyle) Code() string
- func (s *RGBStyle) FullCode() string
- func (s *RGBStyle) IsEmpty() bool
- func (s *RGBStyle) Print(a ...interface{})
- func (s *RGBStyle) Printf(format string, a ...interface{})
- func (s *RGBStyle) Println(a ...interface{})
- func (s *RGBStyle) Set(fg, bg RGBColor, opts ...Color) *RGBStyle
- func (s *RGBStyle) SetBg(bg RGBColor) *RGBStyle
- func (s *RGBStyle) SetFg(fg RGBColor) *RGBStyle
- func (s *RGBStyle) SetOpts(opts Opts) *RGBStyle
- func (s *RGBStyle) Sprint(a ...interface{}) string
- func (s *RGBStyle) Sprintf(format string, a ...interface{}) string
- func (s *RGBStyle) String() string
- type Scheme
- func (s *Scheme) Errorf(format string, a ...interface{})
- func (s *Scheme) Errorln(v ...interface{})
- func (s *Scheme) Infof(format string, a ...interface{})
- func (s *Scheme) Infoln(v ...interface{})
- func (s *Scheme) Style(name string) Style
- func (s *Scheme) Warnf(format string, a ...interface{})
- func (s *Scheme) Warnln(v ...interface{})
- type SimplePrinter
- func (s *SimplePrinter) Errorf(format string, a ...interface{})
- func (s *SimplePrinter) Errorln(a ...interface{})
- func (s *SimplePrinter) Infof(format string, a ...interface{})
- func (s *SimplePrinter) Infoln(a ...interface{})
- func (s *SimplePrinter) Print(v ...interface{})
- func (s *SimplePrinter) Printf(format string, v ...interface{})
- func (s *SimplePrinter) Println(v ...interface{})
- func (s *SimplePrinter) Warnf(format string, a ...interface{})
- func (s *SimplePrinter) Warnln(a ...interface{})
- type Style
- func (s *Style) Add(cs ...Color)
- func (s Style) Code() string
- func (s Style) IsEmpty() bool
- func (s Style) Print(a ...interface{})
- func (s Style) Printf(format string, a ...interface{})
- func (s Style) Println(a ...interface{})
- func (s Style) Render(a ...interface{}) string
- func (s Style) Renderln(a ...interface{}) string
- func (s Style) Save(name string)
- func (s Style) Sprint(a ...interface{}) string
- func (s Style) Sprintf(format string, a ...interface{}) string
- func (s Style) String() string
- type Style256
- func (s *Style256) AddOpts(opts ...Color) *Style256
- func (s *Style256) Code() string
- func (s *Style256) Print(a ...interface{})
- func (s *Style256) Printf(format string, a ...interface{})
- func (s *Style256) Println(a ...interface{})
- func (s *Style256) Set(fgVal, bgVal uint8, opts ...Color) *Style256
- func (s *Style256) SetBg(bgVal uint8) *Style256
- func (s *Style256) SetFg(fgVal uint8) *Style256
- func (s *Style256) SetOpts(opts Opts) *Style256
- func (s *Style256) Sprint(a ...interface{}) string
- func (s *Style256) Sprintf(format string, a ...interface{}) string
- func (s *Style256) String() string
- type Tag
- type TagParser
- type Theme
Examples ¶
Constants ¶
const ( LevelNo = terminfo.ColorLevelNone // not support color. Level16 = terminfo.ColorLevelBasic // 3/4 bit color supported Level256 = terminfo.ColorLevelHundreds // 8 bit color supported LevelRgb = terminfo.ColorLevelMillions // (24 bit)true color supported )
terminal color available level alias of the terminfo.ColorLevel*
const ( SettingTpl = "\x1b[%sm" FullColorTpl = "\x1b[%sm%s\x1b[0m" )
color render templates ESC 操作的表示:
"\033"(Octal 8进制) = "\x1b"(Hexadecimal 16进制) = 27 (10进制)
const ( FgBase uint8 = 30 BgBase uint8 = 40 HiFgBase uint8 = 90 HiBgBase uint8 = 100 )
Base value for foreground/background color base: fg 30~37, bg 40~47 light: fg 90~97, bg 100~107
const ( Red = FgRed Cyan = FgCyan Gray = FgDarkGray // is light Black Blue = FgBlue Black = FgBlack Green = FgGreen White = FgWhite Yellow = FgYellow Magenta = FgMagenta Bold = OpBold Normal = FgDefault LightRed = FgLightRed LightCyan = FgLightCyan LightBlue = FgLightBlue LightGreen = FgLightGreen LightWhite = FgLightWhite LightYellow = FgLightYellow LightMagenta = FgLightMagenta HiRed = FgLightRed HiCyan = FgLightCyan HiBlue = FgLightBlue HiGreen = FgLightGreen HiWhite = FgLightWhite HiYellow = FgLightYellow HiMagenta = FgLightMagenta BgHiRed = BgLightRed BgHiCyan = BgLightCyan BgHiBlue = BgLightBlue BgHiGreen = BgLightGreen BgHiWhite = BgLightWhite BgHiYellow = BgLightYellow BgHiMagenta = BgLightMagenta )
There are basic and light foreground color aliases
const ( TplFg256 = "38;5;%d" TplBg256 = "48;5;%d" Fg256Pfx = "38;5;" Bg256Pfx = "48;5;" )
tpl for 8 bit 256 color(`2^8`)
format:
ESC[ … 38;5;<n> … m // 选择前景色 ESC[ … 48;5;<n> … m // 选择背景色
example:
fg "\x1b[38;5;242m" bg "\x1b[48;5;208m" both "\x1b[38;5;242;48;5;208m"
links:
https://zh.wikipedia.org/wiki/ANSI%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97#8位
const ( TplFgRGB = "38;2;%d;%d;%d" TplBgRGB = "48;2;%d;%d;%d" FgRGBPfx = "38;2;" BgRGBPfx = "48;2;" )
24 bit RGB color RGB:
R 0-255 G 0-255 B 0-255 R 00-FF G 00-FF B 00-FF (16进制)
Format:
ESC[ … 38;2;<r>;<g>;<b> … m // Select RGB foreground color ESC[ … 48;2;<r>;<g>;<b> … m // Choose RGB background color
links:
https://zh.wikipedia.org/wiki/ANSI%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97#24位
example:
fg: \x1b[38;2;30;144;255mMESSAGE\x1b[0m bg: \x1b[48;2;30;144;255mMESSAGE\x1b[0m both: \x1b[38;2;233;90;203;48;2;30;144;255mMESSAGE\x1b[0m
const ( AsFg uint8 = iota AsBg )
mark color is fg or bg.
const ( // MatchExpr regex to match color tags // // Notice: golang 不支持反向引用. 即不支持使用 \1 引用第一个匹配 ([a-z=;]+) // MatchExpr = `<([a-z=;]+)>(.*?)<\/\1>` // 所以调整一下 统一使用 `</>` 来结束标签,例如 "<info>some text</>" // // allow custom attrs, eg: "<fg=white;bg=blue;op=bold>content</>" // (?s:...) s - 让 "." 匹配换行 MatchExpr = `<([0-9a-zA-Z_=,;]+)>(?s:(.*?))<\/>` // AttrExpr regex to match custom color attributes // eg: "<fg=white;bg=blue;op=bold>content</>" AttrExpr = `(fg|bg|op)[\s]*=[\s]*([0-9a-zA-Z,]+);?` // StripExpr regex used for removing color tags // StripExpr = `<[\/]?[a-zA-Z=;]+>` // 随着上面的做一些调整 StripExpr = `<[\/]?[0-9a-zA-Z_=,;]*>` )
output colored text like use html tag. (not support windows cmd)
const CodeExpr = `\033\[[\d;?]+m`
CodeExpr regex to clear color codes eg "\033[1;36mText\x1b[0m"
const ResetSet = "\x1b[0m"
ResetSet Close all properties.
Variables ¶
var ( // Enable switch color render and display // // NOTICE: // if ENV: NO_COLOR is not empty, will disable color render. Enable = os.Getenv("NO_COLOR") == "" // RenderTag render HTML tag on call color.Xprint, color.PrintX RenderTag = true )
var ( // Info color style Info = &Theme{"info", Style{OpReset, FgGreen}} // Note color style Note = &Theme{"note", Style{OpBold, FgLightCyan}} // Warn color style Warn = &Theme{"warning", Style{OpBold, FgYellow}} // Light color style Light = &Theme{"light", Style{FgLightWhite, BgBlack}} // Error color style Error = &Theme{"error", Style{FgLightWhite, BgRed}} // Danger color style Danger = &Theme{"danger", Style{OpBold, FgRed}} // Debug color style Debug = &Theme{"debug", Style{OpReset, FgCyan}} // Notice color style Notice = &Theme{"notice", Style{OpBold, FgCyan}} // Comment color style Comment = &Theme{"comment", Style{OpReset, FgYellow}} // Success color style Success = &Theme{"success", Style{OpBold, FgGreen}} // Primary color style Primary = &Theme{"primary", Style{OpReset, FgBlue}} // Question color style Question = &Theme{"question", Style{OpReset, FgMagenta}} // Secondary color style Secondary = &Theme{"secondary", Style{FgDarkGray}} )
internal themes(like bootstrap style) Usage:
color.Info.Print("message") color.Info.Printf("a %s message", "test") color.Warn.Println("message") color.Error.Println("message")
var AllOptions = map[string]Color{ "reset": OpReset, "bold": OpBold, "fuzzy": OpFuzzy, "italic": OpItalic, "underscore": OpUnderscore, "blink": OpBlink, "reverse": OpReverse, "concealed": OpConcealed, }
AllOptions color options map
var BgColors = map[string]Color{ "black": BgBlack, "red": BgRed, "green": BgGreen, "yellow": BgYellow, "blue": BgBlue, "magenta": BgMagenta, "cyan": BgCyan, "white": BgWhite, "default": BgDefault, }
BgColors background colors map
var ExBgColors = map[string]Color{ "darkGray": BgDarkGray, "lightRed": BgLightRed, "lightGreen": BgLightGreen, "lightYellow": BgLightYellow, "lightBlue": BgLightBlue, "lightMagenta": BgLightMagenta, "lightCyan": BgLightCyan, "lightWhite": BgLightWhite, }
ExBgColors extra background colors map
var ExFgColors = map[string]Color{ "darkGray": FgDarkGray, "lightRed": FgLightRed, "lightGreen": FgLightGreen, "lightYellow": FgLightYellow, "lightBlue": FgLightBlue, "lightMagenta": FgLightMagenta, "lightCyan": FgLightCyan, "lightWhite": FgLightWhite, }
ExFgColors extra foreground colors map
var FgColors = map[string]Color{ "black": FgBlack, "red": FgRed, "green": FgGreen, "yellow": FgYellow, "blue": FgBlue, "magenta": FgMagenta, "cyan": FgCyan, "white": FgWhite, "default": FgDefault, }
FgColors foreground colors map
var Options = AllOptions
Options color options map Deprecated NOTICE: please use AllOptions instead.
var Styles = map[string]Style{ "info": {OpReset, FgGreen}, "note": {OpBold, FgLightCyan}, "light": {FgLightWhite, BgRed}, "error": {FgLightWhite, BgRed}, "danger": {OpBold, FgRed}, "notice": {OpBold, FgCyan}, "success": {OpBold, FgGreen}, "comment": {OpReset, FgMagenta}, "primary": {OpReset, FgBlue}, "warning": {OpBold, FgYellow}, "question": {OpReset, FgMagenta}, "secondary": {FgDarkGray}, }
Styles internal defined styles, like bootstrap styles. Usage:
color.Styles["info"].Println("message")
var Themes = map[string]*Theme{ "info": Info, "note": Note, "light": Light, "error": Error, "debug": Debug, "danger": Danger, "notice": Notice, "success": Success, "comment": Comment, "primary": Primary, "warning": Warn, "question": Question, "secondary": Secondary, }
Themes internal defined themes. Usage:
color.Themes["info"].Println("message")
Functions ¶
func Blueln ¶ added in v1.0.1
func Blueln(a ...interface{})
Blueln print message line with Blue color
func C256ToRgbV1 ¶ added in v1.3.4
C256ToRgbV1 convert an 256 color code to RGB numbers refer https://github.com/torvalds/linux/commit/cec5b2a97a11ade56a701e83044d0a2a984c67b4
func Colors2code ¶ added in v1.3.3
Colors2code convert colors to code. return like "32;45;3"
func Cyanln ¶ added in v1.0.1
func Cyanln(a ...interface{})
Cyanln print message line with Cyan color
func DetectColorLevel ¶ added in v1.4.0
func DetectColorLevel() terminfo.ColorLevel
DetectColorLevel for current env
NOTICE: The method will detect terminal info each times,
if only want get current color level, please direct call SupportColor() or TermColorLevel()
func Errorf ¶ added in v1.2.6
func Errorf(format string, a ...interface{})
Errorf print message with Error style
func Errorln ¶ added in v1.0.1
func Errorln(a ...interface{})
Errorln print message with Error style
func ForceColor ¶ added in v1.2.8
func ForceColor() terminfo.ColorLevel
ForceColor force open color render
func ForceOpenColor ¶ added in v1.1.11
func ForceOpenColor() terminfo.ColorLevel
ForceOpenColor force open color render
func ForceSetColorLevel ¶ added in v1.4.0
func ForceSetColorLevel(level terminfo.ColorLevel) terminfo.ColorLevel
ForceColor force open color render
func Fprintf ¶
Fprintf print format and rendered messages to writer. Notice: will ignore print error
func GetTagCode ¶ added in v1.1.2
GetTagCode get color code by tag name
func Grayln ¶ added in v1.0.1
func Grayln(a ...interface{})
Grayln print message line with Gray color
func Greenln ¶ added in v1.0.1
func Greenln(a ...interface{})
Greenln print message line with Green color
func HexToRgb ¶ added in v1.2.6
HexToRgb convert hex color string to RGB numbers
Usage:
rgb := HexToRgb("ccc") // rgb: [204 204 204] rgb := HexToRgb("aabbcc") // rgb: [170 187 204] rgb := HexToRgb("#aabbcc") // rgb: [170 187 204] rgb := HexToRgb("0xad99c0") // rgb: [170 187 204]
func HslIntToRgb ¶ added in v1.5.0
HslIntToRgb Converts an HSL color value to RGB Assumes h: 0-360, s: 0-100, l: 0-100 returns r, g, and b in the set [0, 255].
Usage:
HslIntToRgb(0, 100, 50) // red HslIntToRgb(120, 100, 50) // lime HslIntToRgb(120, 100, 25) // dark green HslIntToRgb(120, 100, 75) // light green
func HslToRgb ¶ added in v1.5.0
HslToRgb Converts an HSL color value to RGB. Conversion formula adapted from http://en.wikipedia.org/wiki/HSL_color_space. Assumes h, s, and l are contained in the set [0, 1] returns r, g, and b in the set [0, 255].
Usage:
rgbVals := HslToRgb(0, 1, 0.5) // red
func HsvToRgb ¶ added in v1.5.0
HsvToRgb Converts an HSL color value to RGB. Conversion formula adapted from https://en.wikipedia.org/wiki/HSL_and_HSV#HSV_to_RGB Assumes h: 0-360, s: 0-100, l: 0-100 returns r, g, and b in the set [0, 255].
func Infof ¶ added in v1.2.6
func Infof(format string, a ...interface{})
Infof print message with Info style
func IsMSys ¶ added in v1.1.2
func IsMSys() bool
IsMSys msys(MINGW64) environment, does not necessarily support color
func IsSupport16Color ¶ added in v1.4.0
func IsSupport16Color() bool
IsSupportColor check current console is support color.
NOTICE: The method will detect terminal info each times,
if only want get current color level, please direct call SupportColor() or TermColorLevel()
func IsSupport256Color ¶ added in v1.1.2
func IsSupport256Color() bool
IsSupport256Color render check
NOTICE: The method will detect terminal info each times,
if only want get current color level, please direct call SupportColor() or TermColorLevel()
func IsSupportColor ¶ added in v1.1.2
func IsSupportColor() bool
IsSupportColor check current console is support color.
NOTICE: The method will detect terminal info each times,
if only want get current color level, please direct call SupportColor() or TermColorLevel()
func IsSupportRGBColor ¶ added in v1.3.8
func IsSupportRGBColor() bool
IsSupportRGBColor check. alias of the IsSupportTrueColor()
NOTICE: The method will detect terminal info each times,
if only want get current color level, please direct call SupportColor() or TermColorLevel()
func IsSupportTrueColor ¶ added in v1.2.1
func IsSupportTrueColor() bool
IsSupportTrueColor render check.
NOTICE: The method will detect terminal info each times,
if only want get current color level, please direct call SupportColor() or TermColorLevel()
ENV: "COLORTERM=truecolor" "COLORTERM=24bit"
func IsTerminal ¶ added in v1.1.11
IsTerminal returns true if the given file descriptor is a terminal.
Usage:
IsTerminal(os.Stdout.Fd())
func Lprint ¶ added in v1.2.3
Lprint passes colored messages to a log.Logger for printing. Notice: should be goroutine safe
func Magentaln ¶ added in v1.0.1
func Magentaln(a ...interface{})
Magentaln print message line with Magenta color
func Magentap ¶ added in v1.4.2
func Magentap(a ...interface{})
Magentap print message with Magenta color
func NotRenderTag ¶ added in v1.2.8
func NotRenderTag()
NotRenderTag on call color.Xprint, color.PrintX
func ParseCodeFromAttr ¶
ParseCodeFromAttr parse color attributes.
attr format:
// VALUE please see var: FgColors, BgColors, AllOptions "fg=VALUE;bg=VALUE;op=VALUE"
16 color:
"fg=yellow" "bg=red" "op=bold,underscore" option is allow multi value "fg=white;bg=blue;op=bold" "fg=white;op=bold,underscore"
256 color:
"fg=167" "fg=167;bg=23" "fg=167;bg=23;op=bold"
true color:
// hex "fg=fc1cac" "fg=fc1cac;bg=c2c3c4" // r,g,b "fg=23,45,214" "fg=23,45,214;bg=109,99,88"
func Render ¶
func Render(a ...interface{}) string
Render parse color tags, return rendered string. Usage:
text := Render("<info>hello</> <cyan>world</>!") fmt.Println(text)
func RenderCode ¶ added in v1.1.2
RenderCode render message by color code. Usage:
msg := RenderCode("3;32;45", "some", "message")
func RenderString ¶ added in v1.1.2
RenderString render a string with color code. Usage:
msg := RenderString("3;32;45", "a message")
func RenderWithSpaces ¶ added in v1.1.11
RenderWithSpaces Render code with spaces. If the number of args is > 1, a space will be added between the args
func ReplaceTag ¶
ReplaceTag parse string, replace color tag and return rendered string
func ResetOptions ¶ added in v1.2.8
func ResetOptions()
ResetOptions reset all package option setting
func RgbTo256Table ¶ added in v1.3.4
RgbTo256Table mapping data
func RgbToAnsi ¶ added in v1.3.3
RgbToAnsi convert RGB-code to 16-code refer https://github.com/radareorg/radare2/blob/master/libr/cons/rgb.c#L249-L271
func RgbToHex ¶ added in v1.2.6
RgbToHex convert RGB-code to hex-code
Usage:
hex := RgbToHex([]int{170, 187, 204}) // hex: "aabbcc"
func RgbToHsl ¶ added in v1.5.0
RgbToHsl Converts an RGB color value to HSL. Conversion formula adapted from http://en.wikipedia.org/wiki/HSL_color_space. Assumes r, g, and b are contained in the set [0, 255] and returns h, s, and l in the set [0, 1].
func RgbToHslInt ¶ added in v1.5.0
RgbToHslInt Converts an RGB color value to HSL. Conversion formula Assumes r, g, and b are contained in the set [0, 255] and returns [h,s,l] h: 0-360, s: 0-100, l: 0-100.
func Sprint ¶ added in v1.1.1
func Sprint(a ...interface{}) string
Sprint parse color tags, return rendered string
func Support256Color ¶ added in v1.4.0
func Support256Color() bool
Support256Color on the current ENV
func SupportTrueColor ¶ added in v1.4.0
func SupportTrueColor() bool
SupportTrueColor on the current ENV
func TermColorLevel ¶ added in v1.4.0
func TermColorLevel() terminfo.ColorLevel
TermColorLevel value on current ENV
func Warnf ¶ added in v1.2.6
func Warnf(format string, a ...interface{})
Warnf print message with Warn style
Types ¶
type Color ¶
type Color uint8
Color Color16, 16 color value type 3(2^3=8) OR 4(2^4=16) bite color.
const ( FgBlack Color = iota + 30 FgRed FgGreen FgYellow FgBlue FgMagenta // 品红 FgCyan // 青色 FgWhite // FgDefault revert default FG FgDefault Color = 39 )
Foreground colors. basic foreground colors 30 - 37
const ( FgDarkGray Color = iota + 90 // 亮黑(灰) FgLightRed FgLightGreen FgLightYellow FgLightBlue FgLightMagenta FgLightCyan FgLightWhite // FgGray is alias of FgDarkGray FgGray Color = 90 // 亮黑(灰) )
Extra foreground color 90 - 97(非标准)
const ( BgBlack Color = iota + 40 BgRed BgGreen BgYellow // BgBrown like yellow BgBlue BgMagenta BgCyan BgWhite // BgDefault revert default BG BgDefault Color = 49 )
Background colors. basic background colors 40 - 47
const ( BgDarkGray Color = iota + 100 BgLightRed BgLightGreen BgLightYellow BgLightBlue BgLightMagenta BgLightCyan BgLightWhite // BgGray is alias of BgDarkGray BgGray Color = 100 )
Extra background color 100 - 107(非标准)
const ( OpReset Color = iota // 0 重置所有设置 OpBold // 1 加粗 OpFuzzy // 2 模糊(不是所有的终端仿真器都支持) OpItalic // 3 斜体(不是所有的终端仿真器都支持) OpUnderscore // 4 下划线 OpBlink // 5 闪烁 OpFastBlink // 5 快速闪烁(未广泛支持) OpReverse // 7 颠倒的 交换背景色与前景色 OpConcealed // 8 隐匿的 OpStrikethrough // 9 删除的,删除线(未广泛支持) )
Option settings
func (Color) Darken ¶ added in v1.1.4
Darken current color. eg. 96(FgLightCyan) -> 36(FgCyan)
Usage:
cyan := LightCyan.Darken() cyan.Print("message")
func (Color) Light ¶ added in v1.1.4
Light current color. eg: 36(FgCyan) -> 96(FgLightCyan).
Usage:
lightCyan := Cyan.Light() lightCyan.Print("message")
func (Color) Print ¶
func (c Color) Print(args ...interface{})
Print messages. Usage:
color.Green.Print("message")
OR:
green := color.FgGreen.Print green("message")
func (Color) Printf ¶
Printf format and print messages. Usage:
color.Cyan.Printf("string %s", "arg0")
func (Color) Render ¶
Render messages by color setting Usage:
green := color.FgGreen.Render fmt.Println(green("message"))
func (Color) Renderln ¶ added in v1.1.11
Renderln messages by color setting. like Println, will add spaces for each argument Usage:
green := color.FgGreen.Renderln fmt.Println(green("message"))
func (Color) Sprint ¶ added in v1.1.2
Sprint render messages by color setting. is alias of the Render()
func (Color) Sprintf ¶ added in v1.1.2
Sprintf format and render message. Usage:
green := color.Green.Sprintf colored := green("message")
type Color256 ¶ added in v1.1.2
type Color256 [2]uint8
Color256 256 color (8 bit), uint8 range at 0 - 255
颜色值使用10进制和16进制都可 0x98 = 152
The color consists of two uint8:
0: color value 1: color type; Fg=0, Bg=1, >1: unset value
example:
fg color: [152, 0] bg color: [152, 1]
NOTICE: now support 256 color on windows CMD, PowerShell lint warn - Name starts with package name
func (Color256) FullCode ¶ added in v1.4.2
FullCode convert to color code string with prefix. eg: "38;5;12"
func (Color256) Print ¶ added in v1.1.2
func (c Color256) Print(a ...interface{})
Print print message
func (Color256) Println ¶ added in v1.1.2
func (c Color256) Println(a ...interface{})
Println print message with newline
type Printer ¶ added in v1.1.3
type Printer struct { // NoColor disable color. NoColor bool // Code color code string. eg "32;45;3" Code string }
Printer a generic color message printer.
Usage:
p := &Printer{Code: "32;45;3"} p.Print("message")
func (*Printer) Print ¶ added in v1.1.3
func (p *Printer) Print(a ...interface{})
Print rendering colored messages
func (*Printer) Println ¶ added in v1.1.3
func (p *Printer) Println(a ...interface{})
Println rendering colored messages with newline
type PrinterFace ¶ added in v1.1.3
type PrinterFace interface { fmt.Stringer Sprint(a ...interface{}) string Sprintf(format string, a ...interface{}) string Print(a ...interface{}) Printf(format string, a ...interface{}) Println(a ...interface{}) }
PrinterFace interface
type RGBColor ¶ added in v1.1.2
type RGBColor [4]uint8
RGBColor definition.
The first to third digits represent the color value. The last digit represents the foreground(0), background(1), >1 is unset value
Usage:
// 0, 1, 2 is R,G,B. // 3rd: Fg=0, Bg=1, >1: unset value RGBColor{30,144,255, 0} RGBColor{30,144,255, 1}
NOTICE: now support RGB color on Windows CMD, PowerShell
func HEX ¶ added in v1.1.2
HEX create RGB color from a HEX color string.
Usage:
c := HEX("ccc") // rgb: [204 204 204] c := HEX("aabbcc") // rgb: [170 187 204] c := HEX("#aabbcc") c := HEX("0xaabbcc") c.Print("message")
func RGB ¶ added in v1.1.2
RGB color create. Usage:
c := RGB(30,144,255) c := RGB(30,144,255, true) c.Print("message")
func RGBFromSlice ¶ added in v1.3.4
RGBFromSlice quick RGBColor from slice
func RGBFromString ¶ added in v1.1.3
RGBFromString create RGB color from a string. support use color name in the {namedRgbMap}
Usage:
c := RGBFromString("170,187,204") c.Print("message") c := RGBFromString("brown") c.Print("message with color brown")
func RgbFromInt ¶ added in v1.5.0
RgbFromInt create instance from int r,g,b value
func RgbFromInts ¶ added in v1.5.0
RgbFromInts create instance from []int r,g,b value
func (RGBColor) Print ¶ added in v1.1.2
func (c RGBColor) Print(a ...interface{})
Print print message
func (RGBColor) Println ¶ added in v1.1.2
func (c RGBColor) Println(a ...interface{})
Println print message with newline
func (RGBColor) RgbString ¶ added in v1.5.0
RgbString to color code string without prefix. eg: "204,123,56"
type RGBStyle ¶ added in v1.1.2
type RGBStyle struct { // Name of the style Name string // contains filtered or unexported fields }
RGBStyle definition.
Foreground/Background color All are composed of 4 digits uint8, the first three digits are the color value; The last bit is different from RGBColor, here it indicates whether the value is set. - 1 Has been set - ^1 Not set
func HEXStyle ¶ added in v1.1.3
HEXStyle create a RGBStyle from HEX color string. Usage:
s := HEXStyle("aabbcc", "eee") s.Print("message")
func NewRGBStyle ¶ added in v1.1.3
NewRGBStyle create a RGBStyle.
func RGBStyleFromString ¶ added in v1.1.3
RGBStyleFromString create a RGBStyle from color value string. Usage:
s := RGBStyleFromString("170,187,204", "70,87,4") s.Print("message")
func (*RGBStyle) Print ¶ added in v1.1.3
func (s *RGBStyle) Print(a ...interface{})
Print print message
func (*RGBStyle) Println ¶ added in v1.1.3
func (s *RGBStyle) Println(a ...interface{})
Println print message with newline
type Scheme ¶ added in v1.3.8
Scheme struct
func NewDefaultScheme ¶ added in v1.3.8
NewDefaultScheme create an defuault color Scheme
func (*Scheme) Errorln ¶ added in v1.3.8
func (s *Scheme) Errorln(v ...interface{})
Errorln message print
func (*Scheme) Infoln ¶ added in v1.3.8
func (s *Scheme) Infoln(v ...interface{})
Infoln message print
type SimplePrinter ¶ added in v1.3.8
type SimplePrinter struct{}
SimplePrinter use for quick use color print on inject to struct
func (*SimplePrinter) Errorf ¶ added in v1.3.8
func (s *SimplePrinter) Errorf(format string, a ...interface{})
Errorf message
func (*SimplePrinter) Errorln ¶ added in v1.3.8
func (s *SimplePrinter) Errorln(a ...interface{})
Errorln message
func (*SimplePrinter) Infof ¶ added in v1.3.8
func (s *SimplePrinter) Infof(format string, a ...interface{})
Infof message
func (*SimplePrinter) Infoln ¶ added in v1.3.8
func (s *SimplePrinter) Infoln(a ...interface{})
Infoln message
func (*SimplePrinter) Print ¶ added in v1.3.8
func (s *SimplePrinter) Print(v ...interface{})
Print message
func (*SimplePrinter) Printf ¶ added in v1.3.8
func (s *SimplePrinter) Printf(format string, v ...interface{})
Printf message
func (*SimplePrinter) Println ¶ added in v1.3.8
func (s *SimplePrinter) Println(v ...interface{})
Println message
func (*SimplePrinter) Warnf ¶ added in v1.3.8
func (s *SimplePrinter) Warnf(format string, a ...interface{})
Warnf message
func (*SimplePrinter) Warnln ¶ added in v1.3.8
func (s *SimplePrinter) Warnln(a ...interface{})
Warnln message
type Style ¶
type Style []Color
Style a 16 color style. can add: fg color, bg color, color options
Example:
color.Style{color.FgGreen}.Print("message")
func New ¶
New create a custom style
Usage:
color.New(color.FgGreen).Print("message") equals to: color.Style{color.FgGreen}.Print("message")
func (Style) Render ¶
Render render text Usage:
color.New(color.FgGreen).Render("text") color.New(color.FgGreen, color.BgBlack, color.OpBold).Render("text")
func (Style) Renderln ¶ added in v1.1.11
Renderln render text line. like Println, will add spaces for each argument Usage:
color.New(color.FgGreen).Renderln("text", "more") color.New(color.FgGreen, color.BgBlack, color.OpBold).Render("text", "more")
type Style256 ¶ added in v1.1.2
type Style256 struct { // Name of the style Name string // contains filtered or unexported fields }
Style256 definition
前/背景色 都是由两位uint8组成, 第一位是色彩值; 第二位与 Bit8Color 不一样的是,在这里表示是否设置了值 0 未设置 !=0 已设置
func S256 ¶ added in v1.1.2
S256 create a color256 style Usage:
s := color.S256() s := color.S256(132) // fg s := color.S256(132, 203) // fg and bg
func (*Style256) Println ¶ added in v1.1.2
func (s *Style256) Println(a ...interface{})
Println print message with newline
type Tag ¶
type Tag string
Tag value is a defined style name Usage:
Tag("info").Println("message")
type TagParser ¶ added in v1.4.2
type TagParser struct {
// contains filtered or unexported fields
}
TagParser struct
func (*TagParser) Parse ¶ added in v1.4.2
Parse parse given string, replace color tag and return rendered string
func (*TagParser) ParseByEnv ¶ added in v1.4.2
ParseByEnv parse given string. will check package setting.
type Theme ¶ added in v1.1.1
Theme definition. extends from Style