@navinc/base-react-components
Version:
Nav's Pattern Library
41 lines (33 loc) • 1.27 kB
JavaScript
import styled from 'styled-components'
const minimumGutterDesktop = 32
const minimumGutterMobile = 16
const FlexContainer = styled.section`
display: flex;
flex-flow: ${(props) => props.flexFlow || 'row wrap'};
align-content: ${(props) => props.alignContent || 'flex-start'};
align-items: ${(props) => props.alignItems || 'flex-start'};
justify-content: ${(props) => props.justifyContent || 'flex-start'};
flex: ${(props) => props.flex || ''};
max-width: 100%;
`
const PageContainer = styled(FlexContainer).attrs(() => ({ as: 'main' }))`
flex: 1 1 100%;
width: 100%;
align-self: stretch;
padding-bottom: 40px;
padding-top: 40px;
padding-right: calc((50% - (${({ theme }) => theme.contentWidth}px / 2)));
padding-left: calc((50% - (${({ theme }) => theme.contentWidth}px / 2)));
@media (max-width: ${({ theme }) => theme.contentWidth + minimumGutterDesktop * 2}px) {
padding-right: ${minimumGutterDesktop}px;
padding-left: ${minimumGutterDesktop}px;
}
@media (max-width: ${({ theme }) => theme.media.small}) {
padding-bottom: 24px;
padding-top: 24px;
padding-right: ${minimumGutterMobile}px;
padding-left: ${minimumGutterMobile}px;
}
`
PageContainer.displayName = 'PageContainer'
export default PageContainer