@baransu/react-styled-flexboxgrid
Version:
Grid system based on styled-components and flexbox for React
43 lines (35 loc) • 819 B
JavaScript
import PropTypes from "prop-types";
import styled from "@emotion/styled";
import { css } from "@emotion/core";
import config, { DIMENSION_NAMES } from "../config";
const fluid = p =>
p.fluid
? css``
: css`
${DIMENSION_NAMES.map(t => {
return config(p).container[t]
? `
@media ${config(p).media[t]} {
width: ${config(p).container[t]}rem;
}
`
: ``;
}).join("\n")}
`;
const padding = p =>
css`
${config(p).outerMargin}rem;
`;
const Grid = styled.div`
margin-right: auto;
margin-left: auto;
padding-right: ${padding}
padding-left: ${padding}
${fluid}
`;
Grid.displayName = "Grid";
Grid.propTypes = {
fluid: PropTypes.bool,
children: PropTypes.node
};
export default Grid;