Forms

Build a form in the Studio, store submissions in Sanity, and send email through whichever provider you like.

How forms work

A form is a Sanity document containing fields. A form block places that document on a page and controls how it looks — width, alignment, input style, and input theme. The same form can appear on several pages without being rebuilt.

Submissions are written to Sanity, so there is always a record in the Studio regardless of whether email delivery succeeds. A honeypot field handles the bulk of spam without a third-party service.

FieldNotes
Text, email, telephone, numberStandard inputs with validation
TextareaMulti-line
SelectSingle choice from a list
Radio groupSingle choice, all options visible
CheckboxSingle or multiple
Date pickerCalendar input
RatingStar control, built on Reka UI primitives
HiddenPasses a fixed value through

Styling inputs

Input appearance is a named style chosen per form block rather than a set of classes edited per field. Adding a style is two steps: register the name, then add its class overrides in one helper file. Every field component picks it up.

Colours come from the form block's optional input theme, falling back to the active page theme — so inputs inherit the brand by default. Selected indicators deliberately use the _text_ colour rather than the background, so a checked box stays visible against the page.

Fields can span multiple grid columns from tablet up; below that, the form is single-column, and spans are ignored, which stops a two-column field from forcing an extra column into a stacked mobile layout.