Skip to main content

Introduction

Forms and React​

Using them together always mean a lot of boiler plate before you're ready to start coding your forms.

Here comes Concrete Form​

Concrete Form renders the most commonly used form controls using the UI kit of your choice and registers them automatically on the form library of your choice.

  • We render the controls
  • We register the controls on the form library
  • We display the errors
  • We help you to translate the validation errors
  • We help you with unit tests

Example​

React Hook Form with Material-UI

import Form from '@concrete-form/react-hook-form'
import Input from '@concrete-form/mui/Input'
import SubmitButton from '@concrete-form/mui/SubmitButton'

const Demo = () => (
<Form onSubmit={data => alert(data.name)}>
<Input name="name" label="Enter your name" margin="normal" />
<SubmitButton fullWidth>Submit</SubmitButton>
</Form>
)

Try it on CodeSandbox

<Form>​

  • Render an HTML <form> element
  • Can accept an existing form created with useForm() or we'll create it for you

<Input> + <SubmitButton>​

  • Render a MUI TextField and a MUI Button
  • Since it's inside <Form>, "name" input is registered automatically on React Hook Form.
  • Errors are displayed automatically

Available implementations​

Form libraries​

UI Kits​

Can I customize my form ?​

Yes!

By choosing Concrete Form controls, you'll be saving time since all controls work out of the box, although it's still possible to create your own control.

  • You can instanciate the form yourself and use any settings that you want
  • You can provide parameters when registering the field on the form
  • We make no design decision and you can customize 100% of the UI