Skip to content

CSS IN JS following Bootstrap RWD design, composed of React + Styled Component

License

Notifications You must be signed in to change notification settings

acrool/acrool-react-grid

Repository files navigation

Acrool React Grid

Acrool React Grid Logo

CSS IN JS following Bootstrap RWD design, composed of React + Styled Component

NPM npm npm

npm downloads npm

Documentation

Features

  • Use React + Styled-component and styled-component themeProvider
  • Easier to use
  • Refer to the design of Bootstrap 5 and change it to CSS IN JS method
  • Provides tool CSS for Bootstrap 5 layout
  • Provide RWD Media query method
  • Support NextJS 14 (v5.0.3+)
  • Container max width --container-max-width-? Change from the middle level

Installation

yarn add styled-components @acrool/react-grid

in your packages. (Make the version of styled-component you use match the version of styled-component used in acrool-react-gird)

"resolutions": {
   "styled-components": "5.3.9"
}

in your App.js add
see the example/src/App.js

import {GridThemeProvider, IGridSetting} from '@acrool/react-grid';
import '@acrool/react-grid/dist/index.css';


const gridTheme: IGridSetting = {
    spacer: '1rem',
    gridColumns: 12,
    gridBreakpoints: {
        xs: 0,
        sm: 576,
        md: 768,
        lg: 992,
        xl: 1200,
        xxl: 1540,
    },
    containerMaxWidths: {
        sm: 540,
        md: 720,
        lg: 960,
        xl: 1140,
        xxl: 1141,
    },
}


<GridThemeProvider gridTheme={gridTheme}>
    <App/>
</GridThemeProvider>

Examples

use in your page/component:

import {Container, Row, Col, Grid, Flex, media} from '@acrool/react-grid';

const MyPage = () => {
    return (
        <Container>
            <MyTitle>acrool-react-grid</MyTitle>
            <Desc isVisible={false}>myDesc</Desc>
            
            <Row>
                <Col col>col2 (50%) </Col>
                <Col col>col2 (50%) </Col>
            </Row>
            <Grid columns={2}>
                <div>Grid Col2</div>
                
                <Flex className="flex-column gap-2">
                    <div>Grid Col3</div>
                    <div>Grid Col3</div>
                </Flex>
                
                
            </Grid>
            <Grid columns="repeat(1, 3fr)">
                <GridCol>Grid Col3</GridCol>
                <GridCol colSpan={2}>Grid Col3</GridCol>
            </Grid>
        </Container>
    );
}

// use rwd
const MyTitle = styled.div`
    font-size: 12px;
    ${media.md`
        font-size: 14px;
    `}
`

// use rwd props
const Desc = styled.div<{
    isVisible: boolean
}>`
    ${props => media.md`
        display: ${props.isVisible ? 'block': 'flex'}
    `}
    
    // or
    ${props => css`
        font-size: 12px;
        ${media.md`
            display: ${props.isVisible ? 'block': 'flex'}
        `}
    `}
`

There is also a codesandbox template that you can fork and play with it:

Acrool React Grid Template

Use Nextjs example

Acrool React Grid Nextjs Template

There is also a storybook that you can play with it:

Play react-editext-example

License

MIT © Acrool & Imagine