diff --git a/crates/theme/src/schema.rs b/crates/theme/src/schema.rs index 425fedbc717bb65ce3ce0872e1ed56fef3b79bb9..d2bdbb616a5b6f65f905375769e14dd2a2312ea9 100644 --- a/crates/theme/src/schema.rs +++ b/crates/theme/src/schema.rs @@ -38,6 +38,10 @@ fn ensure_non_opaque(color: Hsla) -> Hsla { } } +fn ensure_opaque(color: Hsla) -> Hsla { + Hsla { a: 1.0, ..color } +} + #[derive(Debug, PartialEq, Clone, Copy, Serialize, Deserialize, JsonSchema)] #[serde(rename_all = "snake_case")] pub enum AppearanceContent { @@ -872,12 +876,15 @@ impl ThemeColorsContent { .panel_overlay_background .as_ref() .and_then(|color| try_parse_color(color).ok()) - .or(panel_background), + .or(panel_background.map(ensure_opaque)), panel_overlay_hover: self .panel_overlay_hover .as_ref() .and_then(|color| try_parse_color(color).ok()) - .or(element_hover), + .or(panel_background + .zip(element_hover) + .map(|(panel_bg, hover_bg)| panel_bg.blend(hover_bg)) + .map(ensure_opaque)), pane_focused_border: self .pane_focused_border .as_ref()