From abbb5a319694c3063c9a897e42da1f8624ef1cb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Corte?= Date: Fri, 6 May 2022 12:37:59 -0300 Subject: [PATCH] :sparkles: add sidebar component --- src/components/sidebar/Sidebar.tsx | 40 +++++++ src/components/sidebar/SidebarView.ts | 147 ++++++++++++++++++++++++++ 2 files changed, 187 insertions(+) create mode 100644 src/components/sidebar/Sidebar.tsx create mode 100644 src/components/sidebar/SidebarView.ts diff --git a/src/components/sidebar/Sidebar.tsx b/src/components/sidebar/Sidebar.tsx new file mode 100644 index 0000000..d00a2a9 --- /dev/null +++ b/src/components/sidebar/Sidebar.tsx @@ -0,0 +1,40 @@ +import Image from 'next/image' +import React, { useState } from 'react' +import { SidebarView } from './SidebarView' + +export default function Sidebar() { + const [ economiaDrawer, setEconomiaDrawer ] = useState(false) + + const [ viewModal, setViewModal ] = useState(false) + + return ( + +
setViewModal(!viewModal)} > + +
+ + + +
+ ) +} diff --git a/src/components/sidebar/SidebarView.ts b/src/components/sidebar/SidebarView.ts new file mode 100644 index 0000000..76960f6 --- /dev/null +++ b/src/components/sidebar/SidebarView.ts @@ -0,0 +1,147 @@ +import styled from 'styled-components' + +interface SidebarViewInterface { + economiaDrawer: boolean | null, + modalOpen: boolean | null +} + +export const SidebarView = styled.nav` + position: fixed; + + display: flex; + align-items: center; + justify-content: center; + + flex-direction: column; + + width: 20rem; + + margin: 0; + padding: 0; + + box-shadow: 18px 4px 35px rgba(0, 0, 0, 0.02); + + background-color: #FFFFFF; + + ul { + display: flex; + justify-content: center; + align-items: center; + + flex-direction: column; + + list-style: none; + + width: 100%; + + li { + width: 100%; + height: 67px; + + font-family: 'Poppins'; + font-style: normal; + font-weight: 500; + font-size: 18px; + line-height: 27px; + /* identical to box height */ + + color: #969BA0; + + cursor: pointer; + } + + .economiaDrawer { + display: ${props => props.economiaDrawer? 'block' : 'none'}; + } + } + + aside { + display: flex; + justify-content: center; + align-items: center; + + flex-wrap: wrap; + + width: 90%; + height: 190px; + + background: linear-gradient(155.54deg, #254F7F 15.63%, #9C9C9C 136.34%); + border-radius: 26px; + + p { + text-align: center; + width: 80%; + + font-family: 'Poppins'; + font-style: normal; + font-weight: 600; + font-size: 14px; + line-height: 21px; + text-align: center; + + color: #FFFFFF; + } + + div { + display: flex; + justify-content: center; + align-items: center; + + width: 80%; + height: 60px; + + background: #FFFFFF; + border-radius: 8px; + } + } + + .drawer { + margin-left: 20px; + } + + .hamburger { + display: none; + } + + @media (max-width: 1196px) { + align-items: flex-start; + + width: 20rem; + /* height: ${props => props.modalOpen? '100%' : null}; */ + + padding-top: 20px; + padding-left: 20px; + + /* background-color: ${props => props.modalOpen? '#FFF' : 'transparent'}; */ + + z-index: 2; + + .hamburger { + position: fixed; + top: 20px; + + display: inherit; + width: 40px; + height: 40px; + + /* background-color: black; */ + + cursor: pointer; + + z-index: 2; + } + .imageNext { + display: none; + opacity: 0; + } + ul { + display: ${props => props.modalOpen? 'block' : 'none'}; + min-height: 100vh; + + background-color: #FFF; + } + aside { + display: none; + } + } +`