Textarea

Multi-line text input for longer content like comments or descriptions.

Default

Base

ClassDescription
.ui-textareaBase class

Size

ClassValue
.ui-textarea--smsm
.ui-textarea--lglg

Variant

ClassValue
.ui-textarea--filledfilled
.ui-textarea--ghostghost

State

ClassValue
.ui-textarea--errorerror
.ui-textarea--successsuccess

Resize

ClassValue
.ui-textarea--resize-noneresize-none
.ui-textarea--resize-horizontalresize-horizontal
.ui-textarea--resize-bothresize-both

Auto-size

ClassDescription
.ui-textarea--auto-sizeauto-size

Override these CSS custom properties to customize the component.

TokenDefaultDescription
--ui-textarea-min-height calc(var(--ui-row) * 4) Minimum height
--ui-textarea-padding-x var(--ui-space-1) Horizontal padding
--ui-textarea-padding-y var(--ui-space-1) Vertical padding
--ui-textarea-font-size var(--ui-font-size-sm) Font size
--ui-textarea-radius var(--ui-radius-md) Corner radius
--ui-textarea-bg var(--ui-color-bg) Background color
--ui-textarea-border-color var(--ui-color-border-strong) Border color
--ui-textarea-border-color-focus var(--ui-color-primary) Border color focus
--ui-textarea-color var(--ui-color-text) Text color
--ui-textarea-placeholder var(--ui-color-text-muted) Placeholder
--ui-textarea-min-height-sm calc(var(--ui-row) * 3) Minimum height at small size
--ui-textarea-font-size-sm var(--ui-font-size-xs) Font size at small size
--ui-textarea-min-height-lg calc(var(--ui-row) * 6) Minimum height at large size
--ui-textarea-padding-x-lg var(--ui-space-2) Horizontal padding at large size
--ui-textarea-padding-y-lg var(--ui-space-2) Vertical padding at large size
--ui-textarea-font-size-lg var(--ui-font-size-md) Font size at large size
--ui-textarea-filled-bg var(--ui-color-bg-muted) Filled bg
--ui-textarea-error-border var(--ui-color-danger) Error border
--ui-textarea-success-border var(--ui-color-success) Success border

Sizes

<textarea class="ui-textarea ui-textarea--sm" placeholder="Small (3 rows)"></textarea>
<textarea class="ui-textarea" placeholder="Default (4 rows)"></textarea>
<textarea class="ui-textarea ui-textarea--lg" placeholder="Large (6 rows)"></textarea>

Variants

<textarea class="ui-textarea" placeholder="Outline (default)"></textarea>
<textarea class="ui-textarea ui-textarea--filled" placeholder="Filled"></textarea>
<textarea class="ui-textarea ui-textarea--ghost" placeholder="Ghost"></textarea>

States

<textarea class="ui-textarea ui-textarea--error">Invalid content</textarea>
<textarea class="ui-textarea ui-textarea--success">Valid content</textarea>
<textarea class="ui-textarea" disabled placeholder="Disabled"></textarea>
<textarea class="ui-textarea" readonly>Read only content</textarea>

Resize Options

<!-- Control how users can resize the textarea. -->
<textarea class="ui-textarea" placeholder="Vertical resize (default)"></textarea>
<textarea class="ui-textarea ui-textarea--resize-none" placeholder="No resize"></textarea>
<textarea class="ui-textarea ui-textarea--resize-horizontal" placeholder="Horizontal resize only"></textarea>
<textarea class="ui-textarea ui-textarea--resize-both" placeholder="Resize both directions"></textarea>

Auto Size

<!-- Automatically grows to fit content using field-sizing: content. Falls back to fixed min-height in unsupported browsers. -->
<textarea class="ui-textarea ui-textarea--auto-size" placeholder="Type to grow..."></textarea>
<textarea class="ui-textarea ui-textarea--auto-size ui-textarea--sm" placeholder="Small auto-size"></textarea>
<textarea class="ui-textarea ui-textarea--auto-size ui-textarea--lg" placeholder="Large auto-size"></textarea>