From f6614d3f70f5c26c8924338e2038c0ff42ebaa3a Mon Sep 17 00:00:00 2001 From: Sundaram krishnan <104441812+sundaram123krishnan@users.noreply.github.com> Date: Wed, 20 Nov 2024 19:35:10 +0530 Subject: [PATCH] Add Color Palette Example (#695) * Add Color Palette example * Add README --- examples/color_pallete/Cargo.toml | 10 + examples/color_pallete/README.md | 7 + examples/color_pallete/color_palette.png | Bin 0 -> 89141 bytes examples/color_pallete/src/main.rs | 583 +++++++++++++++++++++++ 4 files changed, 600 insertions(+) create mode 100644 examples/color_pallete/Cargo.toml create mode 100644 examples/color_pallete/README.md create mode 100644 examples/color_pallete/color_palette.png create mode 100644 examples/color_pallete/src/main.rs diff --git a/examples/color_pallete/Cargo.toml b/examples/color_pallete/Cargo.toml new file mode 100644 index 00000000..8b01bb34 --- /dev/null +++ b/examples/color_pallete/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "color_pallete" +edition = "2021" +license.workspace = true +version.workspace = true + +[dependencies] +im.workspace = true +floem = { path = "../.." } +palette = "0.7.6" diff --git a/examples/color_pallete/README.md b/examples/color_pallete/README.md new file mode 100644 index 00000000..01c91bc1 --- /dev/null +++ b/examples/color_pallete/README.md @@ -0,0 +1,7 @@ +## Color palette + +A color palette generator + +
+ +
diff --git a/examples/color_pallete/color_palette.png b/examples/color_pallete/color_palette.png new file mode 100644 index 0000000000000000000000000000000000000000..5e64c73015e9ed9540430f9a4a20137c8ea0520b GIT binary patch literal 89141 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 Jym|NGzX8$ddxHP~ literal 0 HcmV?d00001 diff --git a/examples/color_pallete/src/main.rs b/examples/color_pallete/src/main.rs new file mode 100644 index 00000000..bf815bd9 --- /dev/null +++ b/examples/color_pallete/src/main.rs @@ -0,0 +1,583 @@ +use floem::kurbo::Size; +use floem::peniko::Color; +use floem::prelude::{Decorators, RwSignal}; +use floem::reactive::{SignalGet, SignalUpdate}; +use floem::style::Position; +use floem::views::slider::Slider; +use floem::views::{dyn_view, empty, label}; +use floem::window::WindowConfig; +use floem::Application; +use floem::IntoView; +use palette::{Hsl, Hsv, IntoColor, Lch, Srgb}; + +fn create_color_sliders( + label_text: &str, + signal: RwSignal, + update_fn: impl Fn(f32) + 'static, +) -> impl IntoView { + let text_label = label_text.to_string(); + ( + label(move || text_label.clone()).style(|s| s.size(65, 30)), + Slider::new(move || signal.get()) + .on_change_px(move |new_value| update_fn(new_value as f32)) + .style(|s| s.width(250)), + ) + .style(|s| s.flex_row().gap(3).width_full()) +} + +fn create_color_display( + red: RwSignal, + green: RwSignal, + blue: RwSignal, +) -> impl IntoView { + ( + dyn_view(move || { + format!( + "rgb: ({}, {}, {})", + (red.get() * 255.0) as i32, + (green.get() * 255.0) as i32, + (blue.get() * 255.0) as i32, + ) + }) + .style(|s| s.width(50).font_size(18)), + empty().style(move |s| { + s.background(Color::rgb( + red.get() as f64, + green.get() as f64, + blue.get() as f64, + )) + .size(310, 75) + }), + ) + .style(|s| s.flex_col().gap(10)) +} + +fn lch_view() -> impl IntoView { + let l = RwSignal::new(40.0); + let c = RwSignal::new(40.0); + let h = RwSignal::new(40.0); + + let red = RwSignal::new(0.4); + let green = RwSignal::new(0.4); + let blue = RwSignal::new(0.4); + + let update_rgb = move |get_values: Box (f32, f32, f32)>| { + let (l_val, c_val, h_val) = get_values(); + let rgb: Srgb = Lch::new(l_val, c_val, h_val).into_color(); + red.set(rgb.red); + green.set(rgb.green); + blue.set(rgb.blue); + }; + + ( + ( + create_color_sliders("Lightness", l, move |new_l| { + l.set(new_l); + update_rgb(Box::new(move || (new_l, c.get(), h.get()))) + }), + create_color_sliders("Chroma", c, move |new_c| { + c.set(new_c); + update_rgb(Box::new(move || (l.get(), new_c, h.get()))) + }), + create_color_sliders("Hue", h, move |new_h| { + h.set(new_h); + update_rgb(Box::new(move || (l.get(), c.get(), new_h))) + }), + ) + .style(|s| s.flex_col().gap(3)), + create_color_display(red, green, blue), + ) + .style(|s| s.flex_col().items_start().margin_right(10)) +} +fn hsl_view() -> impl IntoView { + let h = RwSignal::new(40.0); + let s = RwSignal::new(40.0); + let l = RwSignal::new(40.0); + + let red = RwSignal::new(0.2); + let green = RwSignal::new(0.2); + let blue = RwSignal::new(0.2); + + let update_rgb = move |get_values: Box (f32, f32, f32)>| { + let (h_val, s_val, l_val) = get_values(); + let rgb: Srgb = Hsl::new(h_val, s_val, l_val).into_color(); + red.set(rgb.red); + green.set(rgb.green); + blue.set(rgb.blue); + }; + + ( + ( + create_color_sliders("Hue", h, move |new_h| { + h.set(new_h); + update_rgb(Box::new(move || { + (new_h * 3.6, s.get() / 100.0, l.get() / 100.0) + })) + }), + create_color_sliders("Saturation", s, move |new_s| { + s.set(new_s); + update_rgb(Box::new(move || { + (h.get() * 3.6, new_s / 100.0, l.get() / 100.0) + })) + }), + create_color_sliders("Lightness", l, move |new_l| { + l.set(new_l); + update_rgb(Box::new(move || { + (h.get() * 3.6, s.get() / 100.0, new_l / 100.0) + })) + }), + ) + .style(|s| s.flex_col().gap(3)), + create_color_display(red, green, blue), + ) + .style(|s| s.flex_col().items_start().margin_right(10)) +} + +fn hsv_view() -> impl IntoView { + let h = RwSignal::new(40.0); + let s = RwSignal::new(40.0); + let v = RwSignal::new(40.0); + + let red = RwSignal::new(0.2); + let green = RwSignal::new(0.2); + let blue = RwSignal::new(0.2); + + let update_rgb = move |get_values: Box (f32, f32, f32)>| { + let (h_val, s_val, v_val) = get_values(); + let rgb: Srgb = Hsv::new(h_val, s_val, v_val).into_color(); + red.set(rgb.red); + green.set(rgb.green); + blue.set(rgb.blue); + }; + + ( + ( + create_color_sliders("Hue", h, move |new_h| { + h.set(new_h); + update_rgb(Box::new(move || { + (new_h * 3.6, s.get() / 100.0, v.get() / 100.0) + })); + }), + create_color_sliders("Saturation", s, move |new_s| { + s.set(new_s); + update_rgb(Box::new(move || { + (h.get() * 3.6, new_s / 100.0, v.get() / 100.0) + })) + }), + create_color_sliders("Value", v, move |new_v| { + v.set(new_v); + update_rgb(Box::new(move || { + (h.get() * 3.6, s.get() / 100.0, new_v / 100.0) + })) + }), + ) + .style(|s| s.flex_col().gap(3)), + create_color_display(red, green, blue), + ) + .style(|s| s.flex_col().items_start().margin_right(10)) +} + +fn rgb_view() -> impl IntoView { + let r = RwSignal::new(40); + let g = RwSignal::new(40); + let b = RwSignal::new(40); + + ( + ( + create_color_sliders("Red", RwSignal::new(r.get() as f32), move |new_r| { + r.set(new_r as i32) + }), + create_color_sliders("Green", RwSignal::new(g.get() as f32), move |new_g| { + g.set(new_g as i32) + }), + create_color_sliders("Blue", RwSignal::new(b.get() as f32), move |new_b| { + b.set(new_b as i32) + }), + ) + .style(|s| s.flex_col().gap(3)), + ( + dyn_view(move || format!("rgb: ({}, {}, {})", r.get(), g.get(), b.get(),)) + .style(|s| s.width(50).font_size(18)), + empty().style(move |s| { + s.background(Color::rgb8(r.get() as u8, g.get() as u8, b.get() as u8)) + .size(310, 75) + }), + ) + .style(|s| s.flex_col().gap(10)), + ) + .style(|s| s.flex_col().items_start().margin_right(10)) +} + +fn palette() -> impl IntoView { + ( + ( + ( + ( + empty().style(|s| { + s.background(Color::rgb8(194, 255, 199)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#C2FFC7".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(158, 223, 156)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#9EDF9C".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(98, 130, 93)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#62825D".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(82, 110, 72)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#526E48".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ) + .style(|s| s.flex_row()), + ( + ( + empty().style(|s| { + s.background(Color::rgb8(223, 242, 235)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#DFF2EB".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(185, 229, 232)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#B9E5E8".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(122, 178, 211)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#7AB2D3".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(74, 98, 138)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#4A628A".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ) + .style(|s| s.flex_row()), + ( + ( + empty().style(|s| { + s.background(Color::rgb8(116, 9, 56)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#740938".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(175, 23, 64)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#AF1740".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(204, 43, 82)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#CC2B52".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(222, 124, 125)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#DE7C7D".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ) + .style(|s| s.flex_row()), + ( + ( + empty().style(|s| { + s.background(Color::rgb8(255, 245, 228)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#FFF5E4".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(255, 227, 225)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#FFE3E1".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(255, 209, 209)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#FFD1D1".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(255, 148, 148)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#FF9494".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ) + .style(|s| s.flex_row()), + ) + .style(|s| s.flex_col().gap(10)), + ( + ( + ( + empty().style(|s| { + s.background(Color::rgb8(203, 157, 240)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#CB9DF0".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(240, 193, 225)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#F0C1E1".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(253, 219, 187)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#FDDBBB".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(255, 249, 191)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#FFF9BF".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ) + .style(|s| s.flex_row()), + ( + ( + empty().style(|s| { + s.background(Color::rgb8(46, 7, 63)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#2E073F".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(122, 28, 172)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#7A1CAC".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(173, 73, 225)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#AD49E1".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(235, 211, 248)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#EBD3F8".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ) + .style(|s| s.flex_row()), + ( + ( + empty().style(|s| { + s.background(Color::rgb8(111, 78, 55)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#6F4E37".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(166, 123, 91)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#A67B5B".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(236, 177, 118)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#ECB176".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(254, 216, 177)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#FED8B1".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ) + .style(|s| s.flex_row()), + ( + ( + empty().style(|s| { + s.background(Color::rgb8(204, 213, 174)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#CCD5AE".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(224, 229, 182)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#E0E5B6".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(250, 237, 206)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#FAEDCE".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ( + empty().style(|s| { + s.background(Color::rgb8(254, 250, 224)) + .size(235, 185) + .position(Position::Relative) + }), + label(move || "#FEFAE0".to_string()) + .style(|s| s.position(Position::Absolute).padding(10).font_size(18)), + ) + .style(|s| s.flex_col().items_center().gap(2)), + ) + .style(|s| s.flex_row()), + ) + .style(|s| s.flex_col().gap(10)), + ) + .style(|s| s.flex_row().gap(20)) +} + +fn app_view() -> impl IntoView { + ((rgb_view(), lch_view(), hsl_view(), hsv_view()), palette()) + .style(|s| s.flex_col().padding(6).gap(10)) +} + +fn main() { + Application::new() + .window( + |_| app_view(), + Some( + WindowConfig::default() + .size(Size::new(1800.0, 1000.0)) + .title("Color Palette"), + ), + ) + .run(); +}