Design system
Docs
Primitives

Textarea

A multi-line field with the same tokens as Input and vertical resize

Import
import { Textarea } from "@nyte-ai/ui";

Implemented in packages/ui/src/components/ui/textarea.tsx. This is a plain <textarea>; there is no Base UI part behind it.

Usage

  • Same naming rule as Input: label, aria-label, or aria-labelledby.
  • Resize is vertical only. If a surface must not grow, set resize: none through xstyle.
  • The composer in the desktop app is not this component; it is a Lexical editor. Use Textarea for settings and forms.

Example

<Textarea placeholder="System prompt" aria-label="System prompt" />

Props

TextareaProps is React.ComponentProps<"textarea"> minus className/style, plus:

PropTypeDefaultDescription
unstyledbooleanfalseRender with no StyleX class.
className, style, xstylesee Theming

Accessibility

Native. aria-invalid switches the border to --nyte-color-destructive; disabled drops opacity.

Styling

Identical to Input except the minimum height, which is --nyte-control-textarea-min-height (64px).