Input
Text input field for user data entry with various states and styling
Primitive
A single-line text input for collecting short user data: names, emails, search queries, or any free-form value. For labeling, validation, and error messages, wrap it in Field.
Preview
Installation
Usage
Examples
With Label
Pair the input with a <label> to describe what it collects.
Disabled
Set disabled to prevent interaction and dim the input.
Outline Variant
Use variant="outline" to match the outline Button: a card fill with a hairline border in light mode, a recessed fill with a faint ring in dark mode. The default tint already reads on the page, Cards, Dialogs, and popovers, so no field needs a per-surface variant.
Form Integration
Use Field for labeling, validation, and error display. See the Forms guide for more patterns.
API Reference
The Input component is built on top of Base UI's Input. All Base UI props are supported. The documentation below only covers custom props specific to our implementation.
For the complete Base UI API, see the Base UI Input documentation.
Props
Upgrading
If you're reinstalling over an earlier version, check these changes:
| Before | Now |
|---|---|
variant="elevated" for fields on Cards and Dialogs | Removed. The default tint works on any surface, so drop the prop. |
| One filled style | variant="outline" adds a bordered style, matching the outline Button. |