1use anstyle::{AnsiColor, Color, Style};
7
8pub const ACCENT: Style = Style::new()
12 .fg_color(Some(Color::Ansi(AnsiColor::BrightMagenta)))
13 .bold();
14
15pub const DIM: Style = Style::new().fg_color(Some(Color::Ansi(AnsiColor::BrightBlack)));
17
18pub const BOLD: Style = Style::new().bold();
20
21pub const OK: Style = Style::new().fg_color(Some(Color::Ansi(AnsiColor::Green)));
23
24pub const ERR: Style = Style::new()
26 .fg_color(Some(Color::Ansi(AnsiColor::BrightRed)))
27 .bold();
28
29pub const CYAN: Style = Style::new().fg_color(Some(Color::Ansi(AnsiColor::Cyan)));
31
32pub const YELLOW: Style = Style::new().fg_color(Some(Color::Ansi(AnsiColor::Yellow)));
34
35pub const WHITE: Style = Style::new().fg_color(Some(Color::Ansi(AnsiColor::BrightWhite)));
37
38pub const WHITE_BOLD: Style = Style::new()
40 .fg_color(Some(Color::Ansi(AnsiColor::BrightWhite)))
41 .bold();
42
43pub const BADGE_CYAN: Style = Style::new()
47 .bg_color(Some(Color::Ansi(AnsiColor::Cyan)))
48 .fg_color(Some(Color::Ansi(AnsiColor::BrightWhite)))
49 .bold();
50
51pub const BADGE_INTRO: Style = Style::new()
53 .bg_color(Some(Color::Ansi(AnsiColor::Cyan)))
54 .fg_color(Some(Color::Ansi(AnsiColor::Black)))
55 .bold();
56
57pub const BADGE_GREEN: Style = Style::new()
59 .bg_color(Some(Color::Ansi(AnsiColor::Green)))
60 .fg_color(Some(Color::Ansi(AnsiColor::BrightWhite)))
61 .bold();
62
63pub const BADGE_YELLOW: Style = Style::new()
65 .bg_color(Some(Color::Ansi(AnsiColor::Yellow)))
66 .fg_color(Some(Color::Ansi(AnsiColor::Black)))
67 .bold();
68
69pub const DIAMOND: &str = "◆";
73pub const CROSS: &str = "✘";
75pub const BAR: &str = "│";
77pub const ARROW: &str = "➜";
79pub const CHECK: &str = "✓";
81pub const BULLET: &str = "▸";
83pub const PHASE: &str = "▶";
85pub const BRANCH: &str = "└─";
87
88pub fn theme_styles(theme: &str) -> (Style, Style) {
103 match theme {
104 "magenta" | "purple" => (
105 Style::new()
106 .bg_color(Some(Color::Ansi(AnsiColor::Magenta)))
107 .fg_color(Some(Color::Ansi(AnsiColor::BrightWhite)))
108 .bold(),
109 Style::new()
110 .fg_color(Some(Color::Ansi(AnsiColor::BrightMagenta)))
111 .bold(),
112 ),
113 "green" => (
114 Style::new()
115 .bg_color(Some(Color::Ansi(AnsiColor::Green)))
116 .fg_color(Some(Color::Ansi(AnsiColor::BrightWhite)))
117 .bold(),
118 Style::new()
119 .fg_color(Some(Color::Ansi(AnsiColor::Green)))
120 .bold(),
121 ),
122 "blue" => (
123 Style::new()
124 .bg_color(Some(Color::Ansi(AnsiColor::Blue)))
125 .fg_color(Some(Color::Ansi(AnsiColor::BrightWhite)))
126 .bold(),
127 Style::new()
128 .fg_color(Some(Color::Ansi(AnsiColor::BrightBlue)))
129 .bold(),
130 ),
131 "yellow" => (
132 Style::new()
133 .bg_color(Some(Color::Ansi(AnsiColor::Yellow)))
134 .fg_color(Some(Color::Ansi(AnsiColor::Black)))
135 .bold(),
136 Style::new()
137 .fg_color(Some(Color::Ansi(AnsiColor::Yellow)))
138 .bold(),
139 ),
140 "red" => (
141 Style::new()
142 .bg_color(Some(Color::Ansi(AnsiColor::Red)))
143 .fg_color(Some(Color::Ansi(AnsiColor::BrightWhite)))
144 .bold(),
145 Style::new()
146 .fg_color(Some(Color::Ansi(AnsiColor::BrightRed)))
147 .bold(),
148 ),
149 _ =>
150 {
152 (
153 Style::new()
154 .bg_color(Some(Color::Ansi(AnsiColor::Cyan)))
155 .fg_color(Some(Color::Ansi(AnsiColor::BrightWhite)))
156 .bold(),
157 Style::new()
158 .fg_color(Some(Color::Ansi(AnsiColor::Cyan)))
159 .bold(),
160 )
161 }
162 }
163}
164
165pub fn paint(style: Style, s: &str) -> String {
177 format!("{style}{s}{style:#}")
178}