# Textarea
`lion-textarea` is a webcomponent that enhances the functionality of the native `` element.
Its purpose is to provide a way for users to write text that is multiple lines long.
```js script
import { html } from 'lit-html';
import { MaxLength, MinLength, Required } from '@lion/form-core';
import { loadDefaultFeedbackMessages } from '@lion/validate-messages';
import './lion-textarea.js';
export default {
title: 'Forms/Textarea',
};
loadDefaultFeedbackMessages();
```
```js preview-story
export const main = () => html`
`;
```
## Features
- Default rows is 2 and it will grow to max-rows of 6.
- `max-rows` attribute to set the amount of rows it should resize to, before it will scroll
- `rows` attribute to set the minimum amount of rows
- `readonly` attribute to prevent changing the content
## How to use
### Installation
```bash
npm i --save @lion/textarea
```
```js
import { LionTextare } from '@lion/textarea';
// or
import '@lion/textarea/lion-textarea.js';
```
## Examples
### Prefilled
You can prefill the textarea. If you want to prefill on multiline, you will have to add newline characters `'\n'`.
```js preview-story
export const prefilled = () => html`
`;
```
### Disabled
The textarea can be disabled with the `disabled` attribute.
```js preview-story
export const disabled = () => html` `;
```
### Readonly
`readonly` attribute indicate that you can't change the content. Compared with `disabled` attribute, the `readonly` attribute doesn't prevent clicking or selecting the element.
```js preview-story
export const readonly = () => html`
`;
```
### Stop growing
Use the `max-rows` attribute to make it stop growing after a certain amount of lines.
```js preview-story
export const stopGrowing = () => html`
`;
```
### Non-growing
To have a fixed size provide `rows` and `max-rows` with the same value.
```js preview-story
export const nonGrowing = () => html`
`;
```
### Validation
The textarea can have validation.
```js preview-story
export const validation = () => {
return html`
`;
};
```