Box
CBox
is the most abstract component on top of which all other @chakra-ui/vue
components are built. By default, it renders a div
element.
The CBox
component is useful because it helps with three common use cases:
- Creation of responsive layouts with ease.
- Provides a shorthand way to pass styles via props (
bg
instead ofbackgroundColor
). - Composition of new components by providing for overrides by using the
as
prop.
Import#
import { CBox } from '@chakra-ui/vue';
Usage#
This is the Box
Editable Example
<c-box bg="tomato" w="100%" p="4" color="white">
This is the Box
</c-box>
Composition with CBox
#
CBox
#
New
3 beds • 2 baths
Modern home in city center in the heart of historic Los Angeles
$1,900.00
/ wk
34 reviews
Editable Example
<template>
<c-box maxW="sm" border-width="1px" rounded="lg" overflow="hidden">
<c-image :src="property.imageUrl" :alt="property.imageAlt" />
<c-box p="6">
<c-box d="flex" align-items="baseline">
<c-badge rounded="full" px="2" variant-color="green">
New
</c-badge>
<c-box
color="gray.500"
font-weight="semibold"
letter-spacing="wide"
font-size="xs"
text-transform="uppercase"
ml="2"
>
{{ property.beds }} beds &bull; {{ property.baths }} baths
</c-box>
</c-box>
<c-box
mt="1"
font-weight="semibold"
as="h4"
line-height="tight"
is-truncated
>
{{ property.title }}
</c-box>
<c-box>
{{ property.formattedPrice }}
<c-box as="span" color="gray.600" fontSize="sm">
/ wk
</c-box>
</c-box>
<c-box d="flex" mt="2" align-items="center">
<c-icon
v-for="(_, i) in Array(5).fill('')"
name="star"
:key="i"
:color="i < property.rating ? 'green.500' : 'gray.300'"
/>
<c-box as="span" ml="2" color="gray.600" font-size="sm">
{{ property.reviewCount }} reviews
</c-box>
</c-box>
</c-box>
</c-box>
</template>
<script>
export default {
name: 'Example',
data () {
return {
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,
}
}
}
}
</script>
as
prop#
as
prop#You can use the as
prop to change the element render, like the tag
prop on Vue's global dynamic component.
Editable Example
<c-box as="button" rounded="md" bg="tomato" color="white" px="4" h="8">
Button
</c-box>
Props#
See all CBox
props in the Style Props page
❤️ Contribute to this page
Caught a mistake or want to contribute to the documentation? Edit this page on GitHub!