diff options
Diffstat (limited to 'style/src/theme.rs')
-rw-r--r-- | style/src/theme.rs | 54 |
1 files changed, 22 insertions, 32 deletions
diff --git a/style/src/theme.rs b/style/src/theme.rs index df67f594..c9fae3c2 100644 --- a/style/src/theme.rs +++ b/style/src/theme.rs @@ -40,13 +40,13 @@ impl application::StyleSheet for Theme { fn background_color(&self) -> Color { let palette = self.extended_palette(); - palette.background.base + palette.background.base.color } fn text_color(&self) -> Color { let palette = self.extended_palette(); - palette.background.text + palette.background.base.text } } @@ -76,29 +76,19 @@ impl button::StyleSheet for Theme { ..button::Appearance::default() }; + let from_pair = |pair: palette::Pair| button::Appearance { + background: Some(pair.color.into()), + text_color: pair.text, + ..appearance + }; + match style { - Button::Primary => button::Appearance { - background: Some(palette.primary.strong.into()), - text_color: palette.primary.text, - ..appearance - }, - Button::Secondary => button::Appearance { - background: Some(palette.background.weak.into()), - text_color: palette.background.text, - ..appearance - }, - Button::Positive => button::Appearance { - background: Some(palette.success.base.into()), - text_color: palette.success.text, - ..appearance - }, - Button::Destructive => button::Appearance { - background: Some(palette.danger.base.into()), - text_color: palette.danger.text, - ..appearance - }, + Button::Primary => from_pair(palette.primary.strong), + Button::Secondary => from_pair(palette.secondary.base), + Button::Positive => from_pair(palette.success.base), + Button::Destructive => from_pair(palette.danger.base), Button::Text => button::Appearance { - text_color: palette.background.text, + text_color: palette.background.base.text, ..appearance }, } @@ -109,10 +99,10 @@ impl button::StyleSheet for Theme { let palette = self.extended_palette(); let background = match style { - Button::Primary => Some(palette.primary.base), - Button::Secondary => Some(palette.background.strong), - Button::Positive => Some(palette.success.strong), - Button::Destructive => Some(palette.danger.strong), + Button::Primary => Some(palette.primary.base.color), + Button::Secondary => Some(palette.background.strong.color), + Button::Positive => Some(palette.success.strong.color), + Button::Destructive => Some(palette.danger.strong.color), Button::Text => None, }; @@ -140,10 +130,10 @@ impl slider::StyleSheet for Theme { }; slider::Appearance { - rail_colors: (palette.primary.base, palette.background.base), + rail_colors: (palette.primary.base.color, Color::TRANSPARENT), handle: slider::Handle { - color: palette.background.base, - border_color: palette.primary.base, + color: palette.background.base.color, + border_color: palette.primary.base.color, ..handle }, } @@ -155,7 +145,7 @@ impl slider::StyleSheet for Theme { slider::Appearance { handle: slider::Handle { - color: palette.primary.weak, + color: palette.primary.weak.color, ..active.handle }, ..active @@ -168,7 +158,7 @@ impl slider::StyleSheet for Theme { slider::Appearance { handle: slider::Handle { - color: palette.primary.base, + color: palette.primary.base.color, ..active.handle }, ..active |