60 lines
1.4 KiB
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"]
|
|
}
|