React Crisscross :triangular_ruler:
A simple and flexible layout component for React based on CSS flexbox
Installation
With yarn
yarn add react-crisscross
With npm
npm install react-crisscross
Layout component
import Layout from 'react-crisscross';
<Layout container>
<Layout item>{/* Content */}</Layout>
</Layout>;
Properties
You have accesss to all the same properties as in flexbox.
Base properties
Property | Value | Description |
---|
container | boolean | Makes the element a flex container, and allows all container properties to be used |
item | boolean | Makes the element a flex item, and allows all item properties to be used |
inline | boolean | Make a flex container use display: inline-flex |
Media queries
Property | Value | Description |
---|
xs | object | Use container and/or item properties on the xs media query |
sm | object | Use container and/or item properties on the sm media query |
md | object | Use container and/or item properties on the md media query |
lg | object | Use container and/or item properties on the lg media query |
xl | object | Use container and/or item properties on the xl media query |
Container properties
Property | Value | Description |
---|
direction | 'row' (default), 'column' , 'row-reverse' , 'column-reverse' | Same as the flex-direction property in flexbox. |
justify | 'flex-start' (default), 'flex-end' , 'center' , 'space-between' , 'space-around' | Same as the justify-content property in flexbox. |
alignItems | 'stretch' (default), 'flex-start' , 'flex-end' , 'center' , 'baseline' | Same as the align-items property in flexbox. |
wrap | 'nowrap' (default), 'wrap' , 'wrap-reverse' | Same as the flex-wrap property in flexbox. |
gap | number | Size of gap between each flex item. |
Item properties
Property | Value | Description |
---|
flex | string (eg. '1 0 auto') | Same as the flex property in flexbox. |
grow | number | Same as the flex-grow property in flexbox. |
shrink | number | Same as the flex-shrink property in flexbox. |
alignSelf | 'auto' (default), 'flex-start' , 'flex-end' , 'center' , 'baseline' , 'stretch' | Same as the flex-grow property in flexbox. |
order | number | Same as the order property in flexbox. |
Layout Provider
Sometimes you want to override the default settings for the layout, such as media queries. React Crisscross ships with a
module that can help you inject custom settings. Here's an example:
import Layout, { LayoutProvider } from 'react-crisscross';
const mySettings = {
mediaQueries: {
lg: 1500
}
}
<LayoutProvider settings={mySettings}>
<Layout container>
<Layout item>
{/* Content */}
</Layout>
</Layout>
</LayoutProvider>
Default settings
These settings can be overwritten by the LayoutProvider
.
const settings = {
mediaQueries: {
xs: 0,
sm: 600,
md: 960,
lg: 1280,
xl: 1920
},
columns: 12
};