Compo: UI компоненты в Sketch

Compo — плагин для Скетча, который помогает дизайнеру работать с компонентами интерфейса. По ⌘J создает из текстового слоя кнопку или наводит порядок в ранее созданном компоненте. Отлично работает в связке со State Machine.


Компоненты — основа любого дизайна. Приложения и сайты состоят из простых и сложных компонентов. Несколько простых компонентов собираются в один сложный. Из компонентов собираются экраны, а из экранов приложение.

На этом фоне удивительно, как плохо сегодняшние дизайн-инструменты подходят для работы с компонентами. Даже обновление Cимволов в Sketch 3.7, хоть и принесло много полезного, не решило всех пробем.

Как мы работаем с компонентами

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

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

Возьмем компонент посложнее. Допустим, у нас товарная карточка: фотография, название товара, цена. Если сделать из этой конструкции Cимвол, то заботливый Скетч позволит задавать собственные параметры для каждого экземпляра. Очень здорово.

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

Плагины Dynamic Button и Dynamic Reposition почти решали задачу, почти

Эти проблемы появились не вчера и несколько хороших дизайнеров, воспользовавшись замечательной возможностью Скетча писать плагины на CocoaScript, предложили свои решения.

Например, я долго пользовался плагинами Dynamic Button и Dynamic Reposition. Первый подгоняет размер кнопки под новый лейбл. Второй с помощью отступов позволяет задать местоположение объектов внутри компонента. Например, можно «попросить» стрелку выпадающего списка всегда быть справа, с отступом 10 пикс. от границы.

Оказалось, эти плагины замечательно работают в связке. Например, вот как я обычно создавал выпадающий список. Дублировал уже имеющийся компонент, изменял его лейбл, запускал Dynamic Button, чтобы он отресайзил подложку. Следом запускал Dynamic Reposition, чтобы он поставил на место иконку уголка.

Быстро стало понятно, что все это должен делать один плагин.

Compo вместо символов

Compo делает две вещи:

  1. Превращает выделенный текст в простую кнопку.
  2. Наводит порядок в созданном ранее компоненте.

Объясню на примерах из ежедневной практики.

Пример 1

Выделяем текстовый слой и запускаем по ⌘J плагин. Текст превращается в кнопку. Вроде мелочь, но приятно.

Пример 2

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

Кстати, если вы решите скормить плагину свою существующую кнопку, то в имени слоя задайте отступы в формате 12:24:12:24, где слева направо: отступ сверху 12 пикс., справа 24, снизу 12 и слева 24. Такая последовательность принята в CSS.

Пример 3

Сделаем контрол посложнее. Пусть у нас будет выпадающий список. Конструктивно это кнопка с уголком в правой части. В имени лейбла задаем отступ справа побольше, чтоб влез уголок, а самому уголку командуем: r:10 — отступай на 10 пикс. от правого края. Нажимаем ⌘J. Создавать новые выпадающие списки из такой заготовки — дело пары секунд.

Пример 4

Вспоминаем, что Символы не справились с карточкой товара, где цена вверху, а название внизу. Теперь мы можем явно задать надписи отступ снизу и какой-бы длины не оказалась надпись, Compo выровняет ее, как нужно.


К сожалению, сейчас придется выбирать — хранить компонент в виде Cимвола, или как обычную группу, с которой сможет работать Compo. При этом, сделать некоторые части компонента символами может быть полезно.

В остальном, Compo избавляет дизайнера от скучной работы и исправляет несколько недостатков Cимволов Скетча. Я использую его в своей работе каждый день.

Скачать и установить Compo.
Show your support

Clapping shows how much you appreciated Roman Shamin’s story.