НачалоОсновыКомпонентыТексты

Textarea

Textarea принимает текст в несколько строк: описание, сообщение, отзыв. Сама по себе это голая рамка; чтобы у поля были подпись, подсказка и ошибки, оберните его в Field.

Стабильный Figma
ОбзорИспользованиеAPIДоступность
<tk-field label="Description" helper="A couple of sentences about what makes it special">
  <tk-textarea name="description" rows="4" limit="200"></tk-textarea>
</tk-field>

Анатомия

Часть Что это
tk-textarea сам элемент; одна остановка Tab
part textarea нативный <textarea> с рамкой и уголком для растягивания
счётчик число символов под полем; появляется, если задан limit

Подпись, подсказку и сообщение об ошибке рисует Field. Префикса, суффикса и size нет.

Высота

<tk-textarea aria-label="Short note" rows="2"></tk-textarea>
<tk-textarea aria-label="Cover letter" rows="8"></tk-textarea>
  • rows задаёт начальную высоту (по умолчанию 5). Подбирайте её под ожидаемый ответ: заметке в два предложения восемь строк не нужны. Ниже двух строк поле не бывает.
  • Поле можно растянуть за уголок в высоту, но не в ширину. Ширину задаёт ваша вёрстка.
  • Длинный текст прокручивается внутри поля.

Состояния

<tk-textarea aria-label="Shipping notes" readonly value="Leave at the front desk"></tk-textarea>
<tk-textarea aria-label="Internal notes" disabled value="Locked after review"></tk-textarea>
<tk-field label="Reason for return" required error="Enter a reason for the return">
  <tk-textarea name="reason" rows="3"></tk-textarea>
</tk-field>

Рамка ведёт себя как у Input: при наведении не меняется, а при фокусе окрашивается в цвет фокуса и утолщается внутрь.

  • readonly: на поле можно перейти, текст можно выделить и скопировать, но не изменить.
  • disabled: на поле нельзя перейти, его нельзя изменить и растянуть, а в форму оно не попадает. Лучше readonly.
  • Ошибка: задайте error у Field. Рамка станет красной, а сообщение появится под полем.
  • Обязательное поле: задайте required у Field. Без Field ставьте его на сам textarea.

Enter переносит строку и никогда не отправляет форму. Для отправки нужна кнопка.

Ограничение длины

<tk-field label="Bio">
  <tk-textarea name="bio" rows="3" limit="40" value="Product designer in Lisbon. Loves maps, trains, and good coffee."></tk-textarea>
</tk-field>
  • limit показывает счётчик под полем: сначала «You can enter up to 200 characters», потом «15 characters remaining», а сверх лимита красным — «12 characters too many».
  • Ввод и вставку счётчик не блокирует. Можно вставить готовый ответ целиком и потом сократить.
  • Красный счётчик — единственный сигнал. Он не отмечает поле как неверное и не мешает отправить форму. Проверьте длину при отправке и, если текст слишком длинный, задайте error у Field.
  • Ставьте лимит, только если он настоящий, например ограничение базы данных или юридическое.
  • maxlength обрезает ввод и вставку на лимите. Для обычного текста берите limit и никогда не задавайте оба сразу.