Hamburger-Menu-React-JS
In this project, let's build a Hamburger Menu app by applying the concepts we have learned till now.
Refer to the image below:
Design Files
Click to view
- Extra Small (Size < 576px) and Small (Size >= 576px)
- Medium (Size >= 768px), Large (Size >= 992px) and Extra Large (Size >= 1200px) - Home
- Medium (Size >= 768px), Large (Size >= 992px) and Extra Large (Size >= 1200px) - About
- Medium (Size >= 768px), Large (Size >= 992px) and Extra Large (Size >= 1200px) - Menu
- Medium (Size >= 768px), Large (Size >= 992px) and Extra Large (Size >= 1200px) - Not Found
Set Up Instructions
Click to view
- Download dependencies by running
npm install
- Start up the app using
npm start
Completion Instructions
Functionality to be added
The app must have the following functionalities
- Initially, the Home Route should be displayed
- When hamburger icon button in the header is clicked, then the popup should be opened
- When the Home is clicked, then the page should be navigated to the Home Route
- When the About is clicked, then the page should be navigated to the About Route
- When the close button is clicked, then the popup should be closed
- When the website logo in the Header is clicked, then the page should be navigated to the Home Route
Components Structure
Implementation Files
Use these files to complete the implementation:
src/App.js
src/components/Header/index.js
src/components/Header/styledComponents.js
src/components/Header/index.css
src/components/Home/index.js
src/components/Home/styledComponents.js
src/components/About/index.js
src/components/About/styledComponents.js
src/components/NotFound/index.js
src/components/NotFound/styledComponents.js
Quick Tips
Click to view
To build this project, take a look at the React Popup reading material
- To style popup content use
.popup-content
class
<Popup
modal
trigger={
//write code here
}
className="popup-content"
>
//write code here
</Popup>
Important Note
Click to view
The following instructions are required for the tests to pass
Home
Route should consist of/
in the URL pathAbout
Route should consist of/about
in the URL path- No need to use the
BrowserRouter
inApp.js
as we have already included inindex.js
- Styled Components should be used for styling purposes
- The hamburger icon button should have the
data-testid
as hamburgerIconButton - The close button in the popup should have the
data-testid
as closeButton - Roboto should be applied as
font-family
for Home and About links in Popup GiHamburgerMenu
from react-icons should be used for Hamburger Icon in the HeaderIoMdClose
from react-icons should be used for Close Icon in the PopupAiFillHome
from react-icons should be used for Home Icon in the PopupBsInfoCircleFill
from react-icons should be used for About Icon in the Popup
Resources
Image URLs
- https://assets.ccbp.in/frontend/react-js/hamburger-menu-website-logo.png alt should be website logo
- https://assets.ccbp.in/frontend/react-js/home-sm-img.png alt should be home
- https://assets.ccbp.in/frontend/react-js/home-lg-img.png alt should be home
- https://assets.ccbp.in/frontend/react-js/about-sm-img.png alt should be about
- https://assets.ccbp.in/frontend/react-js/about-lg-img.png alt should be about
- https://assets.ccbp.in/frontend/react-js/not-found-img.png alt should be not found
Colors
Hex: #dcdcdc
Hex: #ffffff
Hex: #616e7c
Font-families
- Roboto
Things to Keep in Mind
- All components you implement should go in the
src/components
directory.- Don't change the component folder names as those are the files being imported into the tests.
- Do not remove the pre-filled code
- Want to quickly review some of the concepts you’ve been learning? Take a look at the Cheat Sheets.