# Text Area

Captures multi-line user input.

```jsx
<TextArea placeholder="Reply to comment…" />
```

## [API Reference](#api-reference)

This component is based on the `textarea` element and supports [common margin props](/themes/docs/overview/layout#margin-props).

| Prop      | Type                                                         | Default          |
| --------- | ------------------------------------------------------------ | ---------------- |
| `size`    | `Responsive<"1" \| "2" \| "3">`                              | `"2"`            |
| `variant` | `"classic" \| "surface" \| "soft"`                           | `"surface"`      |
| `resize`  | `Responsive<"none" \| "vertical" \| "horizontal" \| "both">` | No default value |
| `color`   | `enum`                                                       | No default value |
| `radius`  | `"none" \| "small" \| "medium" \| "large" \| "full"`         | No default value |

## [Examples](#examples)

### [Size](#size)

Use the `size` prop to control the size.

```jsx
<Flex direction="column" gap="3">
  <Box maxWidth="200px">
    <TextArea size="1" placeholder="Reply to comment…" />
  </Box>

  <Box maxWidth="250px">
    <TextArea size="2" placeholder="Reply to comment…" />
  </Box>

  <Box maxWidth="300px">
    <TextArea size="3" placeholder="Reply to comment…" />
  </Box>
</Flex>
```

### [Variant](#variant)

Use the `variant` prop to control the visual style.

```jsx
<Flex direction="column" gap="3" maxWidth="250px">
  <TextArea variant="surface" placeholder="Reply to comment…" />

  <TextArea variant="classic" placeholder="Reply to comment…" />

  <TextArea variant="soft" placeholder="Reply to comment…" />
</Flex>
```

### [Color](#color)

Use the `color` prop to assign a specific [color](/themes/docs/theme/color).

```jsx
<Flex direction="column" gap="3" maxWidth="250px">
  <TextArea color="blue" variant="soft" placeholder="Reply to comment…" />

  <TextArea color="green" variant="soft" placeholder="Reply to comment…" />

  <TextArea color="red" variant="soft" placeholder="Reply to comment…" />
</Flex>
```

### [Radius](#radius)

Use the `radius` prop to assign a specific radius value.

```jsx
<Flex direction="column" gap="3" maxWidth="250px">
  <TextArea radius="none" placeholder="Search the docs…" />

  <TextArea radius="large" placeholder="Search the docs…" />

  <TextArea radius="full" placeholder="Search the docs…" />
</Flex>
```

### [Resize](#resize)

Use the `resize` prop to enable resizing on one or both axis.

```jsx
<Flex direction="column" gap="3" maxWidth="250px">
  <TextArea resize="none" placeholder="Search the docs…" />

  <TextArea resize="vertical" placeholder="Search the docs…" />

  <TextArea resize="horizontal" placeholder="Search the docs…" />

  <TextArea resize="both" placeholder="Search the docs…" />
</Flex>
```

<!--$-->

<!--/$-->
