Text Input состояния

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

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

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

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

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

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!

Обложка
Обложка

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

Telegram, Medium, LinkedIn: @stasyabis

Viber: +79877503993

Портфолио: Behance

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

Вебсайт: Website

44
Начать дискуссию