Awesome
deku-pure-grid
Grid component for deku, using pure.css grid system.
Install
npm install deku-pure-grid
Grid component
The main container for your grid.
Attributes
class=[class list]
Adds any custom class to the grid element.
Cell component
The container for each grid cell.
Attributes
class=[class list]
Adds any custom class to the cell element.
size=[value]
Adds class pure-u-[value]
. Default, no media query.
smSize=[value]
Adds class pure-u-small-[value]
. --small-min media query.
mdSize=[value]
Adds class pure-u-medium-[value]
. --medium-min media query.
lgSize=[value]
Adds class pure-u-large-[value]
. --large-min media query.
xlgSize=[value]
Adds class pure-u-x-large-[value]
. --x-large-min media query.
All size-attributes takes a value specifying the size of the cell, using format: n-n
, where 1-2
mean cell takes up 50% width, 3-4
takes up 75% width etc. See pure.css documentation for details.
Example
import { Grid, Cell } from 'deku-pure-grid';
export default {
render: function () {
return (<Grid>
<Cell size='1-1' smSize='1-2' mdSize='1-3' lgSize='1-4' xlgSize='1-5'>
Cell content
</Cell>
</Grid>);
}
}
Output
<div class='pure-g'>
<div class="pure-u-1-1 pure-u-small-1-2 pure-u-medium-1-3 pure-u-large-1-4 pure-u-x-large-1-5">Cell content</div>
</div>
index.css
Import the css using postcss. Depends on postcss-custom-media to define breakpoints.
@custom-media --x-large-min (min-width: 1600px);
@custom-media --large-min (min-width: 1348px);
@custom-media --medium-min (min-width: 1024px);
@custom-media --small-min (min-width: 768px);
@import 'deku-pure-grid';