Text Field Single-line text input with label, validation, and adornments. Use TextField for a single text input with label, description, validation, and optional adornments
built in.
Guidance Practices Do Use label for every field where possible. It works better with assistive technology and autofill than aria-label alone. Don't Use placeholder as a label substitute. It disappears after typing and often fails colour contrast requirements.
Use isRequired and necessityIndicator to communicate mandatory fields. 'icon' renders a visual
required marker. 'label' appends "(required)" to the label text.
Pass field-level validation through React Aria Form. Use errorMessage to render the validation
message.
import { Form } from 'react-aria-components' ;
< Form validationErrors = {{ username: 'Username is not available.' }}>
< TextField
name = "username"
label = "Username"
errorMessage = {( validation ) => validation.validationErrors. join ( ' ' )}
/>
</ Form >;
Use adornmentStart and adornmentEnd to place non-editable content inside the input chrome.
Adornments accept any ReactNode. If an adornment is interactive, you are responsible for its
semantics.
size controls height and typography. The HTML numeric <input size> attribute is intentionally
omitted because size is reserved for the design-system variant.
Value Description 'small'Compact input height. 'medium'Default input height.
When visual context already communicates purpose, you may omit label and provide an accessible
name with aria-label or aria-labelledby on the field.
< TextField aria-label = "Search" name = "search" placeholder = "Search" />
Use the TextInput primitive when you need the input
without the label, description, and error slots that TextField provides.
aria-activedescendant?string
excludeFromTabOrder?union
onCopy?ClipboardEventHandler < object >
onCut?ClipboardEventHandler < object >
onPaste?ClipboardEventHandler < object >
onCompositionStart?CompositionEventHandler < object >
onCompositionEnd?CompositionEventHandler < object >
onCompositionUpdate?CompositionEventHandler < object >
onSelect?ReactEventHandler < object >
render?DOMRenderFunction < "div" , object >
onClick?MouseEventHandler < object >
onClickCapture?MouseEventHandler < object >
onAuxClick?MouseEventHandler < object >
onAuxClickCapture?MouseEventHandler < object >
onDoubleClick?MouseEventHandler < object >
onDoubleClickCapture?MouseEventHandler < object >
onMouseDown?MouseEventHandler < object >
onMouseDownCapture?MouseEventHandler < object >
onMouseEnter?MouseEventHandler < object >
onMouseLeave?MouseEventHandler < object >
onMouseMove?MouseEventHandler < object >
onMouseMoveCapture?MouseEventHandler < object >
onMouseOut?MouseEventHandler < object >
onMouseOutCapture?MouseEventHandler < object >
onMouseOver?MouseEventHandler < object >
onMouseOverCapture?MouseEventHandler < object >
onMouseUp?MouseEventHandler < object >
onMouseUpCapture?MouseEventHandler < object >
onTouchCancel?TouchEventHandler < object >
onTouchCancelCapture?TouchEventHandler < object >
onTouchEnd?TouchEventHandler < object >
onTouchEndCapture?TouchEventHandler < object >
onTouchMove?TouchEventHandler < object >
onTouchMoveCapture?TouchEventHandler < object >
onTouchStart?TouchEventHandler < object >
onTouchStartCapture?TouchEventHandler < object >
onPointerDown?PointerEventHandler < object >
onPointerDownCapture?PointerEventHandler < object >
onPointerMove?PointerEventHandler < object >
onPointerMoveCapture?PointerEventHandler < object >
onPointerUp?PointerEventHandler < object >
onPointerUpCapture?PointerEventHandler < object >
onPointerCancel?PointerEventHandler < object >
onPointerCancelCapture?PointerEventHandler < object >
onPointerEnter?PointerEventHandler < object >
onPointerLeave?PointerEventHandler < object >
onPointerOver?PointerEventHandler < object >
onPointerOverCapture?PointerEventHandler < object >
onPointerOut?PointerEventHandler < object >
onPointerOutCapture?PointerEventHandler < object >
onGotPointerCapture?PointerEventHandler < object >
onGotPointerCaptureCapture?PointerEventHandler < object >
onLostPointerCapture?PointerEventHandler < object >
onLostPointerCaptureCapture?PointerEventHandler < object >
onWheel?WheelEventHandler < object >
onWheelCapture?WheelEventHandler < object >
onAnimationStart?AnimationEventHandler < object >
onAnimationStartCapture?AnimationEventHandler < object >
onAnimationEnd?AnimationEventHandler < object >
onAnimationEndCapture?AnimationEventHandler < object >
onAnimationIteration?AnimationEventHandler < object >
onAnimationIterationCapture?AnimationEventHandler < object >
onTransitionCancel?TransitionEventHandler < object >
onTransitionCancelCapture?TransitionEventHandler < object >
onTransitionEnd?TransitionEventHandler < object >
onTransitionEndCapture?TransitionEventHandler < object >
onTransitionRun?TransitionEventHandler < object >
onTransitionRunCapture?TransitionEventHandler < object >
onTransitionStart?TransitionEventHandler < object >
onTransitionStartCapture?TransitionEventHandler < object >
errorMessage?ChildrenOrFunction < object >