Skip to content
This repository has been archived by the owner on Aug 1, 2020. It is now read-only.

Commit

Permalink
Merge pull request #12 from jayfallon/responsive-header
Browse files Browse the repository at this point in the history
added sideDrawer and toggle
  • Loading branch information
jayfallon authored Jul 30, 2019
2 parents b86b598 + 8ed4a37 commit f5ca3fa
Show file tree
Hide file tree
Showing 8 changed files with 136 additions and 11 deletions.
6 changes: 3 additions & 3 deletions components/Banner/styles.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import styled from 'styled-components'
import media from '../MediaQueries'

const HomeBannerStyles = styled.section`
margin: 0 auto;
padding: 0 2rem 4rem;
margin: 16rem auto 0;
padding: 4rem 2rem 4rem;
max-width: 96rem;
color: ${props => props.theme.bannerHomeTextColor};
text-align: center;
Expand All @@ -12,7 +12,7 @@ const HomeBannerStyles = styled.section`
justify-content: center;
align-items: center;
${media.brotherbear`
padding: 10rem 2rem;
padding: 10rem 2rem;
`}
p {
Expand Down
11 changes: 11 additions & 0 deletions components/Header/drawerToggle.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import {DrawerToggleButtonStyles} from './styles'

const DrawerToggleButton = props => (
<DrawerToggleButtonStyles className="toggleButton" onClick={props.click}>
<div className="toggleButtonLine"></div>
<div className="toggleButtonLine"></div>
<div className="toggleButtonLine"></div>
</DrawerToggleButtonStyles>
)

export default DrawerToggleButton
6 changes: 4 additions & 2 deletions components/Header/index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import Link from 'next/link';
import HeaderStyles from './styles'
import DrawerToggleButton from './drawerToggle'

const Header = () => (
const Header = (props) => (

<HeaderStyles id="pageTop">
<section className="header__content">
Expand All @@ -10,7 +11,8 @@ const Header = () => (
</h1>
<nav>
<h3>Digital Design &amp; Development</h3>
<ul>
<DrawerToggleButton click={props.drawerClickHandler}/>
<ul className="header__nav">
<li>
<Link href="/about"><a title="">About</a></Link>
</li>
Expand Down
44 changes: 40 additions & 4 deletions components/Header/styles.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,15 @@ import media from '../MediaQueries'

const HeaderStyles = styled.header`
background-color: ${props => props.theme.headerBgColor};
width: 100%;
position: fixed;
section.header__content {
margin: 0 auto;
padding: 4rem 2rem 12rem;
padding: 1rem 2rem 1rem;
max-width: 96rem;
${media.brotherbear`
padding: 4rem 2rem 1rem;
`}
}
h1 {
padding-bottom: 2rem;
Expand All @@ -30,9 +35,12 @@ const HeaderStyles = styled.header`
color: ${props => props.theme.headerTextColor};
font-size: 2rem;
}
ul {
display: flex;
justify-content: space-between;
ul.header__nav {
display: none;
${media.brotherbear`
display: flex;
justify-content: space-between;
`}
}
li {
margin-left: 3.5rem;
Expand All @@ -45,3 +53,31 @@ const HeaderStyles = styled.header`
}
`
export default HeaderStyles

const DrawerToggleButtonStyles = styled.button`
background: transparent;
margin-right: 2rem;
width: 3rem;
height: 2.4rem;
border: none;
cursor: pointer;
display: flex;
flex-direction: column;
justify-content: space-between;
box-sizing: border-box;
${media.brotherbear`
display: none;
`}
&:focus {
outline: none;
}
div.toggleButtonLine {
background-color: #fff;
width: 3rem;
height: 0.3rem;
}
`

export {DrawerToggleButtonStyles}

15 changes: 14 additions & 1 deletion components/Page.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,33 @@ import Header from './Header';
import Theme from './Theme';
import Footer from './Footer';
import GlobalStyle from './Global';
import SideDrawer from './SideDrawer'

const StyledPage = styled.div`
height: 100%;
`

class Page extends Component {

state = {
sideDrawerOpen: false
}

drawerToggleClickHandler = () => {
this.setState(prevState => {
return { sideDrawerOpen: !prevState.sideDrawerOpen };
});
}

render() {
return(
<ThemeProvider theme={Theme}>
<StyledPage>
<GlobalStyle />
<Meta/>
<SideDrawer show={this.state.sideDrawerOpen}/>
<a href="#main__content" className="main__content--link">Skip to main content</a>
<Header/>
<Header drawerClickHandler={this.drawerToggleClickHandler}/>
<main id="main__content" role="main">
{this.props.children}
</main>
Expand Down
2 changes: 1 addition & 1 deletion components/Resume/styles.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import styled from 'styled-components'
const ResumeStyles = styled.section`
background-color: ${props => props.theme.resumeBgColor};
margin: 0 auto;
padding: 0 2rem 4rem;
padding: 17rem 2rem 4rem;
color: ${props => props.theme.resumeTextColor};
article {
Expand Down
32 changes: 32 additions & 0 deletions components/SideDrawer/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import Link from 'next/link';
import SideDrawerStyles from './styles'

const SideDrawer = props => {
let drawerClasses = [''];
if(props.show) {
drawerClasses = ['open'];
}
return (
<SideDrawerStyles className={drawerClasses}>
<ul className="sideDrawer__nav">
<li>
<Link href="/"><a title="Jay's home page">Home Page</a></Link>
</li>
<li>
<Link href="/about"><a title="More about Jay">About</a></Link>
</li>
<li>
<Link href="/projects"><a title="Jay's recent projects">Projects</a></Link>
</li>
<li>
<Link href="/resume"><a title="Jay's cummulative experience">Experience</a></Link>
</li>
<li>
<Link href="/static/resume/jayfallon-resume-2019.pdf"><a target="_blank" title="Download Jay's resume">Download Resume</a></Link>
</li>
</ul>
</SideDrawerStyles>
)
}

export default SideDrawer
31 changes: 31 additions & 0 deletions components/SideDrawer/styles.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import styled from 'styled-components'

const SideDrawerStyles = styled.nav`
transform: translateX(-100%);
transition: transform 0.2 ease-in-out;
&.open {
transform: translateX(0);
}
z-index: 300;
height: 100%;
background-color: #fff;
position: fixed;
top: 0;
left: 0;
width: 100%;
padding: 4rem 2rem;
ul {
padding-top: 4rem;
}
li {
padding-bottom: 2rem;
}
a {
color: #333;
font-size: 2rem;
font-weight: bold;
text-decoration: none;
}
`

export default SideDrawerStyles

1 comment on commit f5ca3fa

@vercel
Copy link

@vercel vercel bot commented on f5ca3fa Jul 30, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.