![image](https://habrastorage.org/files/cb6/78b/6bc/cb678b6bc69b42b9af5557e2030eef1e.jpg)
В этой статье я привожу примеры основных принципов или концепций, которыми руководствуюсь при проектировании десктопных интерфейсов. Не планирую выступать новатором или поучителем, но с радостью поделюсь набором установок, который помогает мне в работе.
Кстати, если вы используете Figma, я рекомендую обратить внимания на наши готовые дизайн-системы. Они помогают фрилансерам завершать больше заказов в месяц, программистам позволяют создавать красивые приложения самостоятельно, а тимлиды «пробегают» спринты быстрее, используя готовые дизайн-системы для командной работы.
А усли у вас серьезный проект, то наша команда готова развернуть дизайн-систему внутри организации на базе наших наработок и подогнать под конкретные задачи, используя Figma. Web / desktop, так и любой мобайл. С React / React Native мы тоже знакомы. Пишите в Т: @kamushken
Акценты и приоритеты
Каждый раз, проектируя интерфейс я задаю себе или клиенту вопрос: “Какая информация сейчас важна для конечного пользователя? Как мы распределим его внимание в конкретном случае?” Для этого в нашем вооружении есть цвет и его оттенки, размер шрифта, его интенсивность. В совокупности, правильно используя эти инструменты, мы “оставляем послание” пользователю, ведём его по нужному нам пути, концентрируя его внимание на самом важном.
Хороший пример, когда дизайнер дал пользователю понимание, что важно видеть отправителя, затем тему, а уже потом содержание или его @ник в системе:
![image](https://habrastorage.org/files/15a/041/56a/15a04156ad8a43d4a953375e2969b379.jpg)
Плохой пример, где дизайнер “утверждает”: важнее всего — аватарки, а с остальным как-нибудь разберётесь:
![image](https://habrastorage.org/files/598/f5b/b2d/598f5bb2d63f4965a8aa689323e2c0ee.jpg)
Отступы и их пропорциональность
Современный дизайн лёгок, прост и “насыщен воздухом”. Он наполнен дыханием. И не самую последнюю роль в формировании этих ощущений играют отступы. Значительные отступы помогают упростить подачу материала. Но они должны быть подчинены некоторой закономерности и пропорциональности. Я определяю для себя N пикселей в качестве базисного отступа, когда начинаю новый проект. Затем я использую 2N, 3N и так далее пропорциональность для создания визуального баланса, если где-то требуется бОльший отступ.
Хороший пример, когда дизайнер более менее соблюдает пропорциональность отступов:
![image](https://habrastorage.org/files/055/e05/3ea/055e053ea72f4c398520272d1cffc401.jpg)
Плохой пример, когда отступы практически базируются на генераторе случайных чисел:
![image](https://habrastorage.org/files/405/31d/823/40531d82328c463bb0c7d9fad65075c7.jpg)
Текст кнопки всегда первичнее иконки
Не забывайте, что именно текст является определяющим фактором того, какое ожидание или реакция предварительно сформируется у пользователя при виде кнопки. И лишь изображение иконки вторичным образом дополняет смысл. Изображение колокольчика с надписью “notifications” даёт нам некоторое представление о назначении этого функциона до того, как мы сделали клик. Аналогичный колокольчик без подписи в другом приложении приведёт нас к будильнику, хотя мы скорее всего будем ожидать появление экрана с уведомлениями. Я советую всегда наделять надпись бОльшим “весом” нежели иконки. Их я вообще считаю надувательством. Многие современные интерфейсы вполне способны обходиться и без них. Просто это было бы слишком скучно!
В целом хорошо:
![image](https://habrastorage.org/files/1f1/161/eda/1f1161eda97c4f43ac1aa57005ba861f.jpg)
Но можно сделать лучше:
![image](https://habrastorage.org/files/8d4/e84/edd/8d4e84edd9e945f09611ecb6bd6dd812.jpg)
Тоже выглядит неплохо:
![image](https://habrastorage.org/files/b77/db5/aed/b77db5aeddd54632bdd0767e2b6ae5af.jpg)
И тут есть, где улучшить:
![image](https://habrastorage.org/files/cee/9df/7dd/cee9df7dd2c24e46b8c68fea1cf0be99.jpg)
Не пытайтесь быть слишком понятными
Не все проектируемые интерфейсы обязаны быть интуитивно понятными. Существует множество сложных систем, с которыми мы обучались (!) взаимодействовать какое-то время. Возможно сейчас они кажутся нам простыми, но мы не отдаём отчёт, что были исследователями-первооткрывателями первые минуты, часы или более. И коль мы продолжаем работу внутри некоторой изначально сложной системы, видимо ничего не препятствовало нашему пути первых исследований. Скорее всего, дизайнер сделал свою работу настолько хорошо, что мы без труда освоили новую среду. Яркий пример из жизни: попытайтесь на миг представить, что вы не знаете значение математического знака “равно”. Согласитесь, эти две чёрточки — одна над другой, они совсем не кажутся интуитивно понятными. Просто когда-то в школе учитель математики обучил нас этому. Я призываю не пытаться быть понятнее, чем это требуется на минимально необходимом уровне.
В этом примере дизайнер был чрезмерно понятен с кнопкой закрытия:
![image](https://habrastorage.org/files/9c5/7c6/e81/9c57c6e81a724619a68f9f2522cdc672.jpg)
А в этом примере дизайнер оказался чрезмерно понятен с возможностью добавления:
![image](https://habrastorage.org/files/110/9da/4bf/1109da4bf387437ca4016a900551ce5b.jpg)
Перемещение курсора забирает силы
Мы не должны обязывать пользователя тянуться в другую часть экрана, чтобы получить расширенный функционал. Если пользователь работает со списком, то кнопка создания нового элемента должна быть поблизости. Или если мы порождаем новый попап кликом по кнопке слева внизу, то абсурдно заставлять пользователя тянуть курсор по диагонали направо вверх, чтобы окно закрыть.
Хороший пример, когда дизайнер предлагает закрыть попап в той же области, которая вызвала его порождение:
![image](https://habrastorage.org/files/fbf/6e2/31c/fbf6e231cc894014adee84269f3bfa30.jpg)
Плохой пример, когда дизайнер отдаляет функционал добавления элемента в список от самого списка:
![image](https://habrastorage.org/files/0e4/82f/185/0e482f18529147afac1dab3044d1e310.jpg)
Взаимосвязи расположений или единая плоскость
Это очередной приём балансировки интерфейса. Подобие сетки, если хотите. Например, вы используете трёхколонник. Находятся ли его заголовки в одной плоскости по оси X? Или расположение иконок с кнопками. Можно ли провести мнимую ось Y и обнаружить, что и те и другие аккуратно прилегают к ней? Если ответы утвердительны, дела идут хорошо. Это обусловлено тем, что зрительно человеку легче воспринимать табличный вид из-за структурированности данных. И мы при разработке интерфейса должны располагать элементы с некоторой табличной логикой.
Плохой пример с несостыковками:
![image](https://habrastorage.org/files/d8a/099/9f5/d8a0999f59144f85b54c33ddd2551aea.jpg)
Хороший пример с гармонией и соответствием:
![image](https://habrastorage.org/files/7c1/5bd/646/7c15bd646d1442a8ac6dd5dd717f6ac3.jpg)
Цвет имеет смысл
Избитое напоследок. Красное — тревога, зелёный — всё хорошо. Испокон веков для человека самое лучше восприятие текстовой информации, это чёрным по белому. Если вы используете много цветов без аргументации, вы создаёте хаос. Если вы окрашиваете элементы по смыслу, вы создаёте еще больше порядка.
Пример хаоса: (172 votes зеленым означает ли позитивное состояние? если, да то 280 visitors оранжевым — означает негативное по логике? отнюдь! дизайнер цветом лишь разделил цифры между собой)
![image](https://habrastorage.org/files/4cf/2d3/f0a/4cf2d3f0a4b040f0bffb7c9008078c72.jpg)
Пример создания порядка и обоснование цвета (я просто добавил графики поверх чужого творчества)
![image](https://habrastorage.org/files/4e2/b75/e1b/4e2b75e1b8a745b98af336d55f1cdad3.jpg)
Хороший пример незлоупотребления цветами:
![image](https://habrastorage.org/files/a7d/fdf/735/a7dfdf7350134a7a9a329d06fe674783.jpg)
В качестве эпилога....
Выражаю благодарность членам сообщества dribbble, за неформальное согласие предоставить свои работы для данного обзора. Хочу напомнить, что вышеизложенные принципы в дизайне интерфейса являются основными для меня. Я всегда держу их в уме при проектировании интерфейсов. Определитесь на чьей вы стороне… Вы хотите создавать интерфейсы для дизайнеров и работать на лайки (пример — 98% работ с behance) или вы стремитесь решать проблемы пользователя (dribbble)? Кстати, по-моему отличный пример того, как закрытость сообщества позволяет сохранять фокусировку на главном предназначении интерфейсов!