tui: Use default colors in theme

This commit is contained in:
Erik Kundt 2023-05-09 14:15:44 +02:00 committed by Alexis Sellier
parent 35ce6663c1
commit a5d85a0d24
No known key found for this signature in database
2 changed files with 45 additions and 28 deletions

View File

@ -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: '',

View File

@ -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);