Chakra UI предоставляет мощный и интуитивный механизм для управления отступами (spacing) и размерами (sizes) компонентов, позволяя создавать адаптивный и согласованный дизайн без необходимости вручную писать CSS.
В Chakra UI используются пропсы m, mt,
mb, ml, mr, mx,
my для управления внешними отступами (margin) и
p, pt, pb, pl,
pr, px, py для внутренних
отступов (padding).
<Box m={4} p={6} bg="gray.100">
Контент с внешним отступом 4 и внутренним 6
</Box>
<Box mt={2} mb={4} px={3} py={5} bg="blue.100">
Верхний отступ 2, нижний 4, горизонтальный 3, вертикальный 5
</Box>
Обозначения:
m – margin вокруг всего элементаmt, mb, ml, mr –
margin-top, bottom, left, rightmx, my – горизонтальные и вертикальные
marginp – padding вокруг всего элементаpt, pb, pl, pr –
padding-top, bottom, left, rightpx, py – горизонтальные и вертикальные
paddingЗначения пропсов могут быть числами, строками или массивами для адаптивного дизайна:
<Box p={[2, 4, 6]} bg="green.100">
Padding изменяется в зависимости от ширины экрана
</Box>
В этом примере:
2 для маленьких экранов4 для средних6 для большихChakra UI предоставляет унифицированные пропсы для размеров:
w (width), h (height), minW,
maxW, minH, maxH.
<Box w="200px" h="100px" bg="red.200">
Фиксированная ширина и высота
</Box>
<Box maxW="400px" minW="200px" h="auto" bg="yellow.200">
Минимальная и максимальная ширина
</Box>
Сокращенные обозначения:
w = widthh = heightminW = min-widthmaxW = max-widthminH = min-heightmaxH = max-heightТакже поддерживаются значения в процентах и единицах
rem, em, px, что позволяет легко
создавать гибкие макеты.
Chakra UI использует тематическую шкалу (theme scale) для единообразных отступов и размеров. Это позволяет поддерживать согласованность дизайна на всем проекте.
<Box p={theme => theme.space[8]} w={theme => theme.sizes[64]} bg="purple.100">
Использование масштабов отступов и размеров из темы
</Box>
Значения scale по умолчанию:
space:
0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 16, 20...sizes:
xs, sm, md, lg, xl, 2xl, 3xl...Это обеспечивает единообразное визуальное представление компонентов, облегчает поддержку и масштабирование интерфейса.
Chakra UI позволяет задавать размеры и отступы в зависимости от ширины экрана с помощью массивов или объектов:
<Box
w={["100%", "50%", "25%"]}
p={{ base: 2, md: 4, lg: 6 }}
bg="teal.100"
>
Адаптивная ширина и padding
</Box>
base – для мобильных устройствmd – для планшетовlg – для десктоповМассивы и объекты можно комбинировать для гибкого управления layout.
Отступы и размеры могут сочетаться с цветами, тенями, границами и позиционированием, создавая комплексные и визуально сбалансированные компоненты:
<Box
w="300px"
h="150px"
p={5}
m={4}
bg="orange.100"
borderRadius="md"
boxShadow="lg"
>
Комбинация padding, margin, размеров и декоративных стилей
</Box>
borderRadius и boxShadow работают вместе с
отступами и размерамиm,
p, w, h) для быстрого
прототипирования.minW, maxW, чтобы избежать «ломки» интерфейса
на разных экранах.Эти возможности делают Chakra UI гибким инструментом для создания адаптивных и визуально гармоничных интерфейсов, где управление отступами и размерами становится простым и предсказуемым процессом.