Form input

Textarea

Multiline semantics without duplicating TextField styling or validation state.

30

Playground

Configure the component and copy synchronized Vue code.

Interactive preview

Changes are reflected in the example and source.

30

Properties

Variant

Rows

Auto grow

Counter

Slots

Vue

<m-textarea
  v-model="description"
  variant="outlined"
  :rows="3"
  auto-grow
  counter
  label="Description"
>
</m-textarea>

Token map

The manual manifest combines inherited token owners with local deltas.

MTextarea · All76 tokens
md-textarea

MTextarea API

Props, slots, and events are generated from the current public kit contract.

MTextarea

Field family
src/runtime/components/ui/textarea

Props

NameTypeDefault
disabledPrevents interaction and applies the disabled visual state.
booleanfalse
loadingReplaces content with progress feedback and prevents interaction.
booleanfalse
readonly
booleanfalse
variant
'filled' | 'outlined''filled'
rounded
'sharp' | 'small' | 'medium' | 'large' | 'pill''small'
labelPlacementWhere the label sits. Defaults to `top` rather than the family's `float`: a multi-line box has no free first line to float into, which is what made the label land in the middle of the box before this was an axis.
'top' | 'float' | 'inset' | 'hidden''top'
path
stringundefined
name
stringundefined
label
stringundefined
placeholder
stringundefined
helperText
stringundefined
error
booleanfalse
errorMessage
stringundefined
required
booleanfalse
autofocus
booleanfalse
autocomplete
stringundefined
rowsMinimum and initial height, in rows.
number3
maxRowsGrowth ceiling in rows; beyond it the value scrolls.
numberundefined
autoGrowGrow with the content instead of staying at `rows`.
booleanfalse
resizableRender a corner grip the user can drag — or arrow-key — to set the height. A height set by hand outranks `autoGrow` until Escape resets it.
booleanfalse
resizeLabelAccessible name of the resize grip.
stringMESSAGES.textareaResize
maxlength
numberundefined
counter`true` counts against `maxlength`; a number sets a display-only limit.
boolean | numberfalse
spellcheck
booleanundefined
wrap
'soft' | 'hard' | 'off''soft'

Slots

Events

MTextarea does not emit component-specific events. Native events fall through to its root element.