Меню
Поиск

Интерфейс и визуал · Композиция и сетка

Как записать правила раскладки, по которым команда соберёт экран без вас

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

Пример для всего урока. Магазин кофе вырос: над экранами теперь работают три дизайнера, и каждый собирает раскладку по-своему. Один ставит между полями 16, другой 20, третий делает форму оформления на всю ширину. Экраны по отдельности аккуратные, а вместе продукт выглядит собранным из разных кусков. Задача урока — записать правила, по которым любой из троих соберёт экран так, что его не придётся переделывать.

1Что меняется на этой ступени

На Middle вы собираете понятный экран сами. На Senior раскладка перестаёт зависеть от того, кто сегодня собирает экран.

MiddleSenior
РезультатСвой экран с ясной иерархией и подходящей плотностьюПравила, по которым другие соберут такой же экран
Где живут решенияВ голове автора и в его макетахВ документе, который можно открыть и сослаться на пункт
Ревью«Мне кажется, лучше так»«По правилу такому-то здесь нужно так, потому что…»
Новый случайРешается на местеРешается и попадает в правила, чтобы в следующий раз не решать заново
РазработкаПолучает макет с отступамиПолучает токены и раскладки, которые повторяют правила в коде

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

2Шкала отступов с правилом выбора

Список чисел — ещё не правило. Правилом его делает ответ на вопрос «когда какое число брать».

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

СистемаШкалаКак объясняет выбор
AtlassianОт 0 до 80 px, база 8 px — токен space.100. Число в имени — процент от базы: space.200 = 16 pxТри диапазона: 0–8 px для мелкого и плотного интерфейса, 12–24 px для крупных элементов, 32–80 px для раскладки
IBM Carbon13 токенов от $spacing-01 до $spacing-13: 2, 4, 8, 12, 16, 24, 32, 40, 48, 64, 80, 96, 160 pxТокены не зависят от ширины экрана: на брейкпоинте меняют шаг шкалы, значение токена остаётся прежним
GOV.UKДве шкалы: статичная — 0, 5, 10, 15, 20, 25, 30, 40, 50, 60 px — и адаптивная, где у крупных шагов два значения, для малых и больших экрановБольшие значения адаптивной шкалы включаются шире 640 px, мелкие шаги одинаковы везде

Как записать правило для своей шкалы

Для каждого шага — четыре колонки: число, имя токена, где его ставить и пример из продукта. Пятая — исключения. Роли из урока Junior сюда переносятся почти дословно, только теперь их читает не автор, а команда.

ЧислоТокенГде ставимПример в магазине
4space-1Внутри элемента: подпись и значение, название и уточнение«Адрес» и сам адрес
8space-2Соседи в группеВарианты времени доставки
16space-4Связанные блоки, поля экрана, промежуток сетки на телефонеПоля формы между собой; итог и кнопка
24space-6Между группамиБлок «Адрес» и блок «Когда привезти»
32space-8Между частями экранаФорма и итог с кнопкой
Исключения тоже записываются. В Carbon прямо разрешают отступать от шкалы, но просят избегать этого везде, где можно. В Atlassian разрешают оптическую подгонку — но шагами той же шкалы. Честное правило оставляет место исключению и говорит, как его делать.

3Типовые раскладки продукта

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

Дизайн-системы описывают раскладки через назначение.

В Atlassian три варианта ширины сетки:

  • фиксированная широкая, до 1296 px, — для дашбордов и поиска;
  • фиксированная узкая, до 864 px, — для статей и документации;
  • резиновая без предела — для досок и вайтбордов.

В GOV.UK для большинства страниц советуют схему «две трети» или «две трети + треть», чтобы строки не растягивались на широком экране.

У магазина кофе получилось пять типовых раскладок. Сетка на схемах уже включена: двенадцать колонок, как на десктопе.

Магазин кофе · пять раскладок

Каталог: фильтры и карточки

Фильтры · 3
Карточка · 3
Карточка · 3
Карточка · 3

Карточка товара: фото и покупка

Фото · 7
Название, цена, кнопка · 5

Оформление: форма и итог

Форма · 8
Итог и кнопка · 4

Рабочий экран: таблица на всю ширину

Таблица · 12

Промо: одно сообщение по центру

Сообщение · 8, отступ по 2 колонки
Каждая схема занимает целое число колонок и отвечает своей задаче. «Оформление» устроено как «две трети + треть» у GOV.UK, промо держит строки узкими, рабочий экран отдаёт таблице всю ширину.

Что выравнивать по колонкам, а что нет

У Atlassian есть правило, которое снимает многие споры: к колонкам выравниваются только контейнеры верхнего уровня — карточки, изображения, текстовые блоки, таблицы, формы.

Кнопки, значки и всё внутри контейнеров расставляется токенами отступов.

В Carbon добавляют ещё правило: текст никогда не заходит в промежуток между колонками.

Проверьте себя

Восемь экранов магазина. Какая раскладка подходит каждому?

Тренажёр · какая раскладка
  1. Раздел «Кофемолки»: 36 товаров, фильтр по цене и типу помола.

  2. Экран подписки на кофе: частота доставки, адрес, способ оплаты и сумма в месяц.

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

  4. Страница «Кофе недели»: одно название, фото и кнопка «Попробовать».

  5. Страница кофемолки Hario: фотографии, характеристики, цена и «В корзину».

  6. Возврат товара: выбор причины, фото брака, способ вернуть деньги и сумма к возврату.

  7. Экран оператора поддержки: список обращений с номерами заказов и сроками ответа.

  8. Подборка «Всё для воронки»: 12 товаров без фильтров.

Если экран легко относится к одной из пяти схем, правила работают. Если не относится ни к одной, это повод их дополнить.

4Правила на две страницы

Правила, которые не помещаются на две страницы, не читают. Правила, в которых нет примеров, понимают по-разному.

В документе пять частей. Каждая отвечает на вопрос, который дизайнер задаёт себе, собирая экран.

  1. Шкала отступов: числа, токены и где какое ставить. Вопрос: «Какой отступ здесь?»
  2. Сетка по брейкпоинтам: колонки, промежутки, поля. Вопрос: «Сколько колонок займёт блок?»
  3. Типовые раскладки: схема, назначение и пример экрана для каждой. Вопрос: «С чего начать экран?»
  4. «Так» и «не так»: по два-три примера на пункт, взятых из вашего продукта. Вопрос: «Я правильно понял правило?»
  5. Исключения и изменения: как сделать исключение и как предложить правку. Вопрос: «А если мой случай не подходит?»
Правила раскладки · шаблон на две страницы
ПРАВИЛА РАСКЛАДКИ · ПРОДУКТ: ______________   Версия: __  Дата: __.__.____
Кто отвечает: ______________   Как предложить правку: ______________

1. ШКАЛА ОТСТУПОВ
   число | токен      | где ставим                         | пример
   4     | space-1    | ________________________________   | __________
   8     | space-2    | ________________________________   | __________
   16    | space-4    | ________________________________   | __________
   24    | space-6    | ________________________________   | __________
   32    | space-8    | ________________________________   | __________
   Исключения: как делать и когда нельзя ______________________

2. СЕТКА
   телефон:  колонок __  промежуток __  поля __
   планшет:  колонок __  промежуток __  поля __
   десктоп:  колонок __  промежуток __  поля __  максимум ширины __
   К колонкам выравниваем: ______________________________
   Не выравниваем (ставим токенами): ______________________

3. ТИПОВЫЕ РАСКЛАДКИ
   название | схема (колонки) | для каких экранов | пример в продукте
   ________ | ______________  | _________________ | _______________
   ________ | ______________  | _________________ | _______________

4. ТАК И НЕ ТАК (по 2–3 на пункт, снимки из продукта)
   пункт __: так — ____________   не так — ____________

5. ИЗМЕНЕНИЯ
   Новый случай → кто решает → куда записываем → когда сообщаем команде
Шаблон повторяет пять частей документа. Пустые строки — места, где нужны ваши числа и снимки из продукта.
Правило без примера — пожелание. «Между группами — 24» понятно автору. Команде понятно, когда рядом снимок экрана оформления, где это 24 подписано, и снимок, где стоит 20 и группы слиплись.

5Ревью без придирок

С правилами спор о раскладке идёт по пунктам документа: вместо «мне кажется» появляется ссылка.

В статье Nielsen Norman Group о дизайн-критике её определяют как анализ того, достигает ли дизайн своих целей. Без согласованных целей обратная связь субъективна.

Там же советуют переформулировать оценочные замечания — «слишком красное» — и директивные — «я бы сделал иначе» — через цель дизайна.

С правилами раскладки у ревью появляется ещё одна опора: пункт документа.

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

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

Решите для каждого, что это: нарушение правил, не ошибка или случай, который правила не покрывают. Опирайтесь на правила из разделов 2 и 3.

Экран коллеги · номера замечаний
←КорзинаШаг 2 из 3
Оформление заказа1
Имя получателя
Анна Иванова
Телефон2
+7 912 000-00-00
Адрес3
ул. Лесная, 8, кв. 14
значок Курьер, завтра 10:00–14:004
ПромокодПрименить65
Итого3 480 ₽7
Оплатить8
Номер 6 относится к кнопке «Применить» рядом с промокодом, номер 5 — к самому ряду промокода.
Тренажёр · что это за замечание
  1. 1. «Заголовок лучше сделать жирнее».

  2. 2. «Между полями „Имя“ и „Телефон“ 20, а по шкале соседние поля формы — 16».

  3. 3. «Я бы поставил адрес выше имени».

  4. 4. «Значок доставки не растянут на колонку».

  5. 5. «Поле и кнопка промокода в одной строке — такого ряда нет ни в одной нашей схеме».

  6. 6. «Кнопка „Применить“ высотой 32, а по правилам цели нажатия не меньше 44».

  7. 7. «Между формой и итогом 16, а по шкале между частями экрана 32».

  8. 8. «Кнопка „Оплатить“ заканчивается посередине колонки».

Четыре замечания из восьми — по делу. Три — вкус или непонимание правила, одно — новый случай. Ревью, в котором всё записано в ошибки, коллега перестанет читать.

6Когда случай не лезет в правила

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

Дизайн-системы решают это процессом.

  • Material Design считает настройку системы отступов под продукт ожидаемой. Если подходящего токена нет, его добавляют, а повторяющийся приём тоже можно оформить токеном.
  • GOV.UK принимает новое предложение, если оно полезно многим командам и не повторяет существующее. Для первого шага нужны идея и доказательство потребности — не макет и не код.
  • Carbon на этапе обсуждения проверяет, закрывает ли предложение настоящий пробел. Если похожее уже есть, нужно показать, чем новое лучше.

Как обновлять свои правила

  1. Случай решается на экране. Дизайнер делает, как считает нужным, и помечает место: «не по правилам, см. предложение».
  2. Проверяется, правда ли случай новый. Может быть, подходит существующая схема или исключение уже описано.
  3. Предложение пишется коротко: какой случай, почему старое правило не подходит, что предлагается, снимки «так» и «не так».
  4. Решение принимает один человек или встреча, и оно записывается в документ с датой.
  5. Команда узнаёт об изменении, а старые экраны, которые правило затрагивает, получают задачу на переделку или остаются исключением.
Один случай — ещё не правило. Строка промокода из прошлого раздела может остаться единственной в продукте. Тогда её записывают исключением. Правилом она станет, когда повторится.

7Как правила ложатся в код

Правила работают, когда в макете и в коде одни и те же имена: разработчик пишет не «20 пикселей», а «space-6».

В дизайн-системах токены отступов живут и в макете, и в коде.

В Atlassian разработчик вызывает токен функцией token(‘space.200’), и на сайте он превращается в CSS-переменную var(—ds-space-200). В Carbon это Sass-переменные вроде $spacing-05, их ставят в margin и padding вместо чисел. Сетка GOV.UK в коде — классы колонок: govuk-grid-column-two-thirds для основной колонки, govuk-grid-column-one-third для боковой.

В Figma то же самое делают числовые переменные. Их можно поставить в gap и padding auto layout, а также в поля, промежутки и число колонок сетки на фрейме.

У переменной можно задать имя в коде для веба, iOS и Android — Dev Mode покажет его разработчику.

Одна ловушка: если тянуть padding или gap мышью прямо на холсте, переменная отвяжется, и отступ снова станет просто числом.

Правила магазина в CSS · пример для разработчика
/* Шкала отступов — те же имена, что в макете */
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
}

/* Типовая раскладка «Оформление»: 12 колонок, форма — 8, итог — 4 */
.layout-checkout {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: var(--space-4);
}
.layout-checkout__form    { grid-column: span 8; }
.layout-checkout__summary { grid-column: span 4; }

/* Брейкпоинт — числом: переменные в условии медиазапроса не работают */
@media (max-width: 599px) {
  .layout-checkout { grid-template-columns: repeat(4, 1fr); }
  .layout-checkout__form,
  .layout-checkout__summary { grid-column: 1 / -1; }
}
Имена токенов совпадают с колонкой «Токен» из правил. Если в макете стоит space-6, в коде стоит var(—space-6), и разговор идёт на одном языке.
Брейкпоинты — числами, отступы — токенами. CSS-переменные нельзя использовать в условиях медиазапросов, поэтому ширины брейкпоинтов в правилах и в коде пишут цифрами. Всё остальное — отступы, промежутки, поля — токенами.

Чем проверять экраны на соответствие

  • Check designs в Figma. Встроенная проверка находит числа, вписанные вручную вместо переменных: цвета, текстовые стили, радиусы, отступы и padding. Для переменных и стилей предлагает замену. Доступна на тарифах Organization и Enterprise.
  • Плагин Design Lint. Открытый плагин находит слои без стилей и сверяет радиусы со списком. Отступы по умолчанию не проверяет, их правила добавляют в своей версии плагина.
  • Взгляд по правилам. Инструменты находят числа не из шкалы, но не видят, что форма собрана на всю ширину вместо «восемь плюс четыре». Раскладку проверяет человек с документом.

8Задание

Опишите правила раскладки своего продукта на двух страницах: шкала, сетка, типовые схемы, примеры «так» и «не так». Соберите по ним один экран чужими руками.

Часть 1 · Собрать то, что уже есть, час

  1. Выпишите отступы с десяти разных экранов продукта. Посчитайте, какие числа встречаются.
  2. Сведите их к шкале из пяти–восьми шагов. Лишние числа — кандидаты на замену.
  3. Разложите экраны по типовым раскладкам. Обычно их от трёх до шести.

Часть 2 · Написать правила, два часа

  1. Заполните шаблон на две страницы из раздела 4.
  2. Для каждого пункта найдите в продукте пример «так» и «не так» и вставьте снимки.
  3. Запишите, как делать исключение и как предложить правку.
  4. Сверьте токены с разработкой: одинаково ли они называются в макете и в коде.

Часть 3 · Проверить чужими руками, день у коллеги

  1. Дайте правила дизайнеру, который их не писал, и задачу на один новый экран.
  2. Не подсказывайте. Все вопросы коллеги записывайте: каждый вопрос — место, где правила неясны.
  3. Проведите ревью по правилам: каждое замечание — со ссылкой на пункт.
  4. Поправьте документ по вопросам коллеги и замечаниям, которые не удалось сослать на пункт.
Как понять, что задание выполнено. Экран, собранный другим дизайнером по вашим правилам, встаёт в продукт без переделки раскладки. Замечания на ревью есть, но каждое ссылается на пункт правил.

Что должно получиться

  • Документ правил раскладки на две страницы, с примерами из продукта.
  • Экран, собранный коллегой по этим правилам, и список его вопросов.
  • Вторая версия документа с правками по итогам проверки.

План работы: час на разбор продукта, два часа на документ, день у коллеги на экран и час на ревью и правки.

Частые сложности

  • «Правила не помещаются в две страницы». Скорее всего, в них попали правила компонентов или типографики. Оставьте только раскладку: шкалу, сетку, схемы.
  • «Коллега задал двадцать вопросов». Это хороший результат первой версии: теперь известно, где правила неясны. Вторая версия будет короче по вопросам.
  • «В продукте уже десять разных отступов между полями». Не переделывайте всё сразу. Запишите правило для новых экранов и заведите задачу на старые.
  • «Разработка называет отступы по-своему». Договоритесь об одном списке имён и заведите его и в Figma, и в коде. Без этого правила разойдутся на первой же передаче.

9Чек-лист и ошибки

Правила готовы, если

  • У каждого шага шкалы есть токен, место применения и пример
  • Сетка описана по брейкпоинтам: колонки, промежутки, поля, максимум ширины
  • Сказано, что выравнивается по колонкам, а что ставится токенами
  • Типовые раскладки названы, у каждой — схема и пример экрана
  • На каждый пункт есть «так» и «не так» из вашего продукта
  • Описано, как делать исключение и как предложить правку
  • Имена токенов совпадают в макете и в коде
  • Всё помещается на две страницы

Что мешает

  • Список чисел без правила выбора. Шкала есть, но какое число ставить, каждый решает сам.
  • Правила без примеров. Их понимают по-разному, и спор просто переезжает в другой документ.
  • Сетка на всё. Значки и кнопки растягивают по колонкам, хотя выравнивать по сетке нужно контейнеры.
  • Ревью по вкусу. Замечания без ссылки на пункт выглядят как придирки, и их перестают слушать.
  • Правила, которые не меняются. Новые случаи решают в обход, и документ отстаёт от продукта.
  • Правила, которые меняются по первому случаю. Каждое исключение становится новым правилом, и шкала расползается.
  • Разные имена в макете и коде. Дизайнер говорит «24», разработчик пишет 1.5rem, и через месяц это уже 22.

10Три ступени темы

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

СтупеньЧто нужно уметьКак проверить результат
Junior Выбрать набор отступов и держаться его; группировать связанное расстоянием; класть блоки в колонки; проверять выравнивание сеткой Все отступы на экране из набора, и про каждый можно сказать, почему он такой
Middle Строить иерархию размером, весом и расстоянием, а цвет добавлять последним; подбирать плотность под задачу и объяснять выбор На чёрно-белом снимке человек за три секунды показывает, что здесь главное
Senior — этот урок Записывать шкалу отступов и типовые раскладки продукта; проверять чужие экраны по правилам без придирок; обновлять правила; объяснять разработке, как они ложатся на сетку в коде Экран, собранный другим дизайнером по вашим правилам, встаёт в продукт без переделки раскладки
Ориентир по этой теме: раскладка в вашем продукте не зависит от того, кто сегодня собирает экран, а спор о ней идёт по пунктам документа, а не по вкусу.

Что почитать дальше

  • Spacing и GridAtlassian Design System · на английском · бесплатноШкала от 0 до 80 px с тремя диапазонами применения, сетка на 2, 6 и 12 колонок по брейкпоинтам, правило «к колонкам — только контейнеры» и три варианта ширины: фиксированная широкая, фиксированная узкая и резиновая, с примерами, когда какую брать.
  • Spacing и 2x Grid: UsageIBM Carbon Design System · на английском · бесплатноТринадцать токенов отступов от 2 до 160 px, правило для исключений, три режима промежутков сетки — 32, 16 и 1 px — и запрет заводить текст в промежуток. Сетка Carbon — 16 колонок, 12 там считают наследием старых продуктов.
  • Spacing и LayoutGOV.UK Design System · на английском · бесплатноДве шкалы на шаге 5 px — статичная и адаптивная, где крупные шаги растут шире 640 px, — схема «две трети + треть» ради строки до 75 знаков и классы сетки в коде. Сетка здесь из долей, а не из 12 колонок.
  • Design Critiques: Encourage a Positive Culture to Improve ProductsNielsen Norman Group, Сара Гиббонс · на английском · бесплатноКак устроить критику дизайна: согласовать цели до встречи, переформулировать «слишком красное» и «я бы сделал иначе» через цель, вести обсуждение по кругу и записывать итоги. Статья 2016 года о самостоятельной критике; проверку по набору правил она не разбирает.