Sizes

Размеры в дизайн-системе — это единая шкала значений, которая обеспечивает визуальную консистентность между компонентами интерфейса.

Главное правило

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

Основные принципы

Компоненты в SDDS делятся на два типа по логике высоты:

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

Самостоятельные компоненты

Все основные интерактивные компоненты одного размера имеют одинаковую высоту и токены скруглений. Горизонтальные отступы могут варьироваться в зависимости от типа компонента. Это обеспечивает вертикальное выравнивание при совместном использовании — например, в строке формы.

Пример компонентаРазмерВысота
ButtonM48px
IconButtonM48px
TextFieldM48px
SelectM48px
SegmentM48px

Кнопка, поле ввода и сегмент в одном размере всегда выровнены по высоте и могут стоять в одной строке без дополнительных подгонок.

Высота контролов по ступеням размера
Ступени размера и высота самостоятельных компонентов на каждой из них

Зависимые компоненты

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

Пример компонентаРазмерВысотаРоль
ChipM40pxВкладывается в TextField, используется в фильтрах
CounterM24pxОтображается внутри кнопок, табов, списков
BadgeM24pxНакладывается поверх других компонентов
IndicatorM8pxТочечный статусный маркер

Зависимые компоненты намеренно меньше своего размерного контейнера — это создаёт внутренние отступы и визуальный воздух при вложении, сохраняя пропорциональность интерфейса.

Размер и типографика

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

Основная шкала размеров

Базовая шкала охватывает шесть ступеней и применяется к большинству компонентов системы.

РазмерТипографикаВысотаПрименениеПлатформа и контекст
XSBodyXS32pxКомпактные, вспомогательные компонентыDesktop Web: ERP, CRM, административные панели и дашборды — максимальная плотность данных
SBodyS40pxВторостепенные действия, дополнительные поляDesktop Web: B2B-продукты, вспомогательные элементы на планшете
MBodyM48pxБазовый размер по умолчанию для большинства интерфейсовDesktop Web, Mobile
LBodyL56pxОсновные действия, формы с приоритетом на вводMobile iOS и Android: основной размер, главные действия, формы
XLBodyL исключение из правила соответствия64pxАкцентные элементы, крупные точки взаимодействияTV, Smart TV, киоски, интерактивные панели, лендинги с акцентным CTA
Scalable—По контейнеруРазмер следует контейнеру, а не фиксированным пресетамDesktop Web: B2C-продукты. Mobile: вложенные вспомогательные элементы
Одна тема в плотном и в десятифутовом интерфейсе
Одна шкала покрывает и плотный аналитический экран, и интерфейс для большого экрана

Расширенные шкалы

Помимо основной шкалы в системе есть дополнительные размерные ряды. Они применяются в отдельных компонентах, где стандартной шкалы недостаточно для покрытия всех сценариев.

Сверхкомпактный ряд

Используется в компонентах, которым нужен размер меньше XS: высокоплотные интерфейсы и вспомогательные элементы с минимальной визуальной нагрузкой.

РазмерТипографикаВысотаПрименение
XXSBodyXS, BodyXXS24pxИндикаторы, метки, вспомогательные маркеры в плотных интерфейсах

Заголовочный ряд

Применяется в компонентах, типографика которых привязана к заголовочным токенам. Размер здесь определяется не высотой контейнера, а используемым типографическим токеном.

РазмерТипографикаПрименение
H5Header/H5Минимальный заголовочный акцент
H4Header/H4Умеренный акцент: компонент заметен, но не доминирует
H3Header/H3Крупный акцент на компоненте
H2Header/H2Высокий акцент на компоненте

Витринный ряд

Применяется в единичных компонентах для максимально акцентного отображения контента — лендинги, акцентные блоки, экраны TV.

РазмерТипографикаПрименение
DisplaySDisplaySКрупные акцентные элементы
DisplayMDisplayMКрупные акцентные элементы
DisplayLDisplayLКрупные акцентные элементы

Без размера

Часть компонентов не имеет параметра Size и шкалы размеров вовсе. Их габариты определяются не токеном, а:

  • содержимым;
  • ограничениями контейнера;
  • вьюпортом и брейкпоинтами;
  • платформенными зонами безопасности и системными паттернами.

Примеры таких компонентов: Modal, BottomSheet, Image, Gallery.

Нашли расхождение документации и библиотеки — напишите команде.Сообщить о расхождении