react-native-easy-grid

Easy React Native Layout & Grid for the Dumb

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
react-native-easy-grid
2,172260.2.25 years ago8 years agoMinified + gzip package size for react-native-easy-grid in KB

Readme

React Native Easy Grid 🐵
Master Build Status

This is NOT-JUST-ANOTHER-GRID-LAYOUT library! We are trying to simplify flexbox with easier approach.

Installation

npm install react-native-easy-grid --save

Usage

Include the components

import { Col, Row, Grid } from "react-native-easy-grid";

  1. Two columns (50% and 50%)

<Grid>
    <Col></Col>
    <Col></Col>
</Grid>

col-50-50
Note: If you don't assign the size property, it defaults to equal width (or height) with its siblings

  1. Two rows

<Grid>
    <Row></Row>
    <Row></Row>
</Grid>

row-50-50

  1. Two rows (75% and 25%)

<Grid>
    <Row size={75}></Row>
    <Row size={25}></Row>
</Grid>

This is exactly same as
<Grid>
    <Row size={3}></Row>
    <Row size={1}></Row>
</Grid>

row-75-25
Same concept applies to <Col />

  1. Three columns (33.33% each)

<Grid>
    <Col></Col>
    <Col></Col>
    <Col></Col>
</Grid>
col-33-33-33

  1. Three rows (50%, 25% and 25%)

<Grid>
    <Row size={2}></Row>
    <Row size={1}></Row>
    <Row size={1}></Row>
</Grid>

row-50-25-25

  1. Nested Layout or Grid

<tr>
    <td rowspan="2" bgcolor="red" width="50">1</td>
    <td bgcolor="yellow" width="50" height="50">2</td>
</tr>
<tr>
    <td bgcolor="blue">3</td>
</tr>

<Grid>
    <Col>
        <Text>1</Text>
    </Col>
    <Col>
        <Row>
            <Text>2</Text>
        </Row>
        <Row>
            <Text>3</Text>
        </Row>
    </Col>
</Grid>

complex

  1. Fixed width and fluid width combination

<Grid>
    <Col style={{ width: 40 }}>
        <Text>Fixed width</Text>
    </Col>
    <Col>
        <Text>Fluid width</Text>
    </Col>
</Grid>

col-fluid-fixed.png

  1. Fixed height and fluid height combination

<Grid>
    <Row style={{ height: 40 }}>
        <Text>Fixed width</Text>
    </Row>
    <Row>
        <Text>Fluid width</Text>
    </Row>
</Grid>

Do you think anything could be simpler than that? This repo is part of our bigger project called NativeBase.io. Do check that!
Important note about usage with <ScrollView />
Note: If you're using <Row /> inside a <ScrollView />, the height of the component would be flexible according to the content, though you can always apply the height styling.