Skip to content

Textarea autosize

The TextareaAutosize component gives you a textarea HTML element that automatically adjusts its height to match the length of the content within.


TextareaAutosize is a utility component that replaces the native <textarea> HTML element.

The height of the TextareaAutosize component automatically adjusts as a response to keyboard inputs and window resizing events.



After installation, you can start building with this component using the following basic elements:

import TextareaAutosize from '@mui/base/TextareaAutosize';

export default function MyApp() {
  return <TextareaAutosize />;


TextareaAutosize behaves similarly to the native HTML<textarea>.

By default, an empty TextareaAutosize component renders as a single row, as shown in the following demo:

  aria-label="empty textarea"
  style={{ width: 200 }}


Minimum height

Use the minRows prop to define the minimum height of the component:

  aria-label="minimum height"
  placeholder="Minimum 3 rows"
  style={{ width: 200 }}

Maximum height

Use the maxRows prop to define the maximum height of the component:

  aria-label="maximum height"
  placeholder="Maximum 4 rows"
  defaultValue="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
      ut labore et dolore magna aliqua."
  style={{ width: 200 }}