OPERATOR

Textarea

Default

With rows

Disabled

A disabled field keeps its text readable: dim text on a muted fill, with the control outline, and no fade.

Inside a Field

Free-form text. Max 2000 chars.

Props

PROPTYPEDEFAULTREQUIRED
rowsnumber4no
valuestring—no
defaultValuestring—no
placeholderstring—no
disabledbooleanfalseno
requiredbooleanfalseno
invalid

Override Field's invalid state.

boolean—no
namestring—no

Accessibility

  • Native textarea semantics; inherits id, aria-describedby, aria-invalid, and required from Field.
  • invalid wins over aria-invalid, and what is announced matches the border drawn.
  • The field outline is the control outline (--oprt-border-control, 3:1 or more).
  • Native resizing is disabled.

Manifest entry

<Field label="MISSION NOTES" help="Free-form text.">
  <Textarea placeholder="ENTER NOTES..." />
</Field>
View agent manifest
{
  "description": "Multi-line text input. Fixed rows (default 4); scroll on overflow. No native resize handle (rounded grip violates radius rule).",
  "props": {
    "rows": {
      "type": "number",
      "default": 4
    },
    "value": {
      "type": "string"
    },
    "defaultValue": {
      "type": "string"
    },
    "placeholder": {
      "type": "string"
    },
    "disabled": {
      "type": "boolean",
      "default": false
    },
    "required": {
      "type": "boolean",
      "default": false
    },
    "invalid": {
      "type": "boolean",
      "description": "Override Field's invalid state."
    },
    "name": {
      "type": "string"
    }
  },
  "composable_with": [
    "Field"
  ],
  "never_inside": [
    "Button",
    "Badge"
  ],
  "example": "<Field label=\"MISSION NOTES\" help=\"Free-form text.\">\n  <Textarea placeholder=\"ENTER NOTES...\" />\n</Field>"
}

On this page