<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Gautam Gunecha</title>
    <description>The latest articles on DEV Community by Gautam Gunecha (@gautamgunecha).</description>
    <link>https://dev.to/gautamgunecha</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F721689%2F289228bc-85d9-4870-ba11-a92befc59581.jpeg</url>
      <title>DEV Community: Gautam Gunecha</title>
      <link>https://dev.to/gautamgunecha</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gautamgunecha"/>
    <language>en</language>
    <item>
      <title>Create a responsive navbar with ReactJs.</title>
      <dc:creator>Gautam Gunecha</dc:creator>
      <pubDate>Sun, 31 Jul 2022 16:45:31 +0000</pubDate>
      <link>https://dev.to/gautamgunecha/create-a-responsive-navbar-with-reactjs-5e6b</link>
      <guid>https://dev.to/gautamgunecha/create-a-responsive-navbar-with-reactjs-5e6b</guid>
      <description>&lt;p&gt;&lt;strong&gt;Full View&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BSGHuzwt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1xqk3z8sz30fsy8tzyxz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BSGHuzwt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1xqk3z8sz30fsy8tzyxz.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mobile View&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rzd4d9tG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uqc7a44oub6ca609nu1g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rzd4d9tG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uqc7a44oub6ca609nu1g.png" alt="Image description" width="880" height="545"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w8t5iMv1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4rkj4uhrwjuje93vpeec.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w8t5iMv1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4rkj4uhrwjuje93vpeec.png" alt="Image description" width="880" height="543"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a react app.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;yarn create react-app navbar
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Create a Navbar component and render it to App.js
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from "react";
import Navbar from "./components/Navbar";

const App = () =&amp;gt; {
  return (
    &amp;lt;&amp;gt;
      &amp;lt;Navbar /&amp;gt;
    &amp;lt;/&amp;gt;
  );
};

export default App;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Code for Navbar.js For Full View
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from "react";
import "./Navbar.css";

const Navbar = () =&amp;gt; {
  return (
&amp;lt;&amp;gt;
    &amp;lt;nav className="navbar"&amp;gt;
      &amp;lt;h1&amp;gt;Navbar&amp;lt;/h1&amp;gt;
      &amp;lt;ul&amp;gt;
        &amp;lt;li&amp;gt;Home&amp;lt;/li&amp;gt;
        &amp;lt;li&amp;gt;Store&amp;lt;/li&amp;gt;
        &amp;lt;li&amp;gt;About Us&amp;lt;/li&amp;gt;
      &amp;lt;/ul&amp;gt;

      &amp;lt;ul&amp;gt;
        &amp;lt;li&amp;gt;LogIn&amp;lt;/li&amp;gt;
        &amp;lt;li&amp;gt;Register&amp;lt;/li&amp;gt;
      &amp;lt;/ul&amp;gt;
    &amp;lt;/nav&amp;gt;
&amp;lt;/&amp;gt;
  );
};

export default Navbar;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Css for Navbar for Full View.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.navbar {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-around;
    padding: 1.5em;
    border-bottom: 1px solid #ccc;
}

.navbar h1 {
    cursor: pointer;
    font-size: 20px;
}

.navbar ul {
    display: flex;
    align-items: center;
    gap: 1em;
}

.navbar ul li {
    cursor: pointer;
    list-style-type: none;
    font-size: 15px;
    font-weight: 600;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;For Mobile&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We need to install 3rd party dependency in order to use hamburger icon.&lt;br&gt;
For this we will use react-icons library pack.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;yarn add react-icons
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now to setup hamburger icon we have to import it from react-icons library pack.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { GiHamburgerMenu } from "react-icons/gi";
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and to display icon&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React, { useState } from "react";
import "./Navbar.css";
import { GiHamburgerMenu } from "react-icons/gi";

const Navbar = () =&amp;gt; {
  return (
    &amp;lt;&amp;gt;
      &amp;lt;nav className="navbar"&amp;gt;
        &amp;lt;h1&amp;gt;Navbar&amp;lt;/h1&amp;gt;

        &amp;lt;ul&amp;gt;
          &amp;lt;li&amp;gt;Home&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;Store&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;About Us&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;

        &amp;lt;ul&amp;gt;
          &amp;lt;li&amp;gt;LogIn&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;Register&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;

        &amp;lt;GiHamburgerMenu
          size={20}
          className="navbarIcon"
        /&amp;gt;
      &amp;lt;/nav&amp;gt;
    &amp;lt;/&amp;gt;
  );
};

export default Navbar;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There are various approach for creating responsive ui for this project we will use css media query and react useState functionality to setup our ui condition and with jsx we will create new section with condition.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Complete Navbar code
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React, { useState } from "react";
import "./Navbar.css";
import { GiHamburgerMenu } from "react-icons/gi";

const Navbar = () =&amp;gt; {
  const [show, setShow] = useState(false);

  const handleNavbarDisplay = () =&amp;gt; {
    setShow(!show);
  };
  return (
    &amp;lt;&amp;gt;
      &amp;lt;nav className="navbar"&amp;gt;
        &amp;lt;h1&amp;gt;Navbar&amp;lt;/h1&amp;gt;

        &amp;lt;ul&amp;gt;
          &amp;lt;li&amp;gt;Home&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;Store&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;About Us&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;

        &amp;lt;ul&amp;gt;
          &amp;lt;li&amp;gt;LogIn&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;Register&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;

        &amp;lt;GiHamburgerMenu
          onClick={() =&amp;gt; handleNavbarDisplay()}
          size={20}
          className="navbarIcon"
        /&amp;gt;
      &amp;lt;/nav&amp;gt;

      {show &amp;amp;&amp;amp; (
        &amp;lt;section className="navbarMobile"&amp;gt;
          &amp;lt;p&amp;gt;Home&amp;lt;/p&amp;gt;
          &amp;lt;p&amp;gt;Store&amp;lt;/p&amp;gt;
          &amp;lt;p&amp;gt;About Us&amp;lt;/p&amp;gt;
          &amp;lt;p&amp;gt;LogIn&amp;lt;/p&amp;gt;
          &amp;lt;p&amp;gt;Register&amp;lt;/p&amp;gt;
        &amp;lt;/section&amp;gt;
      )}
    &amp;lt;/&amp;gt;
  );
};

export default Navbar;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Complete css
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.navbar {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-around;
    padding: 1.5em;
    border-bottom: 1px solid #ccc;
}

.navbar h1 {
    cursor: pointer;
    font-size: 20px;
}

.navbar ul {
    display: flex;
    align-items: center;
    gap: 1em;
}

.navbar ul li {
    cursor: pointer;
    list-style-type: none;
    font-size: 15px;
    font-weight: 600;
}

.navbarIcon {
    display: none;
}

/* Mobile Responsive CSS */

@media only screen and (max-width: 600px) {
    .navbar {
        justify-content: space-between;
        height: 70px !important;
    }

    .navbar ul {
        display: none;
    }

    .navbarIcon {
        display: block;
        cursor: pointer;
    }

    .navbarMobile {
        display: flex;
        flex-direction: column;
        gap: 1.5em;
        padding: 20px;
        justify-content: flex-start;
        border-bottom: 1px solid #ccc;
    }

    .navbarMobile p {
        font-size: 18px;
        cursor: pointer;
        font-weight: 600;
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Thank You for reading out this article, also share your views and approach you guys take for creating responsive navbar.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
