From a5d85a0d244675eca2d3e1b867aba56656d2124d Mon Sep 17 00:00:00 2001 From: Erik Kundt Date: Tue, 9 May 2023 14:15:44 +0200 Subject: [PATCH] tui: Use default colors in theme --- radicle-tui/src/ui/theme.rs | 55 +++++++++++++++++++----------- radicle-tui/src/ui/widget/patch.rs | 18 +++++----- 2 files changed, 45 insertions(+), 28 deletions(-) diff --git a/radicle-tui/src/ui/theme.rs b/radicle-tui/src/ui/theme.rs index d529091f..d6bc04f2 100644 --- a/radicle-tui/src/ui/theme.rs +++ b/radicle-tui/src/ui/theme.rs @@ -1,9 +1,15 @@ use tuirealm::props::Color; +const COLOR_DEFAULT_FG: Color = Color::Rgb(200, 200, 200); +const COLOR_DEFAULT_DARK_FG: Color = Color::Rgb(150, 150, 150); +const COLOR_DEFAULT_DARK: Color = Color::Rgb(100, 100, 100); +const COLOR_DEFAULT_DARKER: Color = Color::Rgb(70, 70, 70); +const COLOR_DEFAULT_DARKEST: Color = Color::Rgb(40, 40, 40); +const COLOR_DEFAULT_FAINT: Color = Color::Rgb(20, 20, 20); + #[derive(Debug, Clone)] pub struct Colors { pub default_fg: Color, - pub tabs_fg: Color, pub tabs_highlighted_fg: Color, pub workspaces_info_fg: Color, pub labeled_container_bg: Color, @@ -18,6 +24,12 @@ pub struct Colors { pub browser_patch_list_tags: Color, pub browser_patch_list_comments: Color, pub browser_patch_list_timestamp: Color, + pub context_bg: Color, + pub context_light_bg: Color, + pub context_badge_bg: Color, + pub context_id_fg: Color, + pub context_id_bg: Color, + pub context_id_author_fg: Color, } #[derive(Debug, Clone)] @@ -32,7 +44,7 @@ pub struct Icons { /// The Radicle TUI theme. Will be defined in a JSON config file in the /// future. e.g.: /// { -/// "name": "Radicle Dark", +/// "name": "Default", /// "colors": { /// "foreground": "#ffffff", /// "propertyForeground": "#ffffff", @@ -52,24 +64,29 @@ pub struct Theme { pub fn default_dark() -> Theme { Theme { - name: String::from("Radicle Dark"), + name: String::from("Default"), colors: Colors { - default_fg: Color::Rgb(200, 200, 200), - tabs_fg: Color::Rgb(100, 100, 100), - tabs_highlighted_fg: Color::Rgb(85, 85, 255), - workspaces_info_fg: Color::Rgb(220, 140, 40), - labeled_container_bg: Color::Rgb(20, 20, 20), - item_list_highlighted_bg: Color::Rgb(40, 40, 40), - property_name_fg: Color::Rgb(85, 85, 255), - property_divider_fg: Color::Rgb(10, 206, 209), - shortcut_short_fg: Color::Rgb(100, 100, 100), - shortcut_long_fg: Color::Rgb(70, 70, 70), - shortcutbar_divider_fg: Color::Rgb(70, 70, 70), - browser_patch_list_title: Color::Rgb(200, 200, 200), - browser_patch_list_author: Color::Rgb(85, 85, 255), - browser_patch_list_tags: Color::Rgb(220, 140, 40), - browser_patch_list_comments: Color::Rgb(150, 150, 150), - browser_patch_list_timestamp: Color::Rgb(100, 100, 100), + default_fg: COLOR_DEFAULT_FG, + tabs_highlighted_fg: Color::Magenta, + workspaces_info_fg: Color::Yellow, + labeled_container_bg: COLOR_DEFAULT_FAINT, + item_list_highlighted_bg: COLOR_DEFAULT_DARKER, + property_name_fg: Color::Cyan, + property_divider_fg: COLOR_DEFAULT_FG, + shortcut_short_fg: COLOR_DEFAULT_DARK, + shortcut_long_fg: COLOR_DEFAULT_DARKER, + shortcutbar_divider_fg: COLOR_DEFAULT_DARKER, + browser_patch_list_title: COLOR_DEFAULT_FG, + browser_patch_list_author: Color::Gray, + browser_patch_list_tags: Color::Yellow, + browser_patch_list_comments: COLOR_DEFAULT_DARK_FG, + browser_patch_list_timestamp: COLOR_DEFAULT_DARK, + context_bg: COLOR_DEFAULT_DARKEST, + context_light_bg: Color::Gray, + context_badge_bg: Color::LightRed, + context_id_fg: Color::Cyan, + context_id_bg: COLOR_DEFAULT_DARKEST, + context_id_author_fg: Color::Gray, }, icons: Icons { property_divider: '∙', diff --git a/radicle-tui/src/ui/widget/patch.rs b/radicle-tui/src/ui/widget/patch.rs index 8a1d1f3e..ad9d24e4 100644 --- a/radicle-tui/src/ui/widget/patch.rs +++ b/radicle-tui/src/ui/widget/patch.rs @@ -58,26 +58,26 @@ pub fn files(theme: &Theme, patch: (PatchId, &Patch), profile: &Profile) -> Widg Widget::new(files) } -pub fn context(_theme: &Theme, patch: (PatchId, &Patch), profile: &Profile) -> Widget { +pub fn context(theme: &Theme, patch: (PatchId, &Patch), profile: &Profile) -> Widget { let (id, patch) = patch; let id = patch::format_id(id); let title = patch.title(); let author = patch::format_author(patch, profile); let comments = patch::format_comments(patch); - let context = common::label(" patch ").background(Color::Rgb(238, 111, 248)); + let context = common::label(" patch ").background(theme.colors.context_badge_bg); let id = common::label(&format!(" {id} ")) - .foreground(Color::Rgb(117, 113, 249)) - .background(Color::Rgb(40, 40, 40)); + .foreground(theme.colors.context_id_fg) + .background(theme.colors.context_id_bg); let title = common::label(&format!(" {title} ")) - .foreground(Color::Rgb(70, 70, 70)) - .background(Color::Rgb(40, 40, 40)); + .foreground(theme.colors.default_fg) + .background(theme.colors.context_bg); let author = common::label(&format!(" {author} ")) - .foreground(Color::Rgb(117, 113, 249)) - .background(Color::Rgb(40, 40, 40)); + .foreground(theme.colors.context_id_author_fg) + .background(theme.colors.context_bg); let comments = common::label(&format!(" {comments} ")) .foreground(Color::Rgb(70, 70, 70)) - .background(Color::Rgb(50, 50, 50)); + .background(theme.colors.context_light_bg); let context_bar = ContextBar::new(context, id, author, title, comments);