Form controls
Textarea
A multi-line text input with vertical resize, an optional inline error message, and bindable
value. Pair with <Label /> when you need a separate label.
Basic
Resize toggle
Error state
Bio is required.
API
| Prop | Type | Default | Description |
|---|---|---|---|
value | string | '' | Bindable textarea value. |
rows | number | 4 | Initial visible rows. |
placeholder | string | no default | Placeholder text. |
label | string | no default | Label rendered above the control. |
hint | string | no default | A line of help under the field. |
error | string | no default | Error message rendered below. |
resize | boolean | true | Allow the user to drag-resize vertically. |
disabled | boolean | false | Disable the textarea. |
readonly | boolean | false | Read-only mode. |
required | boolean | false | Mark as required for form validation. |
maxlength | number | no default | The most characters the field accepts. |
mono | boolean | false | Sets the control alone in the monospace face, for code, JSON or a key. |
id | string | no default | The textarea's id. Left out, it is a unique generated id. One passed in wins, and it is what a Label's for or a selector should aim at. |
name | string | no default | The form field the value posts under. |
oninput | (e: Event) => void | no default | Fires on every keystroke. |
onblur | (e: FocusEvent) => void | no default | Fires on blur. |
class | string | no default | Extra classes on the wrapper. |
noAI | boolean | false | Keep the value from an assistant: a FormAssist never reports it or fills it, and the control is marked data-no-ai for a browser agent. |