diff options
Diffstat (limited to 'finished-application/frontend/components/Header.js')
| -rw-r--r-- | finished-application/frontend/components/Header.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/finished-application/frontend/components/Header.js b/finished-application/frontend/components/Header.js new file mode 100644 index 0000000..797eb8e --- /dev/null +++ b/finished-application/frontend/components/Header.js @@ -0,0 +1,75 @@ +import Link from 'next/link'; +import styled from 'styled-components'; +import NProgress from 'nprogress'; +import Router from 'next/router'; +import Nav from './Nav'; +import Cart from './Cart'; +import Search from './Search'; + +Router.onRouteChangeStart = () => { + NProgress.start(); +}; +Router.onRouteChangeComplete = () => { + NProgress.done(); +}; + +Router.onRouteChangeError = () => { + NProgress.done(); +}; + +const Logo = styled.h1` + font-size: 4rem; + margin-left: 2rem; + position: relative; + z-index: 2; + transform: skew(-7deg); + a { + padding: 0.5rem 1rem; + background: ${props => props.theme.red}; + color: white; + text-transform: uppercase; + text-decoration: none; + } + @media (max-width: 1300px) { + margin: 0; + text-align: center; + } +`; + +const StyledHeader = styled.header` + .bar { + border-bottom: 10px solid ${props => props.theme.black}; + display: grid; + grid-template-columns: auto 1fr; + justify-content: space-between; + align-items: stretch; + @media (max-width: 1300px) { + grid-template-columns: 1fr; + justify-content: center; + } + } + .sub-bar { + display: grid; + grid-template-columns: 1fr auto; + border-bottom: 1px solid ${props => props.theme.lightgrey}; + } +`; + +const Header = () => ( + <StyledHeader> + <div className="bar"> + <Logo> + <Link href="/"> + <a>Sick Fits</a> + </Link> + </Logo> + <Nav /> + </div> + <div className="sub-bar"> + <Search /> + </div> + <Cart /> + </StyledHeader> +); + +export default Header; |
