Sketch-библиотека для работы
Дизайнер и проектировщик в «СКБ Контур» Александр Храмцов дал подробную инструкцию по работе с открытой библиотекой компании, опубликованную в общем доступе.
Большинство готовых и доступных в интернете UI-китов слишком просты и не подходят для серьёзной работы. Мы создали свою библиотеку контролов, удобную и полезную для 40 дизайнеров «Контура», работающих над интерфейсами 30 продуктов.
В этой статье мы хотим рассказать, как устроена наша библиотека, и предложить воспользоваться этим опытом. В конце статьи вы увидите ссылку на библиотеку, выложенную в общий доступ, и инструкцию, как её кастомизировать под свой дизайн. Взамен мы ждём обратной связи и рассказа о том, как вы решаете подобные задачи в вашей компании. Просто напишите комментарий, я буду рад общению.
Дизайн-система
Для начала пара слов о целях, которые преследует наша библиотека:
- Распространять дизайн-систему. У нас есть общий визуальный стиль, и мы хотим, чтобы он проникал во все продукты «Контура».
- Тратить меньше времени дизайнера на рисование и больше на проектирование пользовательских сценариев.
- Синхронизировать инструменты дизайнера с библиотекой компонентов для разработчиков. Чтобы разговаривать на одном языке и способствовать расширению дизайн-системы «Контура».
Кстати, библиотека разработчиков «React UI» выложена на Github, а принципы работы каждого контрола описаны в «Контур.Гайдах».
Что мы сделали
Во-первых, мы завели общую папку «Ресурсы» и сложили туда все исходники: контролы, шаблоны, иконки, шрифты, цвета.
Во-вторых, каждый дизайнер настроил синхронизацию этой папки и имеет локальную версию с актуальными материалами для дизайна.
В-третьих, мы сделали подключаемую в Sketch библиотеку, содержащую все необходимые контролы и их состояния для проектирования сервисов «Контура». Вот об этом мы расскажем подробнее.
Библиотека символов
Дизайнер интерфейсов в «Контуре» помимо внешнего вида продумывает сценарии и рисует детализированные прототипы. Для этого ему нужны не только все доступные контролы, но и все их состояния, с которыми может столкнуться пользователь.
Основная проблема общих библиотек — как только дизайнеру в ней чего-то не хватает, он начинает рисовать свою библиотеку.
В наших «Контур.Гайдах» сейчас более 30 разновидностей контролов, и почти каждый из них имеет от трёх до семи различных состояний. Количество комбинаций огромно, и чтобы не усложнять библиотеку, мы используем вложенность.
Вложенность
Первый уровень вложенности — «Контрол». Здесь мы добиваемся простого и обозримого списка: кнопка, поле ввода, чекбокс, тултип и так далее — все базовые контролы.
Второй уровень — «Состояние». Например, обычное поле ввода кроме дефолтного имеет состояния: в фокусе, заблокированное, с критичной валидацией или предупреждением. Выпадающие списки могут содержать список пунктов, с иконками, с группами. И так далее.
Третий уровень — «Контент». Например, все кнопки выглядят одинаково, но могут содержать внутри текст, текст с иконкой, текст с иконкой и стрелкой справа.
Как это выглядит в библиотеке
Внутри библиотеки отдельно собраны все виды контента и все виды состояний каждого контрола. Символ контрола один, он виден в библиотеке. В него вставлен символ состояния, а в состояния вставлен символ контента.
Так мы получаем конструктор, из которого можно собрать любой контрол в любом состоянии и с любым контентом.
Как это выглядит в работе
1. Дизайнер выбирает контрол из библиотеки. Это первый уровень вложенности и мы сделали его лаконичным.
2. На панели оверрайдов выбирает состояние контрола. Это второй уровень вложенности.
3. Выбирает содержимое контрола. Это третий уровень вложенности:
4. Контрол готов, остаётся ввести тексты в зависимости от контента: иконку, текст, вотермарк.
Конечно, в реальной жизни дизайнеры не занимаются ручным конструированием каждого контрола. Мы создали отдельный файл, в котором уже собраны все основные контролы из гайдов. Он работает как простой визуальный гид по библиотеке. Первый раз нужный контрол можно взять здесь, дальше, как показала практика, дизайнеры переиспользуют материалы из своих макетов.
Размеры и отступы
Все символы в библиотеке настроены, чтобы правильно масштабироваться при изменении размеров. Здесь есть несколько важных нюансов:
- Внутренние отступы в контролах часто зависят от контента. Например, иконки требуют визуальной компенсации, и отступ будет меньше, чем от текста. Поэтому отступы удобнее делать в символе контента.
- Наши гайды запрещают многострочные кнопки, а у каждого размера кнопок и полей есть своя фиксированная высота. Поэтому мы специально зафиксировали высоту некоторых контролов в библиотеке. Теперь, даже если символ малой кнопки расширить в высоту, она останется 32 px. Это избавляет от случайных ошибок и замены одних контролов на другие.
Типс энд трикс
Если вы давно работаете в Sketch, некоторые из этих трюков вам уже знакомы:
- Символы в библиотеке можно групировать с помощью слеша / в названии. Если назвать символ Поле ввода / Малое, то в выпадающем меню библиотеки символ «Малое» окажется в группе «Поле ввода».
- В библиотеку попадают все символы в файле. А значит все состояния, все контенты и все запчасти, используемые в виде символов, попадут в общий список. Мы прячем все эти лишние «запчасти» в последний пункт библиотеки, добавляя ⌘ / в начало имени.
- Чтобы на панели оверрайдов предлагались только определенные символы, задайте им уникальный размер. Например, у нас для полей ввода установлена ширина 210 px, а для выпадающих списков — 220 px. Используйте один уникальный размер для всех взаимозаменяемых символов.
- Есть лайфхак, чтобы выравнивать по центру не только текст, но и текст с иконкой.
- Последовательность параметров на панели оверрайдов определяется порядком слоев. Если вы не хотите, чтобы слой редактировался, просто заблокируйте его замочком.
Как попробовать нашу библиотеку
Для удобства мы загрузили файл библиотеки «Контур UI» на Sketch.cloud. По ссылке вы можете скачать файл или сразу подключить как облачную библиотеку в свой Sketch. В этом случае вы будете получать обновления, когда мы что-то добавим или исправим в библиотеке.
Мы не против, если вы поделитесь библиотекой с друзьями и коллегами-дизайнерами. Только отправляйте им не файл, а ссылку. И даже лучше — ссылку на эту статью.
Библиотека распространяется по лицензии, допускающей модификации, персональное и коммерческое использование за исключением: логотипа, цветов, иконок, шапки и подвала, являющихся элементами фирменного стиля наших продуктов. Подробнее лицензия описана прямо в файле библиотеки.
Кастомизация
Если вы готовы попробовать нашу библиотеку со своим дизайном, вам придётся скачать её. Откройте файл на странице «Стили». Здесь на одном артборде собраны все состояния контролов, даже те, которых нет в библиотеке: например, состояние при наведении. Мы сделали их, чтобы передать разработчикам все необходимые цвета и стили наших контролов.
Чтобы менять стили во всей библиотеке, мы используем «Layer Styles» и «Text Styles». Когда вы поменяете стиль на этом артборде, нажмите иконку «Обновить» справа, чтобы обновить стиль во всем документе.
Обратите внимание, что для иконок мы используем собственный иконочный шрифт. Мы пока не распространяем его, и вам придется найти ему замену.
#дизайн
© vc.ru