> Markdown version of [Text Area](https://vaadin.com/docs/v14/ds/components/text-area). Section index: [llms.txt](https://vaadin.com/docs/v14/ds/llms.txt)

# Text Area

Text Area is an input field component for multi-line text input.

`TextAreaBasic.java`

```java
TextArea textArea = new TextArea();
textArea.setLabel("Comment");
textArea.setMaxLength(charLimit);
textArea.setValueChangeMode(ValueChangeMode.EAGER);
textArea.addValueChangeListener(e -> {
  e.getSource().setHelperText(e.getValue().length() + "/" + charLimit);
});
textArea.setValue("Great job. This is excellent!");
add(textArea);
```

Text Area is typically used for descriptions, comments, and other longer free-form content.

## <a id="common-input-field-features"></a>Common Input Field Features

Text Area includes all Text Field and shared input field features.

- [See Text Field features](https://vaadin.com/docs/v14/ds/components/text-field.md)

- [See shared input field features](https://vaadin.com/docs/v14/ds/components/input-fields.md)

## <a id="automatic-height-adjustment"></a>Automatic Height Adjustment

Unless set to a fixed height, Text Area adjusts its height automatically based on its content. The default and minimum height is two rows of text.

`TextAreaAutoHeight.java`

```java
TextArea textArea = new TextArea();
textArea.setWidthFull();
textArea.setLabel("Description");
textArea.setValue(loremIpsum);
add(textArea);
```

### <a id="minimum-and-maximum-height"></a>Minimum and Maximum Height

The automatic resizing can be restricted to a minimum and maximum height:

`TextAreaHeight.java`

```java
TextArea textArea = new TextArea();
textArea.setWidthFull();
textArea.setMinHeight("100px");
textArea.setMaxHeight("150px");
textArea.setLabel("Description");
textArea.setValue(loremIpsum);
add(textArea);
```

## <a id="character-counter"></a>Character Counter

Longer free-form inputs are often capped at a certain character limit. The current character count and upper limit should be indicated to the user, for example, by using the [Helper](https://vaadin.com/docs/v14/ds/components/input-fields.md#helper) feature:

`TextAreaHelper.java`

```java
TextArea textArea = new TextArea();
textArea.setWidthFull();
textArea.setLabel("Description");
textArea.setMaxLength(charLimit);
textArea.setValueChangeMode(ValueChangeMode.EAGER);
textArea.addValueChangeListener(e -> {
  e.getSource().setHelperText(e.getValue().length() + "/" + charLimit);
});
textArea.setValue(loremIpsum);
add(textArea);
```

## <a id="related-components"></a>Related Components

| Component                                                                         | Usage recommendations                               |
| --------------------------------------------------------------------------------- | --------------------------------------------------- |
| [Text Field](https://vaadin.com/docs/v14/ds/components/text-field.md)             | Basic single-line text input.                       |
| [Rich Text Editor](https://vaadin.com/docs/v14/ds/components/rich-text-editor.md) | Multi-line text entry with rich formatting support. |

`9846D297-9B45-45FB-A0A1-1774F74596E1`
