mirror of
https://github.com/mikedilger/gossip.git
synced 2024-09-29 00:11:01 +00:00
Add standardized colors to Theme
This commit is contained in:
parent
233d970596
commit
b60358357e
@ -136,15 +136,15 @@ fn unixtime_to_string(timestamp: u64) -> String {
|
||||
fn manage_style(theme: &Theme, style: &mut Style) {
|
||||
let (bg_color, text_color, frame_color) = if theme.dark_mode {
|
||||
(
|
||||
Color32::from_gray(0x0A),
|
||||
Color32::from_gray(0xD4),
|
||||
Color32::from_gray(0x73),
|
||||
theme.neutral_950(),
|
||||
theme.neutral_300(),
|
||||
theme.neutral_500(),
|
||||
)
|
||||
} else {
|
||||
(
|
||||
Color32::from_gray(0xF5),
|
||||
Color32::from_gray(0x26),
|
||||
Color32::from_gray(0xA3),
|
||||
theme.neutral_100(),
|
||||
theme.neutral_800(),
|
||||
theme.neutral_400(),
|
||||
)
|
||||
};
|
||||
style.spacing.button_padding = vec2(16.0, 4.0);
|
||||
@ -172,9 +172,9 @@ fn manage_style(theme: &Theme, style: &mut Style) {
|
||||
|
||||
fn decline_style(theme: &Theme, style: &mut Style) {
|
||||
let (bg_color, text_color) = if theme.dark_mode {
|
||||
(Color32::WHITE, Color32::from_gray(0x26))
|
||||
(Color32::WHITE, theme.neutral_800())
|
||||
} else {
|
||||
(Color32::from_gray(0x26), Color32::WHITE)
|
||||
(theme.neutral_800(), Color32::WHITE)
|
||||
};
|
||||
style.spacing.button_padding = vec2(16.0, 4.0);
|
||||
style.visuals.widgets.noninteractive.weak_bg_fill = bg_color;
|
||||
|
@ -16,6 +16,68 @@ impl ThemeDef for DefaultTheme {
|
||||
"Default"
|
||||
}
|
||||
|
||||
// Palette
|
||||
fn neutral_50() -> Color32 {
|
||||
Color32::from_rgb(0xfa, 0xfa, 0xfa)
|
||||
} // #fafafa
|
||||
fn neutral_100() -> Color32 {
|
||||
Color32::from_rgb(0xf5, 0xf5, 0xf5)
|
||||
} // #f5f5f5
|
||||
fn neutral_200() -> Color32 {
|
||||
Color32::from_rgb(0xe5, 0xe5, 0xe5)
|
||||
} // #e5e5e5
|
||||
fn neutral_300() -> Color32 {
|
||||
Color32::from_rgb(0xd4, 0xd4, 0xd4)
|
||||
} // #d4d4d4
|
||||
fn neutral_400() -> Color32 {
|
||||
Color32::from_rgb(0xa3, 0xa3, 0xa3)
|
||||
} // #a3a3a3
|
||||
fn neutral_500() -> Color32 {
|
||||
Color32::from_rgb(0x73, 0x73, 0x73)
|
||||
} // #737373
|
||||
fn neutral_600() -> Color32 {
|
||||
Color32::from_rgb(0x52, 0x52, 0x52)
|
||||
} // #525252
|
||||
fn neutral_700() -> Color32 {
|
||||
Color32::from_rgb(0x40, 0x40, 0x40)
|
||||
} // #404040
|
||||
fn neutral_800() -> Color32 {
|
||||
Color32::from_rgb(0x26, 0x26, 0x26)
|
||||
} // #262626
|
||||
fn neutral_900() -> Color32 {
|
||||
Color32::from_rgb(0x17, 0x17, 0x17)
|
||||
} // #171717
|
||||
fn neutral_950() -> Color32 {
|
||||
Color32::from_rgb(0x0a, 0x0a, 0x0a)
|
||||
} // #0a0a0a
|
||||
fn accent_dark() -> Color32 {
|
||||
Color32::from_rgb(0x74, 0xa7, 0xcc)
|
||||
} // #74A7CC
|
||||
fn accent_dark_b20() -> Color32 {
|
||||
Color32::from_rgb(0x5D, 0x86, 0xa3)
|
||||
}
|
||||
fn accent_dark_w20() -> Color32 {
|
||||
Color32::from_rgb(0x90, 0xb9, 0xd6)
|
||||
}
|
||||
fn accent_light() -> Color32 {
|
||||
Color32::from_rgb(0x55, 0x7a, 0x95)
|
||||
} // #557A95
|
||||
fn accent_light_b20() -> Color32 {
|
||||
Color32::from_rgb(0x45, 0x62, 0x77)
|
||||
}
|
||||
fn accent_light_w20() -> Color32 {
|
||||
Color32::from_rgb(0x77, 0x95, 0xAA)
|
||||
}
|
||||
fn red_500() -> Color32 {
|
||||
Color32::from_rgb(0xef, 0x44, 0x44)
|
||||
} // #EF4444
|
||||
fn lime_500() -> Color32 {
|
||||
Color32::from_rgb(0x22, 0xc5, 0x5e)
|
||||
} // #22C55E
|
||||
fn amber_400() -> Color32 {
|
||||
Color32::from_rgb(0xfb, 0xbf, 0x24)
|
||||
} // #FBBF24
|
||||
|
||||
fn accent_color(dark_mode: bool) -> Color32 {
|
||||
if dark_mode {
|
||||
Color32::from_rgb(116, 167, 204)
|
||||
|
@ -67,12 +67,133 @@ macro_rules! theme_dispatch {
|
||||
}
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
impl Theme {
|
||||
#[allow(dead_code)]
|
||||
pub fn name(&self) -> &'static str {
|
||||
self.variant.name()
|
||||
}
|
||||
|
||||
// Palette
|
||||
pub fn neutral_50(&self) -> Color32 {
|
||||
match self.variant {
|
||||
$( $variant => $class::neutral_50(), )+
|
||||
}
|
||||
}
|
||||
|
||||
pub fn neutral_100(&self) -> Color32 {
|
||||
match self.variant {
|
||||
$( $variant => $class::neutral_100(), )+
|
||||
}
|
||||
}
|
||||
|
||||
pub fn neutral_200(&self) -> Color32 {
|
||||
match self.variant {
|
||||
$( $variant => $class::neutral_200(), )+
|
||||
}
|
||||
}
|
||||
|
||||
pub fn neutral_300(&self) -> Color32 {
|
||||
match self.variant {
|
||||
$( $variant => $class::neutral_300(), )+
|
||||
}
|
||||
}
|
||||
|
||||
pub fn neutral_400(&self) -> Color32 {
|
||||
match self.variant {
|
||||
$( $variant => $class::neutral_400(), )+
|
||||
}
|
||||
}
|
||||
|
||||
pub fn neutral_500(&self) -> Color32 {
|
||||
match self.variant {
|
||||
$( $variant => $class::neutral_500(), )+
|
||||
}
|
||||
}
|
||||
|
||||
pub fn neutral_600(&self) -> Color32 {
|
||||
match self.variant {
|
||||
$( $variant => $class::neutral_600(), )+
|
||||
}
|
||||
}
|
||||
|
||||
pub fn neutral_700(&self) -> Color32 {
|
||||
match self.variant {
|
||||
$( $variant => $class::neutral_700(), )+
|
||||
}
|
||||
}
|
||||
|
||||
pub fn neutral_800(&self) -> Color32 {
|
||||
match self.variant {
|
||||
$( $variant => $class::neutral_800(), )+
|
||||
}
|
||||
}
|
||||
|
||||
pub fn neutral_900(&self) -> Color32 {
|
||||
match self.variant {
|
||||
$( $variant => $class::neutral_900(), )+
|
||||
}
|
||||
}
|
||||
|
||||
pub fn neutral_950(&self) -> Color32 {
|
||||
match self.variant {
|
||||
$( $variant => $class::neutral_950(), )+
|
||||
}
|
||||
}
|
||||
|
||||
pub fn accent_dark(&self) -> Color32 {
|
||||
match self.variant {
|
||||
$( $variant => $class::accent_dark(), )+
|
||||
}
|
||||
}
|
||||
|
||||
pub fn accent_dark_b20(&self) -> Color32 {
|
||||
match self.variant {
|
||||
$( $variant => $class::accent_dark_b20(), )+
|
||||
}
|
||||
}
|
||||
|
||||
pub fn accent_dark_w20(&self) -> Color32 {
|
||||
match self.variant {
|
||||
$( $variant => $class::accent_dark_w20(), )+
|
||||
}
|
||||
}
|
||||
|
||||
pub fn accent_light(&self) -> Color32 {
|
||||
match self.variant {
|
||||
$( $variant => $class::accent_light(), )+
|
||||
}
|
||||
}
|
||||
|
||||
pub fn accent_light_b20(&self) -> Color32 {
|
||||
match self.variant {
|
||||
$( $variant => $class::accent_light_b20(), )+
|
||||
}
|
||||
}
|
||||
|
||||
pub fn accent_light_w20(&self) -> Color32 {
|
||||
match self.variant {
|
||||
$( $variant => $class::accent_light_w20(), )+
|
||||
}
|
||||
}
|
||||
|
||||
pub fn red_500(&self) -> Color32 {
|
||||
match self.variant {
|
||||
$( $variant => $class::red_500(), )+
|
||||
}
|
||||
}
|
||||
|
||||
pub fn lime_500(&self) -> Color32 {
|
||||
match self.variant {
|
||||
$( $variant => $class::lime_500(), )+
|
||||
}
|
||||
}
|
||||
|
||||
pub fn amber_400(&self) -> Color32 {
|
||||
match self.variant {
|
||||
$( $variant => $class::amber_400(), )+
|
||||
}
|
||||
}
|
||||
|
||||
pub fn accent_color(&self) -> Color32 {
|
||||
match self.variant {
|
||||
$( $variant => $class::accent_color(self.dark_mode), )+
|
||||
@ -381,6 +502,28 @@ pub trait ThemeDef: Send + Sync {
|
||||
// User facing name
|
||||
fn name() -> &'static str;
|
||||
|
||||
// Palette
|
||||
fn neutral_50() -> Color32;
|
||||
fn neutral_100() -> Color32;
|
||||
fn neutral_200() -> Color32;
|
||||
fn neutral_300() -> Color32;
|
||||
fn neutral_400() -> Color32;
|
||||
fn neutral_500() -> Color32;
|
||||
fn neutral_600() -> Color32;
|
||||
fn neutral_700() -> Color32;
|
||||
fn neutral_800() -> Color32;
|
||||
fn neutral_900() -> Color32;
|
||||
fn neutral_950() -> Color32;
|
||||
fn accent_dark() -> Color32;
|
||||
fn accent_dark_b20() -> Color32; // overlay 20% black
|
||||
fn accent_dark_w20() -> Color32; // overlay 20% white
|
||||
fn accent_light() -> Color32;
|
||||
fn accent_light_b20() -> Color32; // overlay 20% black
|
||||
fn accent_light_w20() -> Color32; // overlay 20% white
|
||||
fn red_500() -> Color32;
|
||||
fn lime_500() -> Color32;
|
||||
fn amber_400() -> Color32;
|
||||
|
||||
// Used for strokes, lines, and text in various places
|
||||
fn accent_color(dark_mode: bool) -> Color32;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user