Component API

<text-area>

Open live example

Plain multi-line text field — a thin, tokenized wrapper around a native
<textarea>, styled to match the other value-entry form fields
(autocomplete-input, form-select, ...). Not a rich editor; use readonly
to display pre-formatted text (e.g. an error message) that the user can
still select and copy, typically paired with <copy-link-button>.
Supports form-field's opt-in floating-label mode when slotted inside it.

Install

import "@f-ewald/components/text-area.js";

Usage

<form-field floating-label label="Description">
  <text-area placeholder="Describe the issue…" rows="4"></text-area>
</form-field>
<text-area readonly value="Error code: 429 - No deployments available for selected model."></text-area>

Attributes / properties

PropertyAttributeTypeDefaultDescription
valuevaluestring""Current text content.
rowsrowsnumber4Visible row count (native <textarea rows>).
placeholderplaceholderstring""Placeholder text shown when empty.
readonlyreadonlybooleanfalseWhen true, the value can be selected/copied but not edited.
disableddisabledbooleanfalseDisables the field entirely (no interaction, dimmed).

Events

EventDescription
inputFires on every keystroke; detail: { value: string }.
changeNative change semantics (on blur, if the value changed); detail: { value: string }.

Slots

None.

CSS custom properties

Custom property
--ui-border
--ui-border-width
--ui-danger
--ui-focus-ring
--ui-font
--ui-font-size
--ui-font-size-sm
--ui-font-size-xs
--ui-font-weight-regular
--ui-line-height-normal
--ui-line-height-tight
--ui-primary
--ui-radius-sm
--ui-surface
--ui-surface-muted
--ui-text
--ui-text-muted