Многострочное поле Textarea

Многострочное поле — это поле ввода, которое позволяет работать с несколькими строками текста.

Когда использовать

Используйте многострочное поле для ввода длинных строк и больших текстов. Например, для паспортных данных, места рождения или комментария пользователя. Если значение, которое вводит пользователь, чаще всего состоит из 1–3 слов, следует использовать обычное поле ввода.

Название

Требования к названию многострочного поля такие же, как и у однострочного. Если назначение многострочного поля очевидно, то название можно разместить внутри поля в виде подсказки:

Описание работы

По мере ввода высота поля автоматически увеличивается и уменьшается так, что всегда свободна одна строка. Это нужно, чтобы пользователь видел весь текст без прокрутки, и при этом по умолчанию поле было бы не очень высоким.

Пользователь вводит символ на последней свободной строке, добавляется ещё одна строка:

При достижении 15 строк (чуть больше половины экрана) поле перестает расти и появляется полоса прокрутки.

Счетчик количества введенных символов

Состояния поля

Поле, в котором есть счетчик, ничем не отличается от обычного многострочного поля:

Когда поле получает фокус, появляется счетчик символов, чтобы подсказать какой длины будет текст:

На заблокированом поле счетчик пропадает:

Красная рамка у поля появляется в зависимости от вида валидации.

Введено максимальное количество символов

Достигнув максимального количества символов счетчик не меняет состояние:

Превышено максимальное количество символов

Когда длина текста превышает допустимую, счетчик становится красным и начинает отсчет количества символов введенных сверх лимита:

Подсказка к счетчику

Помогите пользователю понять для чего введено ограничение — клик по иконке рядом со счетчиком покажет подсказку:

Размер и расположение

Минимальная высота многострочного поля ввода — 3 строки, чтобы пользователю было понятно, что это не инпут, и можно вводить большой текст. Если в форме много таких полей, можно ради экономии пространства уменьшить высоту каждого поля до 2 строк.

Правильно задавать высоту поля через html-атрибут «rows». Неправильно задавать высоту через css-атрибут «height», потому что при изменении размера шрифта средствами браузера высота поля не увеличится, и им будет неудобно пользоваться.

Ширина поля должна быть в пределах 30–80 символов, то есть около 250–600 px. Узким полем неудобно пользоваться из-за частого переноса строк. Широкое поле допустимо только в WYSIWYG-редакторе.

Фокус и работа с клавиатурой

При клике по полю и при переходе табом поле выглядит одинаково: появляется чёрная рамка, которая сохраняется до потери фокуса.

Валидация

Поле с ошибкой подсвечивается красной рамкой.

О поведении полей ввода с ошибками читайте в гайде по валидации.

Дизайн

Состояния: