<?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>Forem: Ishrat</title>
    <description>The latest articles on Forem by Ishrat (@ishratumar).</description>
    <link>https://forem.com/ishratumar</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%2F743457%2F0e8dfe72-bdac-495e-a140-d14c5579aff3.jpg</url>
      <title>Forem: Ishrat</title>
      <link>https://forem.com/ishratumar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ishratumar"/>
    <language>en</language>
    <item>
      <title>The rise and fall of MySpace</title>
      <dc:creator>Ishrat</dc:creator>
      <pubDate>Tue, 27 Feb 2024 19:46:12 +0000</pubDate>
      <link>https://forem.com/ishratumar/the-rise-and-fall-of-myspace-18k2</link>
      <guid>https://forem.com/ishratumar/the-rise-and-fall-of-myspace-18k2</guid>
      <description>&lt;p&gt;MySpace, a social networking site, dominated the mid-to-late 2000s, with 75 million monthly active users.&lt;/p&gt;

&lt;p&gt;Once valued at $12 billion, it declined rapidly after Facebook's popularity in 2008.&lt;/p&gt;

&lt;p&gt;Here's exactly what went wrong 👇&lt;/p&gt;

&lt;p&gt;Back in the mid-to-late 2000s, MySpace was the most popular social network, with 75 million monthly users.&lt;/p&gt;

&lt;p&gt;It was popular in the early 2000s, but no one seems to remember it today.&lt;/p&gt;

&lt;p&gt;What went wrong with MySpace, the Facebook of the 2000s that dominated the social media space?&lt;/p&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%2Fuploads%2Farticles%2Fjfqpqcfpvcmmgzoipxu2.jpeg" 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%2Fuploads%2Farticles%2Fjfqpqcfpvcmmgzoipxu2.jpeg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The rise of MySpace
&lt;/h2&gt;

&lt;p&gt;In 2003, a lot of university students were using Facebook (a social network).&lt;/p&gt;

&lt;p&gt;@myspacetom and @Chris_DeWolfe saw the potential in social networking and decided to develop their own social platform called MySpace, inspired by the popular features of Friendster.&lt;/p&gt;

&lt;p&gt;They were working at this company called eUniverse, doing internet marketing stuff at the time.&lt;/p&gt;

&lt;p&gt;It only took them 10 days to make the first version of MySpace, and it was ready to launch.&lt;br&gt;
Throughout the process, Brad Greenspan, CEO of eUniverse, supported the project with a team of programmers and other resources.&lt;/p&gt;

&lt;p&gt;Initially, MySpace users were eUniverse employees, and the company ran contests to encourage sign-ups.&lt;br&gt;
MySpace quickly gained users and competed with Friendster for popularity.&lt;/p&gt;

&lt;p&gt;They used eUniverse's huge email list of 20 million subscribers to spread the word about MySpace.&lt;/p&gt;

&lt;p&gt;In just a month, MySpace had 1M people sign up. And wait for it—within 9 months, they hit 5 million subs.&lt;br&gt;
It seemed like Myspace had the perfect business strategy going on at that time.&lt;/p&gt;

&lt;h2&gt;
  
  
  A challenge to Friendster
&lt;/h2&gt;

&lt;p&gt;One reason MySpace became big was because it came out in 2003, when social media was just taking off.&lt;br&gt;
Before MySpace, there was Friendster, but it had issues, and people started losing interest.&lt;/p&gt;

&lt;p&gt;MySpace stepped in, letting users do cool things with their pages and adding features people wanted.&lt;br&gt;
It became a hub for creative people and set the stage for how brands and users connect today, kind of like influencers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Strategic moves
&lt;/h2&gt;

&lt;p&gt;The success of MySpace was also due to meticulous planning.&lt;/p&gt;

&lt;p&gt;Collaborating with tech experts for software architecture was just one part.&lt;br&gt;
Opting for ColdFusion server hosting over Friendster's Java server pages was a key move.&lt;/p&gt;

&lt;p&gt;It's not always about the numbers; it's about making the right choices that helped MySpace overtake Friendster.&lt;br&gt;
So, back in February 2005, Chris and Mark Zuckerberg from Facebook had a chat about buying it.&lt;/p&gt;

&lt;p&gt;The $75 million offer from Zuck seemed way too high to Chris for what they were getting.&lt;/p&gt;

&lt;p&gt;So, the deal never happened.&lt;/p&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%2Fuploads%2Farticles%2F2wgeobc05kpqw0i0jk35.jpg" 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%2Fuploads%2Farticles%2F2wgeobc05kpqw0i0jk35.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  News Corporation acquired MySpace
&lt;/h2&gt;

&lt;p&gt;In July 2005, Rupert Murdoch's News Corporation (a large media company) bought MySpace from eUniverse for $580 million.&lt;/p&gt;

&lt;p&gt;In the first year alone, MySpace tripled its initial purchase value, making it a sweet deal.&lt;/p&gt;

&lt;p&gt;In 2006, MySpace expanded to the UK, China, and others.&lt;/p&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%2Fuploads%2Farticles%2Fxp68klxxgmptoif2s79c.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%2Fuploads%2Farticles%2Fxp68klxxgmptoif2s79c.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They hit 100 million MySpace signups in August 2006.&lt;/p&gt;

&lt;p&gt;MySpace also joined the OpenSocial Alliance, which Google leads, in November 2007.&lt;/p&gt;

&lt;p&gt;It works with sites like LinkedIn and hi5 to set standards for social network software developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Downfall begins
&lt;/h2&gt;

&lt;p&gt;MySpace was at its peak in 2007 and valued at $12 billion, but things changed abruptly on April 19, 2008, when Facebook stole the crown and surpassed MySpace.&lt;/p&gt;

&lt;p&gt;MySpace began to decline and started losing memberships after that, whereas Facebook continued to thrive.&lt;/p&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%2Fuploads%2Farticles%2Fzhlnr6kyy4j8chd6he99.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%2Fuploads%2Farticles%2Fzhlnr6kyy4j8chd6he99.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The problem was that there was not much of a comparison between MySpace and Facebook; Facebook was clearly the better product.&lt;/p&gt;

&lt;p&gt;This was mostly because MySpace fell behind as Facebook improved, making it easier for people to use.&lt;br&gt;
Third-party developers helped Facebook make apps and games. MySpace, on the other hand, failed because it was slow to adopt new technologies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adversity post-acquisition
&lt;/h2&gt;

&lt;p&gt;After MySpace was acquired, the goals and priorities of the platform shifted &amp;amp; there was a greater emphasis on generating more revenue.&lt;br&gt;
It was impossible to avoid the annoying ads that were all over MySpace.&lt;/p&gt;

&lt;p&gt;These ads sent people to sketchy websites and got them to sign up for credit cards and other services.&lt;/p&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%2Fuploads%2Farticles%2Fm1fb166mmz5jpg7wjuzw.jpg" 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%2Fuploads%2Farticles%2Fm1fb166mmz5jpg7wjuzw.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;News Corporation tried to reach its unrealistic financial goals by adding different parts that could make money without giving them much thought or planning.&lt;/p&gt;

&lt;p&gt;This resulted in poor management of developer resources.&lt;br&gt;
Users who were once popular on MySpace started to leave the site for other platforms because it failed to prioritize community needs &amp;amp; was no longer user-friendly.&lt;/p&gt;

&lt;p&gt;Even though MySpace has tried many times to change its image, it has not been able to regain its former popularity.&lt;/p&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%2Fuploads%2Farticles%2F7idgh6g6gwixpg2ynb8x.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%2Fuploads%2Farticles%2F7idgh6g6gwixpg2ynb8x.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Time Inc. acquisition of MySpace
&lt;/h2&gt;

&lt;p&gt;In 2011, News Corp. sold MySpace to Time Inc. for an undisclosed sum, speculated to be $35 million.&lt;/p&gt;

&lt;p&gt;The platform still exists today, with a primary focus on music, but it is much smaller than it once was.&lt;/p&gt;

&lt;p&gt;MySpace faced a setback in 2019 when it had to apologize for losing 12 years of content during a server migration.&lt;/p&gt;

&lt;p&gt;While MySpace is no longer popular and inactive, the website still exists but has shifted its focus.&lt;br&gt;
It now features content related to music artists, actors, TV shows, and movies, functioning more like an entertainment website.&lt;/p&gt;

&lt;p&gt;It went downhill when it switched from being a social network to an entertainment hub.&lt;br&gt;
People initially hopped on for socializing, &amp;amp; instead of improving that, they changed the very reason people joined in the first place.&lt;/p&gt;

&lt;p&gt;The articles available on the site are sourced from the music magazine Spin, and no new articles have been published on MySpace since Mar 2022.&lt;br&gt;
MySpace is kind of hanging in there, but it's not what it used to be.&lt;/p&gt;

&lt;p&gt;The platform is a bit of a mess – broken images, tracks that don't play – looks like they're not really keeping up.&lt;/p&gt;

&lt;p&gt;Plus, there is no dedicated app for MySpace on iPhone or Android.&lt;br&gt;
You can still access it on your phone's browser, but the vibe's just not there anymore, you know?&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrap up
&lt;/h2&gt;

&lt;p&gt;That's all for now!&lt;/p&gt;

&lt;p&gt;If you enjoy reading similar stories, follow me (&lt;a class="mentioned-user" href="https://dev.to/ishratumar"&gt;@ishratumar&lt;/a&gt;) and &lt;a href="https://twitter.com/umar482" rel="noopener noreferrer"&gt;Muhammad Umar&lt;/a&gt; on Twitter/X for a daily dose of insightful content.&lt;/p&gt;

</description>
      <category>myspace</category>
      <category>founder</category>
      <category>businessstrategy</category>
    </item>
    <item>
      <title>Learn TypeScript from experts</title>
      <dc:creator>Ishrat</dc:creator>
      <pubDate>Thu, 31 Aug 2023 17:21:42 +0000</pubDate>
      <link>https://forem.com/ishratumar/typescript-bootcamp-2p4n</link>
      <guid>https://forem.com/ishratumar/typescript-bootcamp-2p4n</guid>
      <description>&lt;p&gt;Are you ready to ride the TypeScript wave all the way to mastery? Let me introduce you to a fantastic resource: Zero to Mastery's TypeScript Bootcamp. It is like a journey where you will effortlessly master TypeScript coding!&lt;/p&gt;

&lt;p&gt;So here's how it works:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You will learn everything from the ground up, whether you are completely new to this or have some prior experience. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;First-hand experience working on real-world projects. Your skills will advance, but you'll also unlock your creative potential.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Join the popular Zero to Mastery community. It is a place where mentors and students may help one another and grow together.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sound exciting? You bet! Grab your spot at the TypeScript Bootcamp here: &lt;a href="https://academy.zerotomastery.io/a/aff_k6qbrm5m/external?affcode=441520_nmkbcy8m"&gt;TypeScript Bootcamp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is for you if:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You're a developer ready to rule the world of coding with the language that is expanding most rapidly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Practical knowledge excites you, especially if it leads to actual employment chances.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You are ready for some practical, real-world coding action because you are tired of those hazy tutorials.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Don't let this incredible coding opportunity pass you by! Your love for coding is waiting!&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>typescript</category>
      <category>javascript</category>
      <category>programming</category>
      <category>javascriptlibraries</category>
    </item>
    <item>
      <title>Django Bootcamp: The only resource you need</title>
      <dc:creator>Ishrat</dc:creator>
      <pubDate>Fri, 11 Aug 2023 08:38:47 +0000</pubDate>
      <link>https://forem.com/ishratumar/django-bootcamp-zero-to-mastery-4c0m</link>
      <guid>https://forem.com/ishratumar/django-bootcamp-zero-to-mastery-4c0m</guid>
      <description>&lt;p&gt;&lt;a href="https://academy.zerotomastery.io/a/aff_90nxs4pt/external?affcode=441520_nmkbcy8m"&gt;Zero to Mastery&lt;/a&gt; offers a variety of programming courses to help you in breaking into the world of technology.&lt;/p&gt;

&lt;p&gt;The ZTM platform is really helpful in my experience. It offers a better user experience and is more reasonably priced than other platforms.&lt;/p&gt;

&lt;p&gt;Although it is a relatively new platform, they are constantly updating it with new courses.&lt;/p&gt;

&lt;p&gt;They recently launched their brand new &lt;strong&gt;&lt;a href="https://academy.zerotomastery.io/a/aff_wvls2r8t/external?affcode=441520_nmkbcy8m"&gt;Django Bootcamp&lt;/a&gt;&lt;/strong&gt;, which has been in development since last year.&lt;/p&gt;

&lt;p&gt;Have you ever used &lt;strong&gt;Django&lt;/strong&gt; before? It is an open-source Python web framework that makes it easy to develop scalable and reliable web applications.&lt;/p&gt;

&lt;p&gt;Thus, Django's slogan is "the web framework for perfectionists with deadlines ”.&lt;/p&gt;

&lt;p&gt;With this Bootcamp, you'll have the opportunity to work on some amazing projects, and if you know ZTM, you know that they believe in learning by doing, as well as a storyline featuring Bruno. &lt;/p&gt;

&lt;p&gt;In case you don't know, Bruno is a fictional character in several ZMT courses to give students the feeling that they are really working at an organization.&lt;/p&gt;

&lt;p&gt;You can learn Django from the ground up by creating some great projects. Become a Django Developer and land a job by learning everything from the basics to the most advanced techniques!&lt;/p&gt;

&lt;p&gt;Here's the link to join the course 👉 &lt;a href="https://academy.zerotomastery.io/a/aff_wvls2r8t/external?affcode=441520_nmkbcy8m"&gt;Django Bootcamp: Zero to Mastery&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Know that the link provided above is an affiliate link :))&lt;/p&gt;

&lt;p&gt;Thank you for taking the time to read! Follow &lt;a class="mentioned-user" href="https://dev.to/ishratumar"&gt;@ishratumar&lt;/a&gt; for more content.&lt;/p&gt;

</description>
      <category>django</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>career</category>
    </item>
    <item>
      <title>Firebase vs. Supabase: which one should I select?</title>
      <dc:creator>Ishrat</dc:creator>
      <pubDate>Tue, 08 Aug 2023 11:44:13 +0000</pubDate>
      <link>https://forem.com/ishratumar/firebase-vs-supabase-22oi</link>
      <guid>https://forem.com/ishratumar/firebase-vs-supabase-22oi</guid>
      <description>&lt;p&gt;Firebase and Supabase are well-known BaaS (backend as a service) platforms. These platforms provide pre-built backend infrastructure and services and revolutionize web and mobile app development.&lt;/p&gt;

&lt;p&gt;Here, we shall compare these two and learn more about them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Firebase
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://firebase.google.com/" rel="noopener noreferrer"&gt;Firebase&lt;/a&gt;was first released in 2011, and Google acquired it in 2014. Firebase is very popular because of its simplicity. It offers products in three phases: Build, Release, and Engage. Every stage corresponds to a distinct phase of development. For each of these phases, Firebase has developed unique products. Google Cloud supports Firebase projects, allowing your application to scale to billions of users.&lt;/p&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%2Fuploads%2Farticles%2Fu58rq34tkagt86x85oi5.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%2Fuploads%2Farticles%2Fu58rq34tkagt86x85oi5.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Firebase provides authentication, storage, Firebase ML, a real-time database, hosting, and cloud messaging services.&lt;/p&gt;

&lt;p&gt;It supports some extensions you can use to automate development tasks. Some of them are Deleting user data, Image resizing, triggering emails, and translating text.&lt;/p&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%2Fuploads%2Farticles%2Fx2vpghf0vrdremjwxpgy.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%2Fuploads%2Farticles%2Fx2vpghf0vrdremjwxpgy.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It also provides easy integrations for popular platforms like Google Analytics, Slack, Google Ads, Firebase Performance Monitoring, Remote Configuration, and more.&lt;/p&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%2Fuploads%2Farticles%2F68yqvb0xc2e2o51el7ss.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%2Fuploads%2Farticles%2F68yqvb0xc2e2o51el7ss.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The main reasons one can use Firebase are:&lt;/p&gt;

&lt;h3&gt;
  
  
  Developer experience
&lt;/h3&gt;

&lt;p&gt;It's well-documented and easy to use, and the team has an outstanding culture of listening to developer feedback.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cost
&lt;/h3&gt;

&lt;p&gt;The second is the minimization of cost. Firebase is free for small experimental projects and scales up linearly based on user growth and design choices.&lt;/p&gt;

&lt;p&gt;It also provides unlimited users and 1 GB of data for free.&lt;br&gt;
In Firebase, it costs a small amount, something like $0.18 per GB. In Firebase, you also pay for reads and writes to the database, which typically accounts for most of your monthly expenses.&lt;/p&gt;

&lt;h3&gt;
  
  
  Maximization of time
&lt;/h3&gt;

&lt;p&gt;It allows you to create the most value in the shortest amount of time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Firebase Extensions
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://extensions.dev/extensions" rel="noopener noreferrer"&gt;Firebase Extensions&lt;/a&gt; are designed to boost productivity and give your applications extra capabilities without requiring you to research, write, or debug code. Using Firebase Extensions, you can offer setup options for your extension that are unique to your needs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Supabase
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://supabase.com/" rel="noopener noreferrer"&gt;Supabase&lt;/a&gt; is open source, self-hosted, and can be connected to an internal Postgres database. The table-like structure of Postgres makes it a good tool for storing structured and related data. Interestingly enough, we can import an existing spreadsheet into a project and use it as our Postgres database. Supabase originally had its infrastructure on Digital Ocean but migrated over to AWS.&lt;/p&gt;

&lt;p&gt;Supabase was built in 2019. It is an alternative to Firebase. It's open-source, free software, and a complete backend for Mobile apps and websites.&lt;/p&gt;

&lt;p&gt;Supabase provides services like edge functions, storage, authentication, and real-time database.&lt;/p&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%2Fuploads%2Farticles%2F6aos2p1ezx6ge90gxk7w.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%2Fuploads%2Farticles%2F6aos2p1ezx6ge90gxk7w.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The main reasons one can use Supabase are:&lt;/p&gt;

&lt;h3&gt;
  
  
  Developer experience
&lt;/h3&gt;

&lt;p&gt;It can be a great pick because of its sizeable open-source community, comprehensive documentation, and ease of use.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cost
&lt;/h3&gt;

&lt;p&gt;It provides 10K users and 500 MB of Data for free.&lt;/p&gt;

&lt;p&gt;It costs around $25 per month for 8GB. With Supabase, you get unlimited API requests and network traffic to your database, which is a fantastic offer, as typically, you have to pay for CPUs to handle this traffic, which can be very expensive at scale. If you require more than 8 GB on Supabase, you can upgrade to the pay-as-you-go plan for an additional 12 cents per month per GB. This is a great deal that is significantly less expensive than what any of the major cloud providers have to offer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Maximization of time
&lt;/h3&gt;

&lt;p&gt;It is meant to make it easy for developers to quickly set up their backend. "Build in a weekend, scale to millions" is the motto of Supabase.&lt;/p&gt;

&lt;h3&gt;
  
  
  Import/Export Data
&lt;/h3&gt;

&lt;p&gt;You can import and export large datasets to and from the PostgreSQL database using Supabase. That could be a plus.&lt;/p&gt;

&lt;h2&gt;
  
  
  Difference between the two
&lt;/h2&gt;

&lt;p&gt;Here are some key differences between the two, a comparison of the two technologies, and a discussion of situations in which Supabase ought to be used rather than Firebase.&lt;br&gt;
Scalability and Security: After going over every aspect, we can say that both offer scalability. Supabase uses PostgreSQL's flexibility and scalability for complex data structures, and Firebase excels in real-time data synchronization and high concurrency.&lt;/p&gt;

&lt;p&gt;Both platforms take security very seriously and provide tools to aid in maintaining the safety of your applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Export Data&lt;/strong&gt;: Supabase comes with built-in data import and export features to and from the PostgreSQL database. But Firebase requires custom solutions or third-party apps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open Source&lt;/strong&gt;: Because Supabase is open source, developers may change and customize it as desired for greater flexibility. Firebase is a closed source and provides less room for customization.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-time feature&lt;/strong&gt;: Both Firebase and Supabase provide real-time database update features.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost&lt;/strong&gt;: Both provide a limited free tier and a pay-as-you-go pricing model. As an open-source solution, Supabase offers a managed hosting service in addition to self-hosting, which gives users greater control over infrastructure costs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Database&lt;/strong&gt;: Firebase supports NoSQL databases. Supabase, on the other hand, uses PostgreSQL for its robust relational database. NoSQL might come in handy when you want to create data quickly and have a flexible range of data types. A relational database may be beneficial when data is connected, rigid, and required to be constant at all times.&lt;/p&gt;

&lt;p&gt;Your choice of BaaS platform should solely be based on the project you will be working on. Before selecting one, carefully consider your needs, as both platforms have benefits and limitations.&lt;/p&gt;

&lt;p&gt;You can consider the following points: If you're searching for a fully managed solution with serverless capabilities, real-time updates, a NoSQL database, and a Google Services connection, Firebase might be a better choice. Yet, Supabase is a fantastic option if you want relational databases, data integrity, open-source software flexibility, and infrastructure control and want to host your website yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;That's all for now. I really hope you found it helpful and learned something valuable from it to select a better fit for your project. Please clap it, leave a comment, and share it with others if you like it.&lt;br&gt;
If you want to get my stories delivered right to your inbox, follow &lt;a class="mentioned-user" href="https://dev.to/ishratumar"&gt;@ishratumar&lt;/a&gt; for more. If you have any questions, message me on &lt;a href="https://twitter.com/ishrratumar" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;. I'll see you shortly.&lt;/p&gt;

&lt;p&gt;Happy learning :))&lt;/p&gt;

</description>
      <category>firebase</category>
      <category>backend</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Learn CSS Grids with illustrations</title>
      <dc:creator>Ishrat</dc:creator>
      <pubDate>Sat, 15 Jul 2023 11:56:00 +0000</pubDate>
      <link>https://forem.com/ishratumar/learn-css-grids-with-illustrations-3jai</link>
      <guid>https://forem.com/ishratumar/learn-css-grids-with-illustrations-3jai</guid>
      <description>&lt;h3&gt;
  
  
  Mastering CSS Grid with illustrations
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Table of contents:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;What is the grid &lt;/li&gt;
&lt;li&gt;Grid terminology&lt;/li&gt;
&lt;li&gt;Grid container properties&lt;/li&gt;
&lt;li&gt;Grid items properties&lt;/li&gt;
&lt;li&gt;Responsive grids&lt;/li&gt;
&lt;li&gt;Shorthand properties&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  What is the grid in CSS?
&lt;/h2&gt;

&lt;p&gt;If we compare CSS Grid to any previous web layout system, it is a two-dimensional grid-based layout system that completely changes how we create user &lt;br&gt;
interfaces. We've been using CSS to design the layout of our web pages, but it hasn't always worked out well.&lt;br&gt;
In the early days, we used tables and later floats, positioning, and inline blocks, which were necessary workarounds for layouts lacking in some key aspects.&lt;/p&gt;

&lt;p&gt;The CSS Grid is the first CSS module built expressly to address the layout issues we’ve all been &lt;br&gt;
playing with. &lt;a href="https://ishratumar.medium.com/css-flexbox-eb9dc69c4a6a" rel="noopener noreferrer"&gt;Flexbox&lt;/a&gt; is also a popular one-dimensional layout tool. These two tools work well together.&lt;/p&gt;

&lt;p&gt;Designing web pages without floats or positioning is made easy with grids. It can have items placed on it vertically, horizontally, or both at once. You can arrange&lt;br&gt;
items however you want, even stacked.&lt;/p&gt;
&lt;h2&gt;
  
  
  Grid terminology
&lt;/h2&gt;

&lt;p&gt;Before learning the properties of Grid, it is important to comprehend the terminologies &lt;br&gt;
used in Grid. If you have a solid grasp of these concepts, mastering Grid will go a lot easier for you.&lt;/p&gt;

&lt;p&gt;Let's jump right in.&lt;/p&gt;
&lt;h2&gt;
  
  
  Grid container
&lt;/h2&gt;

&lt;p&gt;The grid container is the parent element in a grid layout with one or more child elements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="grid-container"&amp;gt;
  &amp;lt;div class="grid-item"&amp;gt;Item 1&amp;lt;/div&amp;gt;
  &amp;lt;div class="grid-item"&amp;gt;Item 2&amp;lt;/div&amp;gt;
  &amp;lt;div class="grid-item"&amp;gt;Item 3&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the above example, the div with class &lt;code&gt;grid-container&lt;/code&gt; is the parent element, and the divs with class &lt;code&gt;grid-item&lt;/code&gt; are the child elements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Grid item
&lt;/h2&gt;

&lt;p&gt;A grid item is an element that is an immediate descendant of the grid container.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="grid-container"&amp;gt;
  &amp;lt;div class="grid-item"&amp;gt;Item 1&amp;lt;/div&amp;gt;
  &amp;lt;div class="grid-item"&amp;gt;Item 2&amp;lt;/div&amp;gt;
  &amp;lt;div class="grid-item"&amp;gt;Item 3&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Grid items (contents) are distributed along the main axis and cross axes. You can build a website layout by modifying the components and using &lt;br&gt;
different grid properties.&lt;/p&gt;
&lt;h2&gt;
  
  
  Grid Architecture
&lt;/h2&gt;

&lt;p&gt;Illustration ↝&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F267c8212-9663-4387-9263-4f3e9c62fa7a" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F267c8212-9663-4387-9263-4f3e9c62fa7a" alt="grid-container"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Grid lines
&lt;/h2&gt;

&lt;p&gt;Grid elements are composed of grid lines, which are horizontal and vertical. If your grid has three rows and three columns, &lt;br&gt;
it will have four column lines and four row lines, including the one final line.&lt;/p&gt;

&lt;p&gt;Illustration ↝&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F5e971ce6-a596-423c-83a7-fef4939a0dbe" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F5e971ce6-a596-423c-83a7-fef4939a0dbe" alt="grid-linesss"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Grid cell
&lt;/h2&gt;

&lt;p&gt;A single unit within a grid layout is referred to as a grid cell. It is the intersection of a row and a column in the grid. Each cell can contain content &lt;br&gt;
or other elements.&lt;/p&gt;

&lt;p&gt;In the illustration below, each square(item) in the grid represents a cell.&lt;/p&gt;

&lt;p&gt;Illustration ↝&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fb494b021-3fd8-484f-b4c7-1725bd1f4575" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fb494b021-3fd8-484f-b4c7-1725bd1f4575" alt="grid-cell (1)"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Gaps
&lt;/h2&gt;

&lt;p&gt;In a grid layout, the gap is used to indicate the size of the gutter or space between columns and rows. It determines the gap between adjacent grid tracks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gap properties:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;column-gap&lt;/code&gt; - sets the gap between columns.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;row-gap&lt;/code&gt; - sets the gap between rows.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;gap&lt;/code&gt; - It's a shorthand. You can use it to set the &lt;code&gt;column-gap&lt;/code&gt; and &lt;code&gt;row-gap&lt;/code&gt; in a single line.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid-container {
  display: grid;
  gap: 20px;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Illustration ↝&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fdb903b85-3a1f-4680-98f0-218530ee8b21" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fdb903b85-3a1f-4680-98f0-218530ee8b21" alt="grid-gap (3)"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Grid tracks
&lt;/h2&gt;

&lt;p&gt;The space between two grid lines is referred to as a track. A row track is a space between two row lines, and a column track is a space between two column lines. These tracks are created when we give a size to our grid.&lt;br&gt;
See the illustration below to better understand:&lt;/p&gt;

&lt;p&gt;Illustration↝&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F5b10f5d9-23fd-40b6-a3d2-cb0b94f24311" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F5b10f5d9-23fd-40b6-a3d2-cb0b94f24311" alt="grid-track (1)"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Grid Area
&lt;/h2&gt;

&lt;p&gt;The grid area consists of several grid cells. It allows items to span a specified number of rows and columns within a grid layout.&lt;/p&gt;

&lt;p&gt;12 row X 12 column layout&lt;/p&gt;

&lt;p&gt;Illustration ↝&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F8de186cd-87f6-4b32-bb50-ce27f34fe55b" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F8de186cd-87f6-4b32-bb50-ce27f34fe55b" alt="grid-template-area"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Grid Properties
&lt;/h2&gt;

&lt;p&gt;In terms of grid properties, there are two types. As following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Parent Properties(Grid Container)&lt;/li&gt;
&lt;li&gt;Children Properties(Grid Items)&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Grid container properties
&lt;/h2&gt;
&lt;h3&gt;
  
  
  display
&lt;/h3&gt;

&lt;p&gt;When the &lt;code&gt;display&lt;/code&gt; property of an HTML element is set to &lt;code&gt;grid&lt;/code&gt; or &lt;code&gt;inline-grid&lt;/code&gt;, the element becomes a container for a grid.&lt;br&gt;
The &lt;code&gt;grid&lt;/code&gt; creates a &lt;em&gt;block-level&lt;/em&gt; container that enables flexible and grid-like layouts by placing items in both columns and rows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid-container {
  display: grid;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output ↝&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F43622c98-555b-45d0-b37f-279e60623a27" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F43622c98-555b-45d0-b37f-279e60623a27" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;inline-grid&lt;/code&gt; container, on the other hand, creates an &lt;em&gt;inline-level&lt;/em&gt; container that enables items to be positioned horizontally, &lt;br&gt;
making it suitable for inline layouts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid-container {
  display: inline-grid;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output ↝&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F8b20bf79-d1cb-4b0a-b6b6-824df145cfd3" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F8b20bf79-d1cb-4b0a-b6b6-824df145cfd3" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have you noticed the text &lt;strong&gt;before&lt;/strong&gt; and &lt;strong&gt;after&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;Those are two span elements that I added before and after the containers. So you can better understand the concept of &lt;em&gt;block-level&lt;/em&gt; &lt;br&gt;
and &lt;em&gt;inline-level&lt;/em&gt; grid containers.&lt;/p&gt;
&lt;h2&gt;
  
  
  Rows and Columns
&lt;/h2&gt;

&lt;p&gt;Rows and columns are made up of grid lines. Properties you can use to define rows and columns in a grid:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;grid-template-columns&lt;/strong&gt; - determines both the width and the number of columns in a grid. You can use several length units, &lt;br&gt;
including px, em, %, min-content, max-content, fr, and auto, to measure that.&lt;/p&gt;

&lt;p&gt;Use &lt;code&gt;auto&lt;/code&gt; if you want columns to have the same width or an element to take all the available space. The &lt;code&gt;fr&lt;/code&gt; is basically a fraction; it is a &lt;em&gt;grid-only&lt;/em&gt; unit. &lt;br&gt;
The keywords &lt;code&gt;min-content&lt;/code&gt; and &lt;code&gt;max-content&lt;/code&gt; denote the &lt;em&gt;minimum&lt;/em&gt; and &lt;em&gt;maximum&lt;/em&gt; sizes, respectively, that the content can occupy.&lt;/p&gt;

&lt;p&gt;You have two options for setting column widths: either individually for each column or collectively for all columns using the &lt;code&gt;repeat()&lt;/code&gt; function.&lt;/p&gt;

&lt;p&gt;Illustration ↝&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F770faf4c-98e6-4639-8ba6-795fcc8bec3c" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F770faf4c-98e6-4639-8ba6-795fcc8bec3c" alt="grit-template-column-sprt (2)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There will be precision in the pixel measurements. Any space available will be filled with the keyword auto.&lt;/p&gt;

&lt;p&gt;Graphic↝&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F6748eced-1851-4118-9e48-6f30b74e511e" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F6748eced-1851-4118-9e48-6f30b74e511e" alt="grit-template-column-1fr (1)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There will be no difference in size between the boxes as they are measured in fractions (1fr).&lt;/p&gt;

&lt;p&gt;&lt;code&gt;grid-template-rows&lt;/code&gt; - determines the height and the number of rows in a grid. The height and number of rows can also be specified using different length units.&lt;/p&gt;

&lt;p&gt;You have two options for setting rows height: either individually for each row or collectively for all rows using the &lt;code&gt;repeat()&lt;/code&gt; function.&lt;/p&gt;

&lt;p&gt;Illustration ↝&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fe2ceb6b4-cf66-4a99-86e1-63d2630556d1" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fe2ceb6b4-cf66-4a99-86e1-63d2630556d1" alt="differnt-units-unit"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The height of each row is specified separately 👆.&lt;/p&gt;

&lt;p&gt;Illustration ↝&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F715474cc-2119-48d9-9851-9a8ad8c55e8b" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F715474cc-2119-48d9-9851-9a8ad8c55e8b" alt="fr-unit"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The height of each row using &lt;code&gt;repeat()&lt;/code&gt; function 👆.&lt;/p&gt;

&lt;p&gt;Here's an example code to create a grid with 3 columns and 3 rows using different sizing units.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid-container {
  display: grid;
  grid-template-columns: 7em 200px 20%;
  grid-template-rows: 100px 80px auto;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Justify items
&lt;/h3&gt;

&lt;p&gt;Using the &lt;code&gt;justify-items&lt;/code&gt; property, you can position the grid items inside the grid container along the main axis (x-axis). It may include one of the &lt;br&gt;
following four values:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;justify-items: start | end | center | stretch;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;justify-items: start;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F664e4728-9d75-4a34-ac2a-f494c8657908" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F664e4728-9d75-4a34-ac2a-f494c8657908" alt="justify-items-start (4)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;justify-items: end;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F89e0de76-f4ea-4baa-8907-0e948052e56e" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F89e0de76-f4ea-4baa-8907-0e948052e56e" alt="justify-items-end (2)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;justify-items: center;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fe3ad19af-0f69-46f2-9228-2968453d4fdd" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fe3ad19af-0f69-46f2-9228-2968453d4fdd" alt="justify-items-center (1)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;justify-items: stretch;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Ff28a38d1-a2e9-4348-a3da-ff3c0164e591" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Ff28a38d1-a2e9-4348-a3da-ff3c0164e591" alt="justify-items-stretch (1)"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  Align Items
&lt;/h3&gt;

&lt;p&gt;Using the &lt;code&gt;align-items&lt;/code&gt; property, you can position the grid items inside the grid container along the cross-axis (y-axis). It may include one of the &lt;br&gt;
following four values:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;align-items: start | end | center | stretch;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;align-items: start;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F8541f4f4-b27c-4709-9a4d-901667f7395d" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F8541f4f4-b27c-4709-9a4d-901667f7395d" alt="align-items-start (1)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;align-items: end;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Ff98c2b50-f87e-4e8c-94a0-d5c73cd0db69" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Ff98c2b50-f87e-4e8c-94a0-d5c73cd0db69" alt="align-items-end (1)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;align-items: center;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fd8351084-b072-48ea-83f9-5e42d381ffce" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fd8351084-b072-48ea-83f9-5e42d381ffce" alt="align-items-center (1)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;align-items: stretch;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fe0338e92-4a25-45fb-9336-d1be37a6c3e4" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fe0338e92-4a25-45fb-9336-d1be37a6c3e4" alt="align-items-stretch (1)"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  Justify content
&lt;/h3&gt;

&lt;p&gt;Using the &lt;code&gt;justify-content&lt;/code&gt; property, you can position the grid(all items) inside the grid container along the &lt;em&gt;main-axis (x-axis)&lt;/em&gt;. &lt;br&gt;
It may include one of the following seven values:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;justify-content: start | end | center | stretch | space-between | space-around | space-evenly;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;justify-content: start;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F2043c257-b43b-4b68-95d7-7b0920d1c5c3" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F2043c257-b43b-4b68-95d7-7b0920d1c5c3" alt="justify-content-start (1)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;justify-content: end;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F686bc820-f631-4a3d-9b89-ef2ea09076ab" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F686bc820-f631-4a3d-9b89-ef2ea09076ab" alt="justify-content-end (1)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;justify-content: center;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fb0c4e8a0-4c39-4bd6-8710-c3219ad37fd1" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fb0c4e8a0-4c39-4bd6-8710-c3219ad37fd1" alt="justify-content-center (1)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;justify-content: stretch;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F0a63105e-9f7d-4cc8-9761-1fb7f78d3a23" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F0a63105e-9f7d-4cc8-9761-1fb7f78d3a23" alt="justify-content-stretch (1)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;justify-content: space-around;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F173c6f54-7898-4b66-9227-394f8bc52217" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F173c6f54-7898-4b66-9227-394f8bc52217" alt="justify-content-space-around (2)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; There is an equal amount of space between each grid item, with half-size spaces at the ends.&lt;/p&gt;

&lt;p&gt;justify-content: space-between;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F934546a7-6a67-480e-9d2a-7a7bab20c0ed" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F934546a7-6a67-480e-9d2a-7a7bab20c0ed" alt="justify-content-space-between (1)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Grid items are separated with equal space between them.&lt;/p&gt;

&lt;p&gt;justify-content: space-evenly;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F9508e16a-845b-4ef9-901a-f809023072eb" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F9508e16a-845b-4ef9-901a-f809023072eb" alt="justify-content-space-evenly (1)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Grid items are separated with even space between grid items also at ends.&lt;/p&gt;


&lt;h3&gt;
  
  
  Align Content
&lt;/h3&gt;

&lt;p&gt;Using the &lt;code&gt;align-content&lt;/code&gt; property, you can position the grid(all items) inside the grid container along the &lt;em&gt;cross-axis (y-axis)&lt;/em&gt;. It may include one &lt;br&gt;
of the following seven values:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;align-content: start | end | center | stretch | space-between | space-around | space-evenly;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;align-content: start;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F7f41193d-b807-4b96-b0a8-cf729a5af773" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F7f41193d-b807-4b96-b0a8-cf729a5af773" alt="align-content-start (1)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;align-content: end;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F86ec5bb8-50b0-40e4-96ee-1c0b526a0d67" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F86ec5bb8-50b0-40e4-96ee-1c0b526a0d67" alt="align-content-end (1)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;align-content: center;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fb144cebe-5894-4093-8f8f-f0ca3cec1fa1" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fb144cebe-5894-4093-8f8f-f0ca3cec1fa1" alt="align-content-center (1)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;align-content: stretch;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fe0de1076-18e0-4dde-b568-87e037c2003e" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fe0de1076-18e0-4dde-b568-87e037c2003e" alt="align-content-stretch (2)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;align-content: space-around;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F0592d070-ea96-4782-a579-09237e8efec2" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F0592d070-ea96-4782-a579-09237e8efec2" alt="align-content-space-around (1)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;align-content: space-between;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F8450820f-079e-46a5-a95b-39a53e584c0e" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F8450820f-079e-46a5-a95b-39a53e584c0e" alt="align-content-space-between (4)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;align-content: space-evenly;&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F40ff8385-9e11-4dc4-8c20-398e7229baf9" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F40ff8385-9e11-4dc4-8c20-398e7229baf9" alt="align-content-space-evenlyplus1 (1)"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  CSS Grid items properties
&lt;/h2&gt;

&lt;p&gt;The grid items are contained in a grid container. First, let's take a look at the grid rows and column start and end points. To better understand the concept, &lt;br&gt;
look at the illustration below.&lt;/p&gt;

&lt;p&gt;Illustration ↝&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fef87ec0e-3cc1-424d-9ccc-46900ad5ebe7" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fef87ec0e-3cc1-424d-9ccc-46900ad5ebe7" alt="grid-row-cols"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  column-start &amp;amp; column-end
&lt;/h3&gt;
&lt;h4&gt;
  
  
  The grid-column &amp;amp; grid-row properties
&lt;/h4&gt;

&lt;p&gt;The &lt;code&gt;grid-column&lt;/code&gt; property determines which column(s) an item should appear on. The &lt;code&gt;grid-row&lt;/code&gt; property determines which row(s) an item should be placed on.&lt;br&gt;
The &lt;code&gt;grid-column&lt;/code&gt; is shorthand for &lt;code&gt;grid-column-start&lt;/code&gt; and &lt;code&gt;grid-column-end&lt;/code&gt; properties. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;grid-column-start : 2;
grid-column-end : 4;

/* shorthand */
grid-column : 2 / 4;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;grid-row&lt;/code&gt; is shorthand for &lt;code&gt;grid-row-start&lt;/code&gt; and &lt;code&gt;grid-row-end&lt;/code&gt; properties.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;grid-row-start : 2;
grid-row-end : 4;

/* shorthand */
grid-row : 2 / 4;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h5&gt;
  
  
  The grid-column example:
&lt;/h5&gt;

&lt;p&gt;Here's an example of a grid container with six items(divs):&lt;/p&gt;

&lt;p&gt;&lt;em&gt;HTML&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="grid-container"&amp;gt;
  &amp;lt;div class="grid-item1"&amp;gt;Item 1&amp;lt;/div&amp;gt;
  &amp;lt;div class="grid-item2"&amp;gt;Item 2&amp;lt;/div&amp;gt;
  &amp;lt;div class="grid-item3"&amp;gt;Item 3&amp;lt;/div&amp;gt;
  &amp;lt;div class="grid-item4"&amp;gt;Item 4&amp;lt;/div&amp;gt;
  &amp;lt;div class="grid-item5"&amp;gt;Item 5&amp;lt;/div&amp;gt;
  &amp;lt;div class="grid-item6"&amp;gt;Item 6&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;CSS:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax:&lt;/strong&gt; grid-column: start-line / end-line;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid-item1 {
  grid-column: 1 / 3;
}

.grid-item2 {
  grid-column: 3 / 5;
}

.grid-item3 {
  grid-column: 1 / 4;
}
.grid-item4 {
  grid-column: 4;
}
.grid-item5 {
  grid-column: 1;
}
.grid-item6 {
  grid-column: 2 / 5;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This example uses the &lt;code&gt;grid-column&lt;/code&gt; property to style 6 items in a grid layout.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;.grid-item1&lt;/code&gt; takes up two columns, extending from the first to the third. The &lt;code&gt;.grid-item2&lt;/code&gt; takes up two columns and extends from the third to the fifth.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;.grid-item3&lt;/code&gt; occupies three columns, extending from the first to the fourth. Only the fourth column is occupied by the &lt;code&gt;.grid-item4&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;.grid-item5&lt;/code&gt; takes up one column from the first column to the second column, while the &lt;code&gt;.grid-item6&lt;/code&gt; takes up three columns, spanning from the second &lt;br&gt;
column to the fifth column.&lt;/p&gt;

&lt;p&gt;With the help of these &lt;code&gt;grid-column&lt;/code&gt; values specify each item's position and width within the grid structure, so you can arrange elements precisely and flexibly.&lt;/p&gt;

&lt;p&gt;Illustration↝&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F875f9fde-0b89-44c0-9174-340bc9aad376" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F875f9fde-0b89-44c0-9174-340bc9aad376" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h5&gt;
  
  
  The grid-row example
&lt;/h5&gt;

&lt;p&gt;Here's an example of a grid container with six items(divs):&lt;/p&gt;

&lt;p&gt;&lt;em&gt;HTML&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="grid-container"&amp;gt;
  &amp;lt;div class="grid-item1"&amp;gt;Item 1&amp;lt;/div&amp;gt;
  &amp;lt;div class="grid-item2"&amp;gt;Item 2&amp;lt;/div&amp;gt;
  &amp;lt;div class="grid-item3"&amp;gt;Item 3&amp;lt;/div&amp;gt;
  &amp;lt;div class="grid-item4"&amp;gt;Item 4&amp;lt;/div&amp;gt;
  &amp;lt;div class="grid-item5"&amp;gt;Item 5&amp;lt;/div&amp;gt;
  &amp;lt;div class="grid-item6"&amp;gt;Item 6&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;CSS:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax :&lt;/strong&gt; grid-row: start-line / end-line;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid-item1 {
  grid-row: 1 / 3;
}

.grid-item2 {
  grid-row: 3 / 5;
}

.grid-item3 {
  grid-row: 1 / 4;
}
.grid-item4 {
  grid-row: 4;
}
.grid-item5 {
  grid-row: 1 / 2;
}
.grid-item6 {
  grid-row: 2 / 5;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This example uses the &lt;code&gt;grid-row&lt;/code&gt; property to style 6 items in a grid layout.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;.grid-item1&lt;/code&gt; takes up two rows, extending from the first to the third. The &lt;code&gt;.grid-item2&lt;/code&gt; also takes up two rows and extends from the third to the fifth.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;.grid-item3&lt;/code&gt; occupies three rows, extending from the first to the fourth. The &lt;code&gt;.grid-item4&lt;/code&gt; takes one row.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;.grid-item5&lt;/code&gt; takes up one row from the first row, while the &lt;code&gt;.grid-item6&lt;/code&gt; takes up three rows, spanning from the second row to the fifth row.&lt;/p&gt;

&lt;p&gt;With the help of these &lt;code&gt;grid-row&lt;/code&gt; values, you can specify each item's position and height within the grid layout, so you can arrange elements precisely &lt;br&gt;
and flexibly.&lt;/p&gt;

&lt;p&gt;Illustration ↝&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F77c05bc8-4f18-4fa4-882a-72056d32efb4" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F77c05bc8-4f18-4fa4-882a-72056d32efb4" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also do this using the &lt;code&gt;span&lt;/code&gt; keyword, which is the same thing but easier to read and understand. &lt;/p&gt;

&lt;p&gt;So, what &lt;code&gt;span&lt;/code&gt; does, specify the number of columns/rows each item should span/expand.&lt;/p&gt;

&lt;p&gt;Here is an example of how you can use span in &lt;code&gt;items.grid-item1&lt;/code&gt; and &lt;code&gt;.grid-item2&lt;/code&gt; mentioned above:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid-item1 {
  grid-row: 1 / span 2;
  grid-column: 1 / span 2;
}

.grid-item2 {
  grid-row: 3 / span 2;
  grid-column: 3 / span 2;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Grid area
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;grid-row&lt;/code&gt; and &lt;code&gt;grid-column&lt;/code&gt; are excellent properties, but &lt;code&gt;grid-area&lt;/code&gt; is even greater. The &lt;code&gt;grid-area&lt;/code&gt; property is the shorthand for four values it &lt;br&gt;
requires:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;grid-row-start&lt;/li&gt;
&lt;li&gt;grid-column-start &lt;/li&gt;
&lt;li&gt;grid-row-end&lt;/li&gt;
&lt;li&gt;grid-column-end &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want &lt;em&gt;.item1&lt;/em&gt; to span over 2 rows and 2 columns. You can give it the &lt;code&gt;grid-area&lt;/code&gt; with the starting line of row 1(1), the starting line of column 1(1),&lt;br&gt;
the ending line of row 2(3), and the ending line of column 2(3). You can also use negative values.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax:&lt;/strong&gt; grid-area: row-start / column-start / row-end / column-end;&lt;br&gt;
&lt;em&gt;CSS&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid-item:nth-child(1) {
  grid-area: 1 / 1 / 3 / 3;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here's the illustration:&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F94be43ab-377b-4330-900b-9dd19e24788f" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F94be43ab-377b-4330-900b-9dd19e24788f" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To define these values, you may also use the &lt;code&gt;span&lt;/code&gt; keyword. Here is an example of how to use &lt;code&gt;span&lt;/code&gt; to create the same layout:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid-item:nth-child(1) {
  grid-area: 1 / 1 / span 2 / span 2;
  }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;grid-area&lt;/code&gt; property can also be used to give names to grid items. It is more useful when you dealing with more complex layouts. Though to work with this &lt;br&gt;
first you must set up &lt;code&gt;grid-template-areas&lt;/code&gt;. Once finished, you must include the names from the parent class inside the children(items) classes.&lt;/p&gt;

&lt;p&gt;To begin with, define the &lt;code&gt;grid-template-areas&lt;/code&gt; inside of your grid(parent) container like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid-container {
  display: grid;
  grid-template-columns: 1fr 3fr;
  grid-template-rows: auto 1fr auto;
  grid-template-areas:
    "header header"
    "sidebar main"
    "footer footer";
  gap: 10px;
  height: 100vh;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, use the grid-area to specify the names used in the grid container inside the item classes as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.header {
  grid-area: header;
}

.main {
  grid-area: main;
}

.sidebar {
  grid-area: sidebar;
}

.footer {
  grid-area: footer;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output ↝&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Ff602d8d3-f897-45ca-b464-93e565a6ca4d" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Ff602d8d3-f897-45ca-b464-93e565a6ca4d" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Responsive Grids
&lt;/h3&gt;
&lt;h4&gt;
  
  
  Media Queries
&lt;/h4&gt;

&lt;p&gt;Having a responsive website is way more important than it was before. &lt;/p&gt;

&lt;p&gt;"Mobile devices, excluding tablets, contributed 58.33% of all website traffic worldwide in the first quarter of 2023." - &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fwww.statista.com%2Fstatistics%2F277125%2Fshare-of-website-traffic-coming-from-mobile-devices%2F" rel="noopener noreferrer"&gt;Tiago Bianchi&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You cannot simply take the risk of missing an audience this large that browses on their smartphones.&lt;/p&gt;

&lt;p&gt;You can use media queries to make the example above responsive. Before that, take a look at how it looks in responsive mode before &lt;br&gt;
applying any media queries:&lt;/p&gt;

&lt;p&gt;Illustration ↝&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Ffc837dc5-369a-4897-ba1d-60472fcaaa62" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Ffc837dc5-369a-4897-ba1d-60472fcaaa62" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before Applying Media Queries👆&lt;/p&gt;

&lt;p&gt;Notice that it has the exact same layout as the desktop version. However, it does not look good. In order to make it look better on &lt;br&gt;
mobile mode, we need these items to stack on top of one another. To do this, we may use media queries.&lt;/p&gt;

&lt;p&gt;Here's how to use media queries to accomplish that:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid-container {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto;
  grid-template-areas:
    "header"
    "sidebar"
    "main"
    "footer";
  gap: 10px;
  height: 100vh;
}

.
.
.

@media (min-width: 50em) {
  .grid-container {
    grid-template-columns: 1fr 3fr;
    grid-template-rows: auto 1fr auto;
    grid-template-areas:
      "header header"
      "sidebar main"
      "footer footer";
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You may notice, we only updated only one &lt;code&gt;.grid-container&lt;/code&gt; class in the responsive design code and added media queries for the desktop &lt;br&gt;
version. When &lt;code&gt;grid-template-columns: 1fr&lt;/code&gt; is set, the header, sidebar, main content area, and footer will stack vertically on mobile &lt;br&gt;
devices. &lt;/p&gt;

&lt;p&gt;Result ↝&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F9bc397a4-1ce0-44d8-a742-fae40e970aa1" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F9bc397a4-1ce0-44d8-a742-fae40e970aa1" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After Applying Media Queries 👆&lt;/p&gt;
&lt;h3&gt;
  
  
  Minmax() Function
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;minmax()&lt;/code&gt;function helps you set the &lt;em&gt;minimum&lt;/em&gt; and &lt;em&gt;maximum&lt;/em&gt; grid &lt;br&gt;
track sizes. Using this method, you can give grid objects a &lt;em&gt;minimum&lt;/em&gt; width and let them expand to a &lt;em&gt;maximum&lt;/em&gt; width if there is &lt;br&gt;
extra space.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;For example:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;auto-fit&lt;/code&gt; keyword allows the columns to adjust and fill available space while respecting their &lt;em&gt;minimum&lt;/em&gt; and &lt;em&gt;maximum&lt;/em&gt; sizes. On the other&lt;br&gt;
hand, the &lt;code&gt;auto-fill&lt;/code&gt; keyword ensures that the grid is always filled by adding empty tracks to fill in additional&lt;br&gt;
space. Both &lt;code&gt;auto-fill&lt;/code&gt; and &lt;code&gt;auto-fit&lt;/code&gt; are used in conjunction with the &lt;code&gt;repeat()&lt;/code&gt; function in CSS Grid.&lt;/p&gt;

&lt;p&gt;In addition, there is another sizing function called &lt;code&gt;fit-content()&lt;/code&gt;. The &lt;code&gt;fit-content()&lt;/code&gt; function in CSS Grid makes that grid tracks or items never go smaller than the &lt;em&gt;minimum (min-content)&lt;/em&gt; size or bigger than the &lt;em&gt;maximum(max-content)&lt;/em&gt; size  based on the content. You can make your designs more responsive and flexible by using &lt;code&gt;fit-content()&lt;/code&gt; to create dynamic, flexible grid layouts.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid-container {
  display: grid;
  grid-template-columns: fit-content(200px) 1fr;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Change elements order
&lt;/h3&gt;

&lt;p&gt;CSS Grid Layout allows you to position elements anywhere within the grid, regardless of their order in the HTML code. This functionality&lt;br&gt;
is especially helpful when designing alternate layouts for various screen sizes. By combining media queries and CSS Grid Layout, which&lt;br&gt;
provides a powerful toolkit for precise designs, you can easily achieve precise designs that meet your needs.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;For example:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid-item1 { grid-area: 1 / 2 / 1 / 3; }
.grid-item2 { grid-area: 1 / 4 / 1 / 3; }
.grid-item3 { grid-area: 1 / 1 / 2 / 2; }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output ↝&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fa77256c3-0729-44cb-bd99-6e6a1a04b8cf" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fa77256c3-0729-44cb-bd99-6e6a1a04b8cf" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  The justify-self property
&lt;/h3&gt;

&lt;p&gt;Using the &lt;code&gt;justify-self&lt;/code&gt; property, you can position an item inside the grid container along the &lt;em&gt;main axis(x-axis)&lt;/em&gt;. It may include&lt;br&gt;
one of the following four values:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;justify-self: start | end | center | stretch;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Illustration ↝&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F5b94c5b1-596b-4e3d-8a55-77b05924038f" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2F5b94c5b1-596b-4e3d-8a55-77b05924038f" alt="align-self (1)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The align-self property 
&lt;/h3&gt;

&lt;p&gt;Using the &lt;code&gt;align-self&lt;/code&gt; property, you can position an item inside the grid container along the &lt;em&gt;cross-axis(y-axis)&lt;/em&gt;. It may include one &lt;br&gt;
of the following four values:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;align-self: start | end | center | stretch;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Illustration ↝&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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fb087ebc2-d6e3-488b-94ae-e9b78ff45b9a" 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%2Fgithub.com%2FishratUmar18%2Fupskill-frontend%2Fassets%2F47534248%2Fb087ebc2-d6e3-488b-94ae-e9b78ff45b9a" alt="justify-self (1)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Shorthand Properties
&lt;/h2&gt;

&lt;p&gt;Shorthand properties in CSS allow you to declare and set a number of related properties in one line. It will &lt;br&gt;
reduce the code you write and make your stylesheet smaller. Shorthand properties are usually used for properties with multiple values.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;gap / grid-gap&lt;/code&gt;: Determine the space between tracks and grid items. The gap is a shorthand property for setting both row and column 
gaps, while &lt;code&gt;grid-gap&lt;/code&gt; specifically sets the gap between grid items.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;grid-template&lt;/code&gt;: Define the structure of the grid by specifying rows, columns, and areas. It is shorthand for &lt;code&gt;grid-template-rows&lt;/code&gt;, &lt;br&gt;
&lt;code&gt;grid-template-columns&lt;/code&gt;, and &lt;code&gt;grid-template-areas&lt;/code&gt; properties.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;place-content&lt;/code&gt;: It is shorthand for &lt;code&gt;align-content&lt;/code&gt; and &lt;code&gt;justify-content&lt;/code&gt; properties.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;place-items&lt;/code&gt;: Set the alignment and positioning of individual grid items within the grid. It is shorthand for &lt;code&gt;align-items&lt;/code&gt; and &lt;code&gt;justify-items&lt;/code&gt; properties.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;place-self&lt;/code&gt;: Control the alignment and positioning of a single grid item within its grid cell. It is shorthand for &lt;code&gt;align-self&lt;/code&gt; and &lt;code&gt;justify-self&lt;/code&gt; properties.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;repeat()&lt;/code&gt;: Specify a pattern of repeating grid track sizes within the &lt;code&gt;grid-template-columns&lt;/code&gt; or &lt;code&gt;grid-template-rows&lt;/code&gt; properties.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;p&gt;Interested in learning more? These are some of the best CSS Grid resources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://medium.com/r/?url=https%3A%2F%2Fcss-tricks.com%2Fsnippets%2Fcss%2Fcomplete-guide-grid%2F" rel="noopener noreferrer"&gt;A Complete Guide to CSS Grid&lt;/a&gt; - CSS Tricks&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://medium.com/r/?url=https%3A%2F%2Fweb.dev%2Flearn%2Fcss%2Fgrid%2F" rel="noopener noreferrer"&gt;CSS Grid&lt;/a&gt;- WEB.DEV&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://medium.com/r/?url=https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2Fdocs%2FWeb%2FCSS%2FCSS_Grid_Layout" rel="noopener noreferrer"&gt;CSS Grid Layout&lt;/a&gt; - MDN&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/r/?url=https%3A%2F%2Fdev.to%2Fjoyshaheb%2Fcss-grid-cheat-sheet-illustrated-in-2021-1a3"&gt;CSS Grid Cheatsheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://medium.com/r/?url=https%3A%2F%2Fgridbyexample.com%2F" rel="noopener noreferrer"&gt;Grid by Example&lt;/a&gt; by Rachel Andrew&lt;/li&gt;
&lt;li&gt;Free course - &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fcssgrid.io%2F" rel="noopener noreferrer"&gt;LEARN CSS GRID WITH WES BOS&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/r/?url=https%3A%2F%2Fcssgridgarden.com%2F" rel="noopener noreferrer"&gt;Learn CSS Grid by playing game - Grid Garden&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/r/?url=https%3A%2F%2Fcssgrid-generator.netlify.app%2F" rel="noopener noreferrer"&gt;CSS Grid Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;- Ebook - &lt;a href="https://utsavmeena.com/?wpam_id=33" rel="noopener noreferrer"&gt;Master Flexbox and Grid&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;blockquote&gt;
&lt;p&gt;I'm open to writing opportunities. If you'd like me to write for you, you may email me at &lt;a href="mailto:ishratumar18@gmail.com"&gt;ishratumar18@gmail.com&lt;/a&gt;, or send me a direct message on &lt;a href="https://twitter.com/ishratUmar18" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;=&amp;gt; &lt;a href="https://ishratumar.medium.com/from-zero-to-grid-hero-illustrated-guide-to-css-grid-essentials-cd1531b56431" rel="noopener noreferrer"&gt;Read it on Medium&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;That's pretty much it. I really hope it gives you a better understanding of CSS Grids.&lt;/p&gt;

</description>
      <category>css</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>frontend</category>
    </item>
    <item>
      <title>GitHub repositories for interview questions</title>
      <dc:creator>Ishrat</dc:creator>
      <pubDate>Sat, 15 Jul 2023 11:37:05 +0000</pubDate>
      <link>https://forem.com/ishratumar/github-repositories-for-interview-questions-281a</link>
      <guid>https://forem.com/ishratumar/github-repositories-for-interview-questions-281a</guid>
      <description>&lt;p&gt;As we all know, interviews play an essential role in the hiring process. I can imagine how you would feel if you had the required skills for the job but didn't get hired because you couldn't perform well in the interview. It is possible that you did not prepare properly for it. &lt;/p&gt;

&lt;p&gt;If you only focus on the topics you think are important, they might not be as significant as you think. The best way to increase your chances of success is to follow some great resources that others are also using. &lt;/p&gt;

&lt;p&gt;Here is a list of GitHub repositories with thousands of stars and clones to help you prepare for interviews. The GitHub repositories mentioned in this blog post will greatly help you prepare for interviews.&lt;/p&gt;

&lt;p&gt;With that said, let's get started!&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Awesome interview questions
&lt;/h2&gt;

&lt;p&gt;This is an excellent compilation of interview questions. Almost every language is covered here, including Golang, GraphQL, CSS, Django, Java, JavaScript, and more.&lt;/p&gt;

&lt;p&gt;🔗&lt;a href="https://github.com/DopplerHQ/awesome-interview-questions"&gt;https://github.com/DopplerHQ/awesome-interview-questions&lt;/a&gt;&lt;/p&gt;

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




&lt;h2&gt;
  
  
  2. The algorithms
&lt;/h2&gt;

&lt;p&gt;Having trouble finding algorithms and data structures in the language of your choice? Check out this collection. More than 20 different languages are used to implement all algorithms and data structures. Here you will find proper comments and accessible, relatively easy code in the language of your choice.&lt;br&gt;
🔗 &lt;a href="https://github.com/TheAlgorithms"&gt;https://github.com/TheAlgorithms&lt;/a&gt;&lt;/p&gt;

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




&lt;h2&gt;
  
  
  3. System designer primer
&lt;/h2&gt;

&lt;p&gt;Nowadays, businesses not only solve problems but also think about system design issues. For system design, many of them conduct separate interviews. You can use this repository to get prepared for system design interview questions.&lt;br&gt;
🔗 &lt;a href="https://github.com/donnemartin/system-design-primer"&gt;https://github.com/donnemartin/system-design-primer&lt;/a&gt;&lt;/p&gt;

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




&lt;h2&gt;
  
  
  4. Tech interview handbook
&lt;/h2&gt;

&lt;p&gt;For busy software developers, here is a list of 100 selected coding interview preparation resources. The guide has helped more than 500,000 individuals. Alongside algorithmic questions, it includes other awesome stuff required for interview preparation.&lt;br&gt;
🔗 &lt;a href="https://github.com/yangshun/tech-interview-handbook"&gt;https://github.com/yangshun/tech-interview-handbook&lt;/a&gt; &lt;/p&gt;

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




&lt;h2&gt;
  
  
  5. Coding interview university
&lt;/h2&gt;

&lt;p&gt;This is a well-rounded course of study for those who want to become software engineers. Please know that this study guide is for software engineering only, not front-end or full-stack development.&lt;br&gt;
🔗&lt;a href="https://github.com/jwasham/coding-interview-university"&gt;https://github.com/jwasham/coding-interview-university&lt;/a&gt;&lt;/p&gt;

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




&lt;h2&gt;
  
  
  6. Reactjs interview questions
&lt;/h2&gt;

&lt;p&gt;This is a list of the top 500 ReactJS Interview Questions &amp;amp; Answers. Here you will find questions from the basics to the advanced level. Topics covered in this repository include React Router, React Internationalization, React Testing, React Redux, React Native, React-supported libraries, and more.&lt;br&gt;
🔗 &lt;a href="https://github.com/sudheerj/reactjs-interview-questions"&gt;https://github.com/sudheerj/reactjs-interview-questions&lt;/a&gt;&lt;/p&gt;

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




&lt;h2&gt;
  
  
  7. Vuejs interview questions
&lt;/h2&gt;

&lt;p&gt;This is a list of 300 important VueJS Interview Questions And Answers that you need to know before appearing in an interview.&lt;br&gt;
🔗 &lt;a href="https://github.com/sudheerj/vuejs-interview-questions"&gt;https://github.com/sudheerj/vuejs-interview-questions&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LdYQ_-9h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kr8m0i9hlcnszc8j39dg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LdYQ_-9h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kr8m0i9hlcnszc8j39dg.png" alt="Image description" width="786" height="323"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Angular interview questions
&lt;/h2&gt;

&lt;p&gt;Similar to the repository for Vuejs mentioned above, this repository has 300 Angular Interview Questions and Answers. If you're preparing for an Angular interview, take a look at it.&lt;br&gt;
🔗 &lt;a href="https://github.com/sudheerj/angular-interview-questions"&gt;https://github.com/sudheerj/angular-interview-questions&lt;/a&gt;&lt;/p&gt;

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




&lt;h2&gt;
  
  
  8. Nodejs basics
&lt;/h2&gt;

&lt;p&gt;This repository contains a list of Node.js Basics( v18.x ). This is a great resource for Node.js that you should check out.&lt;br&gt;
🔗 &lt;a href="https://github.com/learning-zone/nodejs-basics"&gt;https://github.com/learning-zone/nodejs-basics&lt;/a&gt;&lt;/p&gt;

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




&lt;h2&gt;
  
  
  9. Javascript questions
&lt;/h2&gt;

&lt;p&gt;This is an awesome repository for JavaScript. Consists of a long list of advanced JavaScript interview questions and answers. This repository is for you if you want to test your understanding of JavaScript, brush up on what you know, or get ready for your coding interview!&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/lydiahallie/javascript-questions"&gt;https://github.com/lydiahallie/javascript-questions&lt;/a&gt;&lt;/p&gt;

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




&lt;blockquote&gt;
&lt;p&gt;I'm open to writing opportunities. If you'd like me to write for you, you may email me at &lt;a href="mailto:ishratumar18@gmail.com"&gt;ishratumar18@gmail.com&lt;/a&gt;, or send me a direct message on &lt;a href="https://twitter.com/ishratUmar18"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Wrap up
&lt;/h2&gt;

&lt;p&gt;That's it for now. Thank you for reading. I genuinely hope that these resources will be helpful to you, and I wish you success in your interview.&lt;br&gt;
If you found it useful, please like, share, and follow &lt;a class="mentioned-user" href="https://dev.to/ishratumar"&gt;@ishratumar&lt;/a&gt; for more interesting posts.&lt;/p&gt;

</description>
      <category>github</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>react</category>
    </item>
    <item>
      <title>6 best animation libraries for your next project</title>
      <dc:creator>Ishrat</dc:creator>
      <pubDate>Fri, 05 May 2023 10:44:29 +0000</pubDate>
      <link>https://forem.com/ishratumar/6-best-animation-libraries-for-your-next-project-504e</link>
      <guid>https://forem.com/ishratumar/6-best-animation-libraries-for-your-next-project-504e</guid>
      <description>&lt;p&gt;Animation libraries are pre-written CSS and JavaScript code libraries used to add animations and transitions to web pages.&lt;br&gt;
It is simpler to add animations to your web pages without having to start from scratch because they offer a wide variety of pre-built animations, easing functions, and other features.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Animate.css
&lt;/h2&gt;

&lt;p&gt;Animate.css is a popular CSS animation library that provides a wide range of cross-browser CSS classes for applying animations to elements.&lt;br&gt;
It is easy to use and requires minimal setup, you can simply add a class to an element to make it animate.&lt;br&gt;
Learn more here: &lt;a href="https://animate.style/"&gt;https://animate.style/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Magic.css
&lt;/h2&gt;

&lt;p&gt;With this CSS animation library, you can create animations and transitions easily and quickly.&lt;br&gt;
It offers a huge selection of pre-built animations and easing functions.&lt;br&gt;
Learn more here: &lt;a href="https://www.minimamente.com/project/magic/"&gt;https://www.minimamente.com/project/magic/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Anime.js
&lt;/h2&gt;

&lt;p&gt;This is a JavaScript animation library that provides a wide range of animation and easing functions. Additionally, it supports complex animations and can be used to make animations based on user interactions.&lt;br&gt;
Learn more here: &lt;a href="https://animejs.com/"&gt;https://animejs.com/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Three.js
&lt;/h2&gt;

&lt;p&gt;You can make intricate 3D animations and visualizations using this JavaScript 3D animation library. It allows you to use lighting, shading, and texture mapping while producing animations.&lt;br&gt;
Learn more here: &lt;a href="https://threejs.org/"&gt;https://threejs.org/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Mo.js
&lt;/h2&gt;

&lt;p&gt;mo.js is an open-source JavaScript animation library that allows developers to create complex, high-performance animations and interactive effects using a simple, easy-to-use API. It makes use of a modular architecture and has a number of ready-made animation modules, including tweening, physics-based motion, and morphing.&lt;br&gt;
It also contains a powerful timeline feature that allows developers to create complex animations with multiple layers and timing effects. Mo.js can be used to create animations for web pages, mobile apps, and other interactive applications.&lt;br&gt;
Learn more here: &lt;a href="https://mojs.github.io/"&gt;https://mojs.github.io/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6. LottieFiles
&lt;/h2&gt;

&lt;p&gt;LottieFiles is a website and toolset that allows designers and developers to create and share vector animations. The animations are created using the open-source software Adobe After Effects. They can be exported as JSON files, and the Lottie library makes it easy to import and play them on any platform. This library is compatible with many different frameworks and platforms, including React Native, iOS, Android, and the web.&lt;br&gt;
Learn more here: &lt;a href="https://lottiefiles.com/"&gt;https://lottiefiles.com/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrap up
&lt;/h2&gt;

&lt;p&gt;Animation libraries are a great way to add visual flair and interactivity to your web and mobile projects. So, what are you waiting for? Start experimenting with animation libraries and see how they can bring your projects to life.&lt;br&gt;
That’s all for now. Thank you so much for reading!&lt;br&gt;
If you’re interested in learning more about web development stuff, be sure to follow &lt;a class="mentioned-user" href="https://dev.to/ishratumar"&gt;@ishratumar&lt;/a&gt;  for more information and updates.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>How to create an image gallery using Tailwind CSS</title>
      <dc:creator>Ishrat</dc:creator>
      <pubDate>Fri, 05 May 2023 10:36:29 +0000</pubDate>
      <link>https://forem.com/ishratumar/how-to-create-an-image-gallery-using-tailwind-css-20ma</link>
      <guid>https://forem.com/ishratumar/how-to-create-an-image-gallery-using-tailwind-css-20ma</guid>
      <description>&lt;p&gt;If you're just getting started or know nothing about Tailwind CSS, this is for you. After reading this and following along, you will understand how Tailwind CSS works. You will learn how to design stunning applications without writing plain CSS code.&lt;/p&gt;

&lt;p&gt;Here we go! If you're ready, let's get started!&lt;/p&gt;

&lt;p&gt;If you have never used Tailwind CSS before, your first question may be, "&lt;strong&gt;What is Tailwind CSS, and why do we use it?&lt;/strong&gt;"&lt;/p&gt;

&lt;p&gt;So let's get the basics out of the way: Tailwind CSS is a framework that offers a collection of pre defined classes that let you create fully customized designs without ever leaving your HTML.&lt;/p&gt;

&lt;p&gt;Even though Tailwind CSS default classes can be very useful, you can also customize them to meet your unique requirements. You can do this by modifying the default configuration file. &lt;/p&gt;

&lt;p&gt;Using the &lt;code&gt;@apply&lt;/code&gt; directive or using the new utility classes made with the &lt;code&gt;@layer&lt;/code&gt; directive, you can also make your own unique classes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation 
&lt;/h2&gt;

&lt;p&gt;To continue working on it, you need to set up Tailwind CSS on your computer. Do not worry, I will show you how to do that; it is really simple. You can install Tailwind CSS using &lt;code&gt;npm&lt;/code&gt;, &lt;code&gt;yarn&lt;/code&gt;, or any other package manager.&lt;/p&gt;

&lt;p&gt;To install with &lt;code&gt;npm&lt;/code&gt;, copy and paste the following command into your terminal and press the Enter key:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install -D tailwindcss
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To install with &lt;code&gt;yarn&lt;/code&gt;, run 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;yarn add tailwindcss
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It will install Tailwind CSS in your project's root directory.&lt;/p&gt;

&lt;p&gt;After that, copy and paste the following code into your terminal and press Enter again.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx tailwindcss init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will generate a &lt;code&gt;tailwind.config.js&lt;/code&gt;file that you can find in the root directory of your project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configuration
&lt;/h2&gt;

&lt;p&gt;Add the code below to your tailwind.config.js file to configure the paths to all of your template files.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ["./src/**/*.{html,js}"],
  theme: {
    extend: {},
  },
  plugins: [],
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Importing CSS 
&lt;/h2&gt;

&lt;p&gt;Add the following code &lt;code&gt;tailwind directives&lt;/code&gt; to your main CSS file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@import 'tailwindcss/base'; 
@import 'tailwindcss/components'; 
@import 'tailwindcss/utilities';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Initiate the building process
&lt;/h2&gt;

&lt;p&gt;Execute the CLI tool to scan your template files for classes and construct your CSS.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx tailwindcss -i ./src/input.css -o ./dist/output.css - watch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Use Tailwind in your HTML
&lt;/h2&gt;

&lt;p&gt;Tailwind CSS provides a lot of utility classes that can be used to apply styles to your HTML elements.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!doctype html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta charset="UTF-8"&amp;gt;
  &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&amp;gt;
  &amp;lt;link href="/dist/output.css" rel="stylesheet"&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
   &amp;lt;button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-8 px-16 m-10 rounded-full"&amp;gt;
   Click me
   &amp;lt;/button&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;text-white&lt;/code&gt; class sets the text color to white, the &lt;code&gt;font-bold&lt;/code&gt; class sets the font weight to bold, the &lt;code&gt;py-8&lt;/code&gt; and &lt;code&gt;px-16&lt;/code&gt; classes set the padding to 8 and 16 respectively, the &lt;code&gt;m-10&lt;/code&gt; class adds a margin of 10, and the &lt;code&gt;rounded-full&lt;/code&gt; class adds rounded corners to the button. The &lt;code&gt;hover:bg-blue-700&lt;/code&gt; class changes the background color to a darker blue on hover.&lt;/p&gt;

&lt;p&gt;See the result of the code above in the example button below.&lt;br&gt;
&lt;strong&gt;What you will see in the browser:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WJB54m3u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rur6v61od8z1cedzwlb2.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WJB54m3u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rur6v61od8z1cedzwlb2.gif" alt="Image description" width="800" height="284"&gt;&lt;/a&gt;&lt;br&gt;
 - -&lt;/p&gt;
&lt;h2&gt;
  
  
  Tailwind CSS Image Gallery
&lt;/h2&gt;

&lt;p&gt;Let's use Tailwind CSS to build a simple photo gallery application. Here is the code to create a simple six-image photo gallery: 3 in the first row and 3 in the second row. You can easily modify the code to include extra rows and images and create your very own unique and beautiful image gallery. I also added a small hover animation to make it more interactive.&lt;/p&gt;
&lt;h2&gt;
  
  
  HTML
&lt;/h2&gt;

&lt;p&gt;At first, Tailwind CSS may seem intimidating, but as you get more comfortable with it, you'll find that it makes your life 10x faster than writing in plain CSS.&lt;br&gt;
Also, if CSS is your area of expertise, picking up Tailwind CSS will be a piece of cake for you. For this reason, you should learn CSS before using its frameworks, such as Tailwind CSS or Bootstrap. Learn the language first, then explore its frameworks - this rule applies to all languages, not only CSS.&lt;br&gt;
The code below is not rocket science; it is just simple HTML and Tailwind CSS classes used in the code below to style your HTML components. Add this code to your &lt;code&gt;index.html&lt;/code&gt; file by copying and pasting.&lt;br&gt;
When you use Tailwind CSS in your projects, your HTML will look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
 &amp;lt;head&amp;gt;
 &amp;lt;meta charset="UTF-8"&amp;gt;
 &amp;lt;title&amp;gt;Image Gallery&amp;lt;/title&amp;gt;
 &amp;lt;link rel="stylesheet" href="style.css"&amp;gt;
 &amp;lt;/head&amp;gt;
 &amp;lt;body class="bg-gray-100 h-screen"&amp;gt;
 &amp;lt;div class="container mx-auto px-4"&amp;gt;
 &amp;lt;div class="grid grid-cols-3 gap-4 mt-10"&amp;gt;
 &amp;lt;div class="bg-cover" 
 style="background-image: url(image.png)"&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;div class="bg-cover" 
 style="background-image: url(image.png)"&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;div class="bg-cover" 
 style="background-image: url(image.png)"&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;div class="bg-cover" 
 style="background-image: url(image.png)"&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;div class="bg-cover" 
 style="background-image: url(image.png)"&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;div class="bg-cover" 
 style="background-image: url(image.png)"&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's learn what each class does. In this example, the &lt;code&gt;grid&lt;/code&gt; class creates a grid with three columns, the &lt;code&gt;gap-4&lt;/code&gt; class specifies a gap of four units between each column, and the container class sets a maximum width for the container and centers it horizontally. The &lt;code&gt;bg-cover&lt;/code&gt; class sets the background image to cover the entire element, and the &lt;code&gt;bg-gray-100&lt;/code&gt; class sets the background color to light gray. The height of the body is set to full-screen height using the &lt;code&gt;h-screen&lt;/code&gt; class.&lt;/p&gt;

&lt;h2&gt;
  
  
  CSS
&lt;/h2&gt;

&lt;p&gt;You need to import Tailwind CSS into the CSS file first if you're using the &lt;strong&gt;CodePen&lt;/strong&gt; editor. On a local machine, all you have to do is install and configure it using the methods mentioned above, and you're good to go. Just copy the code, paste it into the appropriate files, and run the application.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@import url('https://cdn.jsdelivr.net/npm/tailwindcss@latest/dist/tailwind.min.css');
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800;900&amp;amp;display=swap");
@tailwind base;
@tailwind components;
@tailwind utilities;
/* Animations */
@keyframes fadeIn {
 0% { opacity: 0; }
 100% { opacity: 1; }
}
@keyframes slideIn {
 0% { transform: translateY(50px); opacity: 0; }
 100% { transform: translateY(0); opacity: 1; }
}
.bg-gray-100 {
 background-color: #f7fafc;
}
.h-screen {
 height: 100vh;
}
.container {
 width: 100%;
 padding-right: 1rem;
 padding-left: 1rem;
 margin-right: auto;
 margin-left: auto;
}
.mt-10 {
 margin-top: 2.5rem;
}
.grid {
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
 grid-gap: 1rem;
 justify-items: center;
}
.grid-cols-3 {
 grid-template-columns: repeat(3, minmax(0, 1fr));
}
.gap-4 {
 gap: 1rem;
}
.bg-cover {
 background-size: cover;
 background-repeat: no-repeat;
 background-position: center center;
 height: 200px;
 width: 100%;
 cursor: pointer;
}
.bg-cover:hover {
 transform: scale(1.05);
 transition: transform 0.3s ease-in-out;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What you will get
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vQ9sGeWP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pdc5sga5h3y8fb24uq3p.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vQ9sGeWP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pdc5sga5h3y8fb24uq3p.gif" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CodePen&lt;/strong&gt;: &lt;a href="https://codepen.io/ishratUmar18/pen/rNZWxZZ"&gt;https://codepen.io/ishratUmar18/pen/rNZWxZZ&lt;/a&gt;&lt;br&gt;
 - -&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrap up
&lt;/h2&gt;

&lt;p&gt;That's all for today! With these steps, you will understand how to use Tailwind CSS in your projects. You can learn more about Tailwind CSS and its features from the &lt;a href="https://tailwindcss.com/docs"&gt;Official Documentation&lt;/a&gt;. Don’t forget to mention me on &lt;a href="https://twitter.com/@ishratUmar18"&gt;Twitter&lt;/a&gt; when you build your beautiful image gallery using Tailwind CSS. Also, follow me for more content and subscribe to my newsletter to read the posts directly in your email. This way, you don’t have to open a browser to read.&lt;/p&gt;

&lt;p&gt;Happy building :)&lt;/p&gt;

</description>
      <category>tailwindcss</category>
      <category>javascript</category>
      <category>frontend</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>15 Awesome CSS Properties You Need to Know 🎯</title>
      <dc:creator>Ishrat</dc:creator>
      <pubDate>Mon, 24 Apr 2023 17:17:25 +0000</pubDate>
      <link>https://forem.com/ishratumar/15-awesome-css-properties-you-need-to-know-5bj1</link>
      <guid>https://forem.com/ishratumar/15-awesome-css-properties-you-need-to-know-5bj1</guid>
      <description>&lt;p&gt;Let’s learn some of the best CSS tips and tricks to boost your workflow and design. These CSS properties will help any developer build a project quickly and efficiently.&lt;br&gt;
I have included the CodePen link at the end of the article, where you can find all these examples in action.&lt;/p&gt;

&lt;p&gt;With that said, let’s get started.🤩&lt;/p&gt;
&lt;h2&gt;
  
  
  1. CSS :in-range and :out-of-range pseudo-classes
&lt;/h2&gt;

&lt;p&gt;These pseudo-classes are used to style inputs within and outside specified range limits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(a) :in-range&lt;/strong&gt;&lt;br&gt;
The input&amp;gt; element is in-range if its current value is between the bounds of the min and max attributes.&lt;/p&gt;

&lt;p&gt;This pseudo-class makes it easy to determine whether a field’s current value is acceptable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(b) :out-of-range&lt;/strong&gt;&lt;br&gt;
The input&amp;gt; element is out-of-range if its current value is outside the bounds of the min and max attributes.&lt;/p&gt;

&lt;p&gt;It gives the user a visual indication if a field value exceeds its range.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CSS Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/* in-range */
input:in-range{
background-color: rgba(0, 255, 0, 0.25);
}
/* out-of-range */
input:out-of-range{
background-color: rgba(255, 0, 0, 0.25);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;You should know that these pseudo-classes only apply to elements with a range restriction. Without this limitation, the element could not be &lt;strong&gt;in-range&lt;/strong&gt; or &lt;strong&gt;out-of-range&lt;/strong&gt;. Read more &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:in-range"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. grayscale( ) function
&lt;/h2&gt;

&lt;p&gt;You can use the value 100% to convert images from color to black and white. When you set this value to 0%, your image will remain the same.&lt;/p&gt;

&lt;p&gt;Using a value of 100% will convert your image to black and white. This means that there will be no color in the photograph.&lt;br&gt;
You can use values between 0 and 100% to create a variety of different effects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CSS Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grayscale-image{
filter: grayscale(100%);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;Image before and after applying the grayscale( ) function.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Glass Effect
&lt;/h2&gt;

&lt;p&gt;You can add the Glass Effect to your next project using a few lines of code. Yes, it really is that easy. Glass effects are beautiful and add elegance to your design.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://css.glass/"&gt;Glass.CSS&lt;/a&gt; is the most popular glassmorphism generator, where you can create CSS Glass Effects for your project for free. All you need to do is adjust some settings according to your needs and copy-paste the CSS code into your project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CSS Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.glass-effect{
   -webkit-backdrop-filter: blur(6.2px);
   backdrop-filter: blur(6.2px);
   background: rgba(255, 255, 255, 0.4);
   border-radius: 16px;
   border: 1px solid rgba(255, 255, 255, 0.24); 
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt;&lt;/p&gt;

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

&lt;h2&gt;
  
  
  4. Use the following CSS code to style text
&lt;/h2&gt;

&lt;p&gt;These are some very basic text styling tips that everyone should know. However, there are many other advanced options available as well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CSS Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;p{
  font-family: Helvetica, Arial, sans-serif;
  font-size: 5rem;
  text-transform: capitalize;
  text-shadow: 2px 2px 2px pink, 1px 1px 2px pink;
  text-align: center;
  font-weight: normal;
  line-height: 1.6;
  letter-spacing: 2px;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  5. CSS clamp( ) function
&lt;/h2&gt;

&lt;p&gt;The CSS &lt;strong&gt;clamp( )&lt;/strong&gt; function restricts a value to a range between two upper and lower bounds. There must be a preferred value, a minimum value, and a maximum value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Clamp( )&lt;/strong&gt; comes in handy when font sizes change depending on the viewport.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CSS Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;p{
  font-size: clamp(1.8rem, 2.5vw, 2.8rem);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Want to learn more about the clamp function? Check out the explanation on the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/clamp"&gt;MDN web docs&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Center a div
&lt;/h2&gt;

&lt;p&gt;The most important task for a developer is centering a div. There are so many other options for centering a div. In this example, we used CSS flexbox to center a div horizontally and vertically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CSS Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;div{
  display: flex;
  justify-content: center;
  align-items: center;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  7. Gradual CSS Linear Gradient
&lt;/h2&gt;

&lt;p&gt;To create a Gradual CSS Linear Gradient, simply use the CSS code below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CSS Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;div {
    background: linear-gradient(35deg, #CCFFFF, #FFCCCC, rgb(204, 204, 255));
    border-radius: 20px;
    width: 70%;
    height: 400px;
    margin: 50px auto;
  }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt;&lt;/p&gt;

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

&lt;h2&gt;
  
  
  8. CSS Shake Effect
&lt;/h2&gt;

&lt;p&gt;This "shake" animation effect shakes an input field when a user enters invalid input. It is simple but elegant. For instance, the input field will shake if a user enters numbers in a text field instead of letters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HTML Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;input id="name" type="text" placeholder="Enter your name" pattern="[A-Za-z]*"/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;CSS Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;input:invalid{
      animation: shake 0.2s ease-in-out 0s 2;
      box-shadow: 0 0 0.4em red;
}
  @keyframes shake {
      0% { margin-left: 0rem; }
      25% { margin-left: 0.5rem; }
      75% { margin-left: -0.5rem; }
      100% { margin-left: 0rem; }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HVaM5cr1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8lwmna37rl1sdtlk0j2r.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HVaM5cr1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8lwmna37rl1sdtlk0j2r.gif" alt="Image description" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Text Overflow
&lt;/h2&gt;

&lt;p&gt;You can use this property to truncate overflowing text. It can be clipped and displayed with an ellipsis (...) or with a custom string.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CSS Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.text {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: clip;
  width: 200px;
 }
div.text {
  white-space: nowrap; 
  width: 200px; 
  overflow: hidden;
  text-overflow: ellipsis;
  border: 1px solid #000000;
}  
div.text:hover {
  overflow: visible;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  10. 'column-count' Property
&lt;/h2&gt;

&lt;p&gt;It specifies the number of columns into which an element should be divided.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CSS Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;p{
column-count: 2;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result&lt;/strong&gt;&lt;/p&gt;

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

&lt;h2&gt;
  
  
  11. CSS Animations
&lt;/h2&gt;

&lt;p&gt;Animation changes an element’s style gradually. It can only be used if keyframes are specified first. A keyframe describes how an animated element appears at a specific point in an animation sequence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CSS Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;div{
  width: 200px;
  height: 200px;
  background-color: blue;
  animation-name: square;
  animation-duration: 8s;
}
@keyframes square{
  from {background-color: blue;}
  to {background-color: black;}
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  12. Shadow Effects
&lt;/h2&gt;

&lt;p&gt;Using CSS, you can add effects both to text and elements. Define properties as text-shadow and box-shadow. Use text-shadow to add shadow to text and box-shadow to add shadow to elements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(i) text-shadow:&lt;/strong&gt; It gives the text a shadow.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;h1{
  color: blue;
  text-shadow: 2px 2px 4px #000000;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;(ii) box-shadow:&lt;/strong&gt; It is used to give the elements a shadow effect. The actual div in the example below is purple, and the box shadow is sky-blue and is set 10 pixels to the right and bottom.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;div{
  width: 200px;
  height: 200px;
  padding: 15px;
  background-color: purple;
  box-shadow: 10px 10px skyblue;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt;&lt;/p&gt;

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

&lt;h2&gt;
  
  
  13. CSS Clipping
&lt;/h2&gt;

&lt;p&gt;Using the clip-path property, you can only show a portion of an element while concealing the rest.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CSS Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.bg{
  height: 100%;
  width: 100%;
  background-color: rgba(199, 62, 133, 0.9);
  clip-path: polygon(100% 0, 100% 0, 100% 51%, 0 100%, 0 90%, 0 52%, 0 51%);
  position: absolute;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://bennettfeely.com/clippy/"&gt;Clippy-CSS &lt;/a&gt;**clip-path **maker is a quick and easy way to create complex shapes in CSS by clipping an element to a basic shape (circle, ellipse, polygon, or inset) or an SVG source.&lt;/p&gt;

&lt;h2&gt;
  
  
  14. CSS background-blend-mode Property
&lt;/h2&gt;

&lt;p&gt;This property describes how the background color and image (or two images) should blend.&lt;/p&gt;

&lt;p&gt;A list of blend modes corresponding to each background image makes up the value. Blending mode specifies how background layers blend (color or picture).&lt;/p&gt;

&lt;p&gt;You can make stunning backgrounds with the background-blend-mode property.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CSS Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;div{
   width: 600px;
   height: 400px;
   background-repeat: no-repeat, repeat;
   background-position: center;
   background-image: url("flower.png"), url("background-image.png");
   background-blend-mode: color;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;There are some other options available as well. Check this out on W3Schools if you want to learn more about this property.&lt;/p&gt;

&lt;h2&gt;
  
  
  15. Hue Rotate Animation
&lt;/h2&gt;

&lt;p&gt;Hue-rotate animation can be added to websites’ hero sections and buttons. For example, the hero section of a weather forecasting website will look amazing with this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CSS Code&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;button {
  background: linear-gradient(35deg, #8C52FF, #C669FF);
  animation: hue-rotate 3s linear infinite alternate;
}
@keyframes hue-rotate {
  to {
    filter: hue-rotate(85deg);
 }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Result
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_OWzlj1i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ft4ksmmtyaeh4rlbgl43.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_OWzlj1i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ft4ksmmtyaeh4rlbgl43.gif" alt="Image description" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Finally
&lt;/h2&gt;

&lt;p&gt;Thanks for reading! If you enjoyed it, please like it, comment below, and follow me, &lt;a class="mentioned-user" href="https://dev.to/ishratumar"&gt;@ishratumar&lt;/a&gt; for more.&lt;/p&gt;

&lt;p&gt;You can also follow me on &lt;a href="https://twitter.com/ishratUmar18"&gt;Twitter &lt;/a&gt;for helpful tech-related tips and tricks.&lt;/p&gt;

&lt;p&gt;And maybe you will love my &lt;a href="https://codepen.io/ishratUmar18"&gt;CodePen &lt;/a&gt;and &lt;a href="https://github.com/ishratUmar18"&gt;GitHub&lt;/a&gt;, where I have already shared some great web development-related tips and cheat sheets.&lt;/p&gt;

&lt;p&gt;That’s all for this article; I hope it was helpful. :)&lt;/p&gt;

&lt;p&gt;Happy learning ❣&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>productivity</category>
    </item>
    <item>
      <title>8 most popular React state management libraries</title>
      <dc:creator>Ishrat</dc:creator>
      <pubDate>Thu, 06 Apr 2023 10:14:17 +0000</pubDate>
      <link>https://forem.com/ishratumar/what-is-react-state-management-3na6</link>
      <guid>https://forem.com/ishratumar/what-is-react-state-management-3na6</guid>
      <description>&lt;p&gt;List of 8 super useful React State Management Libraries - Learn which one you should use&lt;/p&gt;

&lt;h2&gt;
  
  
  What is React State Management?
&lt;/h2&gt;

&lt;p&gt;React components have built-in objects called states. A React state is similar to a JavaScript data structure. Components use the state to store reusable assets. It is possible for the state of a component to change frequently, which requires the component to be re-rendered whenever the state changes. &lt;br&gt;
When it comes to managing React states, it is not as straightforward as using simple React hooks like useState or useReducer.&lt;/p&gt;

&lt;p&gt;There are a large number of states, and there are also a large number of state management libraries available, and this number is expanding every day. Therefore, the best approach is to select the one that best meets your needs and get to know them all in case anything better emerges.&lt;/p&gt;

&lt;p&gt;List of some most popular RSM libraries&lt;/p&gt;
&lt;h2&gt;
  
  
  1. Redux
&lt;/h2&gt;

&lt;p&gt;Before choosing any library, you should know what kind of problem you are having. Don’t use it just because someone told you about it. Before using it, do your homework. Not all apps need Redux. You should use Redux when managing states locally becomes messy. Using Redux requires you to learn more concepts and write more code.&lt;/p&gt;

&lt;p&gt;See the illustration below to understand how Redux works:&lt;/p&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%2Fuploads%2Farticles%2F3uk4k7po79yyvdrw8h48.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%2Fuploads%2Farticles%2F3uk4k7po79yyvdrw8h48.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some of the advantages of Redux are its community support, server-side rendering, easy debugging, and state persistence. You can use Redux with React or any other library. Including dependencies, it weighs only 2 KB.&lt;/p&gt;

&lt;p&gt;Dan Abramov, one of the redux developers, states:&lt;/p&gt;

&lt;p&gt;I would like to amend this: don’t use Redux until you have problems with vanilla React.&lt;/p&gt;

&lt;p&gt;Link :&lt;a href="https://redux.js.org/" rel="noopener noreferrer"&gt;https://redux.js.org/&lt;/a&gt;&lt;/p&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%2Fuploads%2Farticles%2F7268luzjsfw2og2e8ith.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%2Fuploads%2Farticles%2F7268luzjsfw2og2e8ith.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  2. Redux Toolkit
&lt;/h2&gt;

&lt;p&gt;When developing redux apps, the Redux Toolkit is recommended. It makes your code much better. Redux Toolkit incorporates our suggested best practices, simplifies most Redux tasks, prevents common mistakes, and makes it easier to write Redux applications.&lt;/p&gt;

&lt;p&gt;Install:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# NPM
npm install @reduxjs/toolkit

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

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Yarn
yarn add @reduxjs/toolkit

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

&lt;/div&gt;



&lt;p&gt;Link: &lt;a href="http://https//:redux-toolkit.js.org/" rel="noopener noreferrer"&gt;http://https//:redux-toolkit.js.org/&lt;/a&gt;&lt;/p&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%2Fuploads%2Farticles%2Fex6tkh4r4116ytdzc6q1.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%2Fuploads%2Farticles%2Fex6tkh4r4116ytdzc6q1.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Rematch
&lt;/h2&gt;

&lt;p&gt;Rematch is Redux's best practice. Switch statements, thunks, action types, and action creators have been removed.&lt;/p&gt;

&lt;p&gt;As a replacement for Redux, Rematch has many great features.&lt;/p&gt;

&lt;p&gt;Rematch eliminates boilerplate, is lightweight (less than 2 KB), needs no configuration, and supports TypeScript and React devtools.&lt;/p&gt;

&lt;p&gt;Additionally, it supports React Native, enforces best practices, has hot reloading, adds reducers dynamically, allows you to set up multiple stores, is expandable with plugins, and is simple to use.&lt;/p&gt;

&lt;p&gt;Link: &lt;a href="https://rematchjs.org/" rel="noopener noreferrer"&gt;https://rematchjs.org/&lt;/a&gt;&lt;/p&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%2Fuploads%2Farticles%2Fvyomaib3q75dvhbv16ys.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%2Fuploads%2Farticles%2Fvyomaib3q75dvhbv16ys.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Recoil
&lt;/h2&gt;

&lt;p&gt;Recoil is an open-source React state management library developed by Facebook. It’s more similar to React. Throughout the application, states are passed through atoms and selectors. This reduces unnecessary re-rendering and increases performance. Recoil is an advanced approach to React state management.&lt;/p&gt;

&lt;p&gt;See the illustration below to understand how Recoil works:&lt;/p&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%2Fuploads%2Farticles%2F1kjg696drar4o46cwvrj.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%2Fuploads%2Farticles%2F1kjg696drar4o46cwvrj.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Link: &lt;a href="https://recoiljs.org/" rel="noopener noreferrer"&gt;https://recoiljs.org/&lt;/a&gt;&lt;/p&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%2Fuploads%2Farticles%2Fzbkz2xci7lxm4n6o3qik.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%2Fuploads%2Farticles%2Fzbkz2xci7lxm4n6o3qik.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Hookstate
&lt;/h2&gt;

&lt;p&gt;Small most concise, fast state management library that is based on React hook.&lt;/p&gt;

&lt;p&gt;Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Flexible API&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Easy to learn&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Incredibly Fast&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Better performance&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Supports TypeScript&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Extensible with Plugins&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Link: &lt;a href="https://hookstate.js.org/" rel="noopener noreferrer"&gt;https://hookstate.js.org/&lt;/a&gt;&lt;/p&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%2Fuploads%2Farticles%2Fbn68tsq86ptch6nts34m.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%2Fuploads%2Farticles%2Fbn68tsq86ptch6nts34m.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Jotai
&lt;/h2&gt;

&lt;p&gt;Jotai is a minimalist yet flexible library to manage a simple React global state.&lt;/p&gt;

&lt;p&gt;In comparison to Recoil, Jotai has many features. From what I have learned about Recoil and Jotai, if you choose one library from these two, choose Jotai. Recoil has issues with memory leaks. Recoil’s performance is superior to Jotai’s, has less boilerplate and a smaller core API, etc.&lt;/p&gt;

&lt;p&gt;Some of the main features of Jotai:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;TypeScript focused&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No extra re-render&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No actions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No stores&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No reducers&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No dispatchers&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want to learn more, read this &lt;a href="https://blog.logrocket.com/jotai-vs-recoil-what-are-the-differences/" rel="noopener noreferrer"&gt;article &lt;/a&gt;and watch free &lt;a href="https://egghead.io/courses/manage-application-state-with-jotai-atoms-2c3a29f0" rel="noopener noreferrer"&gt;course &lt;/a&gt;for more detailed information.&lt;/p&gt;

&lt;p&gt;Link: &lt;a href="https://jotai.org/" rel="noopener noreferrer"&gt;https://jotai.org/&lt;/a&gt;&lt;/p&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%2Fuploads%2Farticles%2Fdpebdxidfk142esbhrnp.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%2Fuploads%2Farticles%2Fdpebdxidfk142esbhrnp.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Zustand
&lt;/h2&gt;

&lt;p&gt;There is probably no doubt that Redux is the most popular library for managing global states. Nevertheless, libraries like Zustand manage global states more pragmatically and straightforwardly.&lt;/p&gt;

&lt;p&gt;Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Scalable and fast&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It does not require a boilerplate&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Compared to Redux, it is less complicated&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A smaller number of lines of code&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Developers have responded positively&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For more information read this Article &lt;a href="https://blog.logrocket.com/managing-react-state-zustand/" rel="noopener noreferrer"&gt;Managing React state with Zustand&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Link: &lt;a href="https://docs.pmnd.rs/zustand/getting-started/introduction" rel="noopener noreferrer"&gt;https://docs.pmnd.rs/zustand/getting-started/introduction&lt;/a&gt;&lt;/p&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%2Fuploads%2Farticles%2Fe8wxodskhc63x9yavb5l.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%2Fuploads%2Farticles%2Fe8wxodskhc63x9yavb5l.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  8. MobX
&lt;/h2&gt;

&lt;p&gt;It is a simple and straightforward state management library that applies reactive functional programming. The library is lightweight, has minimal code to write, and has no boilerplate. It provides architectural freedom and effortless, optimal rendering.&lt;/p&gt;

&lt;p&gt;See the illustration below to better understand the concept of MobX.&lt;/p&gt;

&lt;p&gt;Link: &lt;a href="https://mobx.js.org" rel="noopener noreferrer"&gt;https://mobx.js.org&lt;/a&gt;&lt;/p&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%2Fuploads%2Farticles%2Fx10e9qgl2zl3wu7mzomg.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%2Fuploads%2Farticles%2Fx10e9qgl2zl3wu7mzomg.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrap Up
&lt;/h2&gt;

&lt;p&gt;Thank you so much for reading. If you found it helpful, kindly let me know by clapping, sharing, and leaving a comment.&lt;/p&gt;

&lt;p&gt;Follow me if you’re interested in reading more, and don’t forget to subscribe to my newsletter to receive the stories in your inbox.&lt;/p&gt;

&lt;p&gt;Enjoy your time. Happy learning :))&lt;/p&gt;

&lt;p&gt;Find me on: &lt;a href="https://ishratumar.medium.com/" rel="noopener noreferrer"&gt;Medium &lt;/a&gt;| &lt;a href="https://twitter.com/ishratUmar18" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; | &lt;a href="https://github.com/ishratUmar18/" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; | &lt;a href="https://hashnode.com/@ishratUmar18" rel="noopener noreferrer"&gt;Hashnode&lt;/a&gt; | &lt;a href="https://dev.to/ishratumar"&gt;DEV.to&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>nextjs</category>
      <category>react</category>
      <category>redux</category>
    </item>
    <item>
      <title>Master full-stack development</title>
      <dc:creator>Ishrat</dc:creator>
      <pubDate>Sat, 11 Mar 2023 21:26:32 +0000</pubDate>
      <link>https://forem.com/ishratumar/master-full-stack-development-51cn</link>
      <guid>https://forem.com/ishratumar/master-full-stack-development-51cn</guid>
      <description>&lt;p&gt;There are many options available for those wanting to learn full-stack development, making it difficult to decide which course to take. For your convenience, I have reduced the list to the top 5 suggestions, all of which cover a wide range of fundamental web development skills.&lt;/p&gt;

&lt;p&gt;At the end of the day, the course you select will depend on your requirements and learning preferences. Any of these top suggestions, however, will provide you with well-rounded knowledge and prepare you for a rewarding career in full-stack web development.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. The Odin Project
&lt;/h2&gt;

&lt;p&gt;The Odin Project offers free web development courses online. During the program, students will learn the skills they need to become full-stack web developers. Project-based learning is an exclusive feature of the Odin Project. Through the course, students work on real-world projects to develop practical skills and build a portfolio of work they can showcase to potential employers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It teaches you the following technologies:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTML&lt;/li&gt;
&lt;li&gt;CSS&lt;/li&gt;
&lt;li&gt;JavaScript&lt;/li&gt;
&lt;li&gt;Git &lt;/li&gt;
&lt;li&gt;databases &lt;/li&gt;
&lt;li&gt;Ruby/Ruby on Rails &lt;/li&gt;
&lt;li&gt;Node.js&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;➤Link: &lt;a href="https://www.theodinproject.com/" rel="noopener noreferrer"&gt;https://www.theodinproject.com/&lt;/a&gt;&lt;/p&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%2Fuploads%2Farticles%2F2f6eo7gkbuzgh1e7r8az.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%2Fuploads%2Farticles%2F2f6eo7gkbuzgh1e7r8az.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Free Full Stack Open Course
&lt;/h2&gt;

&lt;p&gt;Anyone interested in learning full-stack web development should check out Free Full Stack Open Course, an excellent free resource. This course has something to offer everyone, whether you're a beginner or a professional.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It teaches you the following technologies:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React and Redux&lt;/li&gt;
&lt;li&gt;Node.js&lt;/li&gt;
&lt;li&gt;MongoDB&lt;/li&gt;
&lt;li&gt;GraphQL&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;➤ Link: &lt;a href="https://fullstackopen.com/en/" rel="noopener noreferrer"&gt;https://fullstackopen.com/en/&lt;/a&gt;&lt;/p&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%2Fuploads%2Farticles%2Fz12srx3xozcich3q0u4y.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%2Fuploads%2Farticles%2Fz12srx3xozcich3q0u4y.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Full-stack Developer
&lt;/h2&gt;

&lt;p&gt;Become a Full-stack developer by building 8 advanced full-stack web applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For those who want to:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Practice Front-end libraries and build complete applications.&lt;/li&gt;
&lt;li&gt;Become a Full-stack developer.&lt;/li&gt;
&lt;li&gt;Building websites with real-life practices.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;➤ Link: &lt;a href="https://devchallenges.io/paths/full-stack-developer" rel="noopener noreferrer"&gt;https://devchallenges.io/paths/full-stack-developer&lt;/a&gt;&lt;/p&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%2Fuploads%2Farticles%2Fcbz8ngrb02gbkora796y.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%2Fuploads%2Farticles%2Fcbz8ngrb02gbkora796y.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Full-Stack Engineer by Codecademy
&lt;/h2&gt;

&lt;p&gt;As a full-stack developer, you need to learn many technologies. It's very accurate to say that a full-stack developer is a master of many trades and a jack of all trades who can complete a project from beginning to end. By following this well-curated career path, you can develop the specialized skills and portfolio necessary to begin your career as a Full-Stack Engineer.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Consists of JavaScript, Node.JS, SQL, Express.JS, React, TDD, and other technologies&lt;/li&gt;
&lt;li&gt;Create projects, write live code, and prepare for interviews.&lt;/li&gt;
&lt;li&gt;Obtain a professional certification in 4–8 months after completing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;➤Link: &lt;a href="https://join.codecademy.com/learn/paths/full-stack-engineer-career-path/" rel="noopener noreferrer"&gt;https://join.codecademy.com/learn/paths/full-stack-engineer-career-path/&lt;/a&gt;&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%2Fuploads%2Farticles%2Fg5j535vb6s0m6w9ml3tv.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%2Fuploads%2Farticles%2Fg5j535vb6s0m6w9ml3tv.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Complete Web Developer Bootcamp by Udemy
&lt;/h2&gt;

&lt;p&gt;This course is also highly regarded in the industry and comprehensively covers the important skills needed for full-stack development. Despite the fact that it is a paid course, you can purchase it during a sale at a reduced price. While you will have to pay for the course, the knowledge and skills you acquire will undoubtedly be valuable and well worth the investment. I highly recommend this course if you prefer to learn through tutorials and practical exercises.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you'll learn:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make 16 web development projects for your portfolio so that you can apply for junior developer jobs.&lt;/li&gt;
&lt;li&gt;Discover the latest technologies, such as Javascript, React, Node, and even Web3.&lt;/li&gt;
&lt;li&gt;You will be able to create ANY website after completing the course.&lt;/li&gt;
&lt;li&gt;Learn professional developer best practices.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;➤Link: &lt;a href="https://www.udemy.com/course/the-complete-web-development-bootcamp/" rel="noopener noreferrer"&gt;https://www.udemy.com/course/the-complete-web-development-bootcamp/&lt;/a&gt;&lt;/p&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%2Fuploads%2Farticles%2Fxdsqvvd0le9x2ifbnmj3.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%2Fuploads%2Farticles%2Fxdsqvvd0le9x2ifbnmj3.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Wrap Up
&lt;/h2&gt;

&lt;p&gt;For now, that is all! Good luck with your full-stack development journey, and I hope you succeed. I really hope you find it helpful; if so, don't forget to like and share it with others. Follow me &lt;a class="mentioned-user" href="https://dev.to/ishratumar"&gt;@ishratumar&lt;/a&gt; for more. If you have any questions, ask me on &lt;a href="https://twitter.com/ishratUmar18" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy learning!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>node</category>
    </item>
    <item>
      <title>Next.js vs. React: Which is the Best for Your Project</title>
      <dc:creator>Ishrat</dc:creator>
      <pubDate>Sun, 26 Feb 2023 11:39:16 +0000</pubDate>
      <link>https://forem.com/ishratumar/nextjs-vs-react-which-is-the-best-for-your-project-1eim</link>
      <guid>https://forem.com/ishratumar/nextjs-vs-react-which-is-the-best-for-your-project-1eim</guid>
      <description>&lt;p&gt;In this story, we are going to talk about React.js and Next.js to find out which one we should use in our projects to get the most benefit.&lt;/p&gt;

&lt;p&gt;The purpose of this story is not to compare Next with React. Instead, it is meant to help you understand both so that you can decide whether or not to use Next in your projects.&lt;/p&gt;

&lt;p&gt;Let’s first take a deeper look at React.js and Next.js separately.&lt;/p&gt;

&lt;p&gt;So, let's get started!&lt;/p&gt;

&lt;h2&gt;
  
  
  React.js
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://reactjs.org/" rel="noopener noreferrer"&gt;React&lt;/a&gt; is a JavaScript library that is used to create user interfaces with the help of UI components. Components are small, independent, and reusable pieces of code that make a large application easy to manage. It is a free and open-source front-end JavaScript library that is maintained by Meta.&lt;/p&gt;

&lt;p&gt;ReactJS is more popular than any other front-end development library; you should learn it if you want to be a front-end developer. There are many opportunities for developers who are proficient in ReactJS because of the rising demand for ReactJS developers.&lt;/p&gt;

&lt;p&gt;I've written a story explaining ReactJS and its fundamental concepts to give beginners a quick overview.&lt;/p&gt;

&lt;p&gt;Check it out &lt;a href="https://ishratumar.medium.com/what-is-react-react-basics-for-beginners-e44ff22418d3" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next.js
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://nextjs.org/" rel="noopener noreferrer"&gt;Next.js&lt;/a&gt; is a JavaScript framework that is built by &lt;a href="https://vercel.com/" rel="noopener noreferrer"&gt;Vercel&lt;/a&gt;, Facebook, and Google and is based on &lt;a href="https://nodejs.org/en/" rel="noopener noreferrer"&gt;Node.js&lt;/a&gt; and &lt;a href="https://babeljs.io/" rel="noopener noreferrer"&gt;Babel.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This may seem strange since many React websites are built on Next.js. React websites are typically built on Next.js to simplify server-side rendering since Next.js offers all the functionality you need to create a website that works right out of the box. Next.js has comprehensive documentation. I believe that documentation is one of the reasons it has become more popular.&lt;/p&gt;




&lt;h2&gt;
  
  
  ReactJS vs NEXT.js
&lt;/h2&gt;

&lt;p&gt;Let's take a look at two of them and then decide which one to use:&lt;/p&gt;

&lt;h3&gt;
  
  
  Workflow
&lt;/h3&gt;

&lt;p&gt;Because React is a library, you need to create your own workflow. Next is essentially a workflow that became a framework because of its usefulness. Next is built on React and is intended to make development simpler and faster. In a React project, Next is often preferred because of its speed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Performance
&lt;/h3&gt;

&lt;p&gt;Next.js supports automatic server-side rendering. Websites built with Next.js are very fast because of the server-side rendering. React would require another library for server-side rendering since it only supports client-side rendering.&lt;/p&gt;

&lt;p&gt;Check out the article below I wrote on React State Management Libraries: &lt;a href="https://javascript.plainenglish.io/what-is-react-state-management-1937c49de5c4" rel="noopener noreferrer"&gt;What is React State Management&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Beginners Friendly
&lt;/h3&gt;

&lt;p&gt;Next.js is a great option for developers who are just getting started with React.&lt;/p&gt;

&lt;p&gt;It's saving developers the time and effort of setting up and customizing their toolset. With this, you don’t have to build applications from scratch. You can use the pre-built templates for different application categories or create your own from scratch.&lt;/p&gt;

&lt;p&gt;To begin, simply enter the command &lt;code&gt;npx create-next-app@latest&lt;/code&gt; into the terminal.&lt;/p&gt;

&lt;p&gt;Note: This &lt;code&gt;create-next-app&lt;/code&gt; only creates the front end of your application.&lt;/p&gt;

&lt;h3&gt;
  
  
  SEO (Search Engine Optimization)
&lt;/h3&gt;

&lt;p&gt;Websites built with Next.js are search engine-optimized. Search Engine Optimization (SEO) improves your website’s ranking on Google. It is more likely that a website built with Next.js will rank on Google than one built with React.&lt;/p&gt;

&lt;h3&gt;
  
  
  Community Support
&lt;/h3&gt;

&lt;p&gt;Even though there are very few tutorials and support resources available for Next, it is true that the community and project members are very active in open-source projects. So, Next can almost compete with React when it comes to suppsupporting## No Next.js without React&lt;br&gt;
You cannot use Next.js without React.js, just as you cannot use React without JavaScript.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;If you need to utilize a lot of APIs for some functionality, then Next.js is the right choice for you. In the case of simple static websites, React would be sufficient.&lt;/p&gt;

&lt;p&gt;Hopefully, this will help you understand Next.js and help you decide whether or not to use it.&lt;/p&gt;

&lt;p&gt;For more useful content, follow me and share this with your friends and audience.&lt;/p&gt;

&lt;p&gt;Happy learning!&lt;/p&gt;

&lt;p&gt;You can also find me on &lt;a href="https://twitter.com/ishratUmar18" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;, &lt;a href="https://github.com/ishratUmar18/" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, &lt;a href="https://hashnode.com/@ishratUmar18" rel="noopener noreferrer"&gt;Hashnode&lt;/a&gt;, and &lt;a href="https://dev.to/ishratumar"&gt;DEV.to&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>android</category>
      <category>installation</category>
      <category>software</category>
    </item>
  </channel>
</rss>
