shoelace/docs/components/textarea.md

160 wiersze
3.7 KiB
Markdown
Czysty Zwykły widok Historia

2020-07-15 21:30:37 +00:00
# Textarea
[component-header:sl-textarea]
Textareas collect data from the user and allow multiple lines of text.
```html preview
<sl-textarea></sl-textarea>
```
2021-11-04 22:12:47 +00:00
```jsx react
import { SlTextarea } from '@shoelace-style/shoelace/dist/react';
2022-03-02 15:10:41 +00:00
const App = () => <SlTextarea />;
2021-11-04 22:12:47 +00:00
```
?> This component works with standard `<form>` elements. Please refer to the section on [form controls](/getting-started/form-controls) to learn more about form submission and client-side validation.
2020-08-28 20:14:39 +00:00
2020-07-15 21:30:37 +00:00
## Examples
2020-08-25 20:23:33 +00:00
### Rows
2020-07-15 21:30:37 +00:00
2020-08-25 20:23:33 +00:00
Use the `rows` attribute to change the number of text rows that get shown.
2020-07-15 21:30:37 +00:00
```html preview
2020-08-25 20:23:33 +00:00
<sl-textarea rows="2"></sl-textarea>
2020-07-15 21:30:37 +00:00
```
2021-11-04 22:12:47 +00:00
```jsx react
import { SlTextarea } from '@shoelace-style/shoelace/dist/react';
2022-03-02 15:10:41 +00:00
const App = () => <SlTextarea rows={2} />;
2021-11-04 22:12:47 +00:00
```
2020-08-25 20:23:33 +00:00
### Placeholders
2020-07-15 21:30:37 +00:00
2020-08-25 20:23:33 +00:00
Use the `placeholder` attribute to add a placeholder.
2020-07-15 21:30:37 +00:00
```html preview
2020-08-25 20:23:33 +00:00
<sl-textarea placeholder="Type something"></sl-textarea>
2020-07-15 21:30:37 +00:00
```
2021-11-04 22:12:47 +00:00
```jsx react
import { SlTextarea } from '@shoelace-style/shoelace/dist/react';
2022-03-02 15:10:41 +00:00
const App = () => <SlTextarea placeholder="Type something" />;
2021-11-04 22:12:47 +00:00
```
2021-09-25 02:28:14 +00:00
### Filled Textareas
Add the `filled` attribute to draw a filled textarea.
```html preview
<sl-textarea placeholder="Type something" filled></sl-textarea>
```
2021-11-04 22:12:47 +00:00
```jsx react
import { SlTextarea } from '@shoelace-style/shoelace/dist/react';
2022-03-02 15:10:41 +00:00
const App = () => <SlTextarea placeholder="Type something" filled />;
2021-11-04 22:12:47 +00:00
```
2020-08-25 20:23:33 +00:00
### Disabled
2020-07-15 21:30:37 +00:00
2021-09-25 02:28:14 +00:00
Use the `disabled` attribute to disable a textarea.
2020-07-15 21:30:37 +00:00
```html preview
2020-08-25 20:23:33 +00:00
<sl-textarea placeholder="Textarea" disabled></sl-textarea>
2020-07-15 21:30:37 +00:00
```
2021-11-04 22:12:47 +00:00
```jsx react
import { SlTextarea } from '@shoelace-style/shoelace/dist/react';
2022-03-02 15:10:41 +00:00
const App = () => <SlTextarea placeholder="Textarea" disabled />;
2021-11-04 22:12:47 +00:00
```
2020-08-25 20:23:33 +00:00
### Sizes
2020-07-15 21:30:37 +00:00
2020-08-25 20:23:33 +00:00
Use the `size` attribute to change a textarea's size.
2020-07-15 21:30:37 +00:00
```html preview
2020-08-25 20:23:33 +00:00
<sl-textarea placeholder="Small" size="small"></sl-textarea>
2022-03-02 15:10:41 +00:00
<br />
2020-08-25 20:23:33 +00:00
<sl-textarea placeholder="Medium" size="medium"></sl-textarea>
2022-03-02 15:10:41 +00:00
<br />
2020-08-25 20:23:33 +00:00
<sl-textarea placeholder="Large" size="large"></sl-textarea>
2020-07-15 21:30:37 +00:00
```
2021-11-04 22:12:47 +00:00
```jsx react
import { SlTextarea } from '@shoelace-style/shoelace/dist/react';
const App = () => (
<>
<SlTextarea placeholder="Small" size="small"></SlTextarea>
<br />
<SlTextarea placeholder="Medium" size="medium"></SlTextarea>
<br />
<SlTextarea placeholder="Large" size="large"></SlTextarea>
</>
);
```
2020-08-25 20:23:33 +00:00
### Labels
2020-07-15 21:30:37 +00:00
2020-12-23 20:47:13 +00:00
Use the `label` attribute to give the textarea an accessible label. For labels that contain HTML, use the `label` slot instead.
2020-07-15 21:30:37 +00:00
```html preview
2020-08-25 20:23:33 +00:00
<sl-textarea label="Comments"></sl-textarea>
```
2021-11-04 22:12:47 +00:00
```jsx react
import { SlTextarea } from '@shoelace-style/shoelace/dist/react';
2022-03-02 15:10:41 +00:00
const App = () => <SlTextarea label="Comments" />;
2021-11-04 22:12:47 +00:00
```
2020-08-25 20:23:33 +00:00
### Help Text
2020-12-23 20:47:13 +00:00
Add descriptive help text to a textarea with the `help-text` attribute. For help texts that contain HTML, use the `help-text` slot instead.
2020-08-25 20:23:33 +00:00
```html preview
2022-03-02 15:10:41 +00:00
<sl-textarea label="Feedback" help-text="Please tell us what you think."> </sl-textarea>
2020-07-15 21:30:37 +00:00
```
2021-11-04 22:12:47 +00:00
```jsx react
import { SlTextarea } from '@shoelace-style/shoelace/dist/react';
2022-03-02 15:10:41 +00:00
const App = () => <SlTextarea label="Feedback" help-text="Please tell us what you think." />;
2021-11-04 22:12:47 +00:00
```
2020-07-15 21:30:37 +00:00
### Prevent Resizing
By default, textareas can be resized vertically by the user. To prevent resizing, set the `resize` attribute to `none`.
```html preview
<sl-textarea resize="none"></sl-textarea>
```
2021-11-04 22:12:47 +00:00
```jsx react
import { SlTextarea } from '@shoelace-style/shoelace/dist/react';
2022-03-02 15:10:41 +00:00
const App = () => <SlTextarea resize="none" />;
2021-11-04 22:12:47 +00:00
```
2020-07-15 21:30:37 +00:00
### Expand with Content
Textareas will automatically resize to expand to fit their content when `resize` is set to `auto`.
```html preview
<sl-textarea resize="auto"></sl-textarea>
```
2021-11-04 22:12:47 +00:00
```jsx react
import { SlTextarea } from '@shoelace-style/shoelace/dist/react';
2022-03-02 15:10:41 +00:00
const App = () => <SlTextarea resize="auto" />;
2021-11-04 22:12:47 +00:00
```
2020-07-15 21:30:37 +00:00
[component-metadata:sl-textarea]