В Chakra UI управление отступами (margin) и внутренними отступами (padding) реализуется через системные свойства, которые интегрированы с концепцией Styled System. Эти свойства позволяют задавать отступы с высокой гибкостью, используя числовые значения, строки с единицами измерения или сокращенные синтаксисы.
marginСвойство margin отвечает за внешние отступы элемента от
других компонентов. В Chakra UI оно поддерживает как полные свойства,
так и сокращенные варианты:
m – общий отступ со всех сторон.mt – отступ сверху (margin-top).mr – отступ справа
(margin-right).mb – отступ снизу
(margin-bottom).ml – отступ слева (margin-left).mx – горизонтальные отступы (ml +
mr).my – вертикальные отступы (mt +
mb).Примеры использования:
import { Box } from "@chakra-ui/react";
<Box m={4} bg="teal.200">
Общий отступ 4
</Box>
<Box mt={2} mb={6} bg="pink.100">
Верхний отступ 2, нижний 6
</Box>
<Box mx="auto" w="50%" bg="purple.200">
Горизонтальное центрирование через mx="auto"
</Box>
Особенности:
m={4}), автоматически
переводятся в spacing scale Chakra UI, где 1 = 4px по
умолчанию. То есть m={4} эквивалентно
16px.m="1rem" или
m="10px"), что позволяет гибко интегрировать Chakra UI с
внешними стилями.paddingСвойство padding управляет внутренними отступами,
отделяя содержимое компонента от его границ. Аналогично
margin, Chakra UI предоставляет сокращения:
p – общий padding.pt – padding сверху.pr – padding справа.pb – padding снизу.pl – padding слева.px – горизонтальные padding
(pl + pr).py – вертикальные padding (pt + pb).Примеры:
<Box p={5} bg="orange.100">
Внутренний отступ 5
</Box>
<Box px={3} py={6} bg="blue.200">
Горизонтальные padding 3, вертикальные 6
</Box>
Особенности:
border и shadow,
чтобы создавать карточки и блоки с визуально аккуратными отступами.Chakra UI позволяет задавать адаптивные отступы, передавая массив или объект с брейкпоинтами. Это упрощает создание интерфейсов, которые корректно отображаются на мобильных и десктопных устройствах.
<Box
m={[2, 4, 6]}
p={{ base: 2, md: 4, lg: 8 }}
bg="green.200"
>
Адаптивные отступы
</Box>
m={[2, 4, 6]} – применяется по порядку к брейкпоинтам
[base, sm, md].p={{ base: 2, md: 4, lg: 8 }} – объектная запись, где
base применяется по умолчанию, md и
lg – на соответствующих ширинах экрана.Часто используются одновременные настройки внешних и внутренних отступов для построения компоновки. Важно помнить:
margin влияет на позицию элемента относительно
соседей.padding влияет на внутреннее пространство внутри самого
элемента.Пример:
<Box m={4} p={6} bg="cyan.100" border="1px solid teal">
Внешний отступ 4, внутренний 6
</Box>
Такой подход особенно полезен при создании карточек, модальных окон и контейнеров, где требуется точное позиционирование и визуальный баланс.
Chakra UI поддерживает отрицательные значения
margin:
<Box mt={-4} bg="red.200">
Отрицательный верхний отступ
</Box>
Chakra UI использует едининый масштаб spacing, который позволяет согласованно управлять отступами:
Это обеспечивает консистентность дизайна и упрощает поддержку интерфейсов.
m,
mx, my, p, px,
py для чистого и читаемого кода.margin и padding для точного
позиционирования и визуальной структуры.Использование этих подходов позволяет создавать гибкие, адаптивные и визуально гармоничные интерфейсы, полностью используя возможности Chakra UI для управления отступами и внутренними полями компонентов.