Библиотека для работы с цветом в командной строке с поддержкой true color, универсальными методами API и поддержкой Windows.
<green>message</>
.
go get github.com/gookit/color
package main
import (
"fmt"
"github.com/gookit/color"
)
func main() {
// быстрое использование функций пакета
color.Redp("Simple to use color")
color.Redln("Simple to use color")
color.Greenp("Simple to use color\n")
color.Cyanln("Simple to use color")
color.Yellowln("Simple to use color")
// быстрое использование подобно fmt.Print*
color.Red.Println("Simple to use color")
color.Green.Print("Simple to use color\n")
color.Cyan.Printf("Simple to use %s\n", "color")
color.Yellow.Printf("Simple to use %s\n", "color")
// использование подобно функции
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")
// внутренняя тема/стиль:
color.Info.Tips("message")
color.Info.Prompt("message")
color.Info.Println("message")
color.Warn.Println("message")
color.Error.Println("message")
// использовать стиль тега
color.Print("<suc>he</><comment>llo</>, <cyan>wel</><red>come</>\n")
}
``` Данный текст написан на языке Go.
custom label attr: поддерживает использование 16 названий цветов, 256 значений цветов, значений RGB и шестнадцатеричных значений цвета color.Println("<fg=11aa23>he</><bg=120,35,156>llo</>, <fg=167;bg=232>wel</><fg=red>come</>")
// применить тег стиля
color.Tag("info").Println("текст в стиле info")
// сообщение с подсказкой
color.Info.Prompt("сообщение в стиле подсказки")
color.Warn.Prompt("сообщение в стиле подсказки")
// сообщения с советами
color.Info.Tips("сообщение в стиле советов")
color.Warn.Tips("сообщение в стиле советов")
}
Запустите демонстрацию: `go run ./_examples/demo.go`

## Основные / 16 цветов
Поддерживается в любой версии Windows. Предоставляет общие методы API: `Print`, `Printf`, `Println`, `Sprint`, `Sprintf`.
```go
color.Bold.Println("жирное сообщение")
color.Black.Println("жирное сообщение")
color.White.Println("жирное сообщение")
color.Gray.Println("жирное сообщение")
color.Red.Println("жёлтое сообщение")
color.Blue.Println("жёлтое сообщение")
color.Cyan.Println("жёлтое сообщение")
color.Yellow.Println("жёлтое сообщение")
color.Magenta.Println("жёлтое сообщение")
// Использовать только цвет переднего плана
color.FgCyan.Printf("Простое использование %s\n", "цвет")
// Использовать только фоновый цвет
color.BgRed.Printf("Простое использование %s\n", "цвет")
Запустите демонстрацию: go run ./_examples/color_16.go
// Полностью пользовательский: передний план, фон, опция
myStyle := color.New(color.FgWhite, color.BgBlack, color.OpBold)
myStyle.Println("пользовательский стиль цвета")
// Также можно:
color.Style{color.FgCyan, color.OpBold}.Println("пользовательский стиль цвета")
Пользовательская настройка параметров консоли:
// Установить цвет консоли
color.Set(color.FgCyan)
// Вывести сообщение
fmt.Print("message")
// Сбросить настройки консоли
color.Reset()
Предоставляет общие методы API: Print
, Printf
, Println
, Sprint
, Sprintf
Вывести сообщение с использованием определённого стиля:
color.Info.Println("Сообщение Info")
color.Note.Println("Сообщение Note")
color.Notice.Println("Сообщение Notice")
color.Error.Println("Сообщение Error")
color.Danger.Println("Сообщение Danger")
color.Warn.Println("Сообщение Warn")
color.Debug.Println("Сообщение Debug")
color.Primary.Println("Сообщение Primary")
color.Question.Println("Сообщение Question")
color.Secondary.Println("Сообщение Secondary")
Запустите демонстрацию: go run ./_examples/theme_basic.go
Стиль с советами
color.Info.Tips("Советы Info")
color.Note.Tips("Советы Note")
color.Notice.Tips("Советы Notice")
color.Error.Tips("Советы Error")
color.Danger.Tips("Советы Danger")
color.Warn.Tips("Советы Warn")
color.Debug.Tips("Советы Debug")
color.Primary.Tips("Советы Primary")
color.Question.Tips("Советы Question")
color.Secondary.Tips("Советы Secondary")
Запустите демонстрацию: go run ./_examples/theme_tips.go
Стиль запроса
color.Info.Prompt("Запрос Info")
color.Note.Prompt("Запрос Note")
color.Notice.Prompt("Запрос Notice")
color.Error.Prompt("Запрос Error")
color.Danger.Prompt("Запрос Danger")
color.Warn.Prompt("Запрос Warn")
color.Debug.Prompt("Запрос Debug")
color.Primary.Prompt("Запрос Primary")
color.Question.Prompt("Запрос Question")
color.Secondary.Prompt("Запрос Secondary")
Запустите демонстрацию: go run ./_examples/theme_prompt.go
Блочный стиль
color.Info.Block("Блок сообщений Info")
color.Note.Block("Блок сообщений Note")
color.Notice.Block("Блок сообщений Notice")
color.Error.Block("Блок сообщений Error")
color.Danger.Block("Блок сообщений Danger")
color.Warn.Block("Блок сообщений Warn")
color.Debug.Block("Блок сообщений Debug")
color.Primary.Block("Блок сообщений Primary")
color.Question.Block("Блок сообщений Question")
color.Secondary.Block("Блок сообщений Secondary")
Запустите демонстрацию: go run ./_examples/theme_block.go
Поддержка 256 цветов в Windows CMD, PowerShell environment after
v1.2.4
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")
Can be used to set foreground and background colors at the same time.
S256(fgAndBg ...uint8) *Style256
s := color.S256(32, 203)
s.Println("message")
s.Printf("format %s", "message")
with options:
s := color.S256(32, 203)
s.SetOpts(color.Opts{color.OpBold})
s.Println("style with options")
s.Printf("style with %s\n", "options")
Run demo: go run ./_examples/color_256.go
RGB/True color
RGB colors support Windows
CMD
,PowerShell
environment afterv1.2.4
Preview:
Run demo:
Run demo: go run ./_examples/color_rgb.go
example:
color.RGB(30, 144, 255).Println("message. use RGB number")
color.HEX("#1976D2").Println("blue-darken")
color.HEX("#D50000", true).Println("red-accent. use HEX style")
color.RGBStyleFromString("213,0,0").Println("red-accent. use RGB number")
color.HEXStyle("eee", "D50000").Println("deep-purple 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 := color.HEX("ccc") // can also: "cccccc" "#cccccc"
c.Println("message")
c.Printf("format %s", "message")
c = color.HEX("aabbcc", true) // as bg color
c.Println("message")
c.Printf("format %s", "message")
Can be used to set the foreground and background colors at the same time.
color.NewRGBStyle(fg RGBColor, bg ...RGBColor) *RGBStyle
s := color.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 := color.HEXStyle("11aa23", "eee")
s.Println("message")
s.Printf("format %s", "message")
with options:
s := color.HEXStyle("11aa23", "eee")
s.SetOpts(color.Opts{color.OpBold})
s.Println("style with options")
s.Printf("style with %s\n", "options")
Supported on Windows cmd.exe
PowerShell
.
// 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")
// Custom label attr: Supports the use of 16 color names, 256 color values, rgb color values and hex color values
color.Println("<fg=11aa23>he</><bg=120,35,156>llo</>, <fg=167;bg=232>wel</><fg=red>come</>")
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/color_tag.go
Supports conversion between Rgb, 256, 16 colors, Rgb <=> 256 <=> 16
basic := color.Red
basic.Println("basic color")
c256 := color.Red.C256()
c256.Println("256 color")
c256.C16().Println("basic color")
rgb := color.Red.RGB()
rgb.Println("rgb color")
rgb.C256().Println("256 color")
More functions for convert to RGBColor
:
func RGBFromSlice(rgb []uint8, isBg ...bool) RGBColor
func RGBFromString(rgb string, 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
Функции для работы с цветом
Есть несколько полезных функций:
Более полезные функции см. на https://pkg.go.dev/github.com/gookit/color.
Проекты, использующие цвет
Вот некоторые проекты, которые используют https://github.com/gookit/color:
Пакеты Gookit
См. также
Лицензия: MIT.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )