Skip to main content

The <textarea> element behaves similarly to a text input in Svelte — use bind:value:

App
<textarea bind:value={value}></textarea>

In cases like these, where the names match, we can also use a shorthand form:

App
<textarea bind:value></textarea>

This applies to all bindings, not just <textarea> bindings.

Edit this page on GitHub

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<script>
	import { marked } from 'marked';
 
	let value = $state(`Some words are *italic*, some are **bold**\n\n- lists\n- are\n- cool`);
</script>
 
<div class="grid">
	input
	<textarea {value}></textarea>
 
	output
	<div>{@html marked(value)}</div>
</div>
 
<style>
	.grid {
		display: grid;
		grid-template-columns: 5em 1fr;
		grid-template-rows: 1fr 1fr;
		grid-gap: 1em;
		height: 100%;
	}
 
	textarea {
		flex: 1;
		resize: none;
	}
</style>