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 Citron: charmtone.Citron,
49
50 Green: charmtone.Julep,
51 GreenDark: charmtone.Guac,
52 GreenLight: charmtone.Bok,
53
54 Red: charmtone.Coral,
55 RedDark: charmtone.Sriracha,
56 RedLight: charmtone.Salmon,
57 Cherry: charmtone.Cherry,
58 }
59
60 // Text selection.
61 t.TextSelection = lipgloss.NewStyle().Foreground(charmtone.Salt).Background(charmtone.Charple)
62
63 // LSP and MCP status.
64 t.ItemOfflineIcon = lipgloss.NewStyle().Foreground(charmtone.Squid).SetString("●")
65 t.ItemBusyIcon = t.ItemOfflineIcon.Foreground(charmtone.Citron)
66 t.ItemErrorIcon = t.ItemOfflineIcon.Foreground(charmtone.Coral)
67 t.ItemOnlineIcon = t.ItemOfflineIcon.Foreground(charmtone.Guac)
68
69 t.YoloIconFocused = lipgloss.NewStyle().Foreground(charmtone.Oyster).Background(charmtone.Citron).Bold(true).SetString(" ! ")
70 t.YoloIconBlurred = t.YoloIconFocused.Foreground(charmtone.Pepper).Background(charmtone.Squid)
71 t.YoloDotsFocused = lipgloss.NewStyle().Foreground(charmtone.Zest).SetString(":::")
72 t.YoloDotsBlurred = t.YoloDotsFocused.Foreground(charmtone.Squid)
73
74 return t
75}