{"id":14276,"url":"\/distributions\/14276\/click?bit=1&hash=721b78297d313f451e61a17537482715c74771bae8c8ce438ed30c5ac3bb4196","title":"\u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u0442\u043e\u0432\u0430\u0440 \u0438\u043b\u0438 \u0443\u0441\u043b\u0443\u0433\u0443 \u0431\u0435\u0437 \u0431\u0438\u0440\u0436\u0438","buttonText":"","imageUuid":""}

Создали адаптивную мобильную систему дизайна для дизайнера

Какой должна быть идеальная мобильная система дизайна для дизайнера? Миллион компонентов или хватит пары? Широкая палитра или несколько цветов? Токены… — что это?

Мы задумались над инструментом, который удовлетворял бы базовые потребности по компонентам, использовал последние апдейты Figma, обладал бы понятной и логичной структурой, легко кастомизировался и в идеале был бы кроссплатформенным.

Поэтому мы пошли ресерчить и выделили несколько проблем:

  • Непрозрачная структура стилей или токенов
    Это тот случай, когда хотелось бы, чтобы семантическое наименование токенов или стилей цветов стало мейнстримом, но пока что чаще всего мы имеем “Blue-600” “Grey-300” “Redwine-900”. Такой подход к наименованию усложняет процесс проектирования: “Так, у меня тут grey-300 или grey-400, а redwine где применяется?” а так же усложняет процесс кастомизации, например, при смене цвета не совсем понятно, где ждать изменений. Другое дело когда ты юзаешь что-то подобное “button-primary-default” или в нашем случае “bg-primary”- ясно, что и где.
  • Слишком большая компонентная база
    Существенная часть компонентов, представленных в UIkits, нам не нужна, поскольку мы используем его под конкретную задачу. Огромная вариативность это хорошо, будет из чего выбрать, но в тоже время зачем вы отнимаете наше время? Это напомнило мне моего деда, у которого в гараже можно было найти все и ничего, но целый день ты точно потратишь.
  • Адаптивность
    Рутинная ситуация: ты сделал дизайн к примеру под iOS и теперь нужно адаптировать его еще под 2 размера (390х840, 320х358), а также адаптировать под Аndroid и тоже в 2 размера (414х823, 360х740) и ко всему прочему подкрутить темную тему. Звучит не очень, нужно подобрать горизонтальные и вертикальные отступы, перевести нативные компоненты под Android, поменять шрифты, подобрать цвета для темной темы, проверить их на доступность WCAG, еще много раз внутри что-то подвигать, вернуться к какому-то основному экрану, чтобы сравнить, все ли так по отступам и только потом отдать экраны дальше. Сомнительное удовольствие. А теперь представь, что ты делаешь это за пару нажатий и тебе не нужно перепроверять каждый экран. Звучит заманчиво?
  • Кастомизация
    Если мы юзаем UI kit, то для конкретной задачи. Задачи всегда разные. Этому проекту нужно больше воздуха и скругления, а тут бы наоборот избегать скруглений и сделать все компактно, здесь у меня палитра холодная, а здесь теплая. Большая часть решений, представленная на стоках, будет заточена либо под одно, либо под второе. Конечно, можно изменить и скругления, и отступы, и палитру, внести или перенести все в variables, но как говорила Гамора “Какой ценой?”
  • Системность и передача в разработку
    Проектирование мобильных приложений - это не только продуктовый подход, но и подход системный, один язык с разработкой. В идеале вы имеете понятную команде систему отступов, размеров и все это желательно должно быть завязано на вашей сетке, например, в 4pt/dp, цвета опять же подвязаны на палитру - системность и прозрачность. К сожалению, этого сейчас в UIkits не хватает.
  • Стоимость
    Решения, которые в большей степени отвечают нашим представлениям, стоят весьма не дешево. Не называя имен, скажем, готовьте не менее $200. Для нас это не совсем дружественный подход, не одобряем.

В общем, спустя 3 месяца, мы - 2 дизайнера, создали мобильную систему дизайна для собственного использования…или не только собственного?

Знакомьтесь NanoDS

Структура стилей и токенов

Система состоит из 3-ех слоев:

  • Фундаментальный - Сетка и Палитра
  • Базовый - Токены для отступов, гэпов, размеров, цветов и стили типографики
  • Кроссплатформенные компоненты

Сетка

Используется базовая для мобильных приложений сетка в 4 шага.
В NANO DS используется понятие мегапикселя, где один мегапиксель равен 4pt в iOS и 4dp в Android.

Палитра

Собран минимально необходимый набор цветов, но при этом его легко расширить. Палитра разделена на четыре секции:

  • Base: цвета бренда, ошибок, успеха, внимания, полностью белый и черный
  • Alpha Base : полупрозрачные цвета полученные из Base
  • Neutral: оттенки серого
  • Alpha Neutral : полупрозрачные цвета полученные из Neutral

Токены

Кто не знает, что это и зачем, рекомендуем к прочтению статью Жени из Usetech— habr.com

Figma позволяет раскрыть потенциал системы. Без использования сторонних плагинов мы токенизировали: цвета, размеры, скругления, вертикальные гэпы и горизонтальные отступы.

Токены наследуются от своих родительских сущностей:

  • Токены размера и отступов ссылаются на сетку
  • Токены цвета ссылаются на палитру

Каждый токен цвета имеет два значения - для темной и светлой темы.

Каждый токен распределен по группам и семантически назван в соответствии с областью использования.

Каждый токен размера имеет три значения: для маленького, среднего и крупного девайса. Включает как динамические свойства, так и одинаковые.

Шрифты

Используются нативные шрифты: San Francisco для iOS и Roboto для Android. Каждый стиль текста включает три начертания: обычное, среднее и жирное.

Компоненты

NANO DS содержит основной набор компонентов для быстрой разработки сценариев:

  • Button — все разновидности кнопок
  • Card — карточки для предоставления контента
  • Cell — различного вида ячейки с чекбоксом радио и прочим
  • Chips — чипс
  • Date and time — контролы для работы с датой и временем
  • Forms — контролы используемые в формах: инпуты, селекты, слайдеры
    и прочие
  • Header — блок для предоставления контента, используемый в детальных экранах
  • Keyboard — кастомная числовая клавиатура
  • Native — набор нативных системных компонентов (статус бар, клавиатура, хоуминдекатор и прочие)
  • Navbar / Appbar — навигационная верхняя панель
  • Section Header — заголовки для секций
  • Segmented Control — элемент управления из двух или более сегментов
  • Snacks — уведомление, которое появляется в нижней части экрана
  • Steps — компонент представления кол-ва предстоящих шагов для завершения сценария
  • Tabbar — навигационная нижняя панель
  • Text — базовые компоненты для типографики
  • Details — набор микрокомпонентов: аватарки, бэйджи, прогресс бар
    и другие

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

Компоненты построены на autolayout, контент внутри адаптируется по ширине экрана, а для текста предусмотрено ограничение по количеству строк.

Они так же поддерживают достаточную вариативность, включая как различные варианты для состояний, размеров и типов, так и широкую панель настроек с наследуемыми компонентами, булевыми значениями для слоев и прочие.

Адаптивность

  • Две цветовые темы
    Поддерживает две темы: светлую и темную, их легко переключить на панели инструментов в Figma.
  • Динамические отступы и размеры
    Из особо приятного мы предусмотрели динамические размеры для горизонтальных отступов и вертикальных гэпов. Они меняют свои значения, увеличиваясь или уменьшаясь в зависимости от ширины экрана. Такой подход довольно сильно сокращает процесс адаптации под второстепенные размеры экранов.
  • Кроссплатформенность

    Каждый компонент создан для обоих платформ (iOS, Android) с учетом их особенностей: corner smoothing, типографика, навигация, нативные компоненты.

    Перевод макета с платформы на платформы и адаптацию под вторичные размеры экранов занимает около 1 минуты без необходимости использования плагинов.

Кастомизация

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

Заключение

  1. Это больше, чем UIkit, здесь каждый механизм связан друг с другом и изменение одного, может привести к изменениям во всем макете или изменить только один макет. Зависит от вас.
  2. Это core модуль, в который мы занесли базовые компоненты и создали легко масштабируемую и кастомизируемую структуру токенов.
  3. Это кроссплатформенная система, в которой учтены гайдлайны iOS и Android: навигация, нативные компоненты, corner smoothing, типографика, размеры экранов.
  4. Autolayout подход к проектированию экранов. Просто набрасываем в экран компоненты, он без проблем адаптируется и под ширину, и под высоту.
  5. Масштабируемая система. На базе Nano DS очень легко сделать узкоспециализированные UIkit, о чем мы сейчас задумались.
  6. А еще это легкая кастомизация, прозрачность и другие решенные проблемы описанные выше.

По ссылке на Nano DS вы найдете гайды по работе с ней, примеры использования, правила создания и работы с компонентами, а также ссылки для связи с нами. Если у вас возникнут вопросы по работе, пожалуйста, напишите нам.

Планы

Мы видим NANO DS как core, выполняющий основные функции и мы понимаем, что необходимо расширять компонентную базу для покрытия широкого спектра задач. Поэтому в перспективе мы видим, что на основе NANO DS будут созданы специализированные UIkit для e-commerce, banking, travels, events, lifestyls, habits и пр.

Но не уверены, что это нужно выносить в сообщество, возможно, мы оставим прелесть себе

Все будет зависеть от сообщества, насколько сильным будет интерес. Нам было бы приятно осознавать, что мы упростили жизнь кому-то еще кроме себя.

Вы можете повлиять на появление специализированных UIkits и выбор направления, поделитесь своими мыслями с нами здесь Link.

Поддержите нас

Эта наша первая статья и нам важно ваше мнение.
Пожалуйста, поддержите лайком и комментарием, нам важно получить как можно больше обратной связи. Ваш фидбек поможет докрутить NANO DS и сделать опыт использования еще продуктивнее и приятнее.

Получить NANO DS

Первые 10 человек получат от нас файлик, напишите в ТГ.
Так же можно забрать со стока по цене двух чашек кофе в старбаксе.

0
5 комментариев
Алексей Лысенко

Отличная большая работа! Молодцы)

Ответить
Развернуть ветку
Александр Перебейнос

Статья очень интересная, читать одно удовольствие! Вы большие молодцы, на правильном пути!

Ответить
Развернуть ветку
Павел Иванов

Эта система учитывает все рекомендации для iOS и Android, что делает разработку приложений легкой и приятной. 10/10/10

Ответить
Развернуть ветку
Кирилл А

Отличное рещение, очень упрощает работу. Так держать!!!

Ответить
Развернуть ветку
Илья Юмашев

Создание адаптивной мобильной системы дизайна - это всегда сложная задача, и здорово видеть, что команда справилась с этим вызовом

Ответить
Развернуть ветку

Комментарий удален автором поста

Развернуть ветку
2 комментария
Раскрывать всегда