Automatically expand a
<textarea>
to fit its content, in a few bytes
Try the demo!
Features:
- Small
- No layout thrashing (no DOM changes unless necessary)
- You can set a minimum height (via
rows
attribute orheight
CSS property) - If the field is resizable, the new size will be treated as minimum height
npm install fit-textarea
// This module is only offered as a ES Module
import fitTextarea from 'fit-textarea';
<textarea rows="3">Use the rows attribute to set its minimum height</textarea>
const textarea = document.querySelector('textarea');
fitTextarea(textarea);
const textarea = document.querySelector('textarea');
fitTextarea.watch(textarea);
const textareas = document.querySelectorAll('textarea');
fitTextarea.watch(textareas);
The selector is run once, so it's equivalent to the example above.
fitTextarea.watch('textarea');
- indent-textarea - Add editor-like tab-to-indent functionality to <textarea>, in a few bytes.
- delegate-it - DOM event delegation, in <1KB. Can be used to attach one
fit-textarea
to many elements. - Refined GitHub - Uses this module.