Настройка типографических переменных (шрифты, размеры, интервалы)
После цветовых переменных переходим к типографике — основе любого интерфейса. Правильно настроенные шрифты, их размеры и интервалы не только улучшают читаемость, но и ускоряют разработку, обеспечивая консистентность в вашем Next.js проекте.
Зачем нужны типографические переменные?
Типографические переменные позволяют управлять всем текстом в дизайне из одного места. Измените шрифт или размер заголовка в переменной — и изменения применятся по всему проекту. Не нужно вручную перебирать текстовые слои. Это особенно ценно для Next.js, где компоненты могут быть разбросаны по разным файлам и маршрутам.
Создаём коллекции типографических переменных
Как и с цветами, для типографики используем коллекции переменных в Figma. Это позволяет группировать параметры и применять их в разных режимах (например, для разных языков или плотностей интерфейса).
- Откройте панель Variables: Если она ещё не открыта, выберите
Local Variablesна панелиDesign. - Создайте новую коллекцию: Нажмите
+рядом сCollectionsи назовите её, например,Typography.
Настраиваем переменные для шрифтов
В Figma типографические переменные сложнее, чем цветовые, так как включают несколько параметров: семейство шрифтов, размер, насыщенность, высоту строки и межбуквенный интервал.
Семейство шрифтов (Font Family)
Начнём с основных шрифтов проекта. Для Next.js часто выбирают системные шрифты или Google Fonts, чтобы минимизировать время загрузки.
- Создайте переменную типа
String: Назовите еёfontFamily.primaryи укажите название шрифта, например,"Inter". - Если используете несколько шрифтов, создайте переменные для каждого:
fontFamily.secondary: "Roboto".
Важно: Указывайте точное название шрифта, как оно отображается в Figma.
Размеры шрифтов (Font Sizes)
Определите шкалу размеров шрифтов для заголовков, основного текста, подписей и т.д. Рекомендуется использовать модульную шкалу для гармоничного вида.
- Создайте переменные типа
Number: Назовите ихfontSize.xs,fontSize.sm,fontSize.base,fontSize.lg,fontSize.xlи так далее. - Присвойте значения в пикселях: Например,
fontSize.xs: 12,fontSize.sm: 14,fontSize.base: 16,fontSize.lg: 18,fontSize.xl: 24.
Насыщенность шрифтов (Font Weights)
Определите используемые насыщенности (жирность) шрифтов.
- Создайте переменные типа
Number: Назовите ихfontWeight.regular,fontWeight.medium,fontWeight.bold. - Присвойте значения: Например,
fontWeight.regular: 400,fontWeight.medium: 500,fontWeight.bold: 700.
Высота строки (Line Height)
Высота строки (интерлиньяж) критически важна для читаемости. Часто её задают безразмерным числом (множителем от размера шрифта) или в пикселях.
- Создайте переменные типа
Number: Назовите ихlineHeight.sm,lineHeight.base,lineHeight.lg. - Присвойте значения: Например,
lineHeight.sm: 1.2,lineHeight.base: 1.5,lineHeight.lg: 1.75.
Межбуквенный интервал (Letter Spacing)
Межбуквенный интервал (кернинг) обычно используется для заголовков или специфических элементов.
- Создайте переменные типа
Number: Назовите ихletterSpacing.tight,letterSpacing.normal,letterSpacing.wide. - Присвойте значения в процентах или пикселях: Например,
letterSpacing.tight: -0.02(для -2%),letterSpacing.normal: 0,letterSpacing.wide: 0.05(для 5%).
Совет: Не перегружайте систему слишком большим количеством вариантов. Начните с базовых размеров и насыщенностей, которые покрывают 80% ваших потребностей.
Применяем типографические переменные к стилям текста
Теперь, когда у нас есть переменные, свяжем их с текстовыми стилями. К сожалению, Figma пока не позволяет напрямую связать все типографические параметры (семейство, размер, высоту строки, насыщенность) с одной переменной. Однако мы можем использовать переменные внутри текстовых стилей.
- Создайте текстовый стиль: Выделите любой текстовый слой, перейдите на панель
Textи нажмите+рядом сText styles. Назовите его, например,Heading/H1. - Привяжите переменные:
- В поле
Font familyвыберите вашу переменнуюfontFamily.primary. - В поле
SizeвыберитеfontSize.xl. - В поле
WeightвыберитеfontWeight.bold. - В поле
Line heightвыберитеlineHeight.sm. - В поле
Letter spacingвыберитеletterSpacing.tight.
- В поле
- Повторите для других стилей: Создайте стили для
Heading/H2,Body/Base,Body/Smallи т.д., используя соответствующие переменные.
Пример структуры типографических переменных
Вот как это может выглядеть в вашей коллекции переменных:
Collection: Typography
Group: fontFamily
fontFamily.primary: "Inter"
fontFamily.secondary: "Roboto"
Group: fontSize
fontSize.xs: 12
fontSize.sm: 14
fontSize.base: 16
fontSize.lg: 18
fontSize.xl: 24
Group: fontWeight
fontWeight.regular: 400
fontWeight.medium: 500
fontWeight.bold: 700
Group: lineHeight
lineHeight.sm: 1.2
lineHeight.base: 1.5
lineHeight.lg: 1.75
Group: letterSpacing
letterSpacing.tight: -0.02
letterSpacing.normal: 0
letterSpacing.wide: 0.05
Важно: Использование переменных для типографики значительно упрощает адаптацию дизайна под разные языки (где может потребоваться другой шрифт) или создание тем, где, например, в "плотном" режиме уменьшается размер шрифта.
Теперь, когда мы настроили типографические переменные, наш дизайн стал ещё гибче и готов к быстрым изменениям. Но помимо текста, есть и другие важные элементы, которые нуждаются в стандартизации – это отступы, радиусы скругления и тени. В следующем разделе мы займёмся именно этим, чтобы завершить базовый набор наших дизайн-токенов.