1.0.5 • Published 4 years ago

react-spine v1.0.5

Weekly downloads
2
License
MIT
Repository
github
Last release
4 years ago

React Spine is a simple responsive grid system for ReactJs made with flexbox and Styled Components. It works with simple or complex layouts.

NPM JavaScript Style Guide style: styled-components

Install

This package can be installed via Yarn

yarn add react-spine

Or via NPM

npm i -s react-spine

Usage

The grid system has two components: Row and Col, which represents the rows and the columns respectively. The row component defines the grid's basics, such as alignment and gutter, while the column component defines its width in each breakpoint. You can nest many grids inside each other.

Here's a simple example:

import { Grid, Container } from 'react-spine'

const { Row, Col } = Grid

const App = () => (
  <Container>
    <Row justify={{md: 'flex-end'}}>
      <Col sm="12" md="1/4" lg="6">
        Column 1
      </Col>
      <Col sm="hide" md="1/4" lg="6">
        Column 2
      </Col>
      <Col sm={12} md="1/4" lg="6">
        Column 3
      </Col>
    </Row>
  </Container>
);

export default App

Overriding default values

You can also override the default values by specifying your own Styled Components theme with a spine key.

// Default values
const customTheme = {
  spine: {
    gridColumns: 12,
    gridGap: 10,
    breakpoints: {
      sm: 0,
      md: 768,
      lg: 1024
    }
  }
}

// And then
const App = () => (
  <ThemeProvider theme={customTheme}>
    your application here
  </ThemeProvider>
);

API

Row

NameTypeDefaultDescription
gapString or Number0pxHorizontal and vertical spacing between columns.
gapXString or Number0pxHorizontal spacing between columns.
gapYString or Number0pxVertical spacing between columns.
directionString or ObjectrowThe direction of the columns. It can be an object specifying the direction for each breakpoint: {sm: 'row', md: 'column', lg: 'row'}.
justifyString or ObjectrowAlign columns accordingly with direction. It can be an object specifying the alignment for each breakpoint: {sm: 'flex-start', md: 'center', lg: 'flex-end'}.
alignString or ObjectstretchAlign columns across main axis. It can be an object specifying the alignment for each breakpoint: {sm: 'flex-start', md: 'center', lg: 'flex-end'}.
wrapString or ObjectwrapSets whether an item will be forced onto one line or can wrap into multiple lines. It can be an object specifying the wrap for each breakpoint: {sm: 'nowrap', md: 'nowrap', lg: 'nowrap'}.
growString or Object0Specify if the remaining space can be assigned to the columns. It can be an object specifying the wrap for each breakpoint: {sm: 0, md: 1, lg: 0}.
shrinkString or Object0Specify how much the columns can shrink relative to the rest of the columns. It can be an object specifying the wrap for each breakpoint: {sm: 0, md: 1, lg: 0}.

Col

NameTypeDescription
spanString or NumberThe default size of all breakpoints.
smString or NumberThe size of the column for small screens. It can be a string representing a fraction or a integer representing a column span (12 columns total).
mdString or NumberThe size of the column for medium screens. It can also be set to hide for not showing in that breakpoint.
lgString or NumberThe size of the column for large screens.

License

MIT © jrmiranda

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago