Скетч-библиотека для работы

Alexander Khramtcov
Дизайн в Контуре
6 min readMay 5, 2018

--

Большинство готовых UI-китов доступных в интернете слишком просты и не подходят для серьезной работы. Мы создали свою библиотеку контролов, удобную и полезную для 40 дизайнеров Контура, работающих над интерфейсами 30 продуктов.

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

Дизайн-система

Для начала пара слов о целях, которые преследует наша библиотека:

  • Распространять дизайн систему. У нас есть общий визуальный стиль и мы хотим чтобы он проникал во все продукты Контура.
  • Тратить меньше времени дизайнера на рисование и больше на проектирование пользовательских сценариев.
  • Синхронизировать инструменты дизайнера с библиотекой компонентов для разработчиков. Чтобы разговаривать на одном языке и способствовать расширению дизайн-системы Контура.

Кстати, библиотека разработчиков «React UI» выложена на Github, а принципы работы каждого контрола описаны в Контур.Гайдах.

Что мы сделали

Во-первых, мы завели общую папку «Ресурсы» и сложили туда все исходники: контролы, шаблоны, иконки, шрифты, цвета.

Во-вторых, каждый дизайнер настроил синхронизацию этой папки и имеет локальную версию с актуальными материалами для дизайна.

В-третьих, мы сделали подключаемую в Sketch библиотеку, содержащую все необходимые контролы и их состояния для проектирования сервисов Контура. Вот об этом мы расскажем подробнее.

Библиотека символов

Дизайнер интерфейсов в Контуре, кроме внешнего вида, продумывает сценарии и рисует детализированные прототипы. Для этого ему нужны не только все доступные контролы, но и все их состояния, с которыми может столкнуться пользователь.

Основная проблема общих библиотек — как только дизайнеру в ней чего-то не хватает, он начинает рисовать свою библиотеку.

В наших Контур.Гайдах сейчас более 30 разновидностей контролов и почти каждый из них имеет от 3 до 7 различных состояний. Количество комбинаций огромно и чтобы не усложнять библиотеку, мы используем вложенность.

Вложенность

Первый уровень вложенности — «Контрол». Здесь мы добиваемся простого и обозримого списка: кнопка, поле ввода, чекбокс, тултип и т.д. — все базовые контролы.

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

Третий уровень — «Контент». Например, все кнопки выглядят одинаково, но могут содержать внутри текст, текст с иконкой, текст с иконкой и стрелкой справа.

Как это выглядит в библиотеке

Внутри библиотеки отдельно собраны все виды контента и все виды состояний каждого контрола. Символ контрола один, он виден в библиотеке. В него вставлен символ состояния, а в состояния вставлен символ контента.

Так реализуется вложенность: Контрол → Состояние → Контент

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

Как это выглядит в работе

1. Дизайнер выбирает контрол из библиотеки. Это первый уровень вложенности и мы сделали его лаконичным:

2. На панели оверрайдов выбирает состояние контрола. Это второй уровень вложенности:

3. Выбирает содержимое контрола. Это третий уровень вложенности:

4. Контрол готов, остается ввести тексты, в зависимости от контента: иконку, текст, ватермарк.

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

Размеры и отступы

Все символы в библиотеке настроены, чтобы правильно масштабироваться при изменении размеров. Здесь есть несколько важных нюансов:

  • Внутренние отступы в контролах часто зависят от контента. Например, иконки требуют визуальной компенсации и отступ будет меньше чем от текста. Поэтому отступы удобнее делать в символе контента.
  • Наши гайды запрещают многострочные кнопки, а у каждого размера кнопок и полей есть своя фиксированная высота. Поэтому мы специально зафиксировали высоту некоторых контролов в библиотеке. Теперь, даже если символ малой кнопки расширить в высоту, она останется 32px. Это избавляет от случайных ошибок и замены одних контролов на другие.

Типс энд трикс

Если вы давно работаете в Скетче, некоторые из этих трюков вам уже знакомы:

  • Символы в библиотеке можно групировать с помощью слеша / в названии. Если назвать символ Поле ввода / Малое, то в выпадающем меню библиотеки символ «Малое» окажется в группе «Поле ввода».
  • В библиотеку попадают все символы в файле. А значит все состояния, все контенты и все запчасти используемые в виде символов попадут в общий список. Мы прячем все эти лишние «запчасти» в самый последний пункт библиотеки, добавляя ⌘ / в начало имени.
  • Чтобы на панели оверрайдов предлагались только определенные символы, задайте им уникальный размер. Например, у нас для полей ввода установлена ширина 210px, а для выпадающих списков 220px. Используйте один уникальный размер для всех взаимозаменяемых символов.
  • Есть лайфхак, чтобы выравнивать по центру не только текст, но и текст с иконкой.
  • Последовательность параметров на панели оверрайдов определяется порядком слоев. Если вы не хотите чтобы слой редактировался просто заблокируйте его замочком.

Как попробовать нашу библиотеку

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

Библиотека «Контур UI»

Мы не против, если вы поделитесь библиотекой с друзьями и коллегами дизайнерами. Только отправляйте им не файл, а ссылку. И даже лучше — ссылку на эту статью.

Библиотека распространяется по лицензии допускающей модификации, персональное и коммерческое использование, за исключением: логотипа, цветов, иконок, шапки и подвала, являющихся элементами фирменного стиля наших продуктов. Подробнее лицензия описана прямо в файле библиотеки.

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

Если вы готовы попробовать нашу библиотеку со своим дизайном, вам придется скачать её. Откройте файл на странице «Стили». Здесь на одном артборде собраны все состояния контролов, даже те которых нет в библиотеке: например состояние при наведении. Мы сделали их чтобы передать разработчикам все необходимые цвета и стили наших контролов.

Чтобы менять стили во всей библиотеке мы используем «Layer Styles» и «Text Styles». Когда вы поменяете стиль на этом артборде, нажмите иконку «Обновить» справа, чтобы обновить стиль во всем документе.

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

Вам понравилась статья? Узнали что-то новое? Попробовали в работе нашу библиотеку? Есть вопросы? Давайте продолжим дискуссию в комментариях. Feel free!

--

--