Skip to main content
FormEngine is a React library that renders forms from JSON schemas. The @react-form-builder/components-material-ui package provides a free, MIT-licensed component set built on Material UI — if your app already uses MUI, this integration lets you render FormEngine forms with native MUI components and design tokens.
FormEngine ships three independent component sets — Material UI, Mantine, and React Suite — each with its own components and capabilities. See the Components Library overview for a side-by-side comparison.

Installation

npm install @react-form-builder/components-material-ui
npm install @mui/material @emotion/react @emotion/styled
@mui/x-date-pickers is also required if you plan to use MuiDatePicker.

Available components

The package registers the following components with FormEngine. Each row links to the FormEngine component reference and to the corresponding MUI documentation.

Input components

ComponentDescriptionMaterial UI docs
MuiTextFieldText input for single or multi-line textTextField
MuiSelectDropdown selection componentSelect
MuiCheckboxCheckbox for binary choicesCheckbox
MuiRadioGroupRadio button group for single selectionRadioGroup
MuiRadioItemSingle radio button option with labelBuilt-in FormEngine wrapper
MuiSwitchToggle switch for on/off statesSwitch
MuiDatePickerDate picker from MUI XDatePicker
MuiUploaderFile upload with Material UI stylingPreset combining MUI primitives

Form layout and labels

ComponentDescriptionMaterial UI docs
MuiFormControlLabelWrapper pairing a form control with its labelFormControlLabel
MuiFormLabelLabel component for form controlsFormLabel

Layout components

ComponentDescriptionMaterial UI docs
MuiBoxGeneric box component for layoutBox
MuiContainerContainer for centering and constraining contentContainer
MuiStackLayout component for stacking itemsStack
ComponentDescriptionMaterial UI docs
MuiBreadcrumbsBreadcrumb navigation componentBreadcrumbs
MuiLinkHyperlink componentLink

Data display

ComponentDescriptionMaterial UI docs
MuiCardCard component for content containersCard
MuiListList component for displaying itemsList
MuiListItemItem component for listsListItem
MuiTypographyTypography component for text stylingTypography
MuiTooltipTooltip for additional informationTooltip

Feedback

ComponentDescriptionMaterial UI docs
MuiCircularProgressCircular progress indicatorCircularProgress
MuiLinearProgressLinear progress indicatorLinearProgress
MuiErrorWrapperError display wrapperCustom FormEngine component

Dialogs

ComponentDescriptionMaterial UI docs
MuiDialogMain dialog containerDialog
MuiDialogTitleDialog title componentDialogTitle
MuiDialogContentDialog content containerDialogContent
MuiDialogContentTextDialog text contentDialogContentText
MuiDialogActionsDialog actions containerDialogActions
MuiDialogLayoutComplete dialog layout presetPreset combining MUI dialog primitives

Buttons

ComponentDescriptionMaterial UI docs
MuiButtonButton component for user actionsButton
MuiButtonGroupGroup of buttonsButtonGroup

Registering the MUI component set

Pass the MUI component set to the FormViewer when you initialize FormEngine:
import {FormViewer, IFormViewer} from '@react-form-builder/core'
import {MuiComponents} from '@react-form-builder/components-material-ui'

const builder = FormViewer.view(MuiComponents).build()

export const App = () => <FormViewer view={builder} formJson={formJson} />
Because you registered MUI components, your form JSON should reference MUI types (MuiTextField, MuiSelect, etc.) — not RSuite or Mantine types. A single form uses one component set at a time.

Additional resources

Support

For issues with the MUI integration, contact support@optimajet.com or open a ticket on the FormEngine GitHub issues page.

Next steps

Last modified on April 16, 2026