charmtone.go

 1package styles
 2
 3import (
 4	"github.com/charmbracelet/lipgloss/v2"
 5	"github.com/charmbracelet/x/exp/charmtone"
 6)
 7
 8func NewCharmtoneTheme() *Theme {
 9	t := &Theme{
10		Name:   "charmtone",
11		IsDark: true,
12
13		Primary:   charmtone.Charple,
14		Secondary: charmtone.Dolly,
15		Tertiary:  charmtone.Bok,
16		Accent:    charmtone.Zest,
17
18		// Backgrounds
19		BgBase:        charmtone.Pepper,
20		BgBaseLighter: charmtone.BBQ,
21		BgSubtle:      charmtone.Charcoal,
22		BgOverlay:     charmtone.Iron,
23
24		// Foregrounds
25		FgBase:      charmtone.Ash,
26		FgMuted:     charmtone.Squid,
27		FgHalfMuted: charmtone.Smoke,
28		FgSubtle:    charmtone.Oyster,
29		FgSelected:  charmtone.Salt,
30
31		// Borders
32		Border:      charmtone.Charcoal,
33		BorderFocus: charmtone.Charple,
34
35		// Status
36		Success: charmtone.Guac,
37		Error:   charmtone.Sriracha,
38		Warning: charmtone.Zest,
39		Info:    charmtone.Malibu,
40
41		// Colors
42		White: charmtone.Butter,
43
44		BlueLight: charmtone.Sardine,
45		Blue:      charmtone.Malibu,
46
47		Yellow: charmtone.Mustard,
48
49		Green:      charmtone.Julep,
50		GreenDark:  charmtone.Guac,
51		GreenLight: charmtone.Bok,
52
53		Red:      charmtone.Coral,
54		RedDark:  charmtone.Sriracha,
55		RedLight: charmtone.Salmon,
56		Cherry:   charmtone.Cherry,
57	}
58
59	// LSP and MCP status.
60	t.ItemOfflineIcon = lipgloss.NewStyle().Foreground(charmtone.Squid).SetString("●")
61	t.ItemBusyIcon = t.ItemOfflineIcon.Foreground(charmtone.Citron)
62	t.ItemErrorIcon = t.ItemOfflineIcon.Foreground(charmtone.Coral)
63	t.ItemOnlineIcon = t.ItemOfflineIcon.Foreground(charmtone.Guac)
64
65	return t
66}