Textarea

Area where user can enter larger amounts of text. Commonly used in forms.

Default


Add an id to your Textarea so that clicking the label will move focus directly to the input.

Custom Textarea Input


Resize


Textarea w/ Error


Textarea w/ Error shows that the input must be filled out (i.e. when used in a form it signals a user to fix an error).

Character Counter


Inline


Emoji Mask


Use the emojiMask / emoji_mask prop to prevent users from entering emoji characters (🐸 🐈 🏄‍♂️) in typed or pasted content. It allows accented characters and other non-ASCII letters (é, ü, 文).

Required Indicator


The requiredIndicator/required_indicator prop displays a red asterisk (*) next to the label, visually indicating that the field is required. This is purely visual and does not enforce validation.

You can use requiredIndicator/required_indicator with any validation approach: HTML5 validation via the required prop, client-side validation, or backend validation. For this reason, it works independently and doesn't need to be paired with the required prop.

Input Options


Use the input_options / inputOptions prop to pass additional attributes directly to the underlying <textarea> element instead of the outer wrapper. This is useful for applying data attributes, custom IDs, ARIA attributes, or other HTML attributes that need to be on the textarea element itself.

Additional HTML attributes (e.g. data or ARIA attributes) can also be passed directly to the <textarea> via input_options.

Disabled



Things to Avoid

Do not use for small text amounts (use Text Input instead). Avoid using textarea without validation if it is required and using with validation if not required.

Available Props