Про инпуты

Пишу о продуктовом дизайне и рабочей кухне: UX‑паттерны, таблицы и формы, исследования и коммуникация в команде. Делюсь практическими шпаргалками по Фигме, разбором решений и кейсами «было/стало», которые экономят часы работы и спасают метрики. Больше пользы, меньше воды — рассказываю то, что обычно остаётся за кадром.

инпутычекбоксыindeterminate

Даже на очень простых элементы форм можно споткнуться что я периодически и делаю поэтому пусть тут живёт эта напоминалка

Чекбоксы в состоянии indeterminate

Это ни true, ни false, а что-то между. Используется, например, в деревьях: часть дочерних чекбоксов выбрана, часть нет — родительский становится indeterminate. У меня чаще встречается в массовом редактировании, когда у разных сущностей (например, карточек товаров) разные значения одного и того же свойства.

Что важно:

  1. indeterminate — не HTML-атрибут, а JS-свойство. Его нужно выставлять вручную, поэтому фронт может возмущаться нужно проверять на фронтчеке внимательно, что всё работает как надо
  2. Нет однозначного паттерна — когда пользователь нажимает на такой чекбокс, он может перейти как в true, так и в false. Тут нужно хорошо подумать над сценарием и выбрать (и прописать) желаемое поведение.
  3. Нужно ли уметь вернуть состояние indeterminate? Если да, нужно ещё придумать, как сообщить об этом пользователю. В моём продукте, например, такой опции нет, пользователь либо не трогает, либо задаёт одно значение для всех сущностей, либо выходит без сохранения.

Инпуты в массовом редактировании

Когда значения разные (например, скидки у товаров), удобнее отображать «Разные» как плейсхолдер, а не значение. Тогда пользователь может начать удалить, что ввёл, и все старые значения останутся нетронутыми. Если же отобразить «Разные» как value, поле будет выглядеть «заполненным», но очистить его уже нельзя — разве что отменой всей формы.

Тогглы (особенно в вебе)

Тогглы любят — они визуально приятные и похожи на реальные переключатели. Но часто их ставят не туда.

Когда нужен тоггл:

  • Действие происходит сразу, без кнопки «Сохранить»
  • Это системная или глобальная настройка («Включить тёмную тему», «Получать уведомления»)
  • Меняется поведение системы, а не содержимое формы

Когда уместнее чекбокс:

  • Изменение применяется при сохранении формы
  • Нужно выразить «да/нет», но не запускать процесс
  • Это часть массового редактирования или формы с множеством полей

Тоггл в массовом редактировании — отдельный вид мазохизма.

А ещё к тогглу часто сложно написать понятное значение, можно написать что-нибудь вроде «Отключить уведомления» и будет не понятно, что в итоге включено — уведомления или сама функция их отключения.

Скриншот интерфейса с деревом чекбоксов: родительский чекбокс в состоянии indeterminate, часть дочерних отмечена, часть — нет, видна структура дерева.
Пример состояния indeterminate в дереве чекбоксов в интерфейсе редактирования.
Скриншот поля ввода со всплывающей подсказкой «Разные»: показано сравнение вариантов отображения плейсхолдера и value в форме массового редактирования.
Поле с плейсхолдером «Разные» — удобнее для массового редактирования.
Демонстрация интерфейса: поле скидки отображается как «Разные» в одном варианте и пустым в другом, показывая разницу в поведении при очистке значения.
Сравнение поведения поля при отображении «Разные» как value и как placeholder.

Дискуссия

Аня Зайнулина
У нас недавно возник вопрос по хинтам внизу инпутов, которые появляются при валидации в модалках. Когда появляются подсказки, модалка прыгает по высоте из-за увеличения высоты инпутов. При этом, если закладывать сразу место под подсказки, между элементами появляются дыры. Пока выбрали второй вариант, но тоже так себе. Как вы это решаете?
Неразрывный чат
Аня Зайнулина
У нас недавно возник вопрос по хинтам внизу инпутов, которые появляются при валидации в модалках. Когда появляются подсказки, модалка прыгает по высоте из-за увеличения высоты инпутов. При этом, если закладывать сразу место под подсказки, между элементами…
У нас всё прыгает по высоте) В целом, не критично, даже больше внимания привлекает, что для ошибки ок) Сразу место закладывать — слишком много пустого пространства
Аня Зайнулина
"Пусть прыгает, лучше заметят" - интересное мнение 😁 Спасибо! Подумаю над этим
Nina
@Anna_Zainulina От валидации подпрыгиает это ещё ладно, не велика беда. У нас в модалке список с поисковым фильтром и как начинаешь вводить первые буквы модалка сразу схлопывается с высоты на весь экран до высоты 2-3 значений списка 🙈
Присоединиться к обсуждению →

Читайте так же