Search docs

Find a component, input or example

The foundation for your forms. Write one Zod schema and every input picks up its label, rules and errors.

signup-schema.ts
export const signupSchema = z.object({  fullName: nameField(),  email: emailField({ blockDisposable: true }),  phone: phoneField({ defaultCountry: "KE" }),  password: passwordField({ minScore: 3 }),})
signup-form.tsx
<Form schema={signupSchema} onSubmit={createAccount}>  <FormText name="fullName" />  <FormEmail name="email" />  <FormPhone name="phone" />  <FormPassword name="password" />  <FormSubmit>Create account</FormSubmit></Form>
Very strong

The schema does the wiring

Each input reads its label, rules and errors from the field name and the schema.

Name presets
Name a field email and it gets its label, type and autocomplete.
<FormEmail name="email" />
label: Emailtype: emailautocomplete: email
Checks with plain errors
Typo hints, disposable domains and length rules, in words people understand.

Did you mean amina@gmail.com?

Create and edit in one form
In edit mode, save waits for a change and sends only what changed.
changed: { role }
No lost work
FormLeaveGuard asks before anyone leaves with unsaved changes.

Leave without saving? Your changes will be lost.

22 inputs, one shape

Label, control and error in one line of JSX.

Drag fields, copy the code

Start from one of 11 templates, set the rules per field, then install the form with one command.

BookingForm
Full name
Email
Stay dates
Guests

npxshadcn@latest add https://fieldkit.muturi.dev/r/builder/…

Start with one command

Install the core, then add only the inputs you use.

bunx --bun shadcn@latest add https://fieldkit.muturi.dev/r/form.json