0.8.0 • Public • Published

API Documentation


A text area that makes itself big enough to show its content.

Live demo

This text input component is useful in situations where you want to ask the user to enter as much text as they want, but don't want to take up a lot of room on the page.

The component works by copying the text to an invisible element which will automatically grow in size; the expanding copy will expand the container, which in turn will vertically stretch the text area to match.

This component generally exposes all the same attributes/properties as a standard HTML <textarea>.

Kind: global class Mixes: Generic , DistributedChildrenAsContent , ObserveContentChanges


Resize the element such that the textarea can exactly contain its content. By default, this method is invoked whenever the text content changes.

Kind: instance method of AutosizeTextarea


Fires when the user types in the textarea.

Kind: event emitted by AutosizeTextarea

autosizeTextarea.content : Array.<HTMLElement>

The content of this component, defined to be the flattened array of children distributed to the component.

Kind: instance property of AutosizeTextarea. Defined by DistributedChildrenAsContent mixin.


This event is raised when the component's contents (including distributed children) have changed.

Kind: event emitted by AutosizeTextarea. Defined by ObserveContentChanges mixin.


Invoked when the contents of the component (including distributed children) have changed.

This method is also invoked when a component is first instantiated; the contents have essentially "changed" from being nothing. This allows the component to perform initial processing of its children.

Kind: instance method of AutosizeTextarea. Defined by ObserveContentChanges mixin.

autosizeTextarea.generic : Boolean

True if the component would like to receive generic styling.

This property is true by default — set it to false to turn off all generic styles. This makes it easier to apply custom styling; you won't have to explicitly override styling you don't want.

Kind: instance property of AutosizeTextarea. Defined by Generic mixin. Default: true

autosizeTextarea.minimumRows : number

Determines the minimum number of rows shown. This is similar to the rows attribute on a standard textarea, but because this element can grow, is expressed as a minimum rather than a fixed number.

By default, this property is 1, so when empty, the text area will be a single line tall. That's efficient in terms of the space it consumes, but until the user interacts with the element, they may not realize they can enter multiple lines of text. Setting the property to a value higher than 1 will signal to the user that they can enter multiple lines of a text.

By setting this property, you can also communicate to the user some sense of how much text you're expecting them to provide. For example, on a feedback form, asking the user to enter their feedback in a single-line text box implies you don't really want them to enter much text — even if the text box will grow when they type. By setting this to a value like, say, 10 rows, you can signal that you're fully expecting them to enter more text.

Kind: instance property of AutosizeTextarea Default: 1

autosizeTextarea.value : string

The text currently shown in the textarea.

Note that the text shown in the textarea can also be updated by changing the element's innerHTML/textContent. However, if the value property is explicitly set, that will override the innerHTML/textContent.

Kind: instance property of AutosizeTextarea

Package Sidebar


npm i basic-autosize-textarea

Weekly Downloads






Last publish


  • jan.miksovsky
  • robbear