glass_slider

Function glass_slider 

Source
pub fn glass_slider(args: impl Into<GlassSliderArgs>, state: GlassSliderState)
Expand description

§glass_slider

Renders an interactive slider with a customizable glass effect.

§Usage

Allow users to select a value from a continuous range (0.0 to 1.0) by dragging a thumb.

§Parameters

  • args — configures the slider’s value, appearance, and on_change callback; see GlassSliderArgs.
  • state — a clonable GlassSliderState to manage interaction state like dragging and focus.

§Examples

use std::sync::{Arc, Mutex};
use tessera_ui_basic_components::glass_slider::{
    glass_slider, GlassSliderArgsBuilder, GlassSliderState,
};

// In a real app, this would be part of your application's state.
let slider_value = Arc::new(Mutex::new(0.5));
let slider_state = GlassSliderState::new();

let on_change = {
    let slider_value = slider_value.clone();
    Arc::new(move |new_value| {
        *slider_value.lock().unwrap() = new_value;
    })
};

let args = GlassSliderArgsBuilder::default()
    .value(*slider_value.lock().unwrap())
    .on_change(on_change)
    .build()
    .unwrap();

// The component would be called in the UI like this:
// glass_slider(args, slider_state);

// For the doctest, we can simulate the callback.
(args.on_change)(0.75);
assert_eq!(*slider_value.lock().unwrap(), 0.75);