Field
A component that provides labelling and validation for form controls.
Visible on your profile
API reference
Import the component and assemble its parts:
import { Field } from '@base-ui-components/react/field';
<Field.Root>
<Field.Label />
<Field.Control />
<Field.Description />
<Field.Error />
<Field.Validity />
</Field.Root>Root
Groups all parts of the field.
Renders a <div> element.
| Prop | Type | Default | |
|---|---|---|---|
name |
|
| |
disabled |
|
| |
invalid |
|
| |
validate |
|
| |
validationMode |
|
| |
validationDebounceTime |
|
| |
className |
|
| |
render |
|
|
| Attribute | Description | |
|---|---|---|
data-disabled | Present when the field is disabled. | |
data-valid | Present when the field is valid. | |
data-invalid | Present when the field is invalid. | |
data-dirty | Present when the field's value has changed. | |
data-touched | Present when the field has been touched. | |
data-filled | Present when the field is filled. | |
data-focused | Present when the field control is focused. | |
Label
An accessible label that is automatically associated with the field control.
Renders a <label> element.
| Prop | Type | Default | |
|---|---|---|---|
className |
|
| |
render |
|
|
| Attribute | Description | |
|---|---|---|
data-disabled | Present when the field is disabled. | |
data-valid | Present when the field is in valid state. | |
data-invalid | Present when the field is in invalid state. | |
data-dirty | Present when the field's value has changed. | |
data-touched | Present when the field has been touched. | |
data-filled | Present when the field is filled. | |
data-focused | Present when the field control is focused. | |
Control
The form control to label and validate.
Renders an <input> element.
You can omit this part and use any Base UI input component instead. For example, Input, Checkbox, or Select, among others, will work with Field out of the box.
| Prop | Type | Default | |
|---|---|---|---|
onValueChange |
|
| |
className |
|
| |
render |
|
|
| Attribute | Description | |
|---|---|---|
data-disabled | Present when the field is disabled. | |
data-valid | Present when the field is in valid state. | |
data-invalid | Present when the field is in invalid state. | |
data-dirty | Present when the field's value has changed. | |
data-touched | Present when the field has been touched. | |
data-filled | Present when the field is filled. | |
data-focused | Present when the field control is focused. | |
Description
A paragraph with additional information about the field.
Renders a <p> element.
| Prop | Type | Default | |
|---|---|---|---|
className |
|
| |
render |
|
|
| Attribute | Description | |
|---|---|---|
data-disabled | Present when the field is disabled. | |
data-valid | Present when the field is in valid state. | |
data-invalid | Present when the field is in invalid state. | |
data-dirty | Present when the field's value has changed. | |
data-touched | Present when the field has been touched. | |
data-filled | Present when the field is filled. | |
data-focused | Present when the field control is focused. | |
Error
An error message displayed if the field control fails validation.
Renders a <div> element.
| Prop | Type | Default | |
|---|---|---|---|
match |
|
| |
forceShow |
|
| |
className |
|
| |
render |
|
|
| Attribute | Description | |
|---|---|---|
data-disabled | Present when the field is disabled. | |
data-valid | Present when the field is in valid state. | |
data-invalid | Present when the field is in invalid state. | |
data-dirty | Present when the field's value has changed. | |
data-touched | Present when the field has been touched. | |
data-filled | Present when the field is filled. | |
data-focused | Present when the field control is focused. | |
Validity
Used to display a custom message based on the field’s validity.
Requires children to be a function that accepts field validity state as an argument.
| Prop | Type | Default | |
|---|---|---|---|
children |
|
|