Skip to main content

kaizen/ui/
theme.rs

1// SPDX-License-Identifier: AGPL-3.0-or-later
2//! Color constants for TUI.
3
4use ratatui::style::Color;
5
6pub const RUNNING: Color = Color::LightGreen;
7pub const WAITING: Color = Color::Yellow;
8pub const IDLE: Color = Color::Cyan;
9pub const DONE: Color = Color::Gray;
10
11pub const AGENT_CURSOR: Color = Color::Blue;
12pub const AGENT_CLAUDE: Color = Color::Magenta;
13pub const AGENT_CODEX: Color = Color::Red;
14pub const AGENT_VIBE: Color = Color::LightGreen;
15pub const AGENT_OTHER: Color = Color::White;
16
17pub const BORDER_ACTIVE: Color = Color::White;
18pub const BORDER_INACTIVE: Color = Color::DarkGray;
19
20/// Color for agent name.
21pub fn agent_color(agent: &str) -> Color {
22    match agent {
23        "cursor" => AGENT_CURSOR,
24        "claude" => AGENT_CLAUDE,
25        "codex" => AGENT_CODEX,
26        "vibe" => AGENT_VIBE,
27        "goose" => Color::LightYellow,
28        "opencode" => Color::LightCyan,
29        "copilot-cli" | "copilot-vscode" => Color::Green,
30        _ => AGENT_OTHER,
31    }
32}
33
34/// Color for status string.
35pub fn status_color(status: &str) -> Color {
36    match status {
37        "Running" => RUNNING,
38        "Waiting" => WAITING,
39        "Idle" => IDLE,
40        _ => DONE,
41    }
42}