Skip to main content
Zero styles · Total control · Zod V4

UniForm

Headless React + Zod V4 forms. Zero styles — bring your own components.

🧩

Schema-driven

Define your form once with Zod V4. UniForm introspects the schema and renders fully typed inputs, labels, validation, and coercions automatically.

🎨

Headless

Zero CSS, zero opinions. Bring your own design system, Tailwind classes, or any component library — UniForm only provides structure.

⚙️

Fully customizable

Swap any component, slot, wrapper, or field at every level. Per-instance, per-factory, or per-field — total control with a clean API.

Install in seconds

npm install @uniform-ts/core react react-hook-form zod

Example

Define a Zod schema, call createForm, render <AutoForm>. That's it.

const schema = z.object({
name: z.string().min(1, 'Name is required'),
email: z.string().email('Invalid email'),
role: z.enum(['user', 'admin', 'editor']),
subscribe: z.boolean(),
})

const myForm = createForm(schema)

function App() {
return (
<div style={{ fontFamily: 'system-ui', maxWidth: 480 }}>
<AutoForm
form={myForm}
defaultValues={{ role: 'user', subscribe: false }}
onSubmit={(values) => { /* your submit logic */ }}
/>
</div>
)
}

render(<App />)