https://framer.com/m/FormPro-92ipmi.js

Io / UI Basics / SmartFormFields

SmartFormFields

SmartFormFields builds a whole form from one schema: field types, validation, steps, conditional visibility and calculated values. The form below is a two-step request for a component that this library does not have yet.

Formschema-drivenmulti-stepconditional logic

Examples

Live specimens for every control the component exposes.

Default

The whole form from one schema — two steps, nine fields, validation and a step indicator.

Single step

Turn enableSteps off and every field lands on one page. The schema does not change — only how it is paged.

Labels

showLabels drops every field label at once, for a compact form where the placeholders carry the meaning.

Spacing

horizontalGap separates fields sharing a row; verticalGap separates the rows.

horizontalGap 6 · verticalGap 6

horizontalGap 20 · verticalGap 24

Props

The controls exposed on the instance panel.

PropTypeBehaviour
schemaJSONstringThe whole form: fields, types, validation, steps and conditions.
fieldsarrayPanel-set field list, used when no schema is supplied.
fIDstringHidden form identifier sent with the submission.
trackingIDtrackingidId used to track successful submissions.
slotHubslotWhere file-upload and other injected components live.
enableStepsbooleanSplits the fields across steps by their formStep.
stepsarrayStep numbers and titles for the indicator.
showStepIndicatorbooleanWhether the step progress is drawn.
showLabelsbooleanShows or hides every field label.
horizontalGapnumberSpace between fields on the same row.
verticalGapnumberSpace between rows.
previousButtonTextstringLabel of the back button.
nextButtonTextstringLabel of the forward button.
submitButtonTextstringLabel of the submit button.
showSuccessMessagebooleanWhether a confirmation replaces or follows the form.
successMessagestringThe confirmation copy.
hideFormOnSubmitbooleanReplaces the form with the confirmation.
resetFormOnSubmitbooleanClears the fields after a successful submit.
PropTypeBehaviour
schemaJSONstringThe whole form: fields, types, validation, steps and conditions.
fieldsarrayPanel-set field list, used when no schema is supplied.
fIDstringHidden form identifier sent with the submission.
trackingIDtrackingidId used to track successful submissions.
slotHubslotWhere file-upload and other injected components live.
enableStepsbooleanSplits the fields across steps by their formStep.
stepsarrayStep numbers and titles for the indicator.
showStepIndicatorbooleanWhether the step progress is drawn.
showLabelsbooleanShows or hides every field label.
horizontalGapnumberSpace between fields on the same row.
verticalGapnumberSpace between rows.
previousButtonTextstringLabel of the back button.
nextButtonTextstringLabel of the forward button.
submitButtonTextstringLabel of the submit button.
showSuccessMessagebooleanWhether a confirmation replaces or follows the form.
successMessagestringThe confirmation copy.
hideFormOnSubmitbooleanReplaces the form with the confirmation.
resetFormOnSubmitbooleanClears the fields after a successful submit.

Usage

Guidance carried over from the component definition.

Reach for SmartFormFields

The form is long enough that hand-building every field is a chore.

Fields need to appear only when an earlier answer calls for them.

The form should be paged into steps with validation between them.

A value has to be calculated from the other answers.

Reach for something else

A short single-step form with no logic — plain inputs are simpler.

Every field needs bespoke styling.

Submission needs handling beyond tracking and a success message.

Io — UI Basics

Every form above is a live SmartFormFields instance over the same schema, produced by the smartformfields-schema skill. Colour, type and radius resolve from the project theme tokens.

io

An experiment in what a design system becomes when AI can consume it.

© 2026 io

Contact me

Create a free website with Framer, the website builder loved by startups, designers and agencies.