Textarea
<sl-textarea> | SlTextarea
            Textareas collect data from the user and allow multiple lines of text.
<sl-textarea></sl-textarea>
              This component works with standard <form> elements. Please refer to the section on
              form controls to learn more about form submission and
              client-side validation.
            
Examples
Labels
            Use the label attribute to give the textarea an accessible label. For labels that contain HTML,
            use the label slot instead.
          
<sl-textarea label="Comments"></sl-textarea>
Help Text
            Add descriptive help text to a textarea with the help-text attribute. For help texts that
            contain HTML, use the help-text slot instead.
          
<sl-textarea label="Feedback" help-text="Please tell us what you think."> </sl-textarea>
Rows
Use the rows attribute to change the number of text rows that get shown.
<sl-textarea rows="2"></sl-textarea>
Placeholders
Use the placeholder attribute to add a placeholder.
<sl-textarea placeholder="Type something"></sl-textarea>
Filled Textareas
Add the filled attribute to draw a filled textarea.
<sl-textarea placeholder="Type something" filled></sl-textarea>
Disabled
Use the disabled attribute to disable a textarea.
<sl-textarea placeholder="Textarea" disabled></sl-textarea>
Sizes
Use the size attribute to change a textarea’s size.
<sl-textarea placeholder="Small" size="small"></sl-textarea> <br /> <sl-textarea placeholder="Medium" size="medium"></sl-textarea> <br /> <sl-textarea placeholder="Large" size="large"></sl-textarea>
Prevent Resizing
            By default, textareas can be resized vertically by the user. To prevent resizing, set the
            resize attribute to none.
          
<sl-textarea resize="none"></sl-textarea>
Expand with Content
            Textareas will automatically resize to expand to fit their content when resize is set to
            auto.
          
<sl-textarea resize="auto"></sl-textarea>
Slots
| Name | Description | 
|---|---|
| label | The textarea’s label. Alternatively, you can use the labelattribute. | 
| help-text | Text that describes how to use the input. Alternatively, you can use the help-textattribute. | 
Learn more about using slots.
Properties
| Name | Description | Reflects | Type | Default | 
|---|---|---|---|---|
| stacked | Whether the label should always be stacked | boolean | false | |
| name | The name of the textarea, submitted as a name/value pair with form data. | string | '' | |
| value | The current value of the textarea, submitted as a name/value pair with form data. | string | '' | |
| size | The textarea’s size. |  | 'small' | 'medium' | 'large' | 'medium' | 
| filled | Draws a filled textarea. |  | boolean | false | 
| label | The textarea’s label. If you need to display HTML, use the labelslot instead. | string | '' | |
| helpText help-text  | The textarea’s help text. If you need to display HTML, use the help-textslot instead. | string | '' | |
| placeholder | Placeholder text to show as a hint when the input is empty. | string | '' | |
| rows | The number of rows to display by default. | number | 4 | |
| resize | Controls how the textarea can be resized. | 'none' | 'vertical' | 'auto' | 'vertical' | |
| disabled | Disables the textarea. |  | boolean | false | 
| readonly | Makes the textarea readonly. |  | boolean | false | 
| form | By default, form controls are associated with the nearest containing <form>element. This attribute allows you to place the form control outside of a
                    form and associate it with the form that has thisid. The form must be in the same
                    document or shadow root for this to work. |  | string | '' | 
| required | Makes the textarea a required field. |  | boolean | false | 
| minlength | The minimum length of input that will be considered valid. | number | - | |
| maxlength | The maximum length of input that will be considered valid. | number | - | |
| autocapitalize | Controls whether and how text input is automatically capitalized as it is entered by the user. | 'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters' | - | |
| autocorrect | Indicates whether the browser’s autocorrect feature is on or off. | string | - | |
| autocomplete | Specifies what permission the browser has to provide assistance in filling out form field values. Refer to this page on MDN for available values. | string | - | |
| autofocus | Indicates that the input should receive focus on page load. | boolean | - | |
| enterkeyhint | Used to customize the label or icon of the Enter key on virtual keyboards. | 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send' | - | |
| spellcheck | Enables spell checking on the textarea. | boolean | true | |
| inputmode | Tells the browser what type of data will be entered by the user, allowing it to display the appropriate virtual keyboard on supportive devices. | 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url' | - | |
| defaultValue | The default value of the form control. Primarily used for resetting the form control. | string | '' | |
| validity | Gets the validity state object | - | - | |
| validationMessage | Gets the validation message | - | - | |
| updateComplete | A read-only promise that resolves when the component has finished updating. | 
Learn more about attributes and properties.
Events
| Name | React Event | Description | Event Detail | 
|---|---|---|---|
| sl-blur |  | Emitted when the control loses focus. | - | 
| sl-change |  | Emitted when an alteration to the control’s value is committed by the user. | - | 
| sl-focus |  | Emitted when the control gains focus. | - | 
| sl-input |  | Emitted when the control receives input. | - | 
| sl-invalid |  | Emitted when the form control has been checked for validity and its constraints aren’t satisfied. | - | 
Learn more about events.
Methods
| Name | Description | Arguments | 
|---|---|---|
| focus() | Sets focus on the textarea. |  options: FocusOptions  | 
| blur() | Removes focus from the textarea. | - | 
| select() | Selects all the text in the textarea. | - | 
| scrollPosition() | Gets or sets the textarea’s scroll position. |  position: { top?: number; left?: number }  | 
| setSelectionRange() | Sets the start and end positions of the text selection (0-based). | 
                      selectionStart: number, selectionEnd: number, selectionDirection: 'forward' | 'backward' | 'none'
                     | 
| setRangeText() | Replaces a range of text with a new string. | 
                      replacement: string, start: number, end: number, selectMode: 'select' | 'start' | 'end' |
                      'preserve'
                     | 
| checkValidity() | Checks for validity but does not show a validation message. Returns truewhen valid andfalsewhen invalid. | - | 
| getForm() | Gets the associated form, if one exists. | - | 
| reportValidity() | Checks for validity and shows the browser’s validation message if the control is invalid. | - | 
| setCustomValidity() | Sets a custom validation message. Pass an empty string to restore validity. |  message: string  | 
Learn more about methods.
Parts
| Name | Description | 
|---|---|
| form-control | The form control that wraps the label, input, and help text. | 
| form-control-label | The label’s wrapper. | 
| form-control-input | The input’s wrapper. | 
| form-control-help-text | The help text’s wrapper. | 
| base | The component’s base wrapper. | 
| textarea | The internal <textarea>control. | 
Learn more about customizing CSS parts.