Box
分类:
other
日期:
2022-2-06标签:
chakra
Box is the most abstract component on top of which all other Chakra UI components are built. By default, it renders a div
element.
The Box component is useful because it helps with 3 common use cases:
- Create responsive layouts with ease.
- Provide a shorthand way to pass styles via props (
bg
instead ofbackgroundColor
). - Compose new component and allow for override using the
as
prop.
Import#
import { Box } from '@chakra-ui/react';
Usage#
<Box bg="tomato" w="100%" p={4} color="white">This is the Box</Box>
Usage#
// Sample card from Airbnbfunction AirbnbExample() {const property = {imageUrl: 'https://bit.ly/2Z4KKcF',imageAlt: 'Rear view of modern home with pool',beds: 3,baths: 2,title: 'Modern home in city center in the heart of historic Los Angeles',formattedPrice: '$1,900.00',reviewCount: 34,rating: 4,};return (<Box maxW="sm" borderWidth="1px" borderRadius="lg" overflow="hidden"><Image src={property.imageUrl} alt={property.imageAlt} /><Box p="6"><Box display="flex" alignItems="baseline"><Badge borderRadius="full" px="2" colorScheme="teal">New</Badge><Boxcolor="gray.500"fontWeight="semibold"letterSpacing="wide"fontSize="xs"textTransform="uppercase"ml="2">{property.beds} beds • {property.baths} baths</Box></Box><Boxmt="1"fontWeight="semibold"as="h4"lineHeight="tight"noOfLines={1}>{property.title}</Box><Box>{property.formattedPrice}<Box as="span" color="gray.600" fontSize="sm">/ wk</Box></Box><Box display="flex" mt="2" alignItems="center">{Array(5).fill('').map((_, i) => (<StarIconkey={i}color={i < property.rating ? 'teal.500' : 'gray.300'}/>))}<Box as="span" ml="2" color="gray.600" fontSize="sm">{property.reviewCount} reviews</Box></Box></Box></Box>);}
as prop#
You can use the as
prop to change the element render, just like styled-components.
<Box as="button" borderRadius="md" bg="tomato" color="white" px={4} h={8}>Button</Box>