GitHub - gookit/color: Terminal color rendering tool library, support 8/16 color...
source link: https://github.com/gookit/color
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
CLI Color
A command-line color library with true color support, universal API methods and Windows support.
Basic color preview:
Features
- Simple to use, zero dependencies
- Supports rich color output: 16-color, 256-color, true color (24-bit)
- 16-color output is the most commonly used and most widely supported, working on any Windows version
- See this gist for information on true color support
- Generic API methods:
Print
,Printf
,Println
,Sprint
,Sprintf
- Supports HTML tag-style color rendering, such as
<green>message</>
- Basic colors:
Bold
,Black
,White
,Gray
,Red
,Green
,Yellow
,Blue
,Magenta
,Cyan
- Additional styles:
Info
,Note
,Light
,Error
,Danger
,Notice
,Success
,Comment
,Primary
,Warning
,Question
,Secondary
GoDoc
Quick start
import "gopkg.in/gookit/color.v1" // is recommended // or import "github.com/gookit/color"
package main import ( "fmt" "github.com/gookit/color" ) func main() { // simple usage color.Cyan.Printf("Simple to use %s\n", "color") // use like func red := color.FgRed.Render green := color.FgGreen.Render fmt.Printf("%s line %s library\n", red("Command"), green("color")) // custom color color.New(color.FgWhite, color.BgBlack).Println("custom color style") // can also: color.Style{color.FgCyan, color.OpBold}.Println("custom color style") // internal theme/style: color.Info.Tips("message") color.Info.Prompt("message") color.Info.Println("message") color.Warn.Println("message") color.Error.Println("message") // use style tag color.Print("<suc>he</><comment>llo</>, <cyan>wel</><red>come</>\n") // apply a style tag color.Tag("info").Println("info style text") // prompt message color.Info.Prompt("prompt style message") color.Warn.Prompt("prompt style message") // tips message color.Info.Tips("tips style message") color.Warn.Tips("tips style message") }
Run demo: go run ./_examples/demo.go
Detailed usage
Basic color
Supported on any Windows version.
color.Bold
color.Black
color.White
color.Gray
color.Red
color.Green
color.Yellow
color.Blue
color.Magenta
color.Cyan
color.Bold.Println("bold message") color.Yellow.Println("yellow message")
Run demo: go run ./_examples/basiccolor.go
Additional styles
Supported on any Windows version.
color.Info
color.Note
color.Light
color.Error
color.Danger
color.Notice
color.Success
color.Comment
color.Primary
color.Warning
color.Question
color.Secondary
// print message color.Info.Print("Info message") color.Success.Print("Success message") // prompt message color.Info.Prompt("prompt style message") color.Warn.Prompt("prompt style message") // tips message color.Info.Tips("tips style message") color.Warn.Tips("tips style message")
Run demo: go run ./_examples/theme_style.go
HTML-like tag usage
Not supported on Windows (tags will be stripped).
// use style tag color.Print("<suc>he</><comment>llo</>, <cyan>wel</><red>come</>") color.Println("<suc>hello</>") color.Println("<error>hello</>") color.Println("<warning>hello</>") // custom color attributes color.Print("<fg=yellow;bg=black;op=underscore;>hello, welcome</>\n")
color.Tag
// set a style tag color.Tag("info").Print("info style text") color.Tag("info").Printf("%s style text", "info") color.Tag("info").Println("info style text")
Run demo: go run ./_examples/colortag.go
256-color usage
Set the foreground or background color
color.C256(val uint8, isBg ...bool) Color256
c := color.C256(132) // fg color c.Println("message") c.Printf("format %s", "message") c := color.C256(132, true) // bg color c.Println("message") c.Printf("format %s", "message")
Use a 256-color style
Can be used to set foreground and background colors at the same time.
color.S256(fgAndBg ...uint8) *Style256
s := color.S256(32, 203) s.Println("message") s.Printf("format %s", "message")
Run demo: go run ./_examples/color256.go
Use RGB color
Set the foreground or background color
color.RGB(r, g, b uint8, isBg ...bool) RGBColor
c := color.RGB(30,144,255) // fg color c.Println("message") c.Printf("format %s", "message") c := color.RGB(30,144,255, true) // bg color c.Println("message") c.Printf("format %s", "message")
Create a style from an hexadecimal color string:
color.HEX(hex string, isBg ...bool) RGBColor
c := HEX("ccc") // can also: "cccccc" "#cccccc" c.Println("message") c.Printf("format %s", "message") c = HEX("aabbcc", true) // as bg color c.Println("message") c.Printf("format %s", "message")
Use a RGB color style
Can be used to set the foreground and background colors at the same time.
color.NewRGBStyle(fg RGBColor, bg ...RGBColor) *RGBStyle
s := NewRGBStyle(RGB(20, 144, 234), RGB(234, 78, 23)) s.Println("message") s.Printf("format %s", "message")
Create a style from an hexadecimal color string:
color.HEXStyle(fg string, bg ...string) *RGBStyle
s := HEXStyle("11aa23", "eee") s.Println("message") s.Printf("format %s", "message")
See also
License
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK