Skip to content

Textarea โ€‹

A multi-line text input with sizes, color and visual variants, validation states, slot-overridable label and helper, JS-driven auto-resize, and an optional character counter. Toggle Vue / CSS to switch the live demo and source together.

Basic โ€‹

Default textarea with label, placeholder and helper text.

Vue SFC

Sizes โ€‹

Small, medium and large.

Vue SFC

Variants โ€‹

outlined, filled and underlined.

underlined focuses with a soft glow under the line rather than a ring around the field โ€” tune it with --mono-textarea-underline-glow (default 0 5px 6px -6px).

Vue SFC

Colors โ€‹

All built-in color variants.

Vue SFC

States โ€‹

Disabled, readonly and required.

Vue SFC

Validation โ€‹

valid, invalid and warning states with messages.

Vue SFC

Auto resize โ€‹

Grow with content between min-rows and max-rows.

Vue SFC

Counter โ€‹

Live character count via show-counter and max-length.

Vue SFC

Slots โ€‹

Custom label and helper content via named slots.

Vue SFC

Event log โ€‹

Live log of mno-input and mno-change events.

Vue SFC

Customized โ€‹

Override per-element styling with cssClass (Vue) or extra utility classes (CSS).

Vue SFC

Width & height โ€‹

Set width, height, min-width, max-width, min-height or max-height โ€” each takes a CSS string ("320px", "80%") or a number (px). Fields are full width by default; set width to constrain.

Vue SFC

CSS Variables โ€‹

Vue SFC

Every textarea is themed through --mono-textarea-* custom properties. Setting one on the element, on any wrapper/ancestor, or inline all work โ€” custom properties inherit, and they pierce the shadow-DOM boundary, so the same overrides apply to <mono-textarea> and the shadow build. The color prop sets the focus accent, but an explicit --mono-textarea-focus-color override always wins. To re-skin globally, set the underlying --theme-* tokens.

VariableDefaultControls
--mono-textarea-focus-color--theme-primaryFocus border color (set by color)
--mono-textarea-focus-rgbprimary rgbFocus ring color (as r, g, b)
--mono-textarea-underline-glow0 5px 6px -6pxUnderlined focus glow geometry
--mono-textarea-text--theme-textField + label text color
--mono-textarea-border--theme-borderField border color
--mono-textarea-background--theme-backgroundField background (filled/default)
--mono-textarea-surface--theme-surfaceField background (outlined)
--mono-textarea-placeholder--theme-placeholderPlaceholder color
--mono-textarea-shadow0 1px 2px โ€ฆField shadow
--mono-textarea-success--theme-successValid-state color
--mono-textarea-danger--theme-dangerInvalid / required color
--mono-textarea-warning--theme-warningWarning-state color

Types โ€‹

Importimport { TextareaProps } from 'mono-helper'
PropValueDefaultDescription
modelValuestringโ€”Two-way bound text value of the textarea.
valuestringโ€”Text value (kept in sync with modelValue).
namestringโ€”Form field name for the underlying textarea.
placeholderstringโ€”Placeholder text shown when empty.
labelstringโ€”Text label shown above the textarea.
helperTextstringโ€”Helper text shown below the textarea.
validationState'warning' | 'default' | 'valid' | 'invalid'โ€”Validation state controlling field styling.
validationMessagestringโ€”Message shown for the current validation state.
errorMessagestringโ€”Error message that forces the invalid state.
successMessagestringโ€”Success message that forces the valid state.
size'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'โ€”Size of the textarea.
color'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info'โ€”Color theme of the textarea.
variant'underlined' | 'outlined' | 'filled'โ€”Visual style of the textarea.
disabledbooleanโ€”Disables interaction with the textarea.
readonlybooleanโ€”Makes the textarea read-only.
requiredbooleanโ€”Marks the field as required.
autofocusbooleanโ€”Focuses the textarea on first render.
autoResizebooleanโ€”Automatically grows the height to fit content.
rowsnumberโ€”Initial number of visible text rows.
minRowsnumberโ€”Minimum number of rows when auto-resizing.
maxRowsnumberโ€”Maximum number of rows when auto-resizing.
minLengthnumberโ€”Minimum allowed character length.
maxLengthnumberโ€”Maximum allowed character length.
showCounterbooleanโ€”Shows a character counter below the field.
ariaLabelTextstringโ€”Accessible label for screen readers.
ariaLabelstringโ€”โ€”
widthstring | numberโ€”Explicit sizing. Each accepts a CSS length string (`"320px"`, `"80%"`) or a number (interpreted as px). Use `width="100%"` for a full-width field.
heightstring | numberโ€”โ€”
minWidthstring | numberโ€”โ€”
maxWidthstring | numberโ€”โ€”
minHeightstring | numberโ€”โ€”
maxHeightstring | numberโ€”โ€”
cssClassTextareaCssClassโ€”Per-part class overrides for styling internal elements.
visiblebooleanโ€”Whether the control is shown. Defaults to `true`.
visibleType'invisible' | 'none'โ€”How it hides when `visible` is `false`. Defaults to `'none'`.