<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Chris Hansen </title>
    <description>The latest articles on DEV Community by Chris Hansen  (@hyggedev).</description>
    <link>https://dev.to/hyggedev</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%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg</url>
      <title>DEV Community: Chris Hansen </title>
      <link>https://dev.to/hyggedev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hyggedev"/>
    <language>en</language>
    <item>
      <title>I Built an Interactive SQL Quiz App for devs and analysts</title>
      <dc:creator>Chris Hansen </dc:creator>
      <pubDate>Wed, 18 Mar 2026 23:15:47 +0000</pubDate>
      <link>https://dev.to/hyggedev/i-built-an-interactive-sql-quiz-app-for-devs-and-analysts-337b</link>
      <guid>https://dev.to/hyggedev/i-built-an-interactive-sql-quiz-app-for-devs-and-analysts-337b</guid>
      <description>&lt;h2&gt;
  
  
  What I built!
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://master-sql-quiz.netlify.app/" rel="noopener noreferrer"&gt;SQLQuiz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fr7m00jo6w9ov01g5bwhx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fr7m00jo6w9ov01g5bwhx.png" alt="database schema" width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you've ever tried to level up your SQL skills, you know the problem: reading documentation is boring, and most practice tools feel like homework.&lt;/strong&gt; I wanted something to build something that felt more like a game — fast, satisfying, and actually challenging!&lt;br&gt;
So I built SQLQuiz — an interactive SQL quiz app with 62 questions across three difficulty tiers, a built-in SQL cheat sheet, and a personal performance dashboard--and it's launched!&lt;br&gt;
What exactly is it!?!?&lt;/p&gt;

&lt;h2&gt;
  
  
  What It Is
&lt;/h2&gt;

&lt;p&gt;SQLQuiz is a dark-themed, browser-based SQL practice app. You pick a quiz mode, answer multiple choice questions against a fictional company_db database, and get instant feedback with detailed explanations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fk5z0gjogwo104jdqdgcw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fk5z0gjogwo104jdqdgcw.png" alt="Database and Schema Preview" width="800" height="643"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Three free quiz modes:
&lt;/h2&gt;

&lt;p&gt;🟢 Easy — Core SELECT fundamentals: filtering, sorting, WHERE clauses, LIMIT, DISTINCT&lt;br&gt;
🔵 Intermediate — Aggregates, GROUP BY, JOINs, subqueries, window functions, CASE&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fhnlwlvuxhg4hnz3zkjs7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fhnlwlvuxhg4hnz3zkjs7.png" alt="Feature preview" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F4is43zbmb23lkbtx3f73.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F4is43zbmb23lkbtx3f73.png" alt="Quiz Previews" width="800" height="547"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Two premium quiz modes:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🏆 Master — All 40 beginner + intermediate questions shuffled into one full gauntlet&lt;br&gt;
🔴 Advanced — 20 deep questions on CTEs, recursive queries, window frames, transactions, indexes, and query performance&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fzpkkuldle9otzgor3n96.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fzpkkuldle9otzgor3n96.png" alt=" " width="800" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Every question includes:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A hint before you answer&lt;br&gt;
A full explanation after you confirm&lt;br&gt;
A "Save for Later" button on wrong answers so you can revisit them!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Tech Stack
&lt;/h2&gt;

&lt;p&gt;I kept this simple, drawing mostly on knowledge of early web development basics.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vite&lt;/strong&gt; — blazing fast dev server and build tool&lt;br&gt;
&lt;strong&gt;Vanilla JavaScript&lt;/strong&gt; — no React, no Vue, no unnecessary complexity&lt;br&gt;
&lt;strong&gt;Supabase&lt;/strong&gt; — auth (email/password signup + login) and a profiles table with an is_premium flag&lt;br&gt;
&lt;strong&gt;Gumroad&lt;/strong&gt; — one-time payment for Premium access&lt;br&gt;
Basic CSS — for the dark theme, animations, and responsive layout&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fvk5kybtysvxw74zzxldw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fvk5kybtysvxw74zzxldw.png" alt=" " width="800" height="335"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Premium Analytics Dashboard
&lt;/h2&gt;

&lt;p&gt;One thing I'm proud of is the My Dashboard feature. Here you can see your performance over time! What it features:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F0kf0qg6gqqektj9l9hyg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F0kf0qg6gqqektj9l9hyg.png" alt=" " width="800" height="609"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quiz History&lt;/strong&gt; — every quiz you've taken, score, mode, date, and letter grade&lt;br&gt;
&lt;strong&gt;Wrong Answer Heatmap&lt;/strong&gt; — your 10 most-missed questions with a relative frequency bar&lt;br&gt;
&lt;strong&gt;Topic Breakdown&lt;/strong&gt; — accuracy percentage per SQL topic (SELECT, JOINs, CTEs, Window Functions, etc.) sorted worst-first so you know exactly what to study.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F7zmwn23q8ab22tk4lx7x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F7zmwn23q8ab22tk4lx7x.png" alt=" " width="800" height="260"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚠️ Everything stored in localStorage so there's zero backend logic for the analytics, and quiz progress. The Supabase database only stores one thing per user: your username/email/password, and premium status! &lt;/p&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;The app is live and the free tier has no time limits — you can take the Easy and Intermediate quizzes as many times as you want.&lt;br&gt;
&lt;a href="https://dev.toSQL%20Quiz"&gt;https://master-sql-quiz.netlify.app/&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Premium is a one-time purchase for lifetime access to the Master Quiz, Advanced Quiz, and the full analytics dashboard.&lt;br&gt;
If you're preparing for a technical interview, working through a data analytics bootcamp, or just want to sharpen your SQL — give it a shot and let me know what you think in the comments.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>sql</category>
      <category>webdev</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Stop wasting your time building a web dev portfolio!</title>
      <dc:creator>Chris Hansen </dc:creator>
      <pubDate>Fri, 22 Jul 2022 23:47:25 +0000</pubDate>
      <link>https://dev.to/hyggedev/stop-wasting-your-time-building-a-web-dev-portfolio-1l59</link>
      <guid>https://dev.to/hyggedev/stop-wasting-your-time-building-a-web-dev-portfolio-1l59</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Because I did that for you already 😀 &lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  I created a beginner friendly, responsive and easily editable &lt;strong&gt;portfolio&lt;/strong&gt; in React, for the community!
&lt;/h3&gt;

&lt;p&gt;Oh and you have a blog now! Nothing fancy. No markdown, no headless CMS. Just JSON. Simply edit your JSON files, and React handles the rest!&lt;/p&gt;

&lt;p&gt;If you guys enjoy the template, or run into any issues, please let me know on &lt;a href="https://www.twitter.com/hyggedev" rel="noopener noreferrer"&gt;Twitter!&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%2F77v77hwwgkaix9jv4d7n.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%2F77v77hwwgkaix9jv4d7n.png" alt="Blogfolio example of the homepage"&gt;&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%2Fsy49v9cql2zhb660f8ff.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%2Fsy49v9cql2zhb660f8ff.png" alt="Featured posts of blogfolio homepage"&gt;&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%2F0ta8q98up8q6go33ddm2.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%2F0ta8q98up8q6go33ddm2.png" alt="Blogfolio example of blog post heading section"&gt;&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%2F1r5sj44a7jg7webaos06.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%2F1r5sj44a7jg7webaos06.png" alt="Blogfolio example of over section of blog post"&gt;&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%2F8qd7pgl4rk4udiiti81n.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%2F8qd7pgl4rk4udiiti81n.png" alt="Blogfolio example of the projects section"&gt;&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%2F6w2rx9qx5a14x4wpbqlr.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%2F6w2rx9qx5a14x4wpbqlr.png" alt="Blogfolio example of the projects gallery"&gt;&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%2Fhbqg36i2bdd5x5r7sa0p.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%2Fhbqg36i2bdd5x5r7sa0p.png" alt="Blogfolio example of the projects over heading"&gt;&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%2Fijg7bud0cx7uu2osi5ys.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%2Fijg7bud0cx7uu2osi5ys.png" alt="Blogfolio example of the about section"&gt;&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%2Fhglrw51srqa8stixkg1i.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%2Fhglrw51srqa8stixkg1i.png" alt="Blogfolio example of the skills section"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Is it for you?
&lt;/h3&gt;

&lt;p&gt;Look, if you are just starting out, then building a portfolio of your own is probably a good idea. It's fun and is great practice. But if you have some projects already, and you're struggling to maintain a consistent portfolio, then don't sweat it. Give it a try.&lt;/p&gt;




&lt;h3&gt;
  
  
  Check out the demo ⤵️
&lt;/h3&gt;

&lt;p&gt;&lt;a href="//react-blogfolio.netlify.app/"&gt;DEMO&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to use the template
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Visit &lt;a href="https://github.com/chansen17/react-blogfolio" rel="noopener noreferrer"&gt;Repo&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Clone the repo by clicking the green button&lt;/li&gt;
&lt;li&gt;In your terminal paste the command &lt;/li&gt;
&lt;li&gt;Enter the project&lt;/li&gt;
&lt;li&gt;Install dependencies&lt;/li&gt;
&lt;li&gt;Edit your JSON file. &lt;/li&gt;
&lt;li&gt;That's it! &lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  That's a wrap guys! I hope the template serves you well! Happy coding 👋
&lt;/h2&gt;




&lt;h3&gt;
  
  
  Follow me on &lt;a href="https://www.twitter.com/hyggedev" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;for byte-sized web dev content! &lt;/p&gt;




&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/hyggedev" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.buymeacoffee.com%2Fbuttons%2Fdefault-orange.png" alt="Buy Me A Coffee"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Check out these other beginner friendly articles also written by me! ⤵️
&lt;/h3&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/great-beginner-friendly-api-s-to-start-practicing-frontend-development-52kl" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Great Beginner Friendly API's To Start Practicing Frontend Development 🧑‍💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 30 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#codenewbie&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/how-to-stay-focused-as-a-self-taught-frontend-web-developer-7gp" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to stay focused 🔍 as a self taught Frontend Web Developer 💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Jul 29 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#productivity&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#devjournal&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/no-fuss-dark-mode-toggle-with-react-styled-components-3nd4" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;No Fuss Dark-Mode Toggle with React &amp;amp; Styled-Components! 🌞↔️🌖&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 18 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/how-to-build-a-responsive-react-navigation-menu-with-styled-components-3682" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to build a Responsive 📱 React Navigation Menu with Styled-Components 💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 3 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/filter-your-react-data-with-basic-javascript-4i9" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Filter Your React Data With Basic Javascript 🤘&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 27 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>react</category>
      <category>portfolio</category>
    </item>
    <item>
      <title>Your NextJS + Styled-Components + Darkmode quick-starter</title>
      <dc:creator>Chris Hansen </dc:creator>
      <pubDate>Mon, 13 Dec 2021 19:39:33 +0000</pubDate>
      <link>https://dev.to/hyggedev/your-nextjs-styled-components-darkmode-quick-starter-2ep1</link>
      <guid>https://dev.to/hyggedev/your-nextjs-styled-components-darkmode-quick-starter-2ep1</guid>
      <description>&lt;h2&gt;
  
  
  Hey devs 👋
&lt;/h2&gt;

&lt;p&gt;This past weekend, I decided to make a little quick-starter for all my NextJS and Styled-components based projects.&lt;/p&gt;

&lt;p&gt;It was a little annoying to bring up the docs for each tool to implement because I can never remember all the setup and configurations 😅&lt;/p&gt;

&lt;p&gt;So, if you're a react dev tinkering with NextJS, you can use my starter to bootstrap your next app!&lt;/p&gt;

&lt;p&gt;It has the bare minimum including a:&lt;br&gt;
functioning Navbar, Mobile Nav, example component, react-icons library, and darkmode! That's it. &lt;br&gt;
Please customize to your needing! If you understand React, basic CSS and :root variables, you'll find yourself editing and navigating through the files very easily. It also features the easiest Darkmode you've ever experienced! &lt;/p&gt;


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

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://next-styled-components-darkmode-quickstarter.vercel.app/" rel="noopener noreferrer"&gt;DEMO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/chansen17/next-styled-components-darkmode-quickstarter" rel="noopener noreferrer"&gt;REPO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nextjs.org/" rel="noopener noreferrer"&gt;NextJS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://styled-components.com/" rel="noopener noreferrer"&gt;Styled-components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.npmjs.com/package/next-themes" rel="noopener noreferrer"&gt;Next-theme&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;
  
  
  Getting started
&lt;/h2&gt;

&lt;p&gt;As always, after cloning the &lt;a href="https://github.com/chansen17/next-styled-components-darkmode-quickstarter" rel="noopener noreferrer"&gt;repo&lt;/a&gt;, to get started simply run &lt;code&gt;npm install&lt;/code&gt; , and in the case of a NextJS app, you're going to run &lt;code&gt;npm run dev&lt;/code&gt; to start the development process. &lt;/p&gt;

&lt;p&gt;That's it 💯 &lt;/p&gt;

&lt;p&gt;If your familiar with create-react-app, the &lt;code&gt;pages&lt;/code&gt; folder is like your &lt;code&gt;src&lt;/code&gt; folder. Inside you'll find the &lt;code&gt;index.js&lt;/code&gt; file, which is like your &lt;code&gt;App.js&lt;/code&gt; file in a create-react-app project. You'll also find &lt;code&gt;_app.js&lt;/code&gt; which is like your &lt;code&gt;index.js&lt;/code&gt; file in create-react-app. &lt;/p&gt;


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

&lt;p&gt;That wraps up Your NextJS + Styled-Components + Darkmode quick-starter! I hope you can make use of this quick-starter. NextJS is seriously cool, styled-components makes CSS even more fun, and darkmode doesn't have to be such a drag with next-theme! Have fun! &lt;/p&gt;


&lt;h2&gt;
  
  
  Have questions
&lt;/h2&gt;

&lt;p&gt;Running into problems or have any questions!? Hit me up on &lt;a href="https://www.twitter.com/hyggedev" rel="noopener noreferrer"&gt;Twitter!&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  You may also like
&lt;/h2&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/how-to-stay-focused-as-a-self-taught-frontend-web-developer-7gp" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to stay focused 🔍 as a self taught Frontend Web Developer 💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Jul 29 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#productivity&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#devjournal&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/master-frontend-development-by-cloning-these-websites-1m08" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Master Frontend Development 💻 By Cloning These Websites 💯&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Sep 14 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#html&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#css&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/great-beginner-friendly-api-s-to-start-practicing-frontend-development-52kl" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Great Beginner Friendly API's To Start Practicing Frontend Development 🧑‍💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 30 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#codenewbie&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/how-to-build-a-responsive-react-navigation-menu-with-styled-components-3682" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to build a Responsive 📱 React Navigation Menu with Styled-Components 💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 3 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/no-fuss-dark-mode-toggle-with-react-styled-components-3nd4" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;No Fuss Dark-Mode Toggle with React &amp;amp; Styled-Components! 🌞↔️🌖&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 18 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>react</category>
      <category>showdev</category>
    </item>
    <item>
      <title>A No-Thrills Minimal Nextjs Blogging template With Contentful CMS</title>
      <dc:creator>Chris Hansen </dc:creator>
      <pubDate>Wed, 01 Dec 2021 20:28:43 +0000</pubDate>
      <link>https://dev.to/hyggedev/a-no-thrills-minimal-nextjs-blogging-template-with-contentful-cms-5hl9</link>
      <guid>https://dev.to/hyggedev/a-no-thrills-minimal-nextjs-blogging-template-with-contentful-cms-5hl9</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This is my first attempt at making a blogging template for community! I really hope it can be useful to someone! Please be aware, I don't claim that this will have best practices. 😅 I was essentially learning Next.js and a Chakra-UI as I went along.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Please hit me up on 👋 &lt;a href="https://www.twitter.com/hyggedev" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; if you have any questions! &lt;/p&gt;




&lt;h2&gt;
  
  
  Hey devs!
&lt;/h2&gt;

&lt;p&gt;After a distraction here and there, a break and holiday, I finally built a nextjs blogging template for anyone to use! &lt;/p&gt;

&lt;p&gt;It's very minimal and based on the 'masonry' layout. It has a darkmode, and a custom 'theme.' It also has a local 'template' &lt;code&gt;.json&lt;/code&gt; file for you to easily change content in all of your components. &lt;/p&gt;

&lt;p&gt;I would highly recommend you cruise through the Chakra-UI docs if you want to make any significant changes. There are ALL KINDS of pre-made components and UI elements ready to go in Chakra. It's very tailwind inspired, so rest assured it's a great looking UI library! &lt;/p&gt;




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

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://chakra-ui.com/" rel="noopener noreferrer"&gt;Chakra-UI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/chansen17/next-masonry-blog-public" rel="noopener noreferrer"&gt;REPO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://next-masonry-blog.vercel.app/" rel="noopener noreferrer"&gt;DEMO&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;




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

&lt;ol&gt;
&lt;li&gt;Clone repo&lt;/li&gt;
&lt;li&gt;Install dependencies &lt;/li&gt;
&lt;li&gt;Create your Contentful account&lt;/li&gt;
&lt;li&gt;Set up your .env.local file and update the env variables&lt;/li&gt;
&lt;li&gt;You should be ready to roll! &lt;/li&gt;
&lt;li&gt;Don't hesitate AT ALL to DM me on twitter if any problems arise! &lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Step One
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;First, clone the repo.&lt;/li&gt;
&lt;li&gt;Once you have your project locally, make sure to be at the root of your project, and install the dependencies &lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Step Two
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Create your &lt;a href="https://www.contentful.com/" rel="noopener noreferrer"&gt;Contentful Account&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Create your first content model. You'll need two. A 'Blog Post' model and a 'Project' model. You can think of a model as a simple schema, that's comprised of fields. So a 'Blog Post' model might have the fields, 'Title', 'Slug', and 'Caption.' &lt;/li&gt;
&lt;li&gt;Let's create the 'Blog Post' model. It should look like this: 
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftaonw20tcyfgwvnapjan.png" alt="Contentful snapshot" width="800" height="336"&gt;
Use this image to determine the field types. For example, you can see that the 'Blog Title' is of the Short Text type. &lt;/li&gt;
&lt;li&gt;There are a few important additional details I need to cover for the 'Blog Post' model. In The 'Title' field, make sure you tick the 'This field represents the Entry title.' Also under the validation tab, make sure to tick required and unique. 
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foi59h880pjb0g3cthg9h.png" alt="Contentful snapshot" width="565" height="499"&gt;
&lt;/li&gt;
&lt;li&gt;For your 'Slug' field, make sure to also make that field 'unique' under the validation tab. In addition, make sure to set its 'Appearance' to type 'Slug.' 
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frccl5w274vdd4qldbhy6.png" alt="Contentful snapshot" width="800" height="354"&gt;
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjohptm2f08iz05xa7qq8.png" alt="Contentful snapshot" width="800" height="304"&gt;
&lt;/li&gt;
&lt;li&gt;Lastly, for the 'Date' field, under the appearance tab, I selected, 'Date Only' format.
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flckn9puo3xqdz0b4w8f0.png" alt="Contentful snapshot" width="800" height="540"&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Step Three
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Create your 'Project' model. Again, use the image below to determine the types for all other fields. For example, &lt;strong&gt;you can see the 'Project Description' field is set to type 'Long Text.'&lt;/strong&gt;
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fopq9659watv19af7ku1r.png" alt="Contentful snapshot" width="800" height="348"&gt;
&lt;/li&gt;
&lt;li&gt;Just like our 'Blog Post' Title field, let's make sure to tick the 'this field represents the 'Entry Title' for our 'Project Name.' Also, be sure to tick the 'required' field in the validation tab. 
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg3nhqd59vzfxg46zay37.png" alt="Contentful snapshot" width="800" height="495"&gt;
&lt;/li&gt;
&lt;li&gt;The default set up for all other fields should be fine. &lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Step Four
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Create your &lt;code&gt;.env.local&lt;/code&gt; file and be sure to update the values to your own. &lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Tips
&lt;/h2&gt;

&lt;p&gt;If you ever forget the 'id' of your Content Models at our Contentful API, simply head back to Contentful, go to your Content Models, click your interested Model, and on the right panel towards the bottom, you will see the 'Content Type Id.' &lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fercskehfuuawwzc1ccyi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fercskehfuuawwzc1ccyi.png" alt="Contentful snapshot" width="373" height="794"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyo8s4wcaavn44zfj53gs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyo8s4wcaavn44zfj53gs.png" alt="Contentful snapshot" width="373" height="794"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, if you ever forget the field ID's for each other Content Model, again, simply go to your Content Models, click your concerned Model, and simply click on the JSON preview tab. It will show your entire Model Type in JSON format, and you can see the Field Name, along with the Field ID. For example, since I named our first Field, 'Blog Title,' it's actual ID that we'll use on the frontend is 'blogTitle.'&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5zadgpif1ol2nvwad2au.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5zadgpif1ol2nvwad2au.png" alt="Contentful snapshot" width="800" height="415"&gt;&lt;/a&gt;&lt;br&gt;
You can also find your ID's by simply clicking on 'settings' on each individual Content Model's field. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhb80lyn7i3q7g0y9oqmr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhb80lyn7i3q7g0y9oqmr.png" alt="Contentful snapshot" width="800" height="57"&gt;&lt;/a&gt;&lt;/p&gt;


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

&lt;p&gt;That's the end to &lt;code&gt;A No-Thrills Minimal Nextjs Blogging template With Contentful CMS!&lt;/code&gt; I really hope you guys dig the UI of this. It's meant to be very simple, minimalistic, but at the same time, gets the job done. You can take this template, and customize the h*ll out of it! &lt;/p&gt;

&lt;p&gt;If anyone at all goes through this entire tutorial and makes use of it, please let me know on &lt;a href="https://www.twitter.com/hyggedev" rel="noopener noreferrer"&gt;Twitter!&lt;/a&gt; ✌️&lt;/p&gt;


&lt;h2&gt;
  
  
  Some other articles you may enjoy 😎
&lt;/h2&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/how-to-stay-focused-as-a-self-taught-frontend-web-developer-7gp" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to stay focused 🔍 as a self taught Frontend Web Developer 💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Jul 29 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#productivity&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#devjournal&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/master-frontend-development-by-cloning-these-websites-1m08" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Master Frontend Development 💻 By Cloning These Websites 💯&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Sep 14 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#html&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#css&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/great-beginner-friendly-api-s-to-start-practicing-frontend-development-52kl" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Great Beginner Friendly API's To Start Practicing Frontend Development 🧑‍💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 30 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#codenewbie&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/how-to-build-a-responsive-react-navigation-menu-with-styled-components-3682" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to build a Responsive 📱 React Navigation Menu with Styled-Components 💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 3 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/no-fuss-dark-mode-toggle-with-react-styled-components-3nd4" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;No Fuss Dark-Mode Toggle with React &amp;amp; Styled-Components! 🌞↔️🌖&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 18 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>react</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How to create a dynamic `scrollToTop` button in React! No library necessary! EVER</title>
      <dc:creator>Chris Hansen </dc:creator>
      <pubDate>Wed, 20 Oct 2021 20:12:35 +0000</pubDate>
      <link>https://dev.to/hyggedev/how-to-create-a-dynamic-scrolltotop-button-in-react-no-library-necessary-ever-54ai</link>
      <guid>https://dev.to/hyggedev/how-to-create-a-dynamic-scrolltotop-button-in-react-no-library-necessary-ever-54ai</guid>
      <description>&lt;h2&gt;
  
  
  Hey devs 👋
&lt;/h2&gt;

&lt;p&gt;Have you always wanted to know how to get that buttery smooth scroll back to top button!?&lt;/p&gt;

&lt;p&gt;Ya don't need another library to achieve this! Get the job done in just a few minutes with some basic logic and javascript! &lt;/p&gt;




&lt;h2&gt;
  
  
  PREFACE
&lt;/h2&gt;

&lt;p&gt;This is a speedcode tutorial, and I'll assume you have some working knowledge of: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTML, CSS, JS&lt;/li&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;Good concept of CSS or SASS &lt;/li&gt;
&lt;li&gt;Not necessary, but I'll be using Styled-components ( CSS in JS library )&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://reactjs.org/" rel="noopener noreferrer"&gt;React&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://react-icons.github.io/react-icons/" rel="noopener noreferrer"&gt;React Icons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://styled-components.com/" rel="noopener noreferrer"&gt;Styled-Components&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Speedcode tutorial ⤵️
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/cS8BFgyvzGs"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




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

&lt;p&gt;Thats it for "&lt;strong&gt;How to create a dynamic &lt;code&gt;scrollToTop&lt;/code&gt; button in React! No library necessary! EVER&lt;/strong&gt;" I hope you enjoyed the video, and hope you never have to use another scroll button library again! Once you get the hang of the code, you'll be able to add this to your website in just a couple minutes, no doubt about it! #happycoding! &lt;/p&gt;




&lt;h2&gt;
  
  
  Additional resources you may enjoy!
&lt;/h2&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/master-frontend-development-by-cloning-these-websites-1m08" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Master Frontend Development 💻 By Cloning These Websites 💯&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Sep 14 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#html&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#css&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/easiest-way-to-add-icons-to-your-react-apps-5cgd" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Easiest Way To Add Icons To Your React Apps 😎&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 10 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/responsive-social-media-card-built-with-react-part-one-ckj" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Blog Highlight Section Built with React and `CSS-in-JS`&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Sep 1 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/no-fuss-dark-mode-toggle-with-react-styled-components-3nd4" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;No Fuss Dark-Mode Toggle with React &amp;amp; Styled-Components! 🌞↔️🌖&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 18 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/how-to-build-a-responsive-react-navigation-menu-with-styled-components-3682" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to build a Responsive 📱 React Navigation Menu with Styled-Components 💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 3 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>react</category>
      <category>tutorial</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Credit Card Payment UI With ReactJS</title>
      <dc:creator>Chris Hansen </dc:creator>
      <pubDate>Fri, 17 Sep 2021 14:36:22 +0000</pubDate>
      <link>https://dev.to/hyggedev/credit-card-payment-ui-with-reactjs-1a5a</link>
      <guid>https://dev.to/hyggedev/credit-card-payment-ui-with-reactjs-1a5a</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This is not a tutorial, or anything even informational. Just a place to share my project, hoping to inspire some creativity. Hopefully you learn about a new resource or try a new project. Repo is available! &lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Hey devs, we're pretty fortunate 😉
&lt;/h3&gt;

&lt;p&gt;This badass platform gives us the ability to show off a project with the "#showdev" community tag and I am taking that opportunity!&lt;/p&gt;




&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://credit-payment-ui.netlify.app/" rel="noopener noreferrer"&gt;Demo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/chansen17/creditCardPaymentUI" rel="noopener noreferrer"&gt;Repo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nosir.github.io/cleave.js/" rel="noopener noreferrer"&gt;Cleave.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://reactjs.org/" rel="noopener noreferrer"&gt;React.js&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Try different credit card issuers:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Visa cards start with 4&lt;/li&gt;
&lt;li&gt;Mastercards 51 &lt;/li&gt;
&lt;li&gt;Discover 6011 / or 65&lt;/li&gt;
&lt;li&gt;Diners Club 300 &lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Features
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;ReactJS&lt;/li&gt;
&lt;li&gt;JSX&lt;/li&gt;
&lt;li&gt;Basic Javascript&lt;/li&gt;
&lt;li&gt;Custom SCSS&lt;/li&gt;
&lt;li&gt;Cleave.JS &lt;/li&gt;
&lt;li&gt;Dynamic rendering&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Something to point out
&lt;/h3&gt;

&lt;p&gt;The FUNNIEST thing about the entire project, what I am also the most proud of, is the holographic sticker on the top left! It's a picture of raindrops on a window! 🤣 &lt;/p&gt;




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

&lt;p&gt;Let me know what you think about it. So much more could be added to this. For example, I would like to add a rotateX animation that allows the user to instead enter their security code on the back, once they click on the form field! That would be cool. &lt;/p&gt;

&lt;p&gt;If you are practicing frontend development and using React, give it a go! It's really based on all the fundamentals of React and the basics of Javascript. &lt;/p&gt;

&lt;p&gt;Show off your project below if you end up giving a shot! I'm sure you can do something even better! 😎&lt;/p&gt;




&lt;h4&gt;
  
  
  Follow me on &lt;a href="https://www.twitter.com/hyggedev" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;for byte-sized web dev content! &lt;/p&gt;

&lt;h4&gt;
  
  
  You should also follow my &lt;a href="https://www.instagram.com/hyggedev/" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;Dev-related stuff only! &lt;/p&gt;




&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/hyggedev" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.buymeacoffee.com%2Fbuttons%2Fdefault-orange.png" alt="Buy Me A Coffee"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Check out these other beginner friendly articles also written by me! ⤵️
&lt;/h3&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/how-to-build-a-responsive-react-navigation-menu-with-styled-components-3682" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to build a Responsive 📱 React Navigation Menu with Styled-Components 💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 3 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/filter-your-react-data-with-basic-javascript-4i9" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Filter Your React Data With Basic Javascript 🤘&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 27 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/great-beginner-friendly-api-s-to-start-practicing-frontend-development-52kl" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Great Beginner Friendly API's To Start Practicing Frontend Development 🧑‍💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 30 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#codenewbie&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/how-to-stay-focused-as-a-self-taught-frontend-web-developer-7gp" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to stay focused 🔍 as a self taught Frontend Web Developer 💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Jul 29 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#productivity&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#devjournal&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>react</category>
      <category>beginners</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Master Frontend Development 💻 By Cloning These Websites 💯</title>
      <dc:creator>Chris Hansen </dc:creator>
      <pubDate>Tue, 14 Sep 2021 16:49:28 +0000</pubDate>
      <link>https://dev.to/hyggedev/master-frontend-development-by-cloning-these-websites-1m08</link>
      <guid>https://dev.to/hyggedev/master-frontend-development-by-cloning-these-websites-1m08</guid>
      <description>&lt;blockquote&gt;
&lt;h3&gt;
  
  
  UPDATE
&lt;/h3&gt;

&lt;p&gt;I cloned one of these websites! I haven't built a website with pure html, css and js for a while, so I gave &lt;strong&gt;#14 Discord&lt;/strong&gt; a go. This is how it turned out. &lt;em&gt;Not by best work, but I worked pretty fast!&lt;/em&gt; 🤣&lt;br&gt;
&lt;a href="https://cloned-discord-v1.netlify.app/" rel="noopener noreferrer"&gt;Discord Cloned&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Why clone websites?
&lt;/h3&gt;

&lt;p&gt;Frontend development has everything to do with the client side. Everything the user can see and interact with on their web browser. &lt;/p&gt;

&lt;p&gt;Studies show that if a website does not load within 2 seconds, users bounce. How do you think users react if a website design is &lt;strong&gt;not&lt;/strong&gt; up to par with modern designs and trends? &lt;/p&gt;

&lt;p&gt;That being said, design has just as much importance as all the frontend programming going on in the background. After all, developers are tasked to implement a professional design into a working website all the time. It's very much an important piece of a frontend developers arsenal. Get good at it! &lt;/p&gt;




&lt;h3&gt;
  
  
  The goal
&lt;/h3&gt;

&lt;p&gt;Master this frontend skill, by cloning these websites as close to identical as possible.&lt;/p&gt;

&lt;p&gt;Try to incorporate functionality, like modals and drop downs. Include responsive design, like mobile navigation, and grids.&lt;/p&gt;

&lt;p&gt;All websites listed below are similar, but just different enough to force different design concepts. For example, majority of these websites have: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;em&gt;Large homepage banners&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Big block designs&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Reversed grid columns&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Full or half page menus&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Sticky or absolute positioned navigations&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Galleries&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Dropdown / accordions&lt;/em&gt; &lt;/li&gt;
&lt;li&gt;&lt;em&gt;Minor animations like fade, or type effects&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Two grid columns&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Responsive design and more!&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;TIP:&lt;/strong&gt; You can also use web scrapers to download all the assets you find on websites. &lt;br&gt;
&lt;a href="https://extract.pics/" rel="noopener noreferrer"&gt;Extract Pics&lt;/a&gt;&lt;br&gt;
&lt;a href="https://chrome.google.com/webstore/detail/image-downloader/cnpniohnfphhjihaiiggeabnkjhpaldj" rel="noopener noreferrer"&gt;Image Downloader&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;BONUS&lt;/strong&gt;  🔥&lt;br&gt;
If you want to go full on leet mode, add javascript functionality. Like routing, dynamic content, 3rd party APIs ( i. google maps ) etc. &lt;/p&gt;

&lt;p&gt;⚠️ If you push your project up to the web, make sure to not claim your designs or assets as your own!&lt;/p&gt;


&lt;h2&gt;
  
  
  Websites for you to clone! &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. &lt;a href="https://www.netflix.com/browse" rel="noopener noreferrer"&gt;Netflix&lt;/a&gt;
&lt;/h3&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%2Frqg12fvhs2k9c9hbl5u8.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%2Frqg12fvhs2k9c9hbl5u8.png" alt="Netflix website section" width="800" height="395"&gt;&lt;/a&gt;&lt;br&gt;
When logged in Netflix is a pretty simple design. Horizontal rows, galleries, with a big featured banner. &lt;/p&gt;
&lt;h3&gt;
  
  
  2. &lt;a href="https://www.hulu.com/welcome" rel="noopener noreferrer"&gt;Hulu&lt;/a&gt;
&lt;/h3&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%2F7sacyxwsukp01xybyrae.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%2F7sacyxwsukp01xybyrae.png" alt="Hulu website section" width="800" height="395"&gt;&lt;/a&gt;&lt;br&gt;
Just like Netflix, the logged in experience in Hulu is pretty similar. Has a large featured banner, and basically rows of movies or tv shows with every few rows having a featured section. &lt;/p&gt;
&lt;h3&gt;
  
  
  3. &lt;a href="https://www.apple.com/" rel="noopener noreferrer"&gt;Apple&lt;/a&gt;
&lt;/h3&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%2Ft8mtxir9d4p1s2xr4tye.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%2Ft8mtxir9d4p1s2xr4tye.png" alt="Apple website section" width="800" height="390"&gt;&lt;/a&gt;&lt;br&gt;
You'll know what I mean by "big block" design. Apple does this well. It's clean, intuitive and pretty straight forward. If you break everything down into smaller components, you'll see how easy it would be to implement the design. &lt;/p&gt;
&lt;h3&gt;
  
  
  4. &lt;a href="https://www.airbnb.com/" rel="noopener noreferrer"&gt;Airbnb&lt;/a&gt;
&lt;/h3&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%2F0jc2hh2p3q760qms0wnc.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%2F0jc2hh2p3q760qms0wnc.png" alt="Airbnb website section" width="800" height="392"&gt;&lt;/a&gt;&lt;br&gt;
Airbnb is such a beautiful website! The assets are amazing. Break this design down into smaller components, and you'll see how it's just a bunch of big rows and small rows. Blocks either spanning multiple columns, or the entire row. &lt;/p&gt;
&lt;h3&gt;
  
  
  5. &lt;a href="https://www.spacex.com/" rel="noopener noreferrer"&gt;SpaceX&lt;/a&gt;
&lt;/h3&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%2F3vw6qgl0fvwfjgfhhtd1.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%2F3vw6qgl0fvwfjgfhhtd1.png" alt="Spacex website section" width="800" height="395"&gt;&lt;/a&gt;&lt;br&gt;
Super easy design. SpaceX is basically multiple fullscreen images with fade up content and a link section. &lt;/p&gt;
&lt;h3&gt;
  
  
  6. &lt;a href="https://www.nvidia.com/en-us/" rel="noopener noreferrer"&gt;NVIDIA&lt;/a&gt;
&lt;/h3&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%2Fbe8du0m4pscnynxt63jf.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%2Fbe8du0m4pscnynxt63jf.png" alt="NVIDIA website section" width="800" height="394"&gt;&lt;/a&gt;&lt;br&gt;
Another easy, but professional looking design. Just a banner, grid layout, and rows. &lt;/p&gt;
&lt;h3&gt;
  
  
  7. &lt;a href="https://www.razer.com/" rel="noopener noreferrer"&gt;Razer&lt;/a&gt;
&lt;/h3&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%2Ffyl2yn83hlk0pkeizsbo.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%2Ffyl2yn83hlk0pkeizsbo.png" alt="Razer website section" width="800" height="394"&gt;&lt;/a&gt;&lt;br&gt;
A mix of a large home banner, full page featured sections, and big box design. Have fun with this sick color scheme! &lt;/p&gt;
&lt;h3&gt;
  
  
  8. &lt;a href="https://www.salesforce.com/" rel="noopener noreferrer"&gt;Salesforce&lt;/a&gt;
&lt;/h3&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%2F7tjcr2ukebke04x8beux.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%2F7tjcr2ukebke04x8beux.png" alt="Salesforce website section" width="800" height="393"&gt;&lt;/a&gt;&lt;br&gt;
Another great website to polish your css skills. A mix of banners, rows, columns, reverse columns, big box design, but also has featured list, multiple call to actions, and fun images.  &lt;/p&gt;
&lt;h3&gt;
  
  
  9. &lt;a href="https://www.adobe.com/" rel="noopener noreferrer"&gt;Adobe&lt;/a&gt;
&lt;/h3&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%2Fa7b5aw6v0zzyixd9ht29.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%2Fa7b5aw6v0zzyixd9ht29.png" alt="Adobe website section" width="800" height="395"&gt;&lt;/a&gt;&lt;br&gt;
Another big box design. But also features some cool background gradients. &lt;/p&gt;
&lt;h3&gt;
  
  
  10. &lt;a href="https://www.microsoft.com/en-us/" rel="noopener noreferrer"&gt;Microsoft&lt;/a&gt;
&lt;/h3&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%2F6ffgea0miiie3elrfslq.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%2F6ffgea0miiie3elrfslq.png" alt="Microsoft website section" width="800" height="394"&gt;&lt;/a&gt;&lt;br&gt;
Features a modal, big banners, multiple featured sections, big call to action. Pretty straight forward, but professional looking design. &lt;/p&gt;
&lt;h3&gt;
  
  
  11. &lt;a href="https://www.blockchain.com/" rel="noopener noreferrer"&gt;Blockchain&lt;/a&gt;
&lt;/h3&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%2Fho6vku9a1wtoosnwtv79.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%2Fho6vku9a1wtoosnwtv79.png" alt="Blockchain website section" width="800" height="394"&gt;&lt;/a&gt;&lt;br&gt;
Learn about blockchain while you clone this one. This design incorporates a few more difficult design concepts. It also features a big banner, call to actions, gradient effects, but also has big box designs as links and dynamic accordions. So not only does the accordion tab drop more content below it, it changes the image beside it! You probably have a tool of choice for this 🤔&lt;/p&gt;
&lt;h3&gt;
  
  
  12. &lt;a href="https://www.paypal.com/us/home" rel="noopener noreferrer"&gt;Paypal&lt;/a&gt;
&lt;/h3&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%2F9068vgcl7juba19nk5hn.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%2F9068vgcl7juba19nk5hn.png" alt="Paypal website section" width="800" height="395"&gt;&lt;/a&gt;&lt;br&gt;
Features a big banner, call to action, and reverse rows. Straight forward, but effective design. &lt;/p&gt;
&lt;h3&gt;
  
  
  13. &lt;a href="https://slack.com/" rel="noopener noreferrer"&gt;Slack&lt;/a&gt;
&lt;/h3&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%2F150ivrl50o3kryjq2a42.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%2F150ivrl50o3kryjq2a42.png" alt="Slack website section" width="800" height="393"&gt;&lt;/a&gt;&lt;br&gt;
Slack features a fun homepage banner. In the banner is a toast banner, a call to action, a google sign in button, and a row of icons featuring companies that use Slack. The rest of the layout is a simple grid system with a typical reverse row design. Minimal animations, like hover effects. &lt;/p&gt;
&lt;h3&gt;
  
  
  14. &lt;a href="https://discord.com/" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;
&lt;/h3&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%2Ftsxs58awvwhsptx5ioct.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%2Ftsxs58awvwhsptx5ioct.png" alt="Discord website section" width="800" height="393"&gt;&lt;/a&gt;&lt;br&gt;
Probably my favorite looking website on the list. It has fun vibrant colors, a minimalistic homepage banner featuring a call to action, reverse row grid layout, and a nice big featured section. &lt;/p&gt;
&lt;h3&gt;
  
  
  15. &lt;a href="https://www.amazon.com/" rel="noopener noreferrer"&gt;Amazon&lt;/a&gt;
&lt;/h3&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%2F5u79fd5sm59fmr1ga6zk.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%2F5u79fd5sm59fmr1ga6zk.png" alt="Amazon website section" width="800" height="394"&gt;&lt;/a&gt;&lt;br&gt;
The king of e-commerce. This is a straight up "show off" mockup. If you can nail Amazons design, your frontend dev design skills are up to industry standard. Features a slightly more complex grid layout, with content spanning one or more rows and columns. Has a search bar in the navigation. Also has recommended section, hover effects, carousels, etc. Have fun with this behemoth! &lt;/p&gt;
&lt;h3&gt;
  
  
  16. &lt;a href="https://www.playstation.com/en-us/" rel="noopener noreferrer"&gt;Playstation&lt;/a&gt;
&lt;/h3&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%2Ffx0xnnrlnsy27cvws5uz.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%2Ffx0xnnrlnsy27cvws5uz.png" alt="Playstation website section" width="800" height="395"&gt;&lt;/a&gt;&lt;br&gt;
Playstation.com has a nice large homepage banner featuring a slide show with a nice fade in effect. You can code this from scratch, or use your favorite library. Cloning website really gets you thinking about your tools. Also features single row gallery, large featured banners, dynamic content on click, multiple full screen call to actions, and minor animations. This is probably my second favorite looking website. Really enjoy the subtle animations and UI. It also really helps you polish multiple design concepts. &lt;/p&gt;
&lt;h3&gt;
  
  
  17. &lt;a href="https://www.nintendo.com/" rel="noopener noreferrer"&gt;Nintendo&lt;/a&gt;
&lt;/h3&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%2Fequfj9z84m2z88t1154h.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%2Fequfj9z84m2z88t1154h.png" alt="Nintendo website section" width="800" height="393"&gt;&lt;/a&gt;&lt;br&gt;
Ahhhh, childhood memories! Well, kind of, more of a Sega player. But I digress! Nintendo.com has a nice colorful homepage banner with a minimal call to action beneath it. Has a continuously scrolling single row gallery which is new on the list. So this will offer some great practice. Again, you can use a library for this as you don't need to re-create the wheel every time. Other than that, straight forward big box grid design and single row galleries. One row will help you practice "quick favoriting" items. &lt;/p&gt;


&lt;h3&gt;
  
  
  Conclusion! 😎
&lt;/h3&gt;

&lt;p&gt;That's a wrap on "&lt;strong&gt;Master Frontend Development 💻 By Cloning These Websites 💯&lt;/strong&gt;" I really believe cloning one or multiple of these website, will drastically improve your CSS. There's a lot of analytical thinking that comes with cloning websites, as you break down designs from larger to smaller components. And you also need to think about the best tools as you approach new problems. Then there is responsive design. A mobile or desktop first approach? For example, do you think Microsoft.com should prioritize the desktop or mobile experience? If it was up to me, I'd like to think most people wait till they can access a desktop to make very large purchases like desktops and laptops. Therefore I'd probably prioritize the desktop. This is a big part of a Frontend Developers job! Whether you're freelancing or working for a company. Designs are either up to you, or by professional designers. Master this part of Frontend Development!  &lt;/p&gt;


&lt;h4&gt;
  
  
  Follow me on &lt;a href="https://www.twitter.com/hyggedev" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;for byte-sized web dev content! &lt;/p&gt;



&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/hyggedev" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.buymeacoffee.com%2Fbuttons%2Fdefault-orange.png" alt="Buy Me A Coffee" width="434" height="100"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  Check out these other beginner friendly articles also written by me! ⤵️
&lt;/h3&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/great-beginner-friendly-api-s-to-start-practicing-frontend-development-52kl" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Great Beginner Friendly API's To Start Practicing Frontend Development 🧑‍💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 30 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#codenewbie&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/how-to-stay-focused-as-a-self-taught-frontend-web-developer-7gp" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to stay focused 🔍 as a self taught Frontend Web Developer 💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Jul 29 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#productivity&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#devjournal&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>html</category>
      <category>css</category>
    </item>
    <item>
      <title>Blog Highlight Section Built with React and `CSS-in-JS`</title>
      <dc:creator>Chris Hansen </dc:creator>
      <pubDate>Wed, 01 Sep 2021 16:17:38 +0000</pubDate>
      <link>https://dev.to/hyggedev/responsive-social-media-card-built-with-react-part-one-ckj</link>
      <guid>https://dev.to/hyggedev/responsive-social-media-card-built-with-react-part-one-ckj</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;⚠️ This is not a tutorial, or anything even informational. Just a place to share my project, utilizing the #showdev tag! Hoping to inspire some creativity. Hopefully you learn about a new resource or get inspired for a new project! 💯&lt;/p&gt;
&lt;/blockquote&gt;




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

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://rfc-blog-inspiration.netlify.app/" rel="noopener noreferrer"&gt;Demo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.uidesigndaily.com/posts/figma-website-section-articles-card-day-1425" rel="noopener noreferrer"&gt;Inspiration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/chansen17/rfc-blog-project-inspiration-page-for-blog" rel="noopener noreferrer"&gt;Repo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Tools
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://reactjs.org/" rel="noopener noreferrer"&gt;React&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://styled-components.com/" rel="noopener noreferrer"&gt;Styled-components&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Project
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9kic6n68mxgkvya3qsrj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9kic6n68mxgkvya3qsrj.png" alt="Desktop viewport" width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8c6qv3eeg81666y66n5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8c6qv3eeg81666y66n5.png" alt="Mobile viewport" width="709" height="861"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu6j07mfxa7dycragahhn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu6j07mfxa7dycragahhn.png" alt="Mobile continued" width="712" height="565"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv06lviykslh5lgydzmlm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv06lviykslh5lgydzmlm.png" alt="Attribution to design" width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;




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

&lt;p&gt;That's a wrap on &lt;strong&gt;Blog Highlight Section Built with React and 'CSS-in-JS.'&lt;/strong&gt; I hope you liked it. Let me know what you think in the comments section! &lt;/p&gt;




&lt;h2&gt;
  
  
  Hit me up ⬇️
&lt;/h2&gt;

&lt;p&gt;Don't forget to follow me on &lt;a href="https://www.twitter.com/hyggedev" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; for more byte-sized web dev content!&lt;br&gt;
Also give my &lt;a href="https://www.instagram.com/hyggedev" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt; a follow! ✌️&lt;/p&gt;



&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/hyggedev" rel="noopener noreferrer"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6Oibfu3K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" width="434" height="100"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Related posts also written by me 😎
&lt;/h2&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/filter-your-react-data-with-basic-javascript-4i9" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Filter Your React Data With Basic Javascript 🤘&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 27 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/how-to-build-a-responsive-react-navigation-menu-with-styled-components-3682" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to build a Responsive 📱 React Navigation Menu with Styled-Components 💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 3 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/no-fuss-dark-mode-toggle-with-react-styled-components-3nd4" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;No Fuss Dark-Mode Toggle with React &amp;amp; Styled-Components! 🌞↔️🌖&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 18 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/easiest-way-to-add-icons-to-your-react-apps-5cgd" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Easiest Way To Add Icons To Your React Apps 😎&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 10 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Great Beginner Friendly API's To Start Practicing Frontend Development 🧑‍💻</title>
      <dc:creator>Chris Hansen </dc:creator>
      <pubDate>Mon, 30 Aug 2021 18:45:56 +0000</pubDate>
      <link>https://dev.to/hyggedev/great-beginner-friendly-api-s-to-start-practicing-frontend-development-52kl</link>
      <guid>https://dev.to/hyggedev/great-beginner-friendly-api-s-to-start-practicing-frontend-development-52kl</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: &lt;br&gt;
I have updated my list of beginner friendly APIs.&lt;br&gt;
&lt;strong&gt;Check out numbers 9, 10 and 11 on the list!&lt;/strong&gt; 🔥&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;Every beginner has been there. Once you really start to get efficient at HTML, CSS and Javascript, it's only a matter of time before you want to start playing with real-life data. &lt;br&gt;
There are so many ways developers can manipulate data to make really cool and beautiful websites.&lt;/p&gt;

&lt;p&gt;This is my list of &lt;strong&gt;low barrier&lt;/strong&gt; to entry Rest API's to get you started! 💯&lt;/p&gt;


&lt;h2&gt;
  
  
  1. &lt;a href="https://jsonplaceholder.typicode.com/" rel="noopener noreferrer"&gt;JSONPlaceholder&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;JSONPlaceholder&lt;/strong&gt; provides a restful API to a wide variety of resources. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Posts&lt;/li&gt;
&lt;li&gt;Comments&lt;/li&gt;
&lt;li&gt;Albums&lt;/li&gt;
&lt;li&gt;Photos &lt;/li&gt;
&lt;li&gt;Todos &lt;/li&gt;
&lt;li&gt;Users &lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  2. &lt;a href="https://fakestoreapi.com/" rel="noopener noreferrer"&gt;Fake Store API&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Fake Store&lt;/strong&gt; restful API provides the most important resources when you are trying to build you first mock e-commerce store. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Products&lt;/li&gt;
&lt;li&gt;Cart&lt;/li&gt;
&lt;li&gt;Users &lt;/li&gt;
&lt;li&gt;Login Token &lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  3. &lt;a href="https://unsplash.com/documentation" rel="noopener noreferrer"&gt;Unsplashed API&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Unsplashed&lt;/strong&gt; restful API may live up to it's catchphrase as the "The most powerful photo engine in the world." What you'll have available to you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Over 3 million photos&lt;/li&gt;
&lt;li&gt;Search photos by keyword&lt;/li&gt;
&lt;li&gt;Search random photos&lt;/li&gt;
&lt;li&gt;Multiple datasets &lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  4. &lt;a href="https://quotes.rest/" rel="noopener noreferrer"&gt;Quotes API&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Quotes&lt;/strong&gt; rest API provides a wide variety of different quotes and types of quotes, like: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quote of the day&lt;/li&gt;
&lt;li&gt;Quotes by categories &lt;/li&gt;
&lt;li&gt;Randomly selected quotes &lt;/li&gt;
&lt;li&gt;Quotes by Authors &lt;/li&gt;
&lt;li&gt;Quotes by popularity &lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  5. &lt;a href="https://api.nasa.gov/" rel="noopener noreferrer"&gt;NASA API&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;One of my personal favorites, and one I believe will truly get the inner geek's imagination running wild. &lt;strong&gt;The Nasa&lt;/strong&gt; restful API provides multiple resources like: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;APOD ( astronomy photo of the day) &lt;/li&gt;
&lt;li&gt;Astroid NeoWs ( near earth object web services) &lt;/li&gt;
&lt;li&gt;Insight ( mars weather services ) &lt;/li&gt;
&lt;li&gt;Nasa Image and Video Library&lt;/li&gt;
&lt;li&gt;And so much more! &lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  6. &lt;a href="https://github.com/r-spacex/SpaceX-API" rel="noopener noreferrer"&gt;SpaceX API&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;How about the worlds most popular space company, &lt;strong&gt;SpaceX&lt;/strong&gt;! This restful API offers a variety of cool rocket details like: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rockets&lt;/li&gt;
&lt;li&gt;Rocket launches &lt;/li&gt;
&lt;li&gt;Core&lt;/li&gt;
&lt;li&gt;Starlink &lt;/li&gt;
&lt;li&gt;Launchpad&lt;/li&gt;
&lt;li&gt;Landing pad data&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  7. &lt;a href="https://www.coingecko.com/en/api/documentation" rel="noopener noreferrer"&gt;Coingecko&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Coingecko&lt;/strong&gt; API is my go to resource for all things crypto. There are many out there, but this is the &lt;strong&gt;easiest&lt;/strong&gt; hands down. Requires no api key, it's free, great for side projects! It provides multiple endpoints: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Coin price&lt;/li&gt;
&lt;li&gt;List of all coins&lt;/li&gt;
&lt;li&gt;Markets&lt;/li&gt;
&lt;li&gt;Tickers&lt;/li&gt;
&lt;li&gt;Price history&lt;/li&gt;
&lt;li&gt;Market charts&lt;/li&gt;
&lt;li&gt;Rage in prices&lt;/li&gt;
&lt;li&gt;Contracts&lt;/li&gt;
&lt;li&gt;Trading platforms &lt;/li&gt;
&lt;li&gt;Exchanges and more!
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks to izaias 👍&lt;br&gt;
&lt;/p&gt;
&lt;div class="liquid-comment"&gt;
    &lt;div class="details"&gt;
      &lt;a href="/shadowruge"&gt;
        &lt;img class="profile-pic" 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%2Fuser%2Fprofile_image%2F433628%2Fb4db6f44-f8f4-4e72-9606-3c54483175b5.jpeg" alt="shadowruge profile image"&gt;
      &lt;/a&gt;
      &lt;a href="/shadowruge"&gt;
        &lt;span class="comment-username"&gt;izaias&lt;/span&gt;
      &lt;/a&gt;
      &lt;span class="color-base-30 px-2 m:pl-0"&gt;•&lt;/span&gt;

&lt;a href="https://dev.to/shadowruge/comment/1hk11" class="comment-date crayons-link crayons-link--secondary fs-s"&gt;
  &lt;time class="date-short-year"&gt;
    Aug 31 '21
  &lt;/time&gt;

&lt;/a&gt;

    &lt;/div&gt;
    &lt;div class="body"&gt;
      &lt;p&gt;Boa noite, ótimo trabalho.&lt;br&gt;
Vc teria ai em sua pesquisa api para moedas virtuais seria de grande valia.&lt;br&gt;
Obrigado e parabéns 😀&lt;/p&gt;


    &lt;/div&gt;
&lt;/div&gt;
 


&lt;h2&gt;
  
  
  8. &lt;a href="https://openweathermap.org/current" rel="noopener noreferrer"&gt;OpenWeatherMap&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;OpenWeatherMap&lt;/strong&gt; restful API is a beloved resources for developers as well as my personal favorite, due to its simplicity. It does require an API key, but don't let that discourage you. Simply append your API key to your endpoint, and you're set. Get weather data the way you prefer:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;by City name&lt;/li&gt;
&lt;li&gt;by State code&lt;/li&gt;
&lt;li&gt;by Country code&lt;/li&gt;
&lt;li&gt;by Zip code&lt;/li&gt;
&lt;li&gt;by Rectangular zone of geographic coordinates&lt;/li&gt;
&lt;li&gt;by Circular zone of geographic coordinates&lt;/li&gt;
&lt;li&gt;Multiple units of measurements &lt;/li&gt;
&lt;li&gt;Icons included&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks to Felipe Panegalli 👍&lt;br&gt;
&lt;/p&gt;
&lt;div class="liquid-comment"&gt;
    &lt;div class="details"&gt;
      &lt;a href="/panegalli"&gt;
        &lt;img class="profile-pic" 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%2Fuser%2Fprofile_image%2F409605%2F283dbbf1-b1bb-4900-970b-44c8b3c6d077.png" alt="panegalli profile image"&gt;
      &lt;/a&gt;
      &lt;a href="/panegalli"&gt;
        &lt;span class="comment-username"&gt;Felipe Panegalli&lt;/span&gt;
      &lt;/a&gt;
      &lt;span class="color-base-30 px-2 m:pl-0"&gt;•&lt;/span&gt;

&lt;a href="https://dev.to/panegalli/comment/1hldf" class="comment-date crayons-link crayons-link--secondary fs-s"&gt;
  &lt;time class="date-short-year"&gt;
    Sep 2 '21
  &lt;/time&gt;

&lt;/a&gt;

    &lt;/div&gt;
    &lt;div class="body"&gt;
      &lt;p&gt;Great Post. If will you be like to add a new API... Wheater API (classic ) :D.&lt;/p&gt;


    &lt;/div&gt;
&lt;/div&gt;
 


&lt;h2&gt;
  
  
  9. &lt;a href="https://randomuser.me/" rel="noopener noreferrer"&gt;RandomUser&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;The random user API is an absolute must for beginner developers! Quickly prototype new concepts or designs with instant access to random users! Comes with all the data you need too: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Name&lt;/li&gt;
&lt;li&gt;Email&lt;/li&gt;
&lt;li&gt;Birthday&lt;/li&gt;
&lt;li&gt;Address&lt;/li&gt;
&lt;li&gt;Country&lt;/li&gt;
&lt;li&gt;Phone&lt;/li&gt;
&lt;li&gt;Company title and more! &lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  10. &lt;a href="https://swapi.dev/" rel="noopener noreferrer"&gt;SWAPI&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Who doesn't sci-fi!? Proud geeks should appreciate this one. The &lt;strong&gt;Star Wars&lt;/strong&gt; API has all the data you can possibly want from your favorite Star Wars characters. Get data like: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Planets&lt;/li&gt;
&lt;li&gt;Spaceships&lt;/li&gt;
&lt;li&gt;Vehicles&lt;/li&gt;
&lt;li&gt;Films&lt;/li&gt;
&lt;li&gt;Species&lt;/li&gt;
&lt;li&gt;Home planets&lt;/li&gt;
&lt;li&gt;Date of Birth and so much more! &lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  11. &lt;a href="https://pokeapi.co/" rel="noopener noreferrer"&gt;PokeAPI&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Pokemon is just as relevant to me as ever! Get instant access to the very easy to use restful &lt;strong&gt;Pokemon&lt;/strong&gt; API. Get your fix of Japanese anime culture and get all the data you need on your favorite pocket monsters like: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Types&lt;/li&gt;
&lt;li&gt;Abilities&lt;/li&gt;
&lt;li&gt;Forms &lt;/li&gt;
&lt;li&gt;Species&lt;/li&gt;
&lt;li&gt;Stats and more! &lt;/li&gt;
&lt;/ul&gt;


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

&lt;p&gt;That's it for &lt;strong&gt;Great Beginner Friendly API's To Start Practicing Frontend Development! 😎&lt;/strong&gt; Without a doubt these very beginner friendly API's will get you inspired to publish your next app to share with the world! &lt;/p&gt;

&lt;p&gt;Let me know what you think and hit me up on &lt;a href="https://www.twitter.com/hyggedev" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; and &lt;a href="https://www.instagram.com/hyggedev/" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1387078891261493249-342" src="https://platform.twitter.com/embed/Tweet.html?id=1387078891261493249"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1387078891261493249-342');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1387078891261493249&amp;amp;theme=dark"
  }



  &lt;/p&gt;

&lt;p&gt;Also check out some of my other articles on productivity and react! &lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/how-to-stay-focused-as-a-self-taught-frontend-web-developer-7gp" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to stay focused 🔍 as a self taught Frontend Web Developer 💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Jul 29 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#productivity&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#devjournal&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/no-fuss-dark-mode-toggle-with-react-styled-components-3nd4" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;No Fuss Dark-Mode Toggle with React &amp;amp; Styled-Components! 🌞↔️🌖&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 18 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/how-to-build-a-responsive-react-navigation-menu-with-styled-components-3682" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to build a Responsive 📱 React Navigation Menu with Styled-Components 💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 3 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/filter-your-react-data-with-basic-javascript-4i9" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Filter Your React Data With Basic Javascript 🤘&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 27 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Filter Your React Data With Basic Javascript 🤘</title>
      <dc:creator>Chris Hansen </dc:creator>
      <pubDate>Fri, 27 Aug 2021 04:52:14 +0000</pubDate>
      <link>https://dev.to/hyggedev/filter-your-react-data-with-basic-javascript-4i9</link>
      <guid>https://dev.to/hyggedev/filter-your-react-data-with-basic-javascript-4i9</guid>
      <description>&lt;p&gt;You fetched some data in React, now what?&lt;/p&gt;

&lt;p&gt;Don't just map through your data right away. &lt;/p&gt;

&lt;p&gt;Recently, one of the first things I like to do whenever I'm working with data, is to use &lt;strong&gt;basic&lt;/strong&gt; javascript to add some user friendly "reactivity." &lt;/p&gt;

&lt;h4&gt;
  
  
  My aim is to make this quick, and impactful. Let's get straight to it 💯
&lt;/h4&gt;




&lt;h2&gt;
  
  
  Preface and Resources 📚
&lt;/h2&gt;

&lt;p&gt;Although this is quick and beginner friendly example, I'm assuming you have some working knowledge in:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=Mp0f0zTPLec&amp;amp;list=PL081AC329706B2953" rel="noopener noreferrer"&gt;HTML &amp;amp; CSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://reactjs.org/" rel="noopener noreferrer"&gt;React&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch" rel="noopener noreferrer"&gt;Fetch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.npmjs.com/package/styled-components" rel="noopener noreferrer"&gt;CSS in JS&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://blog-tuts-filtered-grid.netlify.app" rel="noopener noreferrer"&gt;Demo&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/chansen17/blog-tut-filter-grid" rel="noopener noreferrer"&gt;Repo&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="https://fakestoreapi.com/" rel="noopener noreferrer"&gt;The Fake Store API&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Let's take a look at an e-commerce example
&lt;/h2&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%2Fosafgq7hyjy3la763lin.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%2Fosafgq7hyjy3la763lin.png" alt="e-commerce example of a products grid or gallery"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A gallery or grid just like this one, showcasing the entire stores products may be something you see, when initially arriving at an e-commerce website.&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%2Fya1bd6b8yz83rrxklqol.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%2Fya1bd6b8yz83rrxklqol.png" alt="portfolio website example of a projects gallery"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Or how about your portfolio? You may have all your projects displayed beautifully. However, wouldn't it be better if we gave our users the ability to filter our projects by technologies like &lt;strong&gt;Vue&lt;/strong&gt; or &lt;strong&gt;React&lt;/strong&gt; or our stores products by category? &lt;/p&gt;




&lt;h2&gt;
  
  
  Fresh create-react-app project.
&lt;/h2&gt;

&lt;p&gt;Let's start off with our trusty &lt;code&gt;create-react-app&lt;/code&gt;. I left all pre-loaded files and CSS alone. Only thing I did was removed the boilerplate code in our &lt;code&gt;App()&lt;/code&gt; and the logo. &lt;/p&gt;

&lt;p&gt;First, let's import &lt;code&gt;useState&lt;/code&gt; and &lt;code&gt;useEffect&lt;/code&gt; in our app like so: ```import&lt;br&gt;
&lt;br&gt;
 { useEffect, useState } from 'react'&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
Then, in our terminal let's install our choice of CSS in JS library like so: 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;yarn add styled-components // yarn&lt;br&gt;
npm install styled-components --save // npm&lt;/p&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
Next, let's import our library like so: ```import

 styled from 'styled-components'

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

&lt;/div&gt;
&lt;p&gt;Lastly, I moved the React logo png from the &lt;code&gt;/public&lt;/code&gt; folder into our &lt;code&gt;/src&lt;/code&gt; folder. Then I renamed it to &lt;code&gt;react-logo.png&lt;/code&gt;. I will use this image for our loader later. Import it into our &lt;code&gt;App.js&lt;/code&gt; like so: &lt;code&gt;import Logo from './react-logo-.png&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;All our imports at the top should now look like this&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd8v0pcwwxsjp5h190rh2.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%2Fd8v0pcwwxsjp5h190rh2.png" alt="Our imports example at the top of our code editor"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Let's knock a few things out in &lt;code&gt;index.js&lt;/code&gt; next
&lt;/h2&gt;

&lt;p&gt;We're going to add &lt;code&gt;global styles&lt;/code&gt; to our app so we can adjust the body and html how we like. At the top of &lt;code&gt;index.js&lt;/code&gt;: ```import&lt;br&gt;
&lt;br&gt;
 {createGlobalStyle} from 'styled-components'&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Next we're going to create a `GlobalStyles` variable and add some styles to the body and html. It should look like this:

![How globalStyles should look](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kxl6thirdcyuiqohxeco.png)
Lastly, above our `&amp;lt;App/&amp;gt;` component in `ReactDOM.render()` add our `&amp;lt;GlobalStyles /&amp;gt;` component. Don't forget to add the `theme` prop with our `GlobalStyles` variable as it's value, like so:

![How to wrap our app component](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jj00q9bpi3f1fxp5o5j4.png)
That's it for index.js! 

---

## Back in `App.js` lets set up our state
We're going to need two pieces of state. A `products` state, and a `loading` state. 
```javascript


  const [products, setProducts] = useState([]);
  const [loading, setLoading] = useState(false);


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

&lt;/div&gt;
&lt;p&gt;We're expecting an array of data for our products, so we'll initialize it with an empty array. We also want a loading state, so users know things are happening in the background, while fetching data. Like a spinning logo for example. &lt;/p&gt;


&lt;h2&gt;
  
  
  Let's get some data
&lt;/h2&gt;

&lt;p&gt;Let's start with a function that handle our fetch request. &lt;br&gt;
We'll be using the &lt;strong&gt;fetch api&lt;/strong&gt;. I prefer to use two variables. One for fetching our endpoint, and one for storing our results. It looks like this:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fetchproducts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;setLoading&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;req&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`https://fakestoreapi.com/products`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;products&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="nf"&gt;setProducts&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;products&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nf"&gt;setLoading&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;products&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;


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

&lt;/div&gt;
&lt;p&gt;We're also setting the loading state to true during our request, and once we have our results, setting the loading state back to false. We should also &lt;code&gt;console.log()&lt;/code&gt; our products, to make sure we are indeed populating our state with data. It'll also make it easier to see our response from the API in chrome dev tools. &lt;/p&gt;

&lt;p&gt;If you'd like to learn more about the Fetch API and async functions check out this &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch" rel="noopener noreferrer"&gt;resource.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lastly, let's use our &lt;code&gt;useEffect&lt;/code&gt; hook. &lt;br&gt;
Below our state, and &lt;code&gt;fetchProducts()&lt;/code&gt; function, let's call our request:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;

&lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; 
  &lt;span class="nf"&gt;fetchProducts&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;},[]);&lt;/span&gt;


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

&lt;/div&gt;

&lt;h2&gt;
  
  
  We have our state, we have our data, now let's start creating our components
&lt;/h2&gt;

&lt;p&gt;We are going to need a &lt;code&gt;Grid&lt;/code&gt;, &lt;code&gt;Product&lt;/code&gt;, &lt;code&gt;Price&lt;/code&gt; and &lt;code&gt;Image&lt;/code&gt; and &lt;code&gt;Loading&lt;/code&gt; component. And don't create new files, as we're building custom styled components. &lt;br&gt;
Below our &lt;code&gt;App()&lt;/code&gt; but before our &lt;code&gt;export&lt;/code&gt; let's begin creating our components. &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%2Fphlwh8f4cl42bn1xb7o8.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%2Fphlwh8f4cl42bn1xb7o8.png" alt="styled-components example"&gt;&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%2Fg9fs3dn2kby7ijkgo954.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%2Fg9fs3dn2kby7ijkgo954.png" alt="styled-components example"&gt;&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%2Fbbhfpp0zuhppsenuwju3.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%2Fbbhfpp0zuhppsenuwju3.png" alt="styled-components example"&gt;&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%2Fsuvbhpts95uyxjyajo81.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%2Fsuvbhpts95uyxjyajo81.png" alt="styled-components example"&gt;&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%2Fuftfd95sqof3zzr6mdhn.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%2Fuftfd95sqof3zzr6mdhn.png" alt="styled-components example"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Let's add our components to our &lt;code&gt;App()&lt;/code&gt;
&lt;/h2&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%2Fq4n8c1k03fci5vk219s0.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%2Fq4n8c1k03fci5vk219s0.png" alt="Adding our styled-components to our app"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that we have our layout, you're probably noticing we're not using our data from our state.&lt;br&gt;
Let's &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map" rel="noopener noreferrer"&gt;map&lt;/a&gt; through our &lt;code&gt;products&lt;/code&gt; array like so:&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%2Fy3edq2whvplisg3ce785.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%2Fy3edq2whvplisg3ce785.png" alt="How to map through our state"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let' take it one step further. Let's take a preventive measure, and make sure we only render our products if we indeed have data in our states &lt;code&gt;product&lt;/code&gt; array. And, we'll only render our data if we are no longer fetching the data from our API. A very simple way to handle this would be a ternary operator. Let me explain what's happening here in pseudocode: &lt;code&gt;if notLoading AND if weHaveData ? mapThroughOurData : ELSE render loadingComponent&lt;/code&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%2Fhbiq0m2fsdofw2szy4ls.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%2Fhbiq0m2fsdofw2szy4ls.png" alt="How to use a ternary operator with our map"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hopefully, everything is working properly. If you are running into any problems, please hit me up on &lt;a href="https://www.twitter.com/hyggedev" rel="noopener noreferrer"&gt;Twitter!&lt;/a&gt; &lt;/p&gt;


&lt;h2&gt;
  
  
  You should have a fully responsive web app displaying content from the Fake Store API.
&lt;/h2&gt;

&lt;p&gt;However, we have not added that spicy "reactivity" yet. &lt;br&gt;
Let's do that next!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Let's add a &lt;code&gt;query&lt;/code&gt; state to our &lt;code&gt;App()&lt;/code&gt; component. Go ahead and add &lt;code&gt;const [query, setQuery] = useState('').&lt;/code&gt; Our state should now look like this:
&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%2Fn00d35c96z9v6tjo6sry.png" alt="our state"&gt;
&lt;/li&gt;
&lt;li&gt;Next, we need an event handler to handle the users input, and update our query state. It looks like this:
&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%2F05uzbldj4pspihzso2q9.png" alt="our filter function"&gt;
&lt;/li&gt;
&lt;li&gt;Next, let's build our &lt;code&gt;Input&lt;/code&gt; as a styled-component. It should look like this: 
&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%2Febzkf4klh8t9klvjdizb.png" alt="styled-component example"&gt;
&lt;/li&gt;
&lt;li&gt;Add our &lt;code&gt;Input&lt;/code&gt; component to our &lt;code&gt;App&lt;/code&gt; component and add the &lt;code&gt;onChange&lt;/code&gt; prop and set it to our &lt;code&gt;handleUserQuery&lt;/code&gt; function like so: 
&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%2F0ldjqek90a3794yzu1nj.png" alt="Add to onchange even handler to our component"&gt;
&lt;/li&gt;
&lt;li&gt;We're almost done! Let's add the secret sauce. We're going to create a simple function and its only responsibility is to filter our products state by filtering &lt;strong&gt;out&lt;/strong&gt; everything that does &lt;strong&gt;not&lt;/strong&gt; match the users input. It looks like this: 
```javascript
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;const filteredProducts = products.filter(product =&amp;gt; &lt;br&gt;
        product.category.toLowerCase().includes(query.toLowerCase()) || product.title.toLowerCase().includes(query.toLowerCase())&lt;br&gt;
    );&lt;/p&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;We're simply filtering __out__ any products that do __not__ match our users input. Our users will be able to filter their results by searching for
categories or titles. 
6. Lastly, instead of mapping through `products` in our `Grid` component, let's instead map through `filteredProducts.` Replace `products` with `filteredProducts` and that's it! The store should render all the same, accept the user now has the ability to filter results according to the way they search for their products. 

--- 

## Conclusion! 👏
That's a wrap for __Filter Your React Data With Basic Javascript__ 🤘 The idea was to inspire you to take this concept, and use it the way you see fit! Wether that's for an e-commerce store, a photo gallery, or your projects for your personal portfolio! You can get really creative with some basic javascript 😎 If something doesn't make sense, or you find an error, please don't hesitate to yell at me on [Twitter!](https://www.twitter.com/hyggedev) 

--- 

## Are you a beginner web dev on the learning journey!? 
Check out some of these articles also written by me! 

&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/how-to-stay-focused-as-a-self-taught-frontend-web-developer-7gp" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to stay focused 🔍 as a self taught Frontend Web Developer 💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Jul 29 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#productivity&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#devjournal&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/no-fuss-dark-mode-toggle-with-react-styled-components-3nd4" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;No Fuss Dark-Mode Toggle with React &amp;amp; Styled-Components! 🌞↔️🌖&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 18 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/easiest-way-to-add-icons-to-your-react-apps-5cgd" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Easiest Way To Add Icons To Your React Apps 😎&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 10 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/how-to-build-a-responsive-react-navigation-menu-with-styled-components-3682" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to build a Responsive 📱 React Navigation Menu with Styled-Components 💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 3 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;

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

&lt;/div&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>No Fuss Dark-Mode Toggle with React &amp; Styled-Components! 🌞↔️🌖</title>
      <dc:creator>Chris Hansen </dc:creator>
      <pubDate>Wed, 18 Aug 2021 05:32:36 +0000</pubDate>
      <link>https://dev.to/hyggedev/no-fuss-dark-mode-toggle-with-react-styled-components-3nd4</link>
      <guid>https://dev.to/hyggedev/no-fuss-dark-mode-toggle-with-react-styled-components-3nd4</guid>
      <description>&lt;p&gt;Have you noticed &lt;strong&gt;dark mode&lt;/strong&gt; is pretty standard lately? &lt;/p&gt;

&lt;p&gt;Well, that's because it's badass!&lt;/p&gt;

&lt;p&gt;Let's achieve this new standard of awesome by utilizing styled-components and React! &lt;/p&gt;

&lt;p&gt;It's super easy to implement, so let's get straight to it! 💯&lt;/p&gt;




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

&lt;h3&gt;
  
  
  👉 &lt;a href="https://styled-components-darkmode.netlify.app/" rel="noopener noreferrer"&gt;Demo&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  👉 &lt;a href="https://github.com/chansen17/styled-components-darkmode" rel="noopener noreferrer"&gt;Repo&lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  Some things I'm expecting you to know
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Development Environment&lt;/li&gt;
&lt;li&gt;Basics in React&lt;/li&gt;
&lt;li&gt;Basic S(C)ass&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  1. Fresh React project
&lt;/h2&gt;

&lt;p&gt;Let's clean up the file structure ~ &lt;em&gt;if you want.&lt;/em&gt; I deleted all unnecessary files for this project. Removing &lt;code&gt;App.css&lt;/code&gt; and all testing related files. Be sure to remove necessary lines of code in &lt;code&gt;index.js&lt;/code&gt;. I also cleaned up the boilerplate between the &lt;code&gt;header&lt;/code&gt; tags.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Install and Import styled-components
&lt;/h2&gt;

&lt;p&gt;With a fresh project, let's now install and import styled-components. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;yarn add styled-components&lt;/code&gt; or&lt;/li&gt;
&lt;li&gt;&lt;code&gt;npm install --save styled-components&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's now import styled-components like so:&lt;/p&gt;

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

import styled from 'styled-components'{% raw %}`
```

---
## 3. Let's create a simple landing page with styled-components

In our `App()` let's return a `Page`, `Container`, `Heading`, `H1`, `P`, `Toggle`, and `ThemeImage` component, respectively. It should look like so
![Example code showing the Page, Heading, H1, P, Toggle, and ThemeImage components](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0dvrh7tpi1vtvfp2lp5f.png)

---

## 4. Now that we have our layout, let's create each of our components
`Page` and `Container`
![Page and Container component](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0p4lz4gcacptj0ptwy7f.png)
`Heading` and `H1`
![Heading and H1](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6io3xddrn3oypq22rjog.png)
`P` and `Toggle`
![P and Toggle components](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fog9wx0oy7z4o9ko5ah2.png)
`ThemeImage` is the component that will contain our toggle state images 
![ThemeImage component](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lokti6hl65uhkz6gd65n.png)

---

## 5. Let's create state for our toggle component
In order for us to to toggle between light and dark mode, we need to hold state. Let's begin by importing the useState hook. `import {useState} from 'react'`. Then add it to your `App()` component like so:
```javascript 
const [isDarkMode, setDarkMode] = useState(false);
```
Next let's add the logic that will toggle between light and dark mode for our button `Toggle` component. 
```javascript
const handleToggle = () =&amp;gt; {
   setDarkMode(!isDarkMode);
   // console.log(isDarkMode);
}
```
This functions only responsibility is to toggle the opposite of what the current state is. In other words, if the state is currently `true`, toggling it will become `false`. If `false` it becomes `true`. 

---

## 6. Update our `Toggle` component
Now that we have a function that can toggle our light ~ dark state, let's update our `Toggle` component like so:
```javascript
&amp;lt;Toggle onClick={handleToggle}&amp;gt;&amp;lt;/Toggle&amp;gt;
```

---

## 7. Import images to display the active theme
If we want to show our users the current and next theme, we can do so visually with the use of a Moon and Sun image. Let's import the images at the top of our code like so:

*images are available in the repo*
```javascript 
import Moon from './images/moon.png';
import Sun from './images/sun.png';
```
Then lets update our `ThemeImage` component like so:
```javascript
&amp;lt;Toggle onClick={handleToggle}&amp;gt;
   &amp;lt;ThemeImage src={ !isDarkMode ? `${Sun}` : `${Moon}` } /&amp;gt;
&amp;lt;/Toggle&amp;gt;
```
Here we are updating the `ThemeImage` components src attribute as it is an instance of `img`. We are also conditionally setting the image with a simple ternary operator while also utilizing template literals. 
I'll explain with some pseudocode. You can read this like `if stateIsNotDarkMode ? render Moon : else render Sun.`

---

## 8. Let's update some style properties in our components
We're almost done! Let's update the `background` and `color` properties in a few of our components 

First, Let's change the `Page` components background style to: 
```css
background: ${props =&amp;gt; props.light ? "#eee" : "#333"};
```
Secondly, let's change the `H1` components color style to: 
```css
color: ${props =&amp;gt; !props.light ? "papayawhip" : "#000"};
```
Lastly, let's change the  `P` components color styles to: 
```css
color: ${props =&amp;gt; !props.light ? "#eee" : "#333"};
```
Here we are conditionally styling our background or color properties based on the prop that we pass into our components. If the component contains the `light` prop, render this color, else render this color.

---

## 9. Pass in our default Theme to our components with the `light` prop
All we have to do now is update our components in the layout with the default `light` prop. Like so:
```javascript
  return (
    &amp;lt;Page light={!isDarkMode ? true : false}&amp;gt;
      &amp;lt;Container&amp;gt;
        &amp;lt;Heading&amp;gt;
          &amp;lt;H1 light={!isDarkMode ? true : false}&amp;gt;Dynamic Styling with Styled-Components&amp;lt;/H1&amp;gt;
          &amp;lt;P light={!isDarkMode ? true : false}&amp;gt;Lorem ipsum dolor sit amet consectetur adipisicing elit. Dicta error natus at vitae sint qui sapiente impedit rerum commodi fugit ullam repudiandae itaque, saepe fuga facere temporibus excepturi dolore officia?&amp;lt;/P&amp;gt;
          &amp;lt;Toggle light={!isDarkMode ? true : false}  onClick={handleToggle}&amp;gt;
            &amp;lt;ThemeImage src={ !isDarkMode ? `${Moon}` : `${Sun}` } /&amp;gt;
          &amp;lt;/Toggle&amp;gt;
        &amp;lt;/Heading&amp;gt;
      &amp;lt;/Container&amp;gt;
    &amp;lt;/Page&amp;gt;
  );
}
```
Here I am also conditionally rendering the `light` prop to either be true, or false, depending on on our state. 

---

## Conclusion! 👏
Congrats! That's a wrap on **No Fuss Dark-Mode Toggle with React &amp;amp; Styled-Components!** Hopefully, if everything went right, you were able to implement a badass dark mode into your project, in 9 simple steps! 

Please don't hesitate to hit me up on [Twitter](https://twitter.com/hyggedev) in regards to any questions, concerns or if you just wanna say hello! 

---

## Are you a beginner web developer!? 
&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/how-to-stay-focused-as-a-self-taught-frontend-web-developer-7gp" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to stay focused 🔍 as a self taught Frontend Web Developer 💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Jul 29 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#productivity&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#devjournal&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/how-to-build-a-responsive-react-navigation-menu-with-styled-components-3682" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to build a Responsive 📱 React Navigation Menu with Styled-Components 💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 3 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/easiest-way-to-add-icons-to-your-react-apps-5cgd" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Easiest Way To Add Icons To Your React Apps 😎&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 10 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;

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

&lt;/div&gt;

</description>
      <category>webdev</category>
      <category>tutorial</category>
      <category>react</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Easiest Way To Add Icons To Your React Apps 😎</title>
      <dc:creator>Chris Hansen </dc:creator>
      <pubDate>Tue, 10 Aug 2021 00:01:58 +0000</pubDate>
      <link>https://dev.to/hyggedev/easiest-way-to-add-icons-to-your-react-apps-5cgd</link>
      <guid>https://dev.to/hyggedev/easiest-way-to-add-icons-to-your-react-apps-5cgd</guid>
      <description>&lt;h2&gt;
  
  
  A great UI begins with some great icons.
&lt;/h2&gt;

&lt;p&gt;Icons are important as they add familiarity to your website. Such as a hamburger menu. Everyone knows to click a hamburger icon to get more information, or how a down arrow at the bottom of the page, indicates the user should scroll. &lt;/p&gt;

&lt;p&gt;If you're working with React, it's extremely easy to implement icons into your projects, with thousands of choices from various libraries. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's begin.&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;react-icons: &lt;a href="https://react-icons.github.io/react-icons" rel="noopener noreferrer"&gt;https://react-icons.github.io/react-icons&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Demo: &lt;a href="https://react-icons-blog-example.netlify.app/" rel="noopener noreferrer"&gt;https://react-icons-blog-example.netlify.app/&lt;/a&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&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%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/chansen17" rel="noopener noreferrer"&gt;
        chansen17
      &lt;/a&gt; / &lt;a href="https://github.com/chansen17/react-icons-blog" rel="noopener noreferrer"&gt;
        react-icons-blog
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Example on how to use react-icons in a react-project. 
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  1. We're going to be using the &lt;code&gt;react-icons&lt;/code&gt; package 📦
&lt;/h2&gt;

&lt;p&gt;Download &lt;code&gt;react-icons&lt;/code&gt; either with yarn or npm. Like so:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. Import Icons ↩️
&lt;/h2&gt;

&lt;p&gt;On the react-icons homepage, you'll see a ton of libraries to choose from. From Bootstrap, Font-awesome, Material-UI and many more. Choose your favorite. &lt;/p&gt;

&lt;p&gt;Once you find the icon you like, click to add the code to your clipboard. &lt;/p&gt;

&lt;p&gt;Now, in &lt;code&gt;App.js&lt;/code&gt; all we need to do is import the Icon and the library like so:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// fa is the reference to the font-awesome library
import { FaReact, FaSass, FaLinux} from 'react-icons/fa';

// md is the reference to the material-ui library
import { MdFavoriteBorder, MdChat } from 'react-icons/md';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Let's use our icons 👍
&lt;/h2&gt;

&lt;p&gt;Lastly, in your &lt;code&gt;App()&lt;/code&gt; component, all you need to do is use the Icon like any other component. So back in step 2, if you imported the React, Sass, Linux, Favorites and Chat Icons, just use them like so:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;ul&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;FaReact&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/li&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;FaSass&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/li&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;FaLinux&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/li&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;MdFavoriteBorder&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/li&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;MdChat&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/li&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/ul&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;Congrats! That's it! That's all it takes to bring Icons into your React projects. You have the choice of thousands of Icons from 21 different libraries! And the best part is you only import the Icons you need from each individual library, which helps with performance! &lt;/p&gt;

&lt;p&gt;&lt;em&gt;So bring some flare to your UI, &amp;amp; get creative!&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Are you on the Web Dev learning journey!?
&lt;/h2&gt;

&lt;p&gt;Check out my other posts on &lt;em&gt;productivity&lt;/em&gt; and &lt;em&gt;React.&lt;/em&gt;&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/how-to-stay-focused-as-a-self-taught-frontend-web-developer-7gp" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to stay focused 🔍 as a self taught Frontend Web Developer 💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Jul 29 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#productivity&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#devjournal&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/hyggedev" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F273899%2Fc143e65c-a98f-4545-968d-814c095950a0.jpg" alt="hyggedev"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/hyggedev/how-to-build-a-responsive-react-navigation-menu-with-styled-components-3682" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to build a Responsive 📱 React Navigation Menu with Styled-Components 💻&lt;/h2&gt;
      &lt;h3&gt;Chris Hansen  ・ Aug 3 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;







&lt;div class="ltag__tag ltag__tag__id__6357"&gt;
    &lt;div class="ltag__tag__content"&gt;
      &lt;h2&gt;#&lt;a href="https://dev.to/t/codenewbies" class="ltag__tag__link"&gt;codenewbies&lt;/a&gt; Follow
&lt;/h2&gt;
      &lt;div class="ltag__tag__summary"&gt;
        
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div class="ltag__tag ltag__tag__id__2162"&gt;
    &lt;div class="ltag__tag__content"&gt;
      &lt;h2&gt;#&lt;a href="https://dev.to/t/tutorials" class="ltag__tag__link"&gt;tutorials&lt;/a&gt; Follow
&lt;/h2&gt;
      &lt;div class="ltag__tag__summary"&gt;
        
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


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