Отступы и выравнивание

Используйте теорию близости и придерживайтесь правила внутреннего и внешнего, когда верстаете страницу.

Правило внутреннего и внешнего хорошо описано в книге «Типографика и вёрстка» Артёма Горбунова, а теория близости — в параграфе 136 «Ководства» Артемия Лебедева.

Отступы

Делайте отступы, кратные модулю. Модуль в 8 пикселей — базовая размерная единица для интерфейсов Контура.

Чтобы облегчить восприятие экрана, выбирайте отступы, которые отличаются достаточно сильно — 1, 2, 4 и 8 модулей (8, 16, 32 и 64 px). Используйте минимальное количество разных отступов в рамках одного экрана.

Форма «Директор»: поля «Фамилия», «Имя», «Дата рождения» и адрес по прописке со ссылкой «Изменить». Разметка в модулях: от заголовка до формы 3, от подписи до поля 1, между строками формы и между полями в строке 2.То же без разметки

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

Форма: многострочное поле «Комментарий», строка «Адрес доставки» со ссылкой «Заполнить адрес» и поле «Теги» с токеном «Значение». Над и под строкой адреса отступы по 1 модулю.То же без разметки

Допустимо

Та же форма, отступы над и под строкой «Адрес доставки» увеличены до 2 модулейТо же без разметки

Правильно

Допустимо использовать шаг в полмодуля в отступах до 40 px. Например, внутри составных элементов, таких как текст с иконкой:

Ссылка «Заполнить адрес» с иконкой карандаша, между иконкой и текстом 0,5 модуляТо же без разметки

А также внутри небольших групп, например в меню:

Фрагмент главной Контур.Маркета с разметкой в модулях. В меню: 3 сверху, 2 от логотипа до пунктов, 1 от иконки до текста, 2,5 между пунктами. В контенте: 3 до панели и ещё 3 до заголовка «Сегодня, 25 августа», 2 до карточки выручки и внутри неё.То же без разметки

Примеры отступов

Между лейблом и полем:

Подпись «Фамилия» над полем со значением «Петров», между ними 1 модульТо же без разметки

Между кнопками и полями:

Поля «Фамилия» и «Имя» в строку, под ними кнопки «Сохранить» и «Отменить»: между полями 2 модуля, между кнопками 1 модульТо же без разметки

Между двумя параграфами текста — 1 модуль, до заголовка — 2 модуля:

Заголовок «Быстрая проверка и подбор контрагентов», два абзаца и ссылка «Отправьте заявку на пробную версию»: от заголовка до текста 2 модуля, между абзацами и до ссылки 1 модульТо же без разметки

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

Выравнивание

Выравнивайте элементы форм или таблиц по базовой линии текста:

Фиолетовые базовые линии: название «Декларация по транспортному налогу» на одной линии с датой, первая строка двухстрочной подписи — с текстом поля и кнопки «Отправить», подпись «Короткое название» — с первой строкой многострочного поляТо же без разметки

Чтобы показать вложенность элементов, сделайте смещение, кратное модулю:

Чекбоксы «ЕНВД (вменёнка)», «УСН (упрощёнка)» и «Патент», подпись «Система налогообложения» на одной базовой линии с первым; вложенные в УСН радиокнопки «Только доходы» и «Доходы минус расходы» смещены на 3 модуляТо же без разметки

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

Раскрывающийся список «Тип документа» с открытым меню «Любой», «Счёт-фактура», «Акт», «Накладная»: по направляющей тексты пунктов выровнены по левому краю плейсхолдера «Выберите», подпись с ним на одной базовой линииТо же без разметки

Но следите за тем, чтобы не возникало ложных связей между выровненными объектами:

Радиокнопки «Частота уведомлений»: «Уведомлять 1 раз в месяц», «Уведомлять 1 раз в неделю», «Уведомлять ежедневно». Справа поля почты и телефона под подписью «На почту или телефон» стоят в одних строках с первыми двумя радиокнопками.

Неправильно

В примере выше подписи радиокнопок находятся ближе к полям справа, чем друг к другу — кажется, что ежемесячные уведомления приходят на почту, а еженедельные на телефон. Правильнее не выравнивать строки и сделать отступ до смыслового блока больше:

Радиокнопки «Частота уведомлений»: «Ежемесячно», «Еженедельно», «Ежедневно». Справа отдельным блоком поле «На почту» и ниже, с большим отступом, поле «Или телефон» — строки полей не совпадают со строками радиокнопок.

Правильно

Реализация

Настройка nudge amount

Чтобы проще оперировать отступами, кратными модулю, измените дефолтный шаг для перемещения объектов клавишами Shift + → в Figma. Найдите в Figma настройку Nudge amount и установите Big nudge равным половине модуля — 4 px или целому модулю — 8 px.

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

Как измерять отступы

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

Заголовок «Header» над строкой «Paragraph text»: у заголовка отмечены граница текстового объекта в редакторе и вёрстке и видимая граница по буквам внутри неё. Отступ 24 px (3 модуля) отмерен от границы объекта.

Если вы работаете с таблицами или формами, объединяйте строки в группы и измеряйте отступ между группами:

Строки формы «Дата рождения» с полем «24.03.1978» и «Адрес по прописке» с адресом и ссылкой «Изменить» обведены рамками, отступ 16 px (2 модуля) измерен между рамками строк

Размеры текстовых блоков

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

Рамка двухстрочного текста «Заявление о государственной регистрации…» уменьшена вручную: вторая строка выходит за её нижний край. От рамки до «Напечатать» отмерено 16 px (2 модуля), от растянутой рамки «Напечатать» до «Скачать» — 4 модуля.

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

Используйте авторесайз текстовых блоков в редакторе.

Настройки Resizing в графическом редакторе: три кнопки — стрелка вправо, строки текста и квадрат

Следите за тем, чтобы высота строки соответствовала гайду «Текстовые стили» даже в однострочных текстовых элементах — коротких ссылках или пунктах меню. Значение высоты строки влияет не только на межстрочный интервал, но и на расстояние от текста до границ текстового блока и на его размеры. Разработчик будет учитывать высоту строки, чтобы получить правильные размеры инлайновых элементов, их внутренние и внешние отступы.

Допустимые погрешности

Наши продукты должны выглядеть аккуратно, поэтому мы верстаем их точно по макету. При этом мы не стремимся к тому, чтобы вёрстка соответствовала макету пиксель в пиксель. Абсолютно одинакового отображения всё равно не достичь во всех браузерах. Решать задачи важнее, чем попадать в пиксели, но погрешности вёрстки и неаккуратная работа — не одно и то же.