<?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: Supantha Paul</title>
    <description>The latest articles on DEV Community by Supantha Paul (@supanthapaul).</description>
    <link>https://dev.to/supanthapaul</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%2F502320%2Ff7eda0f9-c146-4f63-86c8-17bbc28c427c.jpg</url>
      <title>DEV Community: Supantha Paul</title>
      <link>https://dev.to/supanthapaul</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/supanthapaul"/>
    <language>en</language>
    <item>
      <title>Generating QR Codes using Python</title>
      <dc:creator>Supantha Paul</dc:creator>
      <pubDate>Sat, 13 Feb 2021 18:11:12 +0000</pubDate>
      <link>https://dev.to/supanthapaul/generating-qr-codes-using-python-487e</link>
      <guid>https://dev.to/supanthapaul/generating-qr-codes-using-python-487e</guid>
      <description>&lt;p&gt;QR Codes are helpful in a lot of scenarios. For example, let's say you're making a social app where users interact with each other via visiting their profiles. Generating a QR Code for each profile will make it really easy for the users to share their profile. QR codes are also used in retail stores for redirecting to a payment gateway, or for simply sharing a link. In this article, I'll walk you through how you can simply create QR codes with couple of lines of code with the &lt;code&gt;pyqrcode&lt;/code&gt; package.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting Up
&lt;/h2&gt;

&lt;p&gt;As I've mentioned before, we'll be using the &lt;code&gt;pyqrcode&lt;/code&gt; package to generate the QR code for us. You can install it with pip simply by running the following command,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install pyqrcode
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We'll need another module for saving the QR code in the file system, let's install it too.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install pypng
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Generating the QR code
&lt;/h2&gt;

&lt;p&gt;Here's the code for generating the QR Code, it's pretty simple.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Import pyqrcode
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pyqrcode&lt;/span&gt;
&lt;span class="c1"&gt;# URL or string which will represent the QR code
&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://dev.to/supanthapaul&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="c1"&gt;# Generate QR code
&lt;/span&gt;&lt;span class="n"&gt;qr_code&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pyqrcode&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we have the QR code generated which is of type &lt;code&gt;QRCode&lt;/code&gt; from &lt;code&gt;pyqrcode&lt;/code&gt;. One thing to note is, we can add additional parameters to the &lt;code&gt;create&lt;/code&gt; function like &lt;code&gt;error&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;mode&lt;/code&gt;. If you want to learn more, you can see the documentation page &lt;a href="https://pythonhosted.org/PyQRCode/create.html" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
Okay, we generated the QR code but there's no way for us to view it. Let's save the QR code to our file system as png!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# ...
&lt;/span&gt;&lt;span class="n"&gt;qr_code&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;png&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;image.png&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;scale&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will save our QR code as &lt;code&gt;image.png&lt;/code&gt; in our current directory. &lt;code&gt;pyqrcode&lt;/code&gt; uses the &lt;code&gt;pypng&lt;/code&gt; package under the hood to save the QR code as a png. The &lt;em&gt;scale&lt;/em&gt; parameter sets how large to draw a single module. By default one pixel is used to draw a single module which will make the code too small to be read efficiently. Increasing the scale will make the code larger.&lt;br&gt;&lt;br&gt;
you can add additional parameters like &lt;code&gt;module_color&lt;/code&gt; and &lt;code&gt;background&lt;/code&gt;, read more about rendering the QR codes &lt;a href="https://pythonhosted.org/PyQRCode/rendering.html" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping up
&lt;/h2&gt;

&lt;p&gt;As you can see, it's extremely easy to generate and save QR codes with &lt;code&gt;pyqrcode&lt;/code&gt;. If you wanted to generate QR codes for your mobile app, you can create a Python API that returns a QR code image for a particular link. If you want to know how to create web APIs using Python, I've written an article about &lt;a href="https://dev.to/supanthapaul/getting-started-with-fastapi-create-apis-quickly-using-python-2a9f"&gt;Getting started with FastAPI to quickly create APIs using Python&lt;/a&gt;. Do check that out!  &lt;/p&gt;

&lt;p&gt;If you'd like to chat with me about anything technology or just say hi, you can &lt;a href="https://www.linkedin.com/in/supantha-paul-5977041b8/" rel="noopener noreferrer"&gt;Connect with me on LinkedIn&lt;/a&gt; or &lt;a href="https://twitter.com/supanthapaul" rel="noopener noreferrer"&gt;Find me on Twiiter&lt;/a&gt;. My DMs are open!  &lt;/p&gt;

&lt;p&gt;Also, here's the generated QR code of my dev.to profile!&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fm37fs3311fg45jkz4dbf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fm37fs3311fg45jkz4dbf.png" alt="QR Code"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Create a Simple Navbar with 7 Lines of CSS</title>
      <dc:creator>Supantha Paul</dc:creator>
      <pubDate>Sun, 31 Jan 2021 17:14:49 +0000</pubDate>
      <link>https://dev.to/supanthapaul/create-a-simple-navbar-with-7-lines-of-css-4h7f</link>
      <guid>https://dev.to/supanthapaul/create-a-simple-navbar-with-7-lines-of-css-4h7f</guid>
      <description>&lt;p&gt;Navbars are an essential part of any kind of website. I often see beginners write tons and tons of CSS rules to position the navbar elements, and more CSS to make that responsive. So in this article, I'm going to show how you can create a simple navbar with just 7 CSS rules and build upon that.&lt;/p&gt;

&lt;h2&gt;
  
  
  HTML Setup
&lt;/h2&gt;

&lt;p&gt;Here's all the HTML that we're going to need to create the navbar. Note that I'm not using any classes for simplicity purposes but I recommend you to do so if you're planning to use this base for a project.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;

&lt;span class="nt"&gt;&amp;lt;nav&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Title&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Item 1&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Item 2&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Item 3&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;


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

&lt;/div&gt;

&lt;p&gt;At this point, without any CSS, Your navbar should look something like this.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwytzl1u88l82arlwlcw2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwytzl1u88l82arlwlcw2.png" alt="Navbar unstyled"&gt;&lt;/a&gt;&lt;br&gt;
Yeah, not nice. Let's change that!&lt;/p&gt;
&lt;h2&gt;
  
  
  CSS Setup
&lt;/h2&gt;

&lt;p&gt;Before writing any CSS for the navbar, let's reset the padding and margin of our document and use a nicer font.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;

&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Arial&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Tahoma&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Serif&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#263238&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


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

&lt;/div&gt;
&lt;h2&gt;
  
  
  Styling the Navbar
&lt;/h2&gt;

&lt;p&gt;Let's get to a fun part! We're going to use Flexbox to align our elements. If you don't know what Flexbox is, it's a one-dimensional layout model that offers space distribution between items and powerful alignment capabilities. If you want to learn about flexbox, &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox" rel="noopener noreferrer"&gt;this&lt;/a&gt; is a great resource.&lt;br&gt;
Here are the 7 magic rules that is going to give us a good base to work with,&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;

&lt;span class="nt"&gt;nav&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c"&gt;/* 1 */&lt;/span&gt;
  &lt;span class="nl"&gt;justify-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;space-between&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c"&gt;/* 2 */&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1rem&lt;/span&gt; &lt;span class="m"&gt;2rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c"&gt;/* 3 */&lt;/span&gt;
  &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#cfd8dc&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c"&gt;/* 4 */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;nav&lt;/span&gt; &lt;span class="nt"&gt;ul&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c"&gt;/* 5 */&lt;/span&gt;
  &lt;span class="nl"&gt;list-style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c"&gt;/* 6 */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;nav&lt;/span&gt; &lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;padding-left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c"&gt;/* 7! */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


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

&lt;/div&gt;
&lt;p&gt;Here's how the navbar should look now,&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fru3qs2hidtk77iaakfrp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fru3qs2hidtk77iaakfrp.png" alt="Navbar styled 1"&gt;&lt;/a&gt;&lt;br&gt;
Does it look finished? No. Is it responsive? No. But is this a good base to work with? Absolutely. You can now follow your website's design language and make it look like what you want.  &lt;/p&gt;

&lt;p&gt;For a starter, you can make the navbar links look a lot better just by removing the text-decoration and picking a better color like so,&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;

&lt;span class="nt"&gt;nav&lt;/span&gt; &lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;text-decoration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#0d47a1&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


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

&lt;/div&gt;
&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fquh5078gxyah1u5ba1hn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fquh5078gxyah1u5ba1hn.png" alt="navbar styled 2"&gt;&lt;/a&gt;&lt;br&gt;
Much better, right?&lt;/p&gt;
&lt;h2&gt;
  
  
  Making it responsive
&lt;/h2&gt;

&lt;p&gt;Don't worry, I'm not going to leave you hanging with an unresponsive navbar. Let's make it responsive!&lt;br&gt;
Normally for mobile devices, you'd want a hamburger menu that reveals the navbar links. But for simplicity purposes, let's stack the elements on mobile devices. We can do this with a simple media query like so,&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;

&lt;span class="c"&gt;/* 
  Extra small devices (phones, 600px and down) 
*/&lt;/span&gt;
&lt;span class="k"&gt;@media&lt;/span&gt; &lt;span class="n"&gt;only&lt;/span&gt; &lt;span class="n"&gt;screen&lt;/span&gt; &lt;span class="n"&gt;and&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;600px&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nt"&gt;nav&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;flex-direction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nt"&gt;nav&lt;/span&gt; &lt;span class="nt"&gt;ul&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;flex-direction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;padding-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0.5rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nt"&gt;nav&lt;/span&gt; &lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0.5rem&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; 


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

&lt;/div&gt;
&lt;p&gt;This is how it should look on smaller devices now,&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fs470bpvwh21huy7pknod.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fs470bpvwh21huy7pknod.png" alt="navbar mobile"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Final words
&lt;/h2&gt;

&lt;p&gt;As you can see, creating a navbar and making it responsive isn't all that hard. You can now go crazy and make it look very pretty. Let me know if you make something with this base!&lt;/p&gt;

&lt;p&gt;If you'd like to chat with me about anything technology or just say hi, you can &lt;a href="https://www.linkedin.com/in/supantha-paul-5977041b8/" rel="noopener noreferrer"&gt;Connect with me on LinkedIn&lt;/a&gt; or &lt;a href="https://twitter.com/supanthapaul" rel="noopener noreferrer"&gt;Find me on Twiiter&lt;/a&gt;. My DMs are open!&lt;/p&gt;

&lt;p&gt;I'm leaving the full codepen project here if you want to see it in action, hope you liked it!&lt;br&gt;&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/supanthapaul/embed/jOVEwPY?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to choose your first front-end framework without losing your mind </title>
      <dc:creator>Supantha Paul</dc:creator>
      <pubDate>Fri, 29 Jan 2021 13:37:59 +0000</pubDate>
      <link>https://dev.to/supanthapaul/how-to-choose-your-first-front-end-framework-without-losing-your-mind-1eee</link>
      <guid>https://dev.to/supanthapaul/how-to-choose-your-first-front-end-framework-without-losing-your-mind-1eee</guid>
      <description>&lt;p&gt;The javascript ecosystem is huge and when you see the sheer amount of tools, libraries, frameworks there are for front-end development, it can be overwhelming - especially for beginners. In this article, I'll try to help you choose your first front-end javascript framework by following a simple route.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key factors to consider
&lt;/h2&gt;

&lt;p&gt;I see a lot of articles comparing front-end frameworks by their popularity or GitHub stars, which is fine. You don't wanna be learning a framework that no one uses or where there's little to no learning resources. But for your first framework, you should be picking the one which you think you'll be the most comfortable with. Once you're comfortable with a framework of your choice, you'll find it really easy to transition to another framework that is &lt;em&gt;trendy&lt;/em&gt; or &lt;em&gt;better for jobs&lt;/em&gt;.&lt;br&gt;
With that being said, some of the things you should consider when choosing your first framework are,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Availability of learning resources&lt;/li&gt;
&lt;li&gt;Ease of use&lt;/li&gt;
&lt;li&gt;Does it work for you?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm not going to be sharing any stats of each framework since there are already really great articles on this topic, what I'm going to do is list the top 5 frameworks that are all &lt;em&gt;safe&lt;/em&gt; to learn and help you find for yourself which one you like the most.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Top 5 frameworks
&lt;/h2&gt;

&lt;p&gt;Here are my top 5 front-end frameworks in no particular order:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://reactjs.org/"&gt;React&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://angular.io/"&gt;Angular&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://vuejs.org/"&gt;Vue&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://svelte.dev/"&gt;Svelte&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://emberjs.com/"&gt;EmberJS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to find the framework that works for me?
&lt;/h2&gt;

&lt;p&gt;This part is actually surprisingly simple that I don't see many people doing. For example, when I got started I was attracted to learn React because of how popular it was and how the big companies are using it. But after trying out Svelte, I immediately fell in love with it. I have nothing against React, I love it and it's still my go-to framework for any web project. But I think if I started out with Svelte, I don't think I would switch to another framework unless I had to. &lt;br&gt;
The point I'm trying to make here is, just because a lot of people like a particular framework doesn't mean you'll like it too.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I want you to do
&lt;/h3&gt;

&lt;p&gt;Each one of the frameworks that I've listed above has an excellent step-by-step getting started guide where it goes through some of the most important features and syntax of the framework.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Go through the getting started guide of each framework and continue with the one you like the most.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;All the guides are very simple and short and can be completed in the span of an evening. Take it slow and steady and at the end, you'll have a basic idea of how each of them works. Then go deeper with the one which you liked the most and build cool projects!&lt;br&gt;
I'm linking the getting started guides for each one for you here,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://reactjs.org/tutorial/tutorial.html"&gt;Intro to React&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://angular.io/start"&gt;Getting started with Angular&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://vuejs.org/v2/guide/"&gt;Vue Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://svelte.dev/tutorial/basics"&gt;Svelte interactive tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://guides.emberjs.com/release/tutorial/part-1/"&gt;Ember tutorial&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final words
&lt;/h2&gt;

&lt;p&gt;Make sure to complete each one and see what you like and don't like about each, and pick your favorite. Everyone is different and it's okay if you like a framework that doesn't have the most GitHub stars, what matters is that you enjoy the process! I'll try to post my view on each of these here in the future. Let me know which one you like the most!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>beginners</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
