Incular logoIncular
API ReferenceDesign Systems

Material Selection

Checkbox, radio, switch, sliders, and their theme data.

ControlValue
Checkboxbool + tristate Option<bool>
Radio<T> / RadioGroup<T>Shared group selection
Switchbool toggle
Sliderf32 in range with divisions
RangeSliderRangeValues start/end pair
use incular::prelude::*;
use incular::material_prelude::{Checkbox, Slider};

fn main() {
    let app = Application::new(|_cx| {
        Container::builder()
            .padding(EdgeInsets::all(24.0))
            .alignment(Alignment::CENTER)
            .child(
                Column::builder()
                    .main_axis_size(MainAxisSize::Min)
                    .spacing(8.0)
                    .children(Vec::<Widget>::from([
                        Checkbox::new(false)
                                .on_changed(|v| println!("checked: {v:?}")).into(),
                        Slider::new(0.5)
                                .range(0.0, 1.0)
                                .on_changed(|v| println!("slider: {v}")).into(),
                    ]))
                    .build(),
            )
            .build()
            .into()
    })
    .expect("valid application");
    incular::run(app).expect("run application");
}

Switch, Radio, RangeSlider, and the SliderInteraction / SliderThemeData options share the same consuming-builder shape.

SliderInteraction: TapAndSlide (default) / TapOnly / SlideOnly / SlideThumb. SliderThemeData (all Option): track height, thumb size, track/thumb/overlay/tick colors, value indicator, padding, constraints.

Related: Selection.