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