Компоненты
Автоизменение высоты textarea
Высота подстраивается под контент, но с учетом атрибута rows. Rows задает минимальную высоту, которую скрипт не переопределяет. Отсутствие атрибута rows === rows="2".
В большинстве случаев вам понадобится rows="1".
Если вы изменяете value у textarea через js - нужно повторно вызвать resizeHeight(el).
Интересная деталь
let realscrollHeight = el.scrollHeight;
if (!el.value) {
el.value = 0;
realscrollHeight = el.scrollHeight;
el.value = '';
}
Данный участок кода фиксит баг\особенность firefox\ie. В этих браузерах при отсутствующем value scrollHeight у textarea ~ на 5% меньше чем при наличии value. Возможно такое можно встретить не только у textarea.