Поняв принципы, назревает следующий немаловажный вопрос: а откуда брать значения для отступов? Как они считаются? На что стоит опираться и почему?
Мы рассмотрим две отработанные системы получения единого набора отступов: пространственную и типометрическую.
Пространственная применяется дизайнерами для разработки, например, сложных интерфейсов на ограниченном пространстве, где в организации присутствуют меньше контента, а больше короткие информативные и интерактивные, как в расписании наших выставок.
Типометрическая используется в ситуациях где нам приходится верстать много контента и мы не ограничены в его подаче, будь то лонгриды или презентации.
Как следует из названия, принцип получения таблицы отступов полностью базируется на типометрии, о которой я рассказывал в предыдущих гайдах. Поэтому для понимания необходимо изучить гайды про
типометрию и
интерлиньяж, так как значения и принцип мы будем брать оттуда.
Поскольку система базируется на размере шрифта нам нужен отступ связанный с ним. Выше я писал, что межстрочный интервал является отступом. Следовательно, мы возьмём его значение как минимальное для нашей системы.
Помним, что отправной точкой для типометрии является размер шрифта основного текста, а значит и отступ считать мы будем от него. Поскольку в примере мы использовали значение в 20pt с интерлиньяжем 150% от размера шрифта или 30pt, от этих значений мы и будем отталкиваться.
Межстрочный интервал, напомню, это разница между интерлиньяжем и размером шрифта, то есть 50% или 10 pt. Это первое значение нашей системы отступов.
Чтобы посчитать остальные используем тот же принцип геометрической прогрессии: считаем и отступы умножая на заранее заданный коэффициент.
Для совсем малых размеров мы также получим пару размеров. Но на этот раз будем делить.
Теперь мы получили систему отступов основанную на типометрии. Визуально это выглядит так:
Имея такую таблицу, не потратив лишних минут, вы сможете собирать контент в красивую и удобочитаемую конструкцию. Кстати, design.profi.travel свёрстан, при помощи типометрической системы.
За основу построения пространственной системы берутся размеры зон размещения контента или интерфейса.
Её суть тоже достаточно проста: общий размер контентной части сайта или приложения мы делим на равные кратные клетки, которые мы берём за некую «единицу объёма» и строим наши отступы по количеству этих самых единиц.
Например, маленький отступ между малым заголовком и текстом состоит из 1 единицы, равной, допустим, 10px, а для отступов крупных блоков 3 единицы — значит 30px и так далее.
Несмотря на простоту самой механики, читателю может оказаться непонятным, как мы можем определить саму единицу объёма. В зависимости от основной задачи есть разные пути решения, которые мы рассмотрим на конкретных примерах.
Для начала заглянем в конструктор сайтов «Тильда», с которым многие знакомы. В готовых типовых блоках можно задавать отступы кратные только 15 и 30 пикселям — 30, 45, 60, 75, 90, 105, 120 и т. д.
А почему?
Во-первых, это определено жёсткой модульной сеткой, ширина контентной части которой равна 1200px, а каждая колонка из 12 равна 60px.
Во-вторых, что очень важно, данный конструктор создавался в первую очередь для людей далеких от знаний веб-дизайна и вёрстки сайтов.
Перед разработчиками стояла задача определить некую единицу отступа, которая имела бы хороший шаг, была кратна размеру контентной части и, самое главное, предельно понятна пользователю-недизайнеру. Так они пришли к единице в 30px и её половине 15px.
Несмотря на наличие мобильной и планшетной версии, у Тильды отсутствует адаптивность. Опять же, так проще пользователю- недизайнеру конструировать свой сайт по фиксированной сетке.
А как быть с адаптивностью, как учесть гибкую модульную сетку и не запутаться какие отступы нам нужны? Вот здесь сейчас надо быть очень внимательными, будут подводные камни.
Начнём с того, что определим под какие экраны и дисплеи наш контент должен подстраиваться:
Главная особенность этих размеров — они все кратны 2, 4, 8, 16. Достаточно удобные значения, их мы возьмём на вооружение и выберем из них ту самую «единицу объёма».
Сразу же обговорим, 2 нам не подойдёт. Она маленькая, у неё слишком незначительный шаг, все сведётся к неудобству с большим значениям самих единиц, а верстальщик получая макет потребует деноминировать значение более чёткие и понятные. 16 наоборот, имеет большой шаг, но число менее гибкое — в ограниченном пространстве, например, на мобильном устройстве, помешает его оптимизации.
А вот 8, как некое среднее значение, как раз можно определить в единицу объёма — у него неплохой шаг и система будет более гибкой. Кстати, значение 4 мы не выбрасываем — оно нам пригодится, как и 16.
Наш первый опорный отступ и шаг
И теперь мы строим систему, суммируя клетки в квадраты.
А вот и подводный камень! Обратите внимание на то, что здесь ломается визуальная градация — чем больше отступы, тем менее заметна их разница в размерах. А все из-за того что мы используем один и тот же шаг в +8px на протяжении всего конструирования, в следствие чего градация размывается и система выглядит несбалансированной.
Ровная линия превращается в гиперболическую кривую
В типометрической системе этого не случилось. Шаг в типометрии всегда увеличивается в прогрессии вместе с размером шрифта, что сохраняет визуальную градацию. Значит, нашим значениям нужно задать такую же динамику.
Рассмотрим шкалу более внимательно:
В значениях 1, 2 видно как сильно клетки отличаются по размеру. Шаг относительно отступа достаточно большой, отступы увеличиваются рывками.
В значениях 3, 4, 5 и 6 разница все ещё ощущается, но не так рвано, как в первых значениях. Градация выглядит более сбалансированной — здесь наши значения работают правильно.
В значениях 7, 8 и 9 разница размылась по сравнению с предыдущими, значит шага в +8px им уже недостаточно.
Опираясь на сбалансированный сегмент 3−6, реконструируем нашу систему. Для сегмента 1−2 шаг +8px достаточно большой, а значит шаг нужен меньше. Вот тут нам и пригодится наша половинка в 4px. Добавим промежуточные значения:
Далее вступает сегмент 3−6. Здесь у нас ничего не меняется.
Сегменту 7−9 шага в +8px уже недостаточно. Значения шага 4 + 8 = 12px мы использовать не можем, так как нарушаем кратность размерам экранов устройств. Значит, берём шаг +16px, что логично, так как +4px половина от +8px, а +8px половина от +16px.
Заметно, что градация Б, построенная на динамическом шаге, более явная и сбалансированная, при этом мы сохранили кратность значений к размерам экранов и устройств. Вот, что у нас получилось: