2
1
Fork 0
swim/colors.go

60 lines
1.4 KiB
Go

package main
const (
SimpleColor int = iota
EightBitColor
TrueColor
)
type Styles struct {
Mode int
Header string
Message string
MessageErr string
Lane string
LaneSelected string
Input string
}
var style Styles
var colors = map[int]map[string]string{
SimpleColor: map[string]string{
"Header": "\033[34;107;1m", // bold blue on bright white
"Message": "\033[97;42m", // bright white on green
"MessageErr": "\033[97;41m", // bright white on red
"Lane": "\033[30;104m", // black on bright blue
"LaneSelected": "\033[30;103m", // black on bright yellow
"Input": "\033[30;107m", // black on bright white
},
EightBitColor: map[string]string{
"Header": "\033[48;5;254m\033[38;5;21\033[1m",
"Message": "\033[48;5;35m\033[38;5;231m",
"MessageErr": "\033[48;5;124m\033[38;5;231m",
"Lane": "\033[48;5;63m\033[38;5;235m",
"Input": "\033[48;5;231m\033[38;5;235",
},
TrueColor: map[string]string{
"Header": "",
"Message": "",
"MessageErr": "",
"Lane": "",
"Input": "",
},
}
func (s *Styles) Init(mode int) {
if mode == TrueColor || mode == EightBitColor {
s.Mode = mode
} else {
s.Mode = SimpleColor
}
s.Header = colors[s.Mode]["Header"]
s.Message = colors[s.Mode]["Message"]
s.MessageErr = colors[s.Mode]["MessageErr"]
s.Lane = colors[s.Mode]["Lane"]
s.LaneSelected = colors[s.Mode]["LaneSelected"]
s.Input = colors[s.Mode]["Input"]
}