UNPKG

@chakra-ui/layout

Version:

Chakra UI layout components that give you massive speed

107 lines (80 loc) 2.14 kB
# @chakra-ui/layout A set of layout primitives that make it super easy to manage page and components. ## Installation ```sh yarn add @chakra-ui/layout # or npm i @chakra-ui/layout ``` ## Import Components ```jsx import { Box, Flex, Stack, Grid, Wrap, AspectRatio } from "@chakra-ui/layout" ``` ## Usage Box is just a `div` on steroids. It gives you the ability to pass style props ```jsx <Box color="tomato" _hover={{ bg: "red.500", color: "white" }}> Welcome to Box </Box> ``` Flex is just a `Box` with `display: flex` ```jsx <Flex> <Box flex="1">Box 1</Box> <Box>Box 2</Box> </Flex> ``` Stack is used to group elements and apply a spacing between them. It stacks its children vertically by default. ```jsx <Stack spacing="20px"> <Box>Box 1</Box> <Box>Box 2</Box> </Stack> ``` AspectRatio is used to constrain its child to specific aspect ratio. It is mostly used for embedding videos, images, and maps. ```jsx <AspectRatio ratio={16 / 9}> <img src="./some-ig-story" alt="Instagram story" /> </AspectRatio> ``` Wrap is used to manage the distribution of child elements that are liable to wrap. It is mostly used for button groups, tag group, badge group, and chips. ```jsx <Wrap spacing={3}> <Box>Box 1</Box> <Box>Box 2</Box> </Wrap> ``` Badge is used to render a badge. It can come in different variants and color schemes as defined in the `theme.components.Badge` ```jsx <Badge variant="solid" colorScheme="green"> Verified <FaCheck /> </Badge> ``` Center is used to vertically and horizontally center its child ```jsx <Center bg="blue.500" borderRadius="4px" boxSize="40px"> <FaPhoneIcon /> </Center> ``` Container is used to manage content areas on a website or blog. It centers itself using `margin-left: auto` and `margin-right: auto`. It also applies a default max-width of `60ch` (60 characters) ```jsx <Container> <BlogContent /> </Container> ``` Spacer is a component that takes up the remaining space in a flex container. It is mostly useful to manage space and wrapping in flex containers ```jsx <Flex> <Box boxSize="40px" /> <Spacer /> <Box boxSize="40px" /> </Flex> ```