[MIRROR] https://codeberg.org/naomi/nanel
at main 73 lines 2.1 kB view raw
1use iced::{ 2 Background, Theme, border, 3 theme::palette, 4 widget::{button, container}, 5}; 6 7use crate::config::CORNER_RADIUS; 8 9pub fn rounded_container(theme: &Theme) -> container::Style { 10 let palette = theme.extended_palette(); 11 12 container::Style { 13 background: Some(palette.background.base.color.into()), 14 border: border::rounded(CORNER_RADIUS), 15 ..container::Style::default() 16 } 17} 18 19pub fn squared_container(theme: &Theme) -> container::Style { 20 let palette = theme.extended_palette(); 21 22 container::Style { 23 background: Some(palette.background.base.color.into()), 24 ..container::Style::default() 25 } 26} 27 28fn styled(pair: palette::Pair) -> button::Style { 29 button::Style { 30 background: Some(Background::Color(pair.color)), 31 text_color: pair.text, 32 border: border::rounded(CORNER_RADIUS), 33 ..button::Style::default() 34 } 35} 36 37fn disabled(style: button::Style) -> button::Style { 38 button::Style { 39 background: style 40 .background 41 .map(|background| background.scale_alpha(0.5)), 42 text_color: style.text_color.scale_alpha(0.5), 43 ..style 44 } 45} 46 47pub fn solid(theme: &Theme, status: button::Status) -> button::Style { 48 let palette = theme.extended_palette(); 49 let base = styled(palette.primary.strong); 50 51 match status { 52 button::Status::Active | button::Status::Pressed => base, 53 button::Status::Hovered => button::Style { 54 background: Some(Background::Color(palette.primary.base.color)), 55 ..base 56 }, 57 button::Status::Disabled => disabled(base), 58 } 59} 60 61pub fn transparent(theme: &Theme, status: button::Status) -> button::Style { 62 let palette = theme.extended_palette(); 63 let base = styled(palette.background.base); 64 65 match status { 66 button::Status::Active | button::Status::Pressed => base, 67 button::Status::Hovered => button::Style { 68 background: Some(Background::Color(palette.background.weak.color)), 69 ..base 70 }, 71 button::Status::Disabled => disabled(base), 72 } 73}