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 keyword: charmtone.Blush,
25
26 fgBase: charmtone.Ash,
27 fgMoreSubtle: charmtone.Squid,
28 fgSubtle: charmtone.Smoke,
29 fgMostSubtle: charmtone.Oyster,
30
31 onPrimary: charmtone.Butter,
32
33 bgBase: charmtone.Pepper,
34 bgLeastVisible: charmtone.BBQ,
35 bgLessVisible: charmtone.Charcoal,
36 bgMostVisible: charmtone.Iron,
37
38 separator: charmtone.Charcoal,
39
40 destructive: charmtone.Coral,
41 error: charmtone.Sriracha,
42 warningSubtle: charmtone.Zest,
43 warning: charmtone.Mustard,
44 busy: charmtone.Citron,
45 info: charmtone.Malibu,
46 infoMoreSubtle: charmtone.Sardine,
47 infoMostSubtle: charmtone.Damson,
48 success: charmtone.Julep,
49 successMoreSubtle: charmtone.Bok,
50 successMostSubtle: charmtone.Guac,
51 })
52}
53
54// HypercrushObsidiana returns the Hypercrush dark theme.
55func HypercrushObsidiana() Styles {
56 return quickStyle(quickStyleOpts{
57 primary: charmtone.Charple,
58 secondary: charmtone.Dolly,
59 accent: charmtone.Bok,
60
61 fgBase: charmtone.Ash,
62 fgMoreSubtle: charmtone.Squid,
63 fgSubtle: charmtone.Smoke,
64 fgMostSubtle: charmtone.Oyster,
65
66 onPrimary: charmtone.Butter,
67
68 bgBase: charmtone.Pepper,
69 bgLeastVisible: charmtone.BBQ,
70 bgLessVisible: charmtone.Charcoal,
71 bgMostVisible: charmtone.Iron,
72
73 separator: charmtone.Charcoal,
74
75 destructive: charmtone.Coral,
76 error: charmtone.Sriracha,
77 warningSubtle: charmtone.Zest,
78 warning: charmtone.Mustard,
79 busy: charmtone.Citron,
80 info: charmtone.Malibu,
81 infoMoreSubtle: charmtone.Sardine,
82 infoMostSubtle: charmtone.Damson,
83 success: charmtone.Julep,
84 successMoreSubtle: charmtone.Bok,
85 successMostSubtle: charmtone.Guac,
86 })
87}