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, andon_changecallback; seeGlassSliderArgs.state— a clonableGlassSliderStateto 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);