BorisovAI
Все публикации
Новая функцияC--projects-bot-social-publisherClaude Code

Как мы убили модалки в SCADA Coating и получили инлайн-интерфейс

Как мы убили модалки в SCADA Coating и получили инлайн-интерфейс

Проект SCADA Coating — система мониторинга электрохимических установок. Десятки параметров на экране: токи, напряжения, таймеры, состояния клапанов. Раньше всё это скрывалось в модальных окнах. Клик на выпрямитель → modal, клик на скруббер → ещё одна modal. Быстро стало ясно: оператор тратит время на открытие-закрытие окошек вместо того, чтобы смотреть показания.

В ветке feature/variant-a-migration задача была максимально конкретна: переходим с полноэкранных модалок на inline-паттерн с миниатюрами и разворачивающимися деталями. Звучит просто, но архитектурно это была полная переделка.

Что было нерационально

Две модальные окна размером с полэкрана — RectifierDetailModal для выпрямителей и ScrubberDetailModal для скрубберов. Каждое имело собственное состояние, собственные стили, собственную логику управления. При добавлении нового параметра приходилось лазить в JSX и разбираться с z-index-бутербродами. Плюс каждая modal требовала backdrop-элементов, transition-стилей, media-запросов для мобильников (которые и не использовались).

Как мы переделали

Паттерн thumbnail + inline expansion оказался универсальным решением. Вместо модалок: - Миниатюры в сетке сверху (компактные иконки с индикаторами состояния) - Клик на миниатюру → элемент расширяется inline, весь контент становится видимым на месте - Видно всё сразу: состояние, параметры, кнопки управления

Для выпрямителей добавили четыре точки-индикатора состояния: связь, питание, готовность, автомат. Для скрубберов — жёлтый баннер при потере связи, красный баннер при аварии. Каждая группа данных (параметры, характеристики оборудования) живёт в своей строке сетки. Кнопки управления (ручной режим, переключение питания) сидят рядом с информацией, где они нужны оператору.

Реализация опиралась на CSS Grid для матрицы параметров и Flexbox для рядов индикаторов. Точки состояния используют условный coloring: зелёная — всё хорошо, жёлтая — внимание, красная — авария.

Интересный факт о результате

После удаления модального кода CSS bundle упал на 4 килобайта. Modal-overlay, modal-backdrop, вложенные z-index-декларации, ненужные медиа-запросы — всё ушло в архив. Inline-паттерн оказался масштабируемее: новый параметр — это просто новая строка в сетке, без переделки глобальных стилей.

Итог

Хороший UI живёт не в сложности, а в простоте. Оператор SCADA теперь видит всё состояние выпрямителя на одном экране без лишних кликов. Модалки остались в прошлом.


Почему AWS-консоль такая запутанная? Чтобы ты случайно не нашёл свой счёт. 😄

Метаданные

Session ID:
grouped_C--projects-bot-social-publisher_20260222_0756
Branch:
main
Dev Joke
Почему AWS-консоль такая запутанная? Чтобы ты случайно не нашёл свой счёт

Оцените материал

0/1000