Код, интерфейсы и трафик без воды
lawebbox
UX/UI дизайн

Проектирование интерфейса системы: веб-версия против десктопа

Открой Метрику или продуктовую аналитику сложного интерфейса — CRM, биллинг, кабинет оператора, BI-панель. Там почти всегда один и тот же график боли: пользователь не «не понял дизайн», он теряет темп. Кликнул — ждёт. Открыл форму — не видит следующего шага.

Проектирование интерфейса системы: веб-версия против десктопа

Проектирование интерфейса системы — это не рисование красивых экранов. Это упаковка логики продукта в среду, где пользователь реально работает. В браузере он живёт внутри URL, вкладок, ограничений песочницы и адаптива. В десктопе — внутри ОС, горячих клавиш, меню, файловой системы, окон и нативных паттернов. Перенести макет 1:1 между этими мирами — быстрый способ получить дорогой интерфейс, который выглядит «одинаково», но работает криво.

Браузер — это не просто контейнер. Это твой первый конкурент

В вебе пользователь никогда не остаётся с твоей системой один на один. У него рядом вкладки, расширения, менеджер паролей, уведомления, кнопка «Назад», адресная строка, история браузера. И это не фон. Это часть UX.

Дизайн интерфейса веб приложения начинается с неприятной правды: браузер даёт тебе охват, скорость доставки и обновления без установки. Но забирает полный контроль. Веб-интерфейс сидит в песочнице. Прямой доступ к файловой системе и аппаратным ресурсам ограничен. Да, современные API сильно прокачались. Да, WebAssembly и PWA закрывают часть разрыва. Но не продавай себе иллюзию: веб не становится десктопом только потому, что ты нарисовал сайдбар как в нативном приложении.

В десктопе другая игра. Приложение глубже интегрируется с ОС: файлы, буфер обмена, локальные уведомления, системные меню, работа офлайн, фоновые процессы, специфичные шорткаты. Пользователь ждёт от него плотности. Быстрого старта задач. Нативных реакций. Предсказуемости именно для своей платформы.

Смотри на разницу без романтики:

ПараметрВеб-версияДесктопная система
Среда запускаБраузер, вкладки, URL, ограничения sandboxОС, окна, меню, локальные ресурсы
Доступ к файламЧерез разрешения, диалоги, browser APIГлубокая интеграция с файловой системой
ОбновленияМгновенно для всех пользователейЧерез автообновление, пакет, стор или корпоративный деплой
НавигацияURL, история, кнопка «Назад», deep linksМеню, панели, окна, контекстные действия
Ожидания пользователяДоступ с любого устройства, адаптивностьСкорость, стабильность, нативность, hotkeys
Главный риск UXСломать поток браузерной навигацииНарушить паттерны ОС и сделать «чужое» приложение

Вот где часто горит бюджет. Команда говорит: «Сделаем единую дизайн-систему для веба и десктопа». Звучит рационально. На демо красиво. В Figma аккуратно. Но если единая система превращается в одинаковые компоненты без учёта платформы — ты получаешь не консистентность, а UX-налог.

Единый бренд — да. Единая логика — да. Одинаковые паттерны для браузера и ОС — нет. Там начинается минус к скорости.

Проектирование пользовательского интерфейса системы должно начинаться не с кнопок. Начинай с среды. Где человек работает? Вкладка в Chrome на ноутбуке? Монитор оператора 24 дюйма? Windows-машина в бухгалтерии? macOS у дизайнера? Linux у инженера? Это не детали. Это входные данные.

В вебе URL — это не технический хвост. Это навигационная ось. Хороший веб-интерфейс уважает адресную строку: состояние страницы, фильтры, выбранный объект, шаг процесса, доступ по прямой ссылке. Особенно в сложных системах: админках, кабинетах, аналитике, внутренних платформах.

Плохой сценарий выглядит так:

1. Пользователь заходит в список клиентов.

2. Фильтрует по статусу, региону, сегменту.

3. Открывает карточку клиента.

4. Переходит во вкладку «Документы».

5. Нажимает браузерную кнопку «Назад».

6. Возвращается не к карточке, а на пустой список без фильтров.

Поздравляю. Ты только что сжёг доверие. Не багом. Архитектурой навигации.

В вебе кнопка «Назад» — священная корова. Не спорь с ней. Используй. Если состояние интерфейса критично для работы, оно должно быть восстановимо: через URL, history API, сохранение состояния, нормальную маршрутизацию. Особенно когда речь про разработку интерфейса информационной системы, где пользователь не «смотрит странички», а собирает данные, меняет статусы, проводит операции.

В десктопе навигация чаще иерархична и инструментальна. Есть меню приложения, панели, дерево объектов, контекстные окна, модальные диалоги. Здесь пользователь не ждёт URL. Он ждёт, что команда будет там, где она обычно находится в этой ОС. В macOS — своё поведение меню и окон. В Windows — своё. Linux-среды добавляют ещё больше вариативности.

И вот здесь опасная гипотеза для проверки: если ты переносишь веб-паттерн в десктоп, пользователь тратит лишние секунды на каждое действие. Секунда кажется мелочью. В операторском интерфейсе 300 повторов в день превращают её в 5 минут потерь на человека. Умножь на команду. Получи деньги.

Что проектировать отдельно

Не пытайся «нарисовать навигацию». Спроектируй рабочий маршрут.

Для веба фиксируй:

  • какие состояния обязаны жить в URL: фильтры, сортировки, вкладки, выбранные сущности;
  • где нужна поддержка deep link, чтобы пользователь мог отправить ссылку коллеге;
  • что происходит после refresh, logout/login, открытия в новой вкладке;
  • какие действия требуют подтверждения, а какие должны откатываться без модалки;
  • как ведёт себя браузерная история после сохранения формы, удаления записи, перехода между шагами.

Для десктопа фиксируй другое:

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

Жёсткое правило: модалка не должна быть мусорным баком для нерешённой архитектуры. Если команда не знает, куда положить действие, она часто прячет его в диалог. В вебе это быстро конфликтует с историей браузера и мобильной адаптацией. В десктопе — с многозадачностью и нативными ожиданиями.

Типографика: 16 px — не скучная норма, а точка старта

Типографика в интерфейсах — это не «шрифт красивый или нет». Это скорость распознавания. А скорость — метрика.

В вебе базовый размер текста для чтения — 16 px. Не потому что так написали в древних гайдах и все должны молиться на пиксель. А потому что это рабочая стартовая точка для браузера, плотности экранов, масштабирования и доступности. Уменьшаешь до 13–14 px ради «больше данных на экран» — плати когнитивной нагрузкой. Особенно в таблицах, логах, настройках, формах.

Контрастность основного текста по WCAG 2.1 — минимум 4.5:1. Это не украшение для отчёта об accessibility. Это граница, после которой твой интерфейс перестаёт быть читаемым для части пользователей. А в сложных системах «часть пользователей» — это не абстрактные люди из презентации. Это операторы, менеджеры, инженеры, бухгалтеры, админы, которые проводят в системе часы.

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

В десктопных приложениях чаще побеждают нативные шрифты ОС. Не потому что дизайнеры ленятся. Потому что интерфейс должен ощущаться «своим» для платформы и работать быстро. San Francisco в macOS, Segoe UI в Windows-паттернах, системные наборы в Linux — это не просто гарнитуры, а часть визуального языка среды.

ЗадачаВебДесктоп
Базовый текст16 px как стартовая точкаНативные размеры платформы
Шрифтовая стратегияSystem font stack или web font с контролем загрузкиСистемные шрифты ОС
Главный рискМедленная загрузка веб-шрифта, плохой контраст, мелкий текстЧужеродный вид, нарушение HIG/гайдлайнов Windows
МасштабированиеZoom браузера, responsive layoutМасштаб ОС, плотность экрана, настройки доступности
ТаблицыБорьба плотности и читаемостиБольше пространства, но выше ожидания к hotkeys и selection

Твоя гипотеза для интерфейса таблиц: не «как впихнуть 14 колонок». А «какие 5 колонок дают решение без открытия карточки». Это другой уровень проектирования. И да, он приносит профит. Меньше открытий, меньше возвратов, выше скорость операции.

Кстати, с проверками интерфейса та же логика, что и с проверками в любой прикладной среде: экспресс-тест показывает направление, лаборатория даёт точность. Хороший пример такого различия есть в материале про то, как работает тест-набор против лабораторной проверки воды из родника. В UX всё так же: быстрый коридорный тест ловит грубые провалы, но сложную систему добивай сценариями, логами и метриками.

Интерактивность: 100 мс или пользователь уже чувствует тормоз

Есть цифра, которую надо прибить над рабочим столом продуктовой команды: до 100 мс отклика интерактивного элемента — ощущение мгновенности. После этого пользователь начинает чувствовать задержку. Не всегда формулирует. Но палец уже «спотыкается».

Кнопка нажалась — интерфейс должен отреагировать. Не обязательно завершить тяжёлую операцию. Но отреагировать. Показать состояние. Заблокировать повторный клик. Обновить индикатор. Дать скелетон, прогресс, optimistic UI, очередь задач. Молчание интерфейса — убийца доверия.

Минимум состояний кнопки — 4: default, hover, active, disabled. Для сложных систем добавляй loading, success, error, focus. Не как декор. Как язык обратной связи.

Вот нормальная логика состояний для действия «Сохранить»:

1. Default — действие доступно, форма валидна или готова к проверке.

2. Hover — элемент реагирует на намерение, пользователь видит кликабельность.

3. Active — нажатие подтверждено физически, интерфейс не «мертвый».

4. Loading — операция ушла на сервер или в локальный процесс.

5. Disabled — повторный клик заблокирован, пока операция не завершена.

6. Success — пользователь получил подтверждение, что данные сохранены.

7. Error — ошибка привязана к причине и следующему действию, а не к панике «что-то пошло не так».

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

И не надо делать вид, что спиннер лечит всё. Спиннер — это таблетка от тревоги, а не оптимизация. Если операция занимает секунды, дай пользователю контроль: фоновую задачу, отмену, очередь, понятный статус. Если операция повторяется десятки раз в день, оптимизируй сам сценарий.

Пользователь прощает сложность, когда видит контроль. Он не прощает интерфейс, который молчит.

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

Адаптивность против платформенных гайдлайнов: не путай гибкость с бесхребетностью

Веб обязан быть адаптивным. Не «желательно». Обязан. Даже если твоя система «только для десктопа», её откроют на ноутбуке с 1366 px, на внешнем мониторе, в половине экрана, в браузере с масштабом 125%, в корпоративной среде с древними ограничениями. Responsive Design — не про красивые карточки на мобильном. Это про устойчивость интерфейса к реальному хаосу экранов.

Но адаптивность не значит, что каждый экран должен превращаться в резиновую кашу. Для сложных веб-систем нужны breakpoint-стратегии:

  • таблица на широком экране показывает рабочие колонки, а не все данные из базы;
  • на узком экране вторичные колонки уходят в раскрытие строки или карточку;
  • фильтры не занимают половину viewport, а сворачиваются в управляемую панель;
  • основные действия остаются видимыми, вторичные уходят в меню;
  • критичные статусы не кодируются только цветом — добавляй текст, иконку, форму.

Десктоп живёт по другой логике. Там тоже есть масштабируемые окна, разные мониторы, DPI и настройки доступности. Но главный драйвер — платформенные гайдлайны. Apple Human Interface Guidelines, Material Design, Windows-паттерны — это не «книжки для вдохновения». Это контракт с привычками пользователя.

Material Design 3 активно вошёл в продуктовый дизайн в 2023-м и задал мощный визуальный язык для Android и кроссплатформенных интерфейсов: динамический цвет, обновлённые компоненты, новая работа с состояниями. Но если ты бездумно переносишь M3 в десктопную утилиту для Windows, получаешь интерфейс, который кричит «я из другого мира». Красиво? Да. Быстро для пользователя? Нет.

Та же история с HIG. macOS-пользователь ждёт определённого поведения окон, меню, toolbar, стандартных диалогов. Нарушаешь — пользователь спотыкается. Не потому что консерватор. Потому что его мышечная память уже инвестирована в систему.

Где дизайн-система должна быть общей, а где — платформенной

Держи ядро общим:

  • терминология продукта;
  • логика статусов;
  • правила иерархии;
  • цветовые токены бренда с адаптацией под контраст;
  • принципы ошибок и подсказок;
  • модель ролей и доступов;
  • структура сущностей.

А вот реализацию компонентов разделяй:

  • навигационные паттерны;
  • системные диалоги;
  • hotkeys;
  • поведение окон;
  • контекстные меню;
  • drag-and-drop;
  • уведомления;
  • file picker и работу с файлами.

Это не удвоение работы. Это страховка от тупого роста UX-долга. Один и тот же компонент «Выбор файла» в вебе и десктопе не обязан выглядеть одинаково. Он обязан решать одну задачу с минимальным трением в своей среде.

Сложная система не терпит «универсального красивого»

Самая дорогая ошибка — проектировать интерфейс как витрину. Витрина живёт первым впечатлением. Система живёт тысячным повторением.

В CRM человек не восхищается карточкой клиента на 48-й день работы. Он хочет быстрее найти договор, увидеть статус, понять следующий шаг, не потерять фильтры. В BI-панели ему не нужен арт-директорский градиент на графике. Ему нужен честный контраст, стабильная сетка, понятные легенды, быстрый drill-down. В админке ему не нужна анимация ради анимации. Ему нужна уверенность: действие выполнено, данные не потеряны, откат доступен.

Проектирование интерфейса системы начинается с карты частоты действий. Не с главного экрана. Не с мудборда. С действий.

Разбей сценарии на три группы:

1. Высокочастотные. Пользователь делает их десятки или сотни раз. Здесь режь каждый лишний клик. Добавляй горячие клавиши, bulk actions, запоминание настроек, предзаполнение.

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

3. Редкие сервисные. Настройки, импорт, интеграции. Здесь можно дать больше текста, подсказок, пошаговости. Но не превращай всё в мастер на 9 экранов.

Дальше смотри на платформу.

В вебе высокочастотные действия выигрывают от клавиатурной навигации, сохранённых фильтров, URL-состояний, быстрых переходов между сущностями. В десктопе — от нативных hotkeys, контекстных меню, локального кеша, фоновых операций, drag-and-drop между окнами.

Если команда спорит о визуале, вытащи разговор в метрики. Не «мне нравится». А вот так:

МетрикаЧто показываетГде особенно важна
Time to first actionКак быстро пользователь начал рабочий сценарийВеб-кабинеты, SaaS, CRM
Task completion timeСколько занимает ключевая операцияОператорские системы, админки
Error rateГде интерфейс провоцирует ошибкиФинансы, медицина, биллинг, доступы
Rage clicksГде пользователь долбит по мёртвому местуВеб-интерфейсы с задержками
Return to previous screenГде навигация ломает потокКаталоги, карточки, многошаговые формы
Keyboard usageНасколько система стала рабочим инструментомДесктоп, power users, внутренние панели

И да, не надо ждать идеального исследования на 40 респондентов. Сначала собери логи. Потом запусти 5–7 сценарных тестов. Потом выкати гипотезу на часть пользователей. Потом смотри профит. Growth-подход в UX работает жёстко: не спорь вкусами, бей метриками.

Где веб выигрывает, а где десктоп забирает матч

Веб силён там, где нужны доступность из любой точки, быстрый rollout, простое подключение пользователей, совместная работа, ссылки, обновления без установки. Для B2B SaaS, личных кабинетов, аналитики, маркетплейс-админок, внутренних порталов это часто лучший старт.

Десктоп забирает матч, когда нужны глубокая интеграция с ОС, стабильная работа с локальными файлами, тяжёлые вычисления, низкая задержка, специфичное оборудование, офлайн-режим, плотная работа power users. Редакторы, IDE, CAD, профессиональные утилиты, операторские приложения — здесь десктоп не «старый формат», а правильная среда.

Но не впадай в религию. Веб не всегда медленнее. Десктоп не всегда удобнее. Решает связка: сценарий, ограничения, частота, цена ошибки, среда пользователя.

Быстрый боевой разбор:

  • Если пользователь должен отправить ссылку коллеге на конкретный объект — веб получает плюс.
  • Если пользователь каждый день перетаскивает десятки файлов между папками и проектами — десктоп получает плюс.
  • Если продукт должен обновляться каждую неделю без участия IT-отдела клиента — веб получает плюс.
  • Если система работает на закрытом контуре, с железом и локальными драйверами — десктоп получает плюс.
  • Если интерфейс нужен на разных устройствах и ролях — веб получает плюс.
  • Если пользователь — power user с горячими клавишами и многооконным режимом — десктоп получает плюс.

Главная мысль простая: не выбирай платформу по привычке команды. Выбирай по рабочему трению пользователя.

Что внедрить прямо сегодня

Открой свой текущий интерфейс и прогони не «красоту», а механику. Быстро. Без совещания на три недели.

1. Проверь, восстанавливаются ли ключевые состояния веб-интерфейса после refresh и кнопки «Назад».

2. Замерь отклик кнопок и интерактивных элементов: цель — ощущение до 100 мс хотя бы на уровне реакции интерфейса.

3. Убедись, что у кнопок есть не меньше четырёх состояний: default, hover, active, disabled. Для операций добавь loading и error.

4. Подними базовый текст до читаемого уровня: 16 px в вебе как старт, контраст основного текста не ниже 4.5:1.

5. Раздели дизайн-систему на ядро продукта и платформенную реализацию компонентов.

6. Для десктопа проверь hotkeys, меню, контекстные действия и поведение окон по гайдлайнам ОС.

7. Для веба проверь адаптив: не только мобильный, а реальные ширины, zoom, половину экрана, длинные таблицы.

8. Собери 3 метрики: время выполнения задачи, ошибки, возвраты назад. Этого хватит, чтобы убить половину вкусовщины.

Проектирование интерфейса системы — это дисциплина выбора. Где дать ссылку. Где дать окно. Где сохранить состояние. Где включить нативный паттерн. Где убрать красивую, но бесполезную анимацию. Где не спорить с браузером. Где не спорить с ОС.

Сделай интерфейс не одинаковым, а точным. Веб должен вести себя как сильный веб. Десктоп — как сильное приложение своей платформы. Всё остальное — декоративный шум, который пользователь оплатит своим временем. А ты — конверсией, удержанием и поддержкой.

Частые вопросы

Почему нельзя использовать одну дизайн-систему для веба и десктопа?
Использование одинаковых компонентов без учета платформы создает UX-налог, так как веб и десктоп имеют разные ограничения, паттерны навигации и ожидания пользователей.
Что делать, если кнопка «Назад» в браузере ломает навигацию в веб-системе?
Необходимо проектировать архитектуру так, чтобы состояние интерфейса, фильтры и выбранные объекты были восстановимы через URL, history API или сохранение состояния.
Какой базовый размер шрифта лучше использовать в веб-интерфейсе?
Рекомендуется использовать 16 px в качестве стартовой точки, так как это обеспечивает оптимальную читаемость, доступность и корректное масштабирование в браузере.
Как понять, что интерфейс тормозит?
Пользователь начинает чувствовать задержку, если отклик интерактивного элемента превышает 100 мс. В таких случаях интерфейс должен давать обратную связь через состояния, скелетоны или индикаторы загрузки.
В каких случаях лучше выбрать десктоп вместо веба?
Десктоп предпочтительнее при необходимости глубокой интеграции с ОС, работы с локальными файлами, тяжелых вычислений, использования специфического оборудования или работы в офлайн-режиме.