package main import ( "fmt" "github.com/charmbracelet/lipgloss" ) var currentThemeName = "dark" func applyTheme(name string) error { colorEnabled = true switch name { case "dark": titleStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("#F0B72F")) dimStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#777777")) activeStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("#FFFFFF")).Background(lipgloss.Color("#3B4261")) okStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#67C587")) warnStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#E5C07B")) badStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#E06C75")) editorLineStyle = lipgloss.NewStyle(). Foreground(lipgloss.Color("#D7DAE8")). Background(lipgloss.Color("#2C3045")) paneInactiveColor = lipgloss.Color("#50566F") paneActiveColor = lipgloss.Color("#F0B72F") authorPalette = []lipgloss.Color{ "#61AFEF", "#C678DD", "#56B6C2", "#E5C07B", "#E06C75", "#98C379", "#D19A66", "#7FC8FF", } codeHighlightTheme = "github-dark" markdownStyleName = "dark" quoteRailStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#777777")) selectedLineBackground = "\x1b[48;5;24m" suggestionRemoveBackground = "\x1b[48;5;52m" suggestionAddBackground = "\x1b[48;5;22m" changedRemoveBackground = "\x1b[48;2;55;0;0m" changedAddBackground = "\x1b[48;2;0;55;0m" case "light": titleStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("#9A6700")) dimStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#656D76")) activeStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("#FFFFFF")).Background(lipgloss.Color("#0969DA")) okStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#1A7F37")) warnStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#9A6700")) badStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#CF222E")) editorLineStyle = lipgloss.NewStyle(). Foreground(lipgloss.Color("#24292F")). Background(lipgloss.Color("#DDE8FF")) paneInactiveColor = lipgloss.Color("#8C959F") paneActiveColor = lipgloss.Color("#0969DA") authorPalette = []lipgloss.Color{ "#0550AE", "#8250DF", "#0A706F", "#9A6700", "#CF222E", "#116329", "#953800", "#0969DA", } codeHighlightTheme = "github" markdownStyleName = "light" quoteRailStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#656D76")) selectedLineBackground = "\x1b[48;5;153m" suggestionRemoveBackground = "\x1b[48;5;224m" suggestionAddBackground = "\x1b[48;5;194m" changedRemoveBackground = "\x1b[48;2;255;170;170m" changedAddBackground = "\x1b[48;2;170;230;170m" case "high-contrast": titleStyle = lipgloss.NewStyle().Bold(true).Underline(true).Foreground(lipgloss.Color("#FFFF00")) dimStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#FFFFFF")) activeStyle = lipgloss.NewStyle().Bold(true).Reverse(true) okStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("#00FF00")) warnStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("#FFFF00")) badStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("#FF5555")) editorLineStyle = lipgloss.NewStyle(). Foreground(lipgloss.Color("#FFFFFF")). Reverse(true) paneInactiveColor, paneActiveColor = lipgloss.Color("#FFFFFF"), lipgloss.Color("#FFFF00") authorPalette = []lipgloss.Color{"#00FFFF", "#FF55FF", "#FFFF00", "#00FF00", "#FFFFFF"} codeHighlightTheme, markdownStyleName = "github-dark", "dark" quoteRailStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("#FFFFFF")) selectedLineBackground = "\x1b[7m" suggestionRemoveBackground, suggestionAddBackground = "\x1b[48;5;88m", "\x1b[48;5;28m" changedRemoveBackground, changedAddBackground = "\x1b[48;5;88m", "\x1b[48;5;28m" case "no-color": colorEnabled = false titleStyle = lipgloss.NewStyle() dimStyle = lipgloss.NewStyle() activeStyle = lipgloss.NewStyle().Reverse(true) okStyle, warnStyle, badStyle = lipgloss.NewStyle(), lipgloss.NewStyle(), lipgloss.NewStyle() editorLineStyle = lipgloss.NewStyle().Reverse(true) paneInactiveColor, paneActiveColor = "", "" authorPalette = []lipgloss.Color{""} codeHighlightTheme, markdownStyleName = "github", "notty" quoteRailStyle = lipgloss.NewStyle() selectedLineBackground, suggestionRemoveBackground, suggestionAddBackground = "", "", "" changedRemoveBackground, changedAddBackground = "", "" default: return fmt.Errorf("unknown theme %q", name) } currentThemeName = name commentMarkdownRenderers.Clear() return nil }