The grid component is a layout component that arranges its children in a grid layout. It supports both fixed and fluid layouts.
It has a display: grid style by default.
1import { Box, Grid } from '@devup-ui/react'
2
3function App() {
4 return (
5 <Grid>
6 <Box bg="blue" h={25} w={25} />
7 <Box bg="blue" h={25} w={25} />
8 <Box bg="blue" h={25} w={25} />
9 </Grid>
10 )
11}
1import { Box, Grid } from '@devup-ui/react'
2
3function App() {
4 return (
5 <Grid>
6 <Box bg="blue" h={25} w={25} />
7 <Box bg="blue" h={25} w={25} />
8 <Box bg="blue" h={25} w={25} />
9 </Grid>
10 )
11}
The Grid component defined above will render like this:
1function App() {
2 return (
3 <div className="d">
4 <div className="a b c"></div>
5 <div className="a b c"></div>
6 <div className="a b c"></div>
7 </div>
8 )
9}
1function App() {
2 return (
3 <div className="d">
4 <div className="a b c"></div>
5 <div className="a b c"></div>
6 <div className="a b c"></div>
7 </div>
8 )
9}
1.a { 2 background: blue; 3} 4.b { 5 height: 100px; 6} 7.c { 8 width: 100px; 9} 10.d { 11 display: grid; 12}1.a { 2 background: blue; 3} 4.b { 5 height: 100px; 6} 7.c { 8 width: 100px; 9} 10.d { 11 display: grid; 12}
If you pass a number without a unit to a style property, it will be automatically scaled by 4. This means 1 equals 4px, 2 equals 8px, and so on.
However, the following properties are exceptions and are not multiplied by 4:
opacityflexz-indexline-clampfont-weightline-heightscaleaspect-ratioflex-growflex-shrinkordergrid-column, grid-column-start, grid-column-endgrid-row, grid-row-start, grid-row-endanimation-iteration-counttab-size, moz-tab-size, -webkit-line-clampClass names and style properties are resolved in the following order:
Generate class names for child components.
Remove duplicate component properties.
key:value pair and the style-order match.If the key:value matches but the style-order differs, the property is not removed — the later/higher-priority style will take precedence.
display: flex implemented internally by Center and the display: flex provided directly by the user have different style-orders, so they are not removed, and the final style is applied according to priority.Generate the parent component’s className based on the merged result.