func New() *Color {
	return &Color{}
}
New creates a Color instance.
package color
import (
	"bytes"
	"fmt"
)
type (
	inner func(interface{}, []string, *Color) string
)
const (
	Blk = "30"
	Rd = "31"
	Grn = "32"
	Yel = "33"
	Blu = "34"
	Mgn = "35"
	Cyn = "36"
	Wht = "37"
	Gry = "90"
	BlkBg = "40"
	RdBg = "41"
	GrnBg = "42"
	YelBg = "43"
	BluBg = "44"
	MgnBg = "45"
	CynBg = "46"
	WhtBg = "47"
	R = "0"
	B = "1"
	D = "2"
	I = "3"
	U = "4"
	In = "7"
	H = "8"
	S = "9"
)
var (
	black   = outer(Blk)
	red     = outer(Rd)
	green   = outer(Grn)
	yellow  = outer(Yel)
	blue    = outer(Blu)
	magenta = outer(Mgn)
	cyan    = outer(Cyn)
	white   = outer(Wht)
	grey    = outer(Gry)
	blackBg   = outer(BlkBg)
	redBg     = outer(RdBg)
	greenBg   = outer(GrnBg)
	yellowBg  = outer(YelBg)
	blueBg    = outer(BluBg)
	magentaBg = outer(MgnBg)
	cyanBg    = outer(CynBg)
	whiteBg   = outer(WhtBg)
	reset     = outer(R)
	bold      = outer(B)
	dim       = outer(D)
	italic    = outer(I)
	underline = outer(U)
	inverse   = outer(In)
	hidden    = outer(H)
	strikeout = outer(S)
	global = New()
)
func outer(n string) inner {
	return func(msg interface{}, styles []string, c *Color) string {
		if c.disabled {
			return fmt.Sprintf("%v", msg)
		}
		b := new(bytes.Buffer)
		b.WriteString("\x1b[")
		b.WriteString(n)
		for _, s := range styles {
			b.WriteString(";")
			b.WriteString(s)
		}
		b.WriteString("m")
		return fmt.Sprintf("%s%v\x1b[0m", b.String(), msg)
	}
}
type (
	Color struct {
		disabled bool
	}
)