Container — это компонент для центровки и ограничения ширины контента на странице. Он часто используется для создания макетов, где требуется управлять горизонтальными отступами и адаптивной шириной, сохраняя контент читаемым на любых устройствах. В Chakra UI контейнер является оберткой, которая автоматически адаптируется под размеры экрана, облегчая создание отзывчивых интерфейсов.
maxW — задаёт максимальную ширину
контейнера. Можно использовать предопределённые размеры Chakra UI
("sm", "md", "lg",
"xl", "2xl") или конкретные значения в
пикселях или процентах.
<Container maxW="container.md">
Содержимое контейнера
</Container>centerContent — булево свойство,
которое автоматически центрирует вложенные элементы по горизонтали.
<Container centerContent>
<Button colorScheme="teal">Нажми меня</Button>
</Container>padding и
px/py — управляют внутренними
отступами контейнера. Chakra UI поддерживает систему сокращений
(p, px, py) для удобства.
<Container p={4}>
<Text>Контейнер с отступами</Text>
</Container>fluid (альтернативный подход через
maxW="100%") — делает контейнер растягивающимся на
всю ширину экрана, при этом сохраняя внутренние паддинги.
Chakra UI позволяет задавать разные значения свойства
maxW для разных размеров экрана, используя объект
или массив:
<Container
maxW={{ base: "90%", md: "container.md", lg: "container.lg" }}
>
<Text>Адаптивный контейнер</Text>
</Container>
base — для мобильных устройств.md — для планшетов.lg — для больших экранов.Такой подход упрощает создание отзывчивых интерфейсов без необходимости писать медиа-запросы вручную.
Использование centerContent автоматически добавляет
display: flex, flexDirection: column и
центрирует вложенные элементы:
<Container centerContent>
<Avatar size="xl" name="John Doe" />
<Heading mt={4}>Добро пожаловать</Heading>
</Container>
Если требуется более тонкое управление расположением, можно
комбинировать Container с Flex или
Stack.
Chakra UI допускает вложенность контейнеров для создания сложных
макетов. Внутренний контейнер может иметь свой maxW
и отступы, не влияя на внешний:
<Container maxW="container.lg">
<Container maxW="container.md" p={6} bg="gray.100">
Вложенный контейнер
</Container>
</Container>
Такой подход полезен для создания карточек, блоков с отдельным фоном или секций внутри основной страницы.
Container поддерживает все стандартные стили Chakra
UI:
bg — фонcolor — цвет текстаborderRadius,
boxShadow — для визуальных эффектов<Container maxW="container.md" bg="teal.50" p={4} borderRadius="md" boxShadow="md">
<Text>Контейнер с фоном и тенью</Text>
</Container>
Чаще всего Container используется совместно с:
Stack / VStack /
HStack — для вертикальных и горизонтальных списков
элементовFlex — для гибкой компоновкиBox — для блоков с индивидуальными
стилямиПример комбинированного использования:
<Container maxW="container.lg" centerContent>
<VStack spacing={6}>
<Heading>Заголовок</Heading>
<Text>Описание секции с ограниченной шириной</Text>
<Button colorScheme="blue">Кнопка действия</Button>
</VStack>
</Container>
maxW и px, легко сделать
контейнер адаптивным без медиа-запросов.Container в Chakra UI — это простой, но мощный
инструмент для построения отзывчивых и аккуратных макетов. Он управляет
шириной, паддингами и центровкой, позволяя создавать чистые и
структурированные интерфейсы.