console
<h1>Auto-Growing <code><textarea></code></h1>
<form action="#0">
<label for="text">Text:</label>
<div class="grow-wrap">
<textarea name="text" id="text" onInput="this.parentNode.dataset.replicatedValue = this.value"></textarea>
</div>
</form>
.grow-wrap {
display: grid;
}
.grow-wrap::after {
content: attr(data-replicated-value) " ";
white-space: pre-wrap;
visibility: hidden;
}
.grow-wrap > textarea {
resize: none;
overflow: hidden;
}
.grow-wrap > textarea,
.grow-wrap::after {
border: 1px solid #eee;
padding: 0.5rem;
font: inherit;
grid-area: 1 / 1 / 2 / 2;
}
body {
margin: 2rem;
font: 1rem/1.4 system-ui, sans-serif;
}
label {
display: block;
}