import { colors, responsiveMedia } from '@/styles/variables' import styled, { css } from 'styled-components' import { IOffCanvas } from './OffCanvas.interface' const transform = { right: css` top: 0; right: 0; width: 30vw; border-left: 1px solid rgba(0, 0, 0, 0.2); transform: translateX(100%); `, left: css` top: 0; left: 0; width: 30vw; border-right: 1px solid rgba(0, 0, 0, 0.2); transform: translateX(-100%); `, top: css` top: 0; right: 0; left: 0; height: 30vh; max-height: 100%; border-bottom: 1px solid rgba(0, 0, 0, 0.2); transform: translateY(-100%); `, bottom: css` transform: translateY(100%); ` } const offcanvas = css` position: fixed; bottom: 0; z-index: 1050; display: flex; flex-direction: column; max-width: 100%; background-color: #fff; background-clip: padding-box; outline: 0; transition: transform 0.3s ease-in-out; padding: 1rem; ` export const StyledBackdrop = styled.div>` position: fixed; left: 0; top: 0; bottom: 0; right: 0; background-color: rgba(0, 0, 0, 0.5); opacity: 0; visibility: hidden; transition: visibility 0.2s ease-in-out, opacity 0.2s ease-in-out; ${props => props.isOpen && css` visibility: visible; opacity: 1; `} ` export const StyledOffCanvasHeader = styled.div` display: flex; align-items: center; justify-content: space-between; ` export const StyledOffCanvasBody = styled.div` flex-grow: 1; overflow-y: auto; ` export const StyledOffCanvas2 = styled.div>` background-color: red; ${offcanvas} ${props => (props.position ? transform[props.position] : '')} ${props => props.isOpen ? css` transform: none; ` : ''} `