
In this tutorial, we’ll walk you through the process of creating a dynamic Responsive Navbar Menu component using ReactJS. The responsive Navbar Menu increases the user’s interactive towards the websites through different device platforms. ReactJS is a JavaScript Framework just like Angular and VueJS Frameworks but instead, it is a more popular one.
Preview OF NavBar Menu
Prerequisites
- Basic Knowledge of HTML
- Basic Knowledge of CSS
- Basic Knowledge of JS including ReactJS Concepts.
Setting Up Your Environment
Before we can start coding our navbar, we need to set up our environment. We’ll use create-react-app
.
To create a new application, open your terminal or command prompt and type:
npx create-react-app navbar-menu
This command will create a new folder named `navbar-menu` with all the necessary files and dependencies for our React application.
File Structure
Before Start implementing the code. Create the necessary File Structure below:-

Creating a Navbar Component
About.jsx
import React from "react"; export const About = () => { return <h1>About</h1>; };
Contact.jsx
import React from "react"; export const Contact = () => { return <h1>Contact</h1>; };
Home.jsx
import React from "react"; export const Home = () => { return <h1>Home</h1>; };
Services.jsx
import React from "react"; export const Services = () => { return ( <> <h1>Services</h1> <div> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Dolorem sunt itaque, perferendis necessitatibus corrupti ea magni voluptatibus est ipsa. Nulla praesentium dolore eos alias incidunt, odio et eaque, sunt vitae corporis animi, itaque architecto. Sunt minima nostrum fugiat quibusdam voluptate dolore illo cupiditate quam odio sequi. Consequatur tempora ullam, ipsam molestias dolor dolores tempore. Molestias, error porro tenetur delectus numquam animi aut quod consequuntur? Dolor sequi quisquam ex, eaque explicabo, labore maxime veniam voluptas enim recusandae architecto est voluptates optio libero officiis consectetur possimus voluptate ipsam alias velit veritatis reprehenderit repudiandae. Ullam praesentium inventore minima eius dolorem omnis fugit facilis. </div> <br /> <div> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptatibus libero laboriosam quia totam, ducimus dolorum velit voluptates ipsam ad labore repellendus! Reprehenderit corporis labore totam est quas natus non quis? Atque porro obcaecati error hic perspiciatis itaque reprehenderit ut aperiam, ipsa, repellendus voluptatum, architecto sint delectus. </div> <br /> <div> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Ea aut a, expedita quaerat, facere iste earum deserunt numquam dignissimos obcaecati voluptatem repellendus nemo eveniet corporis esse voluptatibus facilis laboriosam natus quam sapiente ipsum ipsa, repudiandae qui alias. Ut inventore commodi quae ea excepturi, </div> <br /> <div> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Ea aut a, expedita quaerat, facere iste earum deserunt numquam dignissimos obcaecati voluptatem repellendus nemo eveniet corporis esse voluptatibus facilis laboriosam natus quam sapiente ipsum ipsa, repudiandae qui alias. Ut inventore commodi quae ea excepturi, soluta distinctio laboriosam cum voluptatem consectetur cupiditate neque eius esse placeat consequatur assumenda, unde atque nemo modi perferendis? </div> <br /> <div> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Ea aut a, expedita quaerat, facere iste earum deserunt numquam dignissimos obcaecati voluptatem repellendus nemo eveniet corporis esse voluptatibus facilis laboriosam natus quam sapiente ipsum ipsa, repudiandae qui alias. Ut inventore commodi quae ea excepturi, soluta distinctio laboriosam cum voluptatem consectetur cupiditate neque eius esse placeat consequatur assumenda, unde atque nemo modi perferendis? Saepe molestiae, earum at dicta sit iusto dignissimos vero voluptate voluptas qui ullam molestias omnis cupiditate dolores sunt incidunt ab nisi eaque culpa dolorum? Provident eos doloribus soluta maxime obcaecati quam, a, quod blanditiis dolores odit aliquid quis distinctio. </div> <br /> <div> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Ea aut a, expedita quaerat, facere iste earum deserunt numquam dignissimos obcaecati voluptatem repellendus nemo eveniet corporis esse voluptatibus facilis laboriosam natus quam sapiente ipsum ipsa, repudiandae qui alias. Ut inventore commodi quae ea excepturi, soluta distinctio laboriosam cum voluptatem consectetur cupiditate neque eius esse placeat consequatur assumenda, unde atque nemo modi perferendis? Saepe molestiae, earum at dicta sit iusto dignissimos vero voluptate voluptas qui ullam molestias omnis cupiditate dolores sunt incidunt ab nisi eaque culpa dolorum? Provident eos doloribus soluta maxime obcaecati quam, a, quod blanditiis dolores odit aliquid quis distinctio. </div> <br /> <div> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Ea aut a, expedita quaerat, facere iste earum deserunt numquam dignissimos obcaecati voluptatem repellendus nemo eveniet corporis esse voluptatibus facilis laboriosam natus quam sapiente ipsum ipsa, repudiandae qui alias. </div> </> ); };
index.jsx
export * from "./About"; export * from "./Contact"; export * from "./Home"; export * from "./Services";
Navbar.js
In this component, we’ve used the NavLink tag to make the routing to the other pages of the websites.
import React, { useState } from "react"; import "./Navbar.css"; import { Link, NavLink } from "react-router-dom"; export const Navbar = () => { const [menuOpen, setMenuOpen] = useState(false); return ( <nav> <Link to="/" className="title"> Website </Link> <div className="menu" onClick={() => setMenuOpen(!menuOpen)}> <span></span> <span></span> <span></span> </div> <ul className={menuOpen ? "open" : ""}> <li> <NavLink to="/about">About</NavLink> </li> <li> <NavLink to="/services">Services</NavLink> </li> <li> <NavLink to="/contact">Contact</NavLink> </li> </ul> </nav> ); };
Styling Our Navbar Menu
App.css
.App { background-color: #fefefe; height: 100vh; width: 100%; }
index.css
* { box-sizing: border-box; margin: 0; padding: 0; font-family: Arial, Helvetica, sans-serif; }
NavBar.css
.active{ background-color: #1d4ed8; } nav { display: flex; justify-content: space-between; align-items: center; background-color: #0f172a; color: white; position: sticky; top: 0; } nav .title { font-size: 1.5rem; margin: 1rem; font-weight: bold; text-decoration: none; color: white; } nav ul { display: flex; } nav ul li { list-style: none; } nav ul li a { display: block; text-decoration: none; color: white; padding: 0.5rem; margin: 0 0.5rem; border-radius: 0.5rem; } nav ul li a:not(.active):hover { background-color:#172554 ; } nav .menu { display: none; position: absolute; top: 0.75rem; right: 0.5rem; flex-direction: column; justify-content: space-between; width: 2.25rem; height: 2rem; } nav .menu span { height: 0.4rem; width: 100%; background-color: #fff; border-radius: 0.2rem; } @media (max-width: 480px) { nav .menu { display: flex; } nav { flex-direction: column; align-items: flex-start; } nav ul { display: none; flex-direction: column; width: 100%; margin-bottom: 0.25rem; } nav ul.open { display: flex; } nav ul li { width: 100%; text-align: center; } nav ul li a { margin: 0.2rem 0.5rem; } }
Dependencies
The Package.json file will know the dependencies of your application. Every package you install for your application you’ll see the version here.
Your Package.json file should look like this:-
Package.json
{ "name": "react-navbar", "private": true, "version": "0.0.0", "type": "module", "scripts": { "dev": "vite", "build": "vite build", "lint": "eslint src --ext js,jsx --report-unused-disable-directives --max-warnings 0", "preview": "vite preview" }, "dependencies": { "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.13.0" }, "devDependencies": { "@types/react": "^18.0.37", "@types/react-dom": "^18.0.11", "@vitejs/plugin-react": "^4.0.0", "eslint": "^8.38.0", "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.3.4", "vite": "^4.3.9" } }
Preview Of Navbar Menu Using React.js

50+ Interesting React JS Project ideas With Source Code
Conclusion
Congratulations, You have completed your Mini Reactjs Project and further you can enhance this as per your preferences. You can deploy it on the Github, Vercel, or Netfliy platforms and make it live for your friends. Add this to your resume after adding or enhancing more functionality like a timer, stopwatch, profile, saving progress and many more. You can add further functionalities to your websites.
I hope you liked this Tutorial and must have learned Something new. If you have any questions regarding this feel free to drop your comments below and contact our team on Instagram @Codewithrandom.
Code Credit:- Code Complete
HAPPY CODING!!!