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.

We'll never share your email with anyone else.

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:

BeforeNow
variant="elevated" for fields on Cards and DialogsRemoved. The default tint works on any surface, so drop the prop.
One filled stylevariant="outline" adds a bordered style, matching the outline Button.