func (s *Style256) AddOpts(opts ...Color) *Style256 {
	s.opts.Add(opts...)
	return s
}
AddOpts add options
package color
import (
	"fmt"
	"strconv"
	"strings"
)
const (
	TplFg256 = "38;5;%d"
	TplBg256 = "48;5;%d"
	Fg256Pfx = "38;5;"
	Bg256Pfx = "48;5;"
)
type Color256 [2]uint8
type Bit8Color = Color256  
var emptyC256 = Color256{1: 99}
func Bit8(val uint8, isBg ...bool) Color256 {
	return C256(val, isBg...)
}
func C256(val uint8, isBg ...bool) Color256 {
	bc := Color256{val}
	if len(isBg) > 0 && isBg[0] {
		bc[1] = AsBg
	}
	return bc
}
func (c Color256) Set() error {
	return SetTerminal(c.String())
}
func (c Color256) Reset() error {
	return ResetTerminal()
}
func (c Color256) Print(a ...interface{}) {
	doPrintV2(c.String(), fmt.Sprint(a...))
}
func (c Color256) Printf(format string, a ...interface{}) {
	doPrintV2(c.String(), fmt.Sprintf(format, a...))
}
func (c Color256) Println(a ...interface{}) {
	doPrintlnV2(c.String(), a)
}
func (c Color256) Sprint(a ...interface{}) string {
	return RenderCode(c.String(), a...)
}
func (c Color256) Sprintf(format string, a ...interface{}) string {
	return RenderString(c.String(), fmt.Sprintf(format, a...))
}
func (c Color256) C16() Color {
	return c.Basic()
}
func (c Color256) Basic() Color {
	return Color(c[0])  
}
func (c Color256) RGB() RGBColor {
	return RGBFromSlice(C256ToRgb(c[0]), c[1] == AsBg)
}
func (c Color256) RGBColor() RGBColor {
	return c.RGB()
}
func (c Color256) Value() uint8 {
	return c[0]
}
func (c Color256) Code() string {
	return strconv.Itoa(int(c[0]))
}
func (c Color256) FullCode() string {
	return c.String()
}
func (c Color256) String() string {
	if c[1] == AsFg {  
		return Fg256Pfx + strconv.Itoa(int(c[0]))
	}
	if c[1] == AsBg {  
		return Bg256Pfx + strconv.Itoa(int(c[0]))
	}
	return ""  
}
func (c Color256) IsFg() bool {
	return c[1] == AsFg
}
func (c Color256) ToFg() Color256 {
	c[1] = AsFg
	return c
}
func (c Color256) IsBg() bool {
	return c[1] == AsBg
}
func (c Color256) ToBg() Color256 {
	c[1] = AsBg
	return c
}
func (c Color256) IsEmpty() bool {
	return c[1] > 1
}
type Style256 struct {
	Name string
	opts Opts
	fg, bg Color256
}
func S256(fgAndBg ...uint8) *Style256 {
	s := &Style256{}
	vl := len(fgAndBg)
	if vl > 0 {  
		s.fg = Color256{fgAndBg[0], 1}
		if vl > 1 {  
			s.bg = Color256{fgAndBg[1], 1}
		}
	}
	return s
}
func (s *Style256) Set(fgVal, bgVal uint8, opts ...Color) *Style256 {
	s.fg = Color256{fgVal, 1}
	s.bg = Color256{bgVal, 1}
	s.opts.Add(opts...)
	return s
}
func (s *Style256) SetBg(bgVal uint8) *Style256 {
	s.bg = Color256{bgVal, 1}
	return s
}
func (s *Style256) SetFg(fgVal uint8) *Style256 {
	s.fg = Color256{fgVal, 1}
	return s
}
func (s *Style256) SetOpts(opts Opts) *Style256 {
	s.opts = opts
	return s
}