easy-forms
Form components

Overview

The twelve built-in controls, what they store, and when to reach for each.

Set a question's control to one of the built-in control types. Each control narrows its value type, so validators and options are type-checked against it.

ControlStoresUse for
textstringsingle-line text, password, tel, url
textareastringmulti-line text
numbernumber | nullnumeric input with formatting
emailstringemail addresses
dropdownvalue | nullsingle choice from a list
multiselectvalue[]multiple choices from a list
checkboxbooleana single on/off toggle
checkboxListvalue[]multiple toggles
radioGroupvalue | nullone of a few visible choices
datestring | nullISO date selection
fileFile[] | nullfile uploads
customanythingyour own control

Renderers read everything from the (effective) question object. Conditional logic that changes options, placeholders, min/max, etc. flows through the same props — see Dynamic forms.

Need a control that isn't here? Build one with the custom control, or register a brand-new control type via module augmentation.