Input widgets

Input widgets are where user intent enters the shared app model.
That is what makes them different from display widgets. A display widget mostly shows state. An input widget usually reflects current state and also emits the next action that will change it.
In Fission, that means input widgets are usually bound to explicit ActionEnvelope values that flow into reducers, and from there into state transitions or runtime effects.

Choosing among input widgets

Use the simplest control that matches the shape of the choice.
Use buttons for discrete actions. Use toggles or checkboxes for boolean state. Use sliders for continuous values. Use text inputs for free-form editing. Use selects or segmented controls when the valid choices are small and known. Use comboboxes when typing and suggestion picking need to meet.
When the interaction becomes more specialized, move to lower-level gesture, drag, or editing helpers.

Core action and value controls

Widget
Dedicated page
When to choose it
Button
One explicit action such as save, submit, open, or close
ButtonVariant
Supporting type for button style choice
ButtonContentAlign
Supporting type for button content alignment
Checkbox
Boolean choice with visible checked state
Radio
One selection inside a known group
Switch
Boolean choice that reads like on or off state
Slider
Continuous single numeric value
RangeSlider
Continuous lower and upper bound selection
SegmentedControl
A small set of exclusive options presented side by side

Text and form entry widgets

Widget
Dedicated page
When to choose it
TextInput
Free-form text entry
NumberInput
Numeric entry with dedicated affordances
FormControl
Label, helper, or validation wrapper around a field
Editable
Lower-level editable content surface
These widgets are the ones most closely tied to the runtime's input, clipboard, and input method editor model.

Choice and picker widgets

Widget
Dedicated page
When to choose it
Select
Closed choice list with a dedicated picker surface
SelectItem
Supporting item type for Select
Combobox
Typing plus filtered suggestion selection
DropDown
Dropdown helper or composition surface
DatePicker
Date choice
DateRangePicker
Start and end date choice
TimePicker
Time-of-day choice

Gesture, drag, and file-oriented input

Widget
Dedicated page
When to choose it
GestureDetector
A widget needs direct gesture callbacks
Draggable
A region should act as a drag source
DragTarget
A region should accept drops
Dropzone
File or payload drops need a dedicated area
FileUpload
File selection and upload flow wrapper

Practical cross-reference

If the hard part is no longer which control to choose but how input is normalized, how locale or theme reaches the widget tree, or how the clipboard and input method editor flow work, continue to Environment, input, and input method editor. For the user-facing guide, see Input, text, and environment.
Fission
A cross-platform, GPU-accelerated user interface framework for Rust. MIT licensed.
Copyright (c) 2026 Fission
Ready to use today. Widget APIs are expected to remain stable; some runtime and shell APIs may change before 1.0.0.
Fission 0.7.0