Golang下的命令行色彩使用库, 拥有丰富的色彩渲染输出,通用的API方法,兼容Windows系统
基本颜色预览:
功能特色
cmd.exelinuxmacConEmugit-bashminttyPrintPrintfPrintlnSprintSprintfmessageBoldBlackWhiteGrayRedGreenYellowBlueMagentaCyanInfoNoteLightErrorDangerNoticeSuccessCommentPrimaryWarningQuestionSecondary
GoDoc
快速开始
如下,引入当前包就可以快速的使用
import "gopkg.in/gookit/color.v1" // 推荐 // 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")) // 自定义颜色 color.New(color.FgWhite, color.BgBlack).Println("custom color style") // 也可以: color.Style{color.FgCyan, color.OpBold}.Println("custom color style") // internal style: color.Info.Println("message") color.Warn.Println("message") color.Error.Println("message") // 使用颜色标签 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") }
go run ./_examples/app.go
构建风格
// 仅设置前景色 color.FgCyan.Printf("Simple to use %s\n", "color") // 仅设置背景色 color.BgRed.Printf("Simple to use %s\n", "color") // 完全自定义 前景色 背景色 选项 style := color.New(color.FgWhite, color.BgBlack, color.OpBold) style.Println("custom color style") // 也可以: color.Style{color.FgCyan, color.OpBold}.Println("custom color style")
// 设置console颜色 color.Set(color.FgCyan) // 输出信息 fmt.Print("message") // 重置console颜色 color.Reset()
使用内置风格
基础颜色方法
cmd.exe
color.Boldcolor.Blackcolor.Whitecolor.Graycolor.Redcolor.Greencolor.Yellowcolor.Bluecolor.Magentacolor.Cyan
color.Bold.Println("bold message") color.Yellow.Println("yellow message")
go run ./_examples/basiccolor.go
扩展风格方法
cmd.exe
color.Infocolor.Notecolor.Lightcolor.Errorcolor.Dangercolor.Noticecolor.Successcolor.Commentcolor.Primarycolor.Warningcolor.Questioncolor.Secondary
color.Info.Println("Info message") color.Success.Println("Success message")
go run ./_examples/theme_style.go
使用颜色标签
cmd.exe
使用内置的颜色标签,可以非常方便简单的构建自己需要的任何格式
// 使用内置的 color tag color.Print("<suc>he</><comment>llo</>, <cyan>wel</><red>come</>") color.Println("<suc>hello</>") color.Println("<error>hello</>") color.Println("<warning>hello</>") // 自定义颜色属性 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")
go run ./_examples/colortag.go
256色使用
使用前景或后景色
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")
使用风格
可同时设置前景和背景色
color.S256(fgAndBg ...uint8) *Style256
s := color.S256(32, 203) s.Println("message") s.Printf("format %s", "message")
go run ./_examples/color256.go
RGB色彩使用
使用前景或后景色
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")
color.HEX(hex string, isBg ...bool) RGBColor
c := HEX("ccc") // 也可以写为: "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")
使用风格
可同时设置前景和背景色
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")
color.HEXStyle(fg string, bg ...string) *RGBStyle
s := HEXStyle("11aa23", "eee") s.Println("message") s.Printf("format %s", "message")
CLI 应用包
快速的构建CLI命令应用
Gookit 工具包
参考项目
License
MIT