summaryrefslogtreecommitdiffstats
path: root/style/src/theme.rs
diff options
context:
space:
mode:
Diffstat (limited to 'style/src/theme.rs')
-rw-r--r--style/src/theme.rs54
1 files changed, 54 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
+ }
+ }
+}