summaryrefslogtreecommitdiffstats
path: root/style/src/theme
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--style/src/theme.rs54
-rw-r--r--style/src/theme/palette.rs2
2 files changed, 56 insertions, 0 deletions
diff --git a/style/src/theme.rs b/style/src/theme.rs
index 16f24923..e3c0efc6 100644
--- a/style/src/theme.rs
+++ b/style/src/theme.rs
@@ -3,6 +3,7 @@ mod palette;
pub use self::palette::Palette;
use crate::button;
+use crate::slider;
use iced_core::{Background, Color};
@@ -118,3 +119,56 @@ impl button::StyleSheet for Theme {
}
}
}
+
+impl slider::StyleSheet for Theme {
+ type Variant = ();
+
+ fn active(&self, _variant: Self::Variant) -> slider::Style {
+ let palette = self.extended_palette();
+
+ let handle = slider::Handle {
+ shape: slider::HandleShape::Rectangle {
+ width: 8,
+ border_radius: 4.0,
+ },
+ color: Color::WHITE,
+ border_color: Color::WHITE,
+ border_width: 1.0,
+ };
+
+ slider::Style {
+ rail_colors: (palette.background.strong, palette.background.base),
+ handle: slider::Handle {
+ color: palette.background.base,
+ border_color: palette.border,
+ ..handle
+ },
+ }
+ }
+
+ fn hovered(&self, variant: Self::Variant) -> slider::Style {
+ let active = self.active(variant);
+ let palette = self.extended_palette();
+
+ slider::Style {
+ handle: slider::Handle {
+ color: palette.background.weak,
+ ..active.handle
+ },
+ ..active
+ }
+ }
+
+ fn dragging(&self, variant: Self::Variant) -> slider::Style {
+ let active = self.active(variant);
+ let palette = self.extended_palette();
+
+ slider::Style {
+ handle: slider::Handle {
+ color: palette.background.strong,
+ ..active.handle
+ },
+ ..active
+ }
+ }
+}
diff --git a/style/src/theme/palette.rs b/style/src/theme/palette.rs
index 74139e6b..bbb122ef 100644
--- a/style/src/theme/palette.rs
+++ b/style/src/theme/palette.rs
@@ -59,6 +59,7 @@ pub struct Extended {
pub primary: Group,
pub success: Group,
pub danger: Group,
+ pub border: Color,
}
lazy_static! {
@@ -86,6 +87,7 @@ impl Extended {
palette.background,
palette.text,
),
+ border: mix(palette.background, palette.text, 0.7),
}
}
}