Merge branch 'master' into beacon

This commit is contained in:
Héctor Ramón Jiménez 2025-04-05 18:20:31 +02:00
commit 3f67044977
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
62 changed files with 713 additions and 780 deletions

View file

@ -45,7 +45,7 @@ pub enum Message {
impl ColorPalette {
fn update(&mut self, message: Message) {
let srgb = match message {
Message::RgbColorChanged(rgb) => Rgb::from(rgb),
Message::RgbColorChanged(rgb) => to_rgb(rgb),
Message::HslColorChanged(hsl) => Rgb::from_color(hsl),
Message::HsvColorChanged(hsv) => Rgb::from_color(hsv),
Message::HwbColorChanged(hwb) => Rgb::from_color(hwb),
@ -53,13 +53,13 @@ impl ColorPalette {
Message::LchColorChanged(lch) => Rgb::from_color(lch),
};
self.theme = Theme::new(srgb);
self.theme = Theme::new(to_color(srgb));
}
fn view(&self) -> Element<Message> {
let base = self.theme.base;
let srgb = Rgb::from(base);
let srgb = to_rgb(base);
let hsl = palette::Hsl::from_color(srgb);
let hsv = palette::Hsv::from_color(srgb);
let hwb = palette::Hwb::from_color(srgb);
@ -108,7 +108,7 @@ impl Theme {
let base = base.into();
// Convert to HSL color for manipulation
let hsl = Hsl::from_color(Rgb::from(base));
let hsl = Hsl::from_color(to_rgb(base));
let lower = [
hsl.shift_hue(-135.0).lighten(0.075),
@ -127,12 +127,12 @@ impl Theme {
Theme {
lower: lower
.iter()
.map(|&color| Rgb::from_color(color).into())
.map(|&color| to_color(Rgb::from_color(color)))
.collect(),
base,
higher: higher
.iter()
.map(|&color| Rgb::from_color(color).into())
.map(|&color| to_color(Rgb::from_color(color)))
.collect(),
canvas_cache: canvas::Cache::default(),
}
@ -215,14 +215,14 @@ impl Theme {
text.align_y = alignment::Vertical::Bottom;
let hsl = Hsl::from_color(Rgb::from(self.base));
let hsl = Hsl::from_color(to_rgb(self.base));
for i in 0..self.len() {
let pct = (i as f32 + 1.0) / (self.len() as f32 + 1.0);
let graded = Hsl {
lightness: 1.0 - pct,
..hsl
};
let color: Color = Rgb::from_color(graded).into();
let color: Color = to_color(Rgb::from_color(graded));
let anchor = Point {
x: (i as f32) * box_size.width,
@ -474,3 +474,21 @@ impl ColorSpace for palette::Lch {
)
}
}
fn to_rgb(color: Color) -> Rgb {
Rgb {
red: color.r,
green: color.g,
blue: color.b,
..Rgb::default()
}
}
fn to_color(rgb: Rgb) -> Color {
Color {
r: rgb.red,
g: rgb.green,
b: rgb.blue,
a: 1.0,
}
}