diff --git a/components/system/components/GlobalCarousel/jumpers/MobileLayout.js b/components/system/components/GlobalCarousel/jumpers/MobileLayout.js new file mode 100644 index 00000000..55a9b6f1 --- /dev/null +++ b/components/system/components/GlobalCarousel/jumpers/MobileLayout.js @@ -0,0 +1,107 @@ +import * as React from "react"; +import * as Styles from "~/common/styles"; + +import { css } from "@emotion/react"; +import { motion } from "framer-motion"; + +/* ------------------------------------------------------------------------------------------------- + * Root + * -----------------------------------------------------------------------------------------------*/ + +const STYLES_JUMPER_MOBILE_WRAPPER = (theme) => css` + ${Styles.VERTICAL_CONTAINER}; + position: fixed; + width: 100%; + height: 100vh; + top: 0; + left: 0; + + z-index: ${theme.zindex.modal}; + + background-color: ${theme.semantic.bgWhite}; + + @supports ((-webkit-backdrop-filter: blur(75px)) or (backdrop-filter: blur(75px))) { + background-color: ${theme.semantic.bgBlurWhiteOP}; + -webkit-backdrop-filter: blur(75px); + backdrop-filter: blur(75px); + } +`; + +function Root({ children, ...props }) { + return ( + + {children} + + ); +} + +/* ------------------------------------------------------------------------------------------------- + * Header + * -----------------------------------------------------------------------------------------------*/ + +const STYLES_JUMPER_MOBILE_HEADER = css` + ${Styles.VERTICAL_CONTAINER}; + padding: 13px 16px 11px; +`; + +function Header({ children, ...props }) { + return ( +
+ {children} +
+ ); +} + +/* ------------------------------------------------------------------------------------------------- + * Content + * -----------------------------------------------------------------------------------------------*/ + +const STYLES_JUMPER_MOBILE_CONTENT = css` + flex-grow: 1; + overflow-y: auto; + padding: 12px 16px; +`; + +function Content({ children, ...props }) { + return ( +
+ {children} +
+ ); +} + +const STYLES_JUMPER_MOBILE_FOOTER = (theme) => css` + position: fixed; + bottom: 0; + left: 0; + width: 100%; + padding: 8px 16px; + + border-top: 1px solid ${theme.semantic.borderGrayLight}; + background-color: ${theme.semantic.bgWhite}; + @supports ((-webkit-backdrop-filter: blur(75px)) or (backdrop-filter: blur(75px))) { + background-color: ${theme.semantic.bgBlurWhite}; + -webkit-backdrop-filter: blur(75px); + backdrop-filter: blur(75px); + } +`; + +/* ------------------------------------------------------------------------------------------------- + * Footer + * -----------------------------------------------------------------------------------------------*/ + +function Footer({ children, css, ...props }) { + return ( +
+ {children} +
+ ); +} + +export { Root, Header, Content, Footer };