style.go

 1package cellbuf
 2
 3import (
 4	"github.com/charmbracelet/colorprofile"
 5)
 6
 7// Convert converts a style to respect the given color profile.
 8func ConvertStyle(s Style, p colorprofile.Profile) Style {
 9	switch p {
10	case colorprofile.TrueColor:
11		return s
12	case colorprofile.Ascii:
13		s.Fg = nil
14		s.Bg = nil
15		s.Ul = nil
16	case colorprofile.NoTTY:
17		return Style{}
18	}
19
20	if s.Fg != nil {
21		s.Fg = p.Convert(s.Fg)
22	}
23	if s.Bg != nil {
24		s.Bg = p.Convert(s.Bg)
25	}
26	if s.Ul != nil {
27		s.Ul = p.Convert(s.Ul)
28	}
29
30	return s
31}