---
## Textarea
Multi-line text input with auto-resize, character counter, and validation states.
Shares the same variant/intent/size system as Input for visual consistency.
**Import:** `import { Textarea } from '@urbicon-ui/blocks';`
### Examples
```svelte
```
```svelte
```
### Variants
- intent: danger, default, success, warning (default: default)
- size: lg, md, sm (default: md)
- autoResize: true (default: false)
- disabled: true (default: false)
- messageType: error, helper (default: helper)
- readonly: true (default: false)
- required: true (default: false)
- tier: commit, modify (default: modify)
### Api
| Prop | Type | Required | Default | Description |
| --- | --- | :---: | --- | --- |
| ...HTMLTextareaAttributes | `HTMLAttributes` | no | | HTML attributes (excluding: 'size' | 'class' | 'children') |
| ...TextareaVariants | `VariantProps` | no | | Styling variants from TextareaVariants |
| autoResize | `boolean` | no | false | Automatically grow the textarea height to fit content. Disables manual resize handle. |
| class | `string` | no | | Extra classes merged onto the root wrapper element. |
| counterWarningThreshold | `number` | no | 0.9 | Character threshold (percentage of maxlength) at which the counter turns warning color. |
| disabled | `boolean` | no | false | Whether the Textarea is disabled and non-interactive |
| error | `string` | no | | Error message below the textarea. Overrides `helper` and forces danger border styling. |
| helper | `string` | no | | Helper text below the textarea. Hidden when `error` is set. |
| label | `string` | no | | Label text displayed above the textarea, auto-linked via `for`/`id`. |
| maxRows | `number` | no | | Maximum number of visible text rows when autoResize is enabled. |
| minRows | `number` | no | 3 | Minimum number of visible text rows. |
| mint | `MintProp` | no | 'none' | Micro-interaction preset applied to the textarea element. |
| preset | `string` | no | | Apply a named preset registered via ``. Prefer this over `class` overrides when the requested look falls outside the semantic intent palette — presets keep hover/active/dark-mode logic coherent and make the custom look reusable across the project. |
| readonly | `boolean` | no | false | Readonly property for the Textarea component |
| required | `boolean` | no | false | Adds a required asterisk to the label and sets the native `required` attribute. |
| showCounter | `boolean` | no | | Show a live character counter. Requires `maxlength` to display remaining count. |
| slotClasses | `Partial>` | no | | Per-slot class overrides merged with tv() styles. Slots: wrapper (root — what `class` also targets) | base (the `