Box

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

Компонент Box рекомендуется использовать в следующих ситуациях:

  • Создание контейнеров с отступами: когда нужно добавить внутренние отступы к любому элементу интерфейса;
  • Управление размерами: для явного задания ширины, высоты или их ограничений;
  • Абсолютное и относительное позиционирование: при создании наложений, выпадающих меню или сложных макетов;
  • Flex-элементы: как потомок flex-контейнера.
Загружается...

Компонент Box поддерживает обширный набор свойств, объединенных в логические категории:

Свойства отступов (свойства с префиксом padding*) позволяют управлять пространством вокруг содержимого. Они принимают:

  • токены дизайн-системы VKUI ('2xs', 'xs', 's', 'm', 'l', 'xl', '2xl', '3xl', '4xl');
  • стандартные CSS-значения ('inherit', 'initial', 'unset');
  • числовые значения (будут преобразованы в пиксели);
  • любое валидное строковое значение ("2rem", "10%", CSS-переменные).
Загружается...

Свойства размеров (свойства с постфиксом *Size) позволяют управлять шириной и высотой компонента, включая минимальные и максимальные ограничения. Они принимают:

  • стандартные CSS-значения ('auto', 'max-content', 'min-content', 'fit-content', 'inherit', 'initial', 'unset');
  • числовые значения в пикселях;
  • любое валидное строковое значение ("200px", "50%", CSS-переменные).
Загружается...

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

Свойство position принимает значения 'static', 'relative', 'absolute', 'fixed'.

Свойства с префиксом inset* принимают:

  • токены дизайн-системы VKUI ('2xs', 'xs', 's', 'm', 'l', 'xl', '2xl', '3xl', '4xl');
  • стандартные CSS-значения ('auto', 'inherit', 'initial', 'unset');
  • числовые значения (будут преобразованы в пиксели);
  • любое валидное строковое значение ("2rem", "10%", CSS-переменные).
Загружается...

Flex-свойства (flexGrow, flexShrink и flexBasis) позволяют управлять поведением компонента внутри flex-контейнера.

Данные свойства принимают стандартные CSS-значения ('inherit', 'initial', 'unset').

Свойства flexGrow и flexShrink также принимают числовые значения.

flexBasis дополнительно принимает:

  • 'auto', 'max-content', 'min-content', 'fit-content', 'content';
  • числовые значения (будут преобразованы в пиксели);
  • любое валидное строковое значение ("2rem", "10%", CSS-переменные).
Загружается...

Свойства переполнения (с префиксом overflow*) позволяют управлять отображением содержимого, которое выходит за границы компонента Они принимают стандартные CSS-значения переполнения, такие как 'visible', 'hidden', 'clip', 'scroll', 'auto', 'inherit', 'initial', 'unset'.

<Box
  style={{
    border: '1px solid var(--vkui--color_separator_primary)',
    padding: '16px',
    margin: '16px 0',
    borderRadius: '8px',
    backgroundColor: 'var(--vkui--color_background_secondary)',
  }}
>
  <strong>📏 Единицы измерения:</strong> Все свойства принимают значения дизайн-системы VKUI
  (`'2xs'`, `'xs'`, `'s'`, `'m'`, `'l'`, `'xl'`, `'2xl'`, `'3xl'`, `'4xl'`), CSS-значения (`'auto'`,
  `'inherit'`, `'initial'`, `'unset'`) или числовые значения в пикселях.
</Box>
  • Box — универсальный контейнер с настраиваемыми отступами, подходит для создания изолированных блоков, может быть потомком компонента Flex;
  • Flex — специализированный контейнер для создания flex-блоков, поддерживает все flex-свойства.
  • Box — предоставляет декларативный API на базе дизайн-токенов VKUI;
  • div — требует ручного управления стилями и классами (через свойства style/class).
<Box padding="m" inlineSize={300} position="relative">
  Контент
</Box>
 
<div style={{ padding: 'var(--vkui--spacing_m)', width: 300, position: 'relative' }}>Контент</div>
  • Box — для создания контейнеров с любыми layout-свойствами;
  • Spacing — исключительно для создания отступов между элементами.
СвойствоОписание
blockSizeSizeProp

Размер элемента по блочной оси (при горизонтальном направлении письма - высота элемента).

По умолчанию: -
ComponentElementType<any, keyof IntrinsicElements>
По умолчанию: -
flexBasisFlexBasisProp

Определяет начальный размер flex-элемента.

По умолчанию: -
flexGrowFlexGrowProp

Определяет, насколько элемент будет расти относительно остальных flex-элементов.

По умолчанию: -
flexShrinkFlexShrinkProp

Определяет, насколько элемент будет сжиматься относительно остальных flex-элементов.

По умолчанию: -
getRootRefRef<HTMLElement>
По умолчанию: -
inlineSizeSizeProp

Размер элемента по строчной оси (при горизонтальном направлении письма - ширина элемента).

По умолчанию: -
insetInsetProp

Смещение элемента по top, right, bottom и left одновременно.

По умолчанию: -
insetBlockInsetProp

Боковое смещение по блочной оси (при горизонтальном направлении письма - свойства top/bottom).

По умолчанию: -
insetBlockEndInsetProp

Смещение конечного отступа по блочной оси (при горизонтальном направлении письма - свойство bottom).

По умолчанию: -
insetBlockStartInsetProp

Смещение начального отступа по блочной оси (при горизонтальном направлении письма - свойство top).

По умолчанию: -
insetInlineInsetProp

Боковое смещение по строчной оси (при горизонтальном направлении письма - свойства left/right).

По умолчанию: -
insetInlineEndInsetProp

Смещение конечного отступа по строчной оси (при горизонтальном направлении письма - свойство right).

По умолчанию: -
insetInlineStartInsetProp

Смещение начального отступа по строчной оси (при горизонтальном направлении письма - свойство left).

По умолчанию: -
maxBlockSizeSizeProp

Максимальный размер элемента по блочной оси (при горизонтальном направлении письма - высота элемента).

По умолчанию: -
maxInlineSizeCSSGlobalValue | ((string | number) & Nothing) | "max-content" | "min-content" | "fit-content"

Максимальный размер элемента по строчной оси (при горизонтальном направлении письма - ширина элемента).

По умолчанию: -
minBlockSizeSizeProp

Минимальный размер элемента по блочной оси (при горизонтальном направлении письма - высота элемента).

По умолчанию: -
minInlineSizeCSSGlobalValue | ((string | number) & Nothing) | "max-content" | "min-content" | "fit-content"

Минимальный размер элемента по строчной оси (при горизонтальном направлении письма - ширина элемента).

По умолчанию: -
overflowOverflowValue

Управление переполнением содержимого.

По умолчанию: -
overflowBlockOverflowValue

Управление переполнением содержимого по блочной оси (при горизонтальном направлении письма - свойство overflow-y).

По умолчанию: -
overflowInlineOverflowValue

Управление переполнением содержимого по строчной оси (при горизонтальном направлении письма - свойство overflow-x).

По умолчанию: -
paddingPaddingProp

Внутренние отступы со всех сторон.

По умолчанию: -
paddingBlockPaddingProp

Внутренние отступы по блочной оси.

По умолчанию: -
paddingBlockEndPaddingProp

Внутренний конечный отступ по блочной оси.

По умолчанию: -
paddingBlockStartPaddingProp

Внутренний начальный отступ по блочной оси.

По умолчанию: -
paddingInlinePaddingProp

Внутренние отступы по строчной оси.

По умолчанию: -
paddingInlineEndPaddingProp

Внутренний конечный отступ по строчной оси.

По умолчанию: -
paddingInlineStartPaddingProp

Внутренний начальный отступ по строчной оси.

По умолчанию: -
positionPositionValue

Позиционирование элемента.

По умолчанию: -