Getting Started
This guide walks you through building your first React form.
1. Create a Form Engine
Import component registrations and build your engine:
import { createReactFormComposer } from '@schema-engine/forms-react';
import {
InputElementRegistration,
TextareaElementRegistration,
CardLayoutRegistration,
DefaultStepperRegistration,
} from '@schema-engine/forms-react/registrations';
const formEngine = createReactFormComposer()
.addElement(InputElementRegistration)
.addElement(TextareaElementRegistration)
.addLayout(CardLayoutRegistration)
.addStepper(DefaultStepperRegistration)
.build();2. Configure Your Form
Create a JSON configuration:
import type { FormConfig } from '@schema-engine/forms';
const formConfig: FormConfig = {
id: 'contact-form',
title: 'Contact Us',
description: 'Get in touch with our team',
steps: [
{
id: 'step-1',
title: 'Your Information',
elements: [
{
$type: 'input',
id: 'name',
name: 'name',
label: 'Full Name',
inputType: 'text',
rules: [
{ rule: 'required', message: 'Name is required' },
],
},
{
$type: 'input',
id: 'email',
name: 'email',
label: 'Email Address',
inputType: 'email',
rules: [
{ rule: 'required', message: 'Email is required' },
{ rule: 'email', message: 'Invalid email format' },
],
},
{
$type: 'textarea',
id: 'message',
name: 'message',
label: 'Message',
rows: 5,
},
],
layout: {
$type: 'card',
padding: 'md',
shadowSize: 'md',
},
},
],
};3. Render the Form
import { FormEngineProvider, FormRenderer } from '@schema-engine/forms-react';
import { rhfAdapter } from '@schema-engine/forms-react/adapters/rhf';
function ContactForm() {
const handleSubmit = (data) => {
console.log('Form submitted:', data);
};
return (
<FormEngineProvider engine={formEngine} adapter={rhfAdapter}>
<FormRenderer config={formConfig} onSubmit={handleSubmit} />
</FormEngineProvider>
);
}Next Steps
- Components - Pre-built elements with examples
- Layouts - Visual structure for forms
- Steppers - Multi-step navigation