Chakra UI предоставляет мощный и гибкий набор инструментов для построения макета интерфейса с использованием свойств Layout. Эти свойства позволяют управлять размерами, позиционированием и пространством компонентов без необходимости написания отдельного CSS. В основе лежат Box и Flex компоненты, а также их производные.
Box — это базовый строительный блок, который можно использовать как обертку или самостоятельный элемент. Основные свойства layout для Box:
px,
%, em, rem и специальные значения
full (100%) и auto.block, inline-block, flex,
grid.hidden, scroll, auto.Пример:
Содержимое Box
Flex — это специализированный компонент, расширяющий
Box, с заранее установленным display: flex. Flex позволяет
управлять выравниванием и распределением пространства между
элементами:
row, column, row-reverse,
column-reverse.flex-start, center,
flex-end, space-between,
space-around, space-evenly.flex-start, center,
flex-end, stretch, baseline.nowrap, wrap, wrap-reverse.Пример:
Chakra UI поддерживает CSS Grid через компонент Grid. Основные свойства layout:
repeat(3, 1fr).row, column, row dense.Пример:
m, mt, mb, ml, mr, mx, my — задают внешние отступы. p, pt, pb, pl, pr, px, py — задают внутренние отступы.
Поддерживаются числовые значения (шкала Chakra UI, где 1
= 4px), а также единицы px, %,
em, rem.
Пример:
Отступы и паддинги
static, relative, absolute,
fixed, sticky.Пример:
fit-contentChakra UI поддерживает адаптивные размеры:
w="full" или h="full" — 100% от
родителя.w="fit-content" — под размер содержимого.minW, maxW, minH,
maxH — ограничения размеров.Пример адаптивного блока:
Адаптивный Box
Длинный текст, который превышает размеры Box и вызывает прокрутку.
Свойства можно комбинировать для построения сложных интерфейсов. Пример использования Flex и Box для панели инструментов:
Лого
Кнопка1
Кнопка2
Такой подход позволяет быстро строить адаптивные и модульные интерфейсы без написания отдельных CSS-классов, полностью используя преимущества системы Chakra UI.