Skip to content

Textarea

Textarea is a styled multi-line text input with v-model support, error/hint messaging, and disabled state.

Basic usage

Tailwind v4
vue
<Textarea v-model="notes" placeholder="Enter notes..." />

With label

Tailwind v4
vue
<FormGroup label="Notes" for="notes">
  <Textarea id="notes" v-model="notes" placeholder="Add any additional context..." />
</FormGroup>

Rows

Control the initial height with rows (maps to the native rows attribute):

rows="2"
rows="6"
Tailwind v4
vue
<Textarea v-model="description" :rows="2" />
<Textarea v-model="description" :rows="6" />

Textareas are vertically resizable by default (resize-y).

Error state

Tailwind v4
vue
<Textarea v-model="body" :error="errors.body" />

Hint text

Tailwind v4
vue
<Textarea v-model="bio" hint="Max 500 characters." />

Disabled

Tailwind v4
vue
<Textarea v-model="value" :disabled="true" />

Props

PropTypeDefaultDescription
modelValuestringValue (use with v-model)
placeholderstringPlaceholder text
rowsnumber3Initial number of visible rows
errorstringError message — shows danger border + text below
hintstringHint text below (hidden when error is set)
disabledbooleanfalseDisables the textarea

Events

EventPayloadDescription
update:modelValuestringEmitted on every keystroke

Private — Jetpack Labs internal use only