logrusorgru/aurora

logrusorgru/aurora は、Go言語のターミナル出力に色やスタイルを追加するANSIカラーライブラリ。

PrintfSprintfとの互換性があり、メソッドチェーンで複数のスタイルを組み合わせられる。

インストール

go get -u github.com/logrusorgru/aurora/v4

もしくはimport "github.com/logrusorgru/aurora/v4"を記述してgo mod tidyを実行し、go.modに追加する。

基本的な使い方

文字列に色をつける

aurora.色名(文字列)で文字列に色をつけられる。

package main

import (
	"fmt"
	"github.com/logrusorgru/aurora/v4"
)

func main() {
	fmt.Println("Hello,", aurora.Magenta("Aurora"))
	fmt.Println(aurora.Green("Success!"))
	fmt.Println(aurora.Red("Error!"))
}

メソッドチェーンでスタイルを組み合わせる

複数のメソッドをチェーンして、色と装飾を組み合わせられる。

fmt.Println(aurora.Bold(aurora.Cyan("Cyan Bold Text")))
fmt.Println(aurora.Red("Red").Bold().Underline())
fmt.Println(aurora.Green("Green").BgBlue().Bold())

Printf/Sprintfとの互換性

PrintfSprintfで数値やフォーマット済み文字列にも色をつけられる。

fmt.Printf("Count: %d\n", aurora.Green(42))
fmt.Printf("PI: %+1.2e\n", aurora.Cyan(3.14))

aurora.Sprintfでフォーマット文字列自体に色をつけることも可能。

fmt.Println(aurora.Sprintf(aurora.Magenta("Got it %d times"), aurora.Green(1240)))

利用可能なメソッド

文字色

基本的な8色と明るいバリエーションを使用できる。

  • Black() / BrightBlack()
  • Red() / BrightRed()
  • Green() / BrightGreen()
  • Yellow() / BrightYellow()
  • Blue() / BrightBlue()
  • Magenta() / BrightMagenta()
  • Cyan() / BrightCyan()
  • White() / BrightWhite()

背景色

Bgプレフィックスで背景色を指定する。

  • BgBlack() / BgBrightBlack()
  • BgRed() / BgBrightRed()
  • BgGreen() / BgBrightGreen()
  • BgYellow() / BgBrightYellow()
  • BgBlue() / BgBrightBlue()
  • BgMagenta() / BgBrightMagenta()
  • BgCyan() / BgBrightCyan()
  • BgWhite() / BgBrightWhite()
fmt.Println(aurora.Black("Black text").BgWhite())
fmt.Println(aurora.White("White text").BgRed())

テキスト装飾

  • Bold() - 太字
  • Faint() - 薄い
  • Italic() - イタリック
  • Underline() - 下線
  • SlowBlink() / RapidBlink() - 点滅
  • Reverse() - 反転表示
  • Conceal() - 隠す
  • CrossedOut() - 取り消し線
  • DoublyUnderline() - 二重下線
fmt.Println(aurora.Bold("Bold text"))
fmt.Println(aurora.Underline("Underlined text"))
fmt.Println(aurora.Red("Red").Bold().Underline())

8ビットカラー

Gray()Index()で256色パレットの色を指定できる。

// グレースケール(0-23)
fmt.Println(aurora.Gray(12, "Medium gray"))

// 8ビットカラーインデックス(0-255)
fmt.Println(aurora.Index(82, "Color 82"))
fmt.Println(aurora.BgIndex(200, "Background color 200"))

色の有効/無効の切り替え

環境変数や設定で色の出力を動的に制御できる。

// カラー出力を無効にする
au := aurora.New(aurora.WithColors(false))
fmt.Println(au.Red("This will not be colored"))

// カラー出力を有効にする
au = aurora.New(aurora.WithColors(true))
fmt.Println(au.Red("This will be red"))