Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
tui: Use default colors in theme
Erik Kundt committed 3 years ago
commit a5d85a0d244675eca2d3e1b867aba56656d2124d
parent 35ce6663c15c84a9995bdbee82bad163a41c2a4b
2 files changed +45 -28
modified 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: '∙',
modified 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<ContextBar> {
+
pub fn context(theme: &Theme, patch: (PatchId, &Patch), profile: &Profile) -> Widget<ContextBar> {
    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);