Textarea
Textarea lets the user input plain-text on multiple lines.
Import#
import { Textarea } from '@volue/wave-react';
Examples#
Basic#
Controlled#
It is most common to set up Textarea as a controlled component, meaning that React state drives its value. To achieve this you must provide value and onChange properties.
With Form Field#
Textarea should be clearly labeled so it's obvious to users what they should enter. Optionally, you may want to connect helper text and/or validation feedback message to the textarea element.
Thus it is recommended to wrap textareas with Form Field to create a consistent set of form fields that are accessible to screen reader users.
Placeholder#
Placeholder text provides examples of the type of data a user should enter.
Placeholder text disappears after the user begins entering data into the textarea and should not contain crucial information. Do not use placeholder text as a replacement for labels or descriptions.
Disabled textarea#
Pass isDisabled prop to the accompanying FormField and it will cascade down to the textarea.
You can also pass isDisabled prop directly to Textarea.
Sizes#
Wave provides two Textarea sizes ‐ medium and small, with the medium size used by default. All sizes are aligned with sizes of other related components like Text Input or Select.
Size inheritance#
Textarea automatically inherits size, when placed inside a FormField component.
Responsive#
Textarea supports responsive syntax for its size property, which means you can change its size based on the viewport.
Multi-sizing#
Wave provides applySizes utility, which lets you specify size "scopes" within your app.
All textareas within a scope will share the same size unless overwritten on a per-control basis.
Automatic rows adjustment#
Automatic rows adjustment can be accomplished using the autoResize prop.
API Reference#
In addition to the props below, you can pass all React.TextareaHTMLAttributes.
Prop | Type | Default |
|---|---|---|
css | StitchesCss | No default value |
isDisabled | boolean | No default value |
isReadOnly | boolean | No default value |
isRequired | boolean | No default value |
validationStatus | enum | No default value |
size | enum | No default value |
autoResize | boolean | false |