Input

A single line of text with a quiet fill, a clear focus ring, and an invalid state.

Profile

The name shown in your workspace.

Used for account notifications.

Fig. 1 Two fields in a profile form. Tab into one to see the focus ring; a faint edge appears on hover.

When to use it

Use Input for short answers: names, emails, URLs, and search terms. If people will write more than a sentence, use Textarea instead.

Always give it a visible label. A placeholder shows the expected format; it disappears as soon as people type, so it canโ€™t be the label.

InputThis page

One line.

Profile

The name shown in your workspace.

Used for account notifications.

Names, emails, and other short answers.

Textarea

Several lines.

Shown on the project overview.62/280

Descriptions, comments, and notes.

Input Group

A field with extras.

โŒ˜K
https://

Search, prefixes, units, and inline actions.

Fig. 2 Three ways to collect text. Pick by how much people will write and what sits beside it.

How it behaves

Based on Base UI Input. Label each field and connect hints or errors using aria-describedby.

The default uses the page surface inside a settings row and a compact visible focus outline. Keep labels and hints visible beside controls on wide layouts and above them on narrow screens.

Set aria-invalid for invalid values. Native input props and onValueChange are forwarded; validation belongs to your form.

Build it

Add it with the shadcn CLI:

Terminal

A complete example. Change the values to fit your product:

input-example.tsx

The full source is yours to edit once installed:

input.tsx