TextField
The TextField component provides a customizable text field that can be used to collect user information, such as name, email, password, or other types of data.
It is a wrapper around the native <input /> element, and includes an optional label and validation alert. The label and input are automatically associated for screen readers.
Usage Guidelines
Basic Usage
Use the TextField to collect user information such as name, email, password, or other types of data, using labels, descriptions, and validation messages for additional context.
<TextField description="Enter your full name" isRequired label="Name" />Prefix
Use the prefix prop to add a prefix to the input. The prefix can be used to provide additional context.
<TextField description="Enter your full name" isRequired label="Name" prefix="👋"/>States
Disabled
The disabled state of the text field is used to indicate that the user cannot interact with the field.
<TextField description="Enter your full name" isDisabled label="Name" value="Linda Belcher"/>Read-only
The read-only state of the text field is used to make the text field non-editable.
<TextField description="Enter your full name" isReadOnly isRequired label="Name" value="Linda Belcher" validationMessage="What a great name!" validationState="success"/>Validation
Error
In the case of an error when validating a field, the validationState prop should be set to error and the validationMessage prop should be set to the error message.
<TextField description="Enter your full name" isRequired label="Name" validationMessage="This field is required" validationState="error"/>Success
In the case of success when validating a field, the validationState prop should be set to success and the validationMessage prop should be set to the success message.
<TextField description="Enter your full name" isRequired label="Name" validationMessage="That's a great name!" validationState="success" value="Linda Belcher"/>Warning
In the case of a warning when validating a field, the validationState prop should be set to warning and the validationMessage prop should be set to the warning message.
<TextField description="Enter your full name" isRequired label="Name" validationMessage="Consider changing your name to your real name" validationState="warning" value="This is obviously not my name"/>Props
Change the alignment of the input text.
The label for the input.
Shows a description under the label.
Controls if the textfield is disabled.
Shows a placeholder in the input.
Render the input with a prefix.
Shows a validation message under the input.
Changes the appearance of the text field.
Whether to use native HTML form validation to prevent form submission when the value is missing or invalid, or mark the field as required or invalid via ARIA.
An enumerated attribute that defines what action label or icon to preset for the enter key on virtual keyboards. See MDN.
Whether the input can be selected but not changed by the user.
Whether user input is required on the input before form submission.
A function that returns an error message if a given value is invalid.
Validation errors are displayed to the user when the form is submitted
if validationBehavior="native". For realtime validation, use the isInvalid
prop instead.
Whether the element should receive focus on render.
Handler that is called when the element receives focus.
Handler that is called when the element loses focus.
Handler that is called when the element's focus status changes.
Handler that is called when a key is pressed.
Handler that is called when a key is released.
The current value (controlled).
The default value (uncontrolled).
Handler that is called when the value changes.
Whether to exclude the element from the sequential tab order. If true, the element will not be focusable via the keyboard by tabbing. This should be avoided except in rare scenarios where an alternative means of accessing the element or its functionality via the keyboard is available.
The element's unique identifier. See MDN.
Describes the type of autocomplete functionality the input should provide if any. See MDN.
The maximum number of characters supported by the input. See MDN.
The minimum number of characters required by the input. See MDN.
Regex pattern that the value of the input must match to be valid. See MDN.
The type of input to render. See MDN.
Hints at the type of data that might be entered by the user while editing the element or its contents. See MDN.
An attribute that takes as its value a space-separated string that describes what, if any, type of autocomplete functionality the input should provide. See MDN.
An enumerated attribute that defines whether the element may be checked for spelling errors. See MDN.
The name of the input element, used when submitting an HTML form. See MDN.
The <form> element to associate the input with.
The value of this attribute must be the id of a <form> in the same document.
See MDN.
Handler that is called when the user copies text. See MDN.
Handler that is called when the user cuts text. See MDN.
Handler that is called when the user pastes text. See MDN.
Handler that is called when a text composition system starts a new text composition session. See MDN.
Handler that is called when a text composition system completes or cancels the current text composition session. See MDN.
Handler that is called when a new character is received in the current text composition session. See MDN.
Handler that is called when text in the input is selected. See MDN.
Handler that is called when the input value is about to be modified. See MDN.
Handler that is called when the input value is modified. See MDN.
The inline style for the element. A function may be provided to compute the style based on component state.
The CSS className for the element. A function may be provided to compute the class based on component state.
The children of the component. A function may be provided to alter the children based on component state.
A slot name for the component. Slots allow the component to receive props from a parent component.
An explicit null value indicates that the local props completely override all props received from a parent.