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 | Button | One explicit action such as save, submit, open, or close |
ButtonVariant | ButtonVariant | Supporting type for button style choice |
ButtonContentAlign | ButtonContentAlign | Supporting type for button content alignment |
Checkbox | Checkbox | Boolean choice with visible checked state |
Radio | Radio | One selection inside a known group |
Switch | Switch | Boolean choice that reads like on or off state |
Slider | Slider | Continuous single numeric value |
RangeSlider | RangeSlider | Continuous lower and upper bound selection |
SegmentedControl | SegmentedControl | A small set of exclusive options presented side by side |
Text and form entry widgets
| Widget | Dedicated page | When to choose it |
|---|---|---|
TextInput | TextInput | Free-form text entry |
NumberInput | NumberInput | Numeric entry with dedicated affordances |
FormControl | FormControl | Label, helper, or validation wrapper around a field |
Editable | 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 | Select | Closed choice list with a dedicated picker surface |
SelectItem | SelectItem | Supporting item type for Select |
Combobox | Combobox | Typing plus filtered suggestion selection |
DropDown | DropDown | Dropdown helper or composition surface |
DatePicker | DatePicker | Date choice |
DateRangePicker | DateRangePicker | Start and end date choice |
TimePicker | TimePicker | Time-of-day choice |
Gesture, drag, and file-oriented input
| Widget | Dedicated page | When to choose it |
|---|---|---|
GestureDetector | GestureDetector | A widget needs direct gesture callbacks |
Draggable | Draggable | A region should act as a drag source |
DragTarget | DragTarget | A region should accept drops |
Dropzone | Dropzone | File or payload drops need a dedicated area |
FileUpload | 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.