Forms and selection · stable · MIT

Textarea

A native multiline field with validation, resizing, and live count.

Install editable source

Add Textarea

Base UI / canonicalnpx shadcn@latest add https://gummyui.dev/r/gummy-textarea.json

No package dependency beyond React. Shared Gummy material is resolved automatically.

Behavior contract

Semantics before surface

Semantics

Visible label, native textarea, described-by, alerts, and optional status.

Keyboard

Native multiline editing.

System support

Light and dark themes, logical RTL layout, reduced motion, responsive content, and forwarded public refs.

Source-derived reference

Anatomy and public API

Exported anatomy

These public React parts are read directly from the canonical source during the documentation build.

  • GummyTextarea

Prop contracts

GummyTextareaProps

Composes React.TextareaHTMLAttributes<HTMLTextAreaElement> & { label: React.ReactNode; description?: React.ReactNode; errorMessage?: React.ReactNode; successMessage?: React.ReactNode; optional?: boolean; resize?: "none" | "vertical" | "both"; showCount?: boolean; wrapperClassName?: string; }

Troubleshooting

Check behavior before surface.

Implementation decisions

When to use Textarea

Use a textarea for genuinely multi-line input and state what kind of content, length, and formatting the service accepts. Connect a visible label, guidance, validation, and any character count without announcing every keystroke. Preserve entered text after recoverable errors and validate again on the server. Test pasting, long unbroken content, spellcheck, resizing, mobile keyboards, high zoom, and sensitive-data warnings.

Live product source

Inspect the canonical states

The Component Lab exercises real source across default, focus, disabled, responsive, dark, reduced-motion, and RTL contexts.

Open the live Component Lab

Interactive inspection

Try Textarea in context

Load the real component preview when you are ready to interact with its responsive, theme, and direction controls.

Editable source

Read before you install

Canonical Base UI or native source

The registry payload stays off the initial page request.