Text Input состояния

Anastasia Vikhareva
Дизайн-кабак
5 min readMay 13, 2023

Данная статья рассказывает о том, какие состояния нужно продумать для компонента text input в дизайн-системе.

Каждый раз, когда я сталкиваюсь с задачей, связанной с разработкой компонентов для UI kit, я открываю поиск и просматриваю возможные состояния для определенных компонентов, потому что при разработке компонента с нуля я могу упустить какие-то состояния.

Даже с учетом того, что в интернете можно найти всё, я не всегда получаю четкие ответы по поводу состояний компонентов.

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

Первым на очереди оказался компонент Input.

Input

Виды инпутов:

  • Текстовое поле
Пример инпута “Текстовое поле”
  • Многострочное поле
Пример инпута “Многострочное поле”

Будет только плюсом, если вы подумаете о расположении скроллбара в инпуте. Бывает такое, что контент объемный и в тултипе его весь не покажешь, так что потребность в скролле инпута вполне вероятна. Если скроллбар нельзя кастомизировать и вы используете нативные компоненты, посоветуйтесь с командой разработчиков, попросите их прислать вид задизайненного инпута с нативным скроллбаром, подумайте, двигать ли контент на ширину скроллбара или вы заложили достаточно места справа, все компоненты хорошо ложатся и все смотрится однородно.

Пример инпута “Многострочное поле со скроллбаром”
  • Текстовое поле с лейблами
Пример инпута “Текстовое поле с лейблами”
  • Многострочное поле с лейблами
Пример инпута “Многострочное поле с лейблами”
  • Текстовое поле с выпадающим списком
Пример инпута “Текстовое поле с выпадающим списком”
  • Текстовое поле с выпадающим списком с лейблами
Пример инпута “Текстовое поле с выпадающим списком с лейблами”
  • Текстовое поле для работы с одной датой
Пример инпута “Текстовое поле для работы с одной датой”
  • Текстовое поле для работы с двумя датами
Пример инпута “Текстовое поле для работы с двумя датами”
  • Текстовое поле для работы с одной датой с лейблом
Пример инпута “Текстовое поле для работы с одной датой с лейблом
  • Текстовое поле для работы с двумя датами с лейблом
Пример инпута “Текстовое поле для работы с двумя датами с лейблом”
  • Текстовое поле с двумя лейблами
Пример инпута “Текстовое поле с двумя лейблами”
  • Многострочное поле с двумя лейблами
Пример инпута “Многострочное поле с двумя лейблами”

Мы выявили 12 видов инпутов. Теперь разберем, какие состояния могут быть у данных компонентов и какие параметры лучше проставить в Figma, чтобы было удобно пользоваться вариантами состояний.

Текстовое поле

Виды компонентов по внутренним составляющим инпута:

  • Без иконки
  • Одна иконка слева
  • Одна иконка справа
  • Две иконки справа
  • Иконка слева и справа
  • Иконка слева и две иконки справа
Виды компонентов по внутренним составляющим инпута

Я буду проводить разбор на самом сложном элементе- инпуте с тремя иконками.

Виды компонентов по состояниям:

  • Default
  • Hover
  • Focus
  • Typing
  • Entered
  • Disabled
  • Error
  • Error focus
Виды компонентов по состояниям

Технические параметры:

Если говорить о размере шрифта, то он всегда зависит от выбранного типа шрифта. Обычно я использую размер не менее 16 пикселей, даже на мобильных устройствах. Почему это так, я объяснила ранее в своей статье об инклюзивном дизайне. Я использую одинаковый размер как для лейблов, так и для обычного текста.

Что же по параметрам в Figma.

Технические параметры

Если вы выставите указанные параметры, то инпут сможет ресайзиться, как на видео:

Пример ресайза текстового поля

Даже если у вас будет такое разрешение, в котором придется текст уместить в две строки, а то и в три из-за небольшой длины экрана, при корректно установленных параметрах инпут подстроится под длину фрейма, в котором он находится.

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

У многострочного поля точно такие же состояния как по элементам внутри инпута, так и по состояниям.

Единственное отличие в том, что в поле от двух строк и больше. Сейчас я покажу некоторые хитрости при создании компонента.

Пример многострочного поля

Text: длина: Fill container, ширина: Hug, resizing: Truncate text

При таком выборе настройки resizing многоточие будет автоматически ставиться в конце текста, когда фрейм для текста меньше самого текста.

У текстового и многострочного полей с лейблом и двумя лейблами абсолютно такие же характеристики и поведение, отличие только в наличии лейбла над полем ввода.

Также я хотела бы добавить, что существует разница между текстовым инпутром и многострочным текстовым инпутом. Сейчас покажу вам предпочтительный вид данных элементов:

  • Если ожидаемая длина строки невелика, 2–3 слова, то мы используем текстовый инпут.
  • Если предполагается ввести большой текст, то используйте многострочный инпут и показывайте минимум 2 строки, чтобы пользователь понимал, что он может ввести более 2 слов.
Предпочтительный вид многострочного инпута

Два лейбла в основном нужны в случае, когда правый лейбл отвечает за какое-то действие, например “Забыли пароль?”.

Пример текстового и многострочного полей

Об остальных видах инпутов, а именно о “Текстовое поле для работы с датой” и “Текстовое поле с выпадающим списком” я расскажу подробно в следующих статьях.

Надеюсь данная статья помогла вам при создании состояний у текстовых и многострочных полей для UI kit.

Если возникнут вопросы, можете написать в комментарии или в любую из соцсетей, всегда рада и помощи, и критике)

Work smart, not hard!

Обложка

Чтобы сказать привет, используй

Email: stasyabis7@gmail.com

Telegram, Medium, LinkedIn: @stasyabis

WhatsApp, Viber: +79877503993

Портфолио: Behance

Фотографии: Unsplash

--

--

Anastasia Vikhareva
Дизайн-кабак

Hey!) I am a UX/UI designer. I work mainly in Figma, but I also try to explore Adobe features) Let's do it together! To say hello use telegram: @stasyabis