An expanding text area is a multi-line text input field that expands in height to fit
its contents. Commonly found in both desktop and mobile applications, such as the SMS
composition field on the iPhone, it’s a good choice when you don’t know how much text the
user will write and you want to keep the layout compact; as such, it’s especially useful on
interfaces targeted at smartphones. Yet despite the ubiquity of this control, there’s no way
to create it using only HTML and CSS, and most JavaScript solutions have suffered from
guesswork, inaccuracy, or a lack of elegance '¦ until now.