Формы
Inline-валидация в формах
Показывай ошибку сразу при вводе, а не после отправки формы.
Как реализовать правильно
Проверяй данные при потере фокуса (blur) или по debounce при вводе.
Пользователь вводит email, забывает @. Уже при переходе к следующему полю появляется ошибка под полем.
Особые ситуации
Перед отправкой запускается синхронная проверка и подсвечиваются все ошибки.
Email допустим, но уже занят — сообщи об этом с уточнением.
Скролль UI к первой ошибке и сфокусируй поле.
Редкие случаи
Дата окончания раньше даты начала — покажи это как связанную ошибку.
Оставь форму редактируемой и показывай ошибки, но не блокируй.
Покажи ошибку в summary или прокрути к скрытому блоку и раскрой его.