1package styles
2
3import "github.com/charmbracelet/x/exp/charmtone"
4
5// ThemeForProvider returns the Styles associated with the given provider
6// ID. Unknown or empty provider IDs yield the default Charmtone Pantera
7// theme.
8func ThemeForProvider(providerID string) Styles {
9 switch providerID {
10 case "hyper":
11 return HypercrushObsidiana()
12 default:
13 return CharmtonePantera()
14 }
15}
16
17// CharmtonePantera returns the Charmtone dark theme. It's the default style
18// for the UI.
19func CharmtonePantera() Styles {
20 return quickStyle(quickStyleOpts{
21 primary: charmtone.Charple,
22 secondary: charmtone.Dolly,
23 accent: charmtone.Bok,
24
25 fgBase: charmtone.Ash,
26 fgMoreSubtle: charmtone.Squid,
27 fgSubtle: charmtone.Smoke,
28 fgMostSubtle: charmtone.Oyster,
29
30 onPrimary: charmtone.Butter,
31
32 bgBase: charmtone.Pepper,
33 bgLeastVisible: charmtone.BBQ,
34 bgLessVisible: charmtone.Charcoal,
35 bgMostVisible: charmtone.Iron,
36
37 separator: charmtone.Charcoal,
38
39 destructive: charmtone.Coral,
40 error: charmtone.Sriracha,
41 warningSubtle: charmtone.Zest,
42 warning: charmtone.Mustard,
43 busy: charmtone.Citron,
44 info: charmtone.Malibu,
45 infoMoreSubtle: charmtone.Sardine,
46 infoMostSubtle: charmtone.Damson,
47 success: charmtone.Julep,
48 successMoreSubtle: charmtone.Bok,
49 successMostSubtle: charmtone.Guac,
50 })
51}
52
53// HypercrushObsidiana returns the Hypercrush dark theme.
54func HypercrushObsidiana() Styles {
55 return quickStyle(quickStyleOpts{
56 primary: charmtone.Charple,
57 secondary: charmtone.Dolly,
58 accent: charmtone.Bok,
59
60 fgBase: charmtone.Ash,
61 fgMoreSubtle: charmtone.Squid,
62 fgSubtle: charmtone.Smoke,
63 fgMostSubtle: charmtone.Oyster,
64
65 onPrimary: charmtone.Butter,
66
67 bgBase: charmtone.Pepper,
68 bgLeastVisible: charmtone.BBQ,
69 bgLessVisible: charmtone.Charcoal,
70 bgMostVisible: charmtone.Iron,
71
72 separator: charmtone.Charcoal,
73
74 destructive: charmtone.Coral,
75 error: charmtone.Sriracha,
76 warningSubtle: charmtone.Zest,
77 warning: charmtone.Mustard,
78 busy: charmtone.Citron,
79 info: charmtone.Malibu,
80 infoMoreSubtle: charmtone.Sardine,
81 infoMostSubtle: charmtone.Damson,
82 success: charmtone.Julep,
83 successMoreSubtle: charmtone.Bok,
84 successMostSubtle: charmtone.Guac,
85 })
86}