Skip to content

Commit 3316fa2

Browse files
committed
Add Hamburger menu component
1 parent 0da66b6 commit 3316fa2

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import { useState } from 'react'
2+
3+
const HamburgerMenu = () => {
4+
const [isOpen, setIsOpen] = useState(false)
5+
const genericHamburgerLine = `h-1 w-6 my-0.5 rounded-full bg-black transition ease transform duration-300`
6+
7+
return (
8+
<button
9+
className="flex flex-col h-10 w-10 rounded justify-center items-center group"
10+
onClick={() => setIsOpen(!isOpen)}
11+
>
12+
<div
13+
className={`${genericHamburgerLine} ${
14+
isOpen
15+
? 'rotate-45 translate-y-2 opacity-50 group-hover:opacity-100'
16+
: 'opacity-50 group-hover:opacity-100'
17+
}`}
18+
/>
19+
<div
20+
className={`${genericHamburgerLine} ${
21+
isOpen ? 'opacity-0' : 'opacity-50 group-hover:opacity-100'
22+
}`}
23+
/>
24+
<div
25+
className={`${genericHamburgerLine} ${
26+
isOpen
27+
? '-rotate-45 -translate-y-2 opacity-50 group-hover:opacity-100'
28+
: 'opacity-50 group-hover:opacity-100'
29+
}`}
30+
/>
31+
</button>
32+
)
33+
}
34+
35+
export default HamburgerMenu

src/components/navbar/Navbar.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import Link from 'next/link'
33
import { useRouter } from 'next/router'
44
import React from 'react'
55
import Button from '../Button'
6+
import HamburgerMenu from './HamburgerButton'
67
const ThemeButton = dynamic(() => import('./ThemeButton'), {
78
ssr: false,
89
})
@@ -18,7 +19,7 @@ export default function Navbar() {
1819
<div className="logo w-10 h-10"></div>
1920
</a>
2021
</Link>
21-
<div className="space-x-4">
22+
<div className="space-x-4 flex">
2223
<ThemeButton />
2324
{pathname !== '/story' && (
2425
<Button>
@@ -27,6 +28,7 @@ export default function Navbar() {
2728
</Link>
2829
</Button>
2930
)}
31+
<HamburgerMenu />
3032
</div>
3133
</div>
3234
<style jsx>{`

0 commit comments

Comments
 (0)