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; 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)] #[derive(Debug, Clone)]
pub struct Colors { pub struct Colors {
pub default_fg: Color, pub default_fg: Color,
pub tabs_fg: Color,
pub tabs_highlighted_fg: Color, pub tabs_highlighted_fg: Color,
pub workspaces_info_fg: Color, pub workspaces_info_fg: Color,
pub labeled_container_bg: Color, pub labeled_container_bg: Color,
@ -18,6 +24,12 @@ pub struct Colors {
pub browser_patch_list_tags: Color, pub browser_patch_list_tags: Color,
pub browser_patch_list_comments: Color, pub browser_patch_list_comments: Color,
pub browser_patch_list_timestamp: 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)] #[derive(Debug, Clone)]
@ -32,7 +44,7 @@ pub struct Icons {
/// The Radicle TUI theme. Will be defined in a JSON config file in the /// The Radicle TUI theme. Will be defined in a JSON config file in the
/// future. e.g.: /// future. e.g.:
/// { /// {
/// "name": "Radicle Dark", /// "name": "Default",
/// "colors": { /// "colors": {
/// "foreground": "#ffffff", /// "foreground": "#ffffff",
/// "propertyForeground": "#ffffff", /// "propertyForeground": "#ffffff",
@ -52,24 +64,29 @@ pub struct Theme {
pub fn default_dark() -> Theme { pub fn default_dark() -> Theme {
Theme { Theme {
name: String::from("Radicle Dark"), name: String::from("Default"),
colors: Colors { colors: Colors {
default_fg: Color::Rgb(200, 200, 200), default_fg: COLOR_DEFAULT_FG,
tabs_fg: Color::Rgb(100, 100, 100), tabs_highlighted_fg: Color::Magenta,
tabs_highlighted_fg: Color::Rgb(85, 85, 255), workspaces_info_fg: Color::Yellow,
workspaces_info_fg: Color::Rgb(220, 140, 40), labeled_container_bg: COLOR_DEFAULT_FAINT,
labeled_container_bg: Color::Rgb(20, 20, 20), item_list_highlighted_bg: COLOR_DEFAULT_DARKER,
item_list_highlighted_bg: Color::Rgb(40, 40, 40), property_name_fg: Color::Cyan,
property_name_fg: Color::Rgb(85, 85, 255), property_divider_fg: COLOR_DEFAULT_FG,
property_divider_fg: Color::Rgb(10, 206, 209), shortcut_short_fg: COLOR_DEFAULT_DARK,
shortcut_short_fg: Color::Rgb(100, 100, 100), shortcut_long_fg: COLOR_DEFAULT_DARKER,
shortcut_long_fg: Color::Rgb(70, 70, 70), shortcutbar_divider_fg: COLOR_DEFAULT_DARKER,
shortcutbar_divider_fg: Color::Rgb(70, 70, 70), browser_patch_list_title: COLOR_DEFAULT_FG,
browser_patch_list_title: Color::Rgb(200, 200, 200), browser_patch_list_author: Color::Gray,
browser_patch_list_author: Color::Rgb(85, 85, 255), browser_patch_list_tags: Color::Yellow,
browser_patch_list_tags: Color::Rgb(220, 140, 40), browser_patch_list_comments: COLOR_DEFAULT_DARK_FG,
browser_patch_list_comments: Color::Rgb(150, 150, 150), browser_patch_list_timestamp: COLOR_DEFAULT_DARK,
browser_patch_list_timestamp: Color::Rgb(100, 100, 100), 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 { icons: Icons {
property_divider: '', property_divider: '',

View File

@ -58,26 +58,26 @@ pub fn files(theme: &Theme, patch: (PatchId, &Patch), profile: &Profile) -> Widg
Widget::new(files) 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) = patch;
let id = patch::format_id(id); let id = patch::format_id(id);
let title = patch.title(); let title = patch.title();
let author = patch::format_author(patch, profile); let author = patch::format_author(patch, profile);
let comments = patch::format_comments(patch); 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} ")) let id = common::label(&format!(" {id} "))
.foreground(Color::Rgb(117, 113, 249)) .foreground(theme.colors.context_id_fg)
.background(Color::Rgb(40, 40, 40)); .background(theme.colors.context_id_bg);
let title = common::label(&format!(" {title} ")) let title = common::label(&format!(" {title} "))
.foreground(Color::Rgb(70, 70, 70)) .foreground(theme.colors.default_fg)
.background(Color::Rgb(40, 40, 40)); .background(theme.colors.context_bg);
let author = common::label(&format!(" {author} ")) let author = common::label(&format!(" {author} "))
.foreground(Color::Rgb(117, 113, 249)) .foreground(theme.colors.context_id_author_fg)
.background(Color::Rgb(40, 40, 40)); .background(theme.colors.context_bg);
let comments = common::label(&format!(" {comments} ")) let comments = common::label(&format!(" {comments} "))
.foreground(Color::Rgb(70, 70, 70)) .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); let context_bar = ContextBar::new(context, id, author, title, comments);