<?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: Youssef Hefnawy </title>
    <description>The latest articles on DEV Community by Youssef Hefnawy  (@hefnawy).</description>
    <link>https://dev.to/hefnawy</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%2F921160%2F3c79cdca-d832-4185-920e-0d77702b9b13.png</url>
      <title>DEV Community: Youssef Hefnawy </title>
      <link>https://dev.to/hefnawy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hefnawy"/>
    <language>en</language>
    <item>
      <title>The Non-developers Guide to Optimize Your Website Images!</title>
      <dc:creator>Youssef Hefnawy </dc:creator>
      <pubDate>Mon, 18 Dec 2023 18:56:49 +0000</pubDate>
      <link>https://dev.to/hefnawy/images-are-killing-your-websites-performance-optimize-your-website-images-p3</link>
      <guid>https://dev.to/hefnawy/images-are-killing-your-websites-performance-optimize-your-website-images-p3</guid>
      <description>&lt;p&gt;The first thing I look for when examining a website's performers is images!&lt;/p&gt;

&lt;p&gt;It is the easiest to fix and the most common cause of bad performers, People just can't resist adding a 4K image to their site, and it's not just the quality of the image, image type, size, and even the way the image is called can be the reason!&lt;/p&gt;

&lt;p&gt;Here's a quick guide to improving your website's images for Non-Developers.&lt;/p&gt;

&lt;h1&gt;
  
  
  The Non-Developers Guide:
&lt;/h1&gt;

&lt;p&gt;If you use WordPress or something similar, there are plugins or some settings that you can use to improve images at least a little, so the first step is usually to start here. But often more than this alone will be needed if the basics themselves are wrong!&lt;/p&gt;

&lt;p&gt;WordPress plugins:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;WP Smush&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ShortPixel Image Optimizer&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Imagify&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;but If you are a smart person and do not use WordPress, follow the following guide:&lt;/p&gt;

&lt;h2&gt;
  
  
  Do you really need an image? Font/Svg!
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;If you hire a designer for 10,000 and he gives you a logo consisting only of a fancy font, at least make sure he gives you the name of the font.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Using Fonts
&lt;/h3&gt;

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

&lt;p&gt;The font is smaller in size and can be easily modified compared to the image, so If you find an image consisting of text with a colored background, replace it with real text and background. This is not only better for the site’s performance, but also for SEO!&lt;/p&gt;

&lt;p&gt;visit &lt;a href="https://fonts.google.com/"&gt;Google Fonts&lt;/a&gt; to get all the fonts you want!&lt;/p&gt;

&lt;h3&gt;
  
  
  using SVG
&lt;/h3&gt;

&lt;p&gt;what’s an SVG you ask!&lt;/p&gt;

&lt;p&gt;it’s the smarter but less beautiful sister of the image, as Instead of storing pixels, it performs mathematical equations to determine its shape, which makes it super easy to customize and so much smaller in size compared to the image but this is in exchange for less complexity.&lt;/p&gt;

&lt;p&gt;So if all you want is a Facebook icon or a down arrow, use SVG.&lt;/p&gt;

&lt;p&gt;If you want to know the best Icon sites, you can read →  &lt;strong&gt;&lt;a href="https://medium.com/@Youssef_Hefnawy/top-5-icon-websites-for-devs-and-designers-4ff2b44f1c12"&gt;Top 5 Icon websites&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Use the right size/type!
&lt;/h2&gt;

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

&lt;p&gt;If you are using an image of an entire forest to display only one tree, this might be the reason for your bad performance. maybe! &lt;/p&gt;

&lt;p&gt;so crop the image to display only what you want from the image.&lt;/p&gt;

&lt;h3&gt;
  
  
  Right image size:
&lt;/h3&gt;

&lt;p&gt;If your phone is 400px wide, do not use a 4k image, believe me, a low-quality image will look good in a small size, so for a 400px  screen use a 400px image!&lt;/p&gt;

&lt;p&gt;You can use one of the following tools to resize images:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imageresizer.com/"&gt;Image Resizer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.adobe.com/express/feature/image/resize"&gt;adobe resizer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.iloveimg.com/resize-image"&gt;I love image resizer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Right image type:
&lt;/h3&gt;

&lt;p&gt;I would be filling the article with filler if I started talking about the difference between types of images so here's the general rule:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;JPEG:&lt;/strong&gt; For photographs, good compression.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PNG:&lt;/strong&gt; For transparency, lossless quality.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WebP:&lt;/strong&gt; Good balance of quality and size (browser support may vary).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HEIF:&lt;/strong&gt; Efficient compression, newer devices.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Your site is bad from the beginning, so use &lt;strong&gt;WebP&lt;/strong&gt; and don't bother with browser support —  said your customer&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can use one of the following tools to convert images:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://cloudconvert.com/image-converter"&gt;CloudConvert&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.iloveimg.com"&gt;I love image&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Compress your image.
&lt;/h2&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Image compression is the second closest thing we have to black magic after AI&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When compressing the image, its size may reach half the original size without noticing any noticeable difference in image quality, If you're wondering why images aren't this small in the first place, Keep wondering because I don't know either, but I'm sure Adobe had something to do with it.&lt;/p&gt;

&lt;p&gt;You can use one of the following tools to Compress images:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://tinypng.com/"&gt;TinyPNG&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.iloveimg.com"&gt;I love image&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How does image Compression work?
&lt;/h3&gt;

&lt;p&gt;an AI-generated explanation of how image compression works:&lt;/p&gt;

&lt;p&gt;Imagine you have a slice of bread, and you want to spread butter on it. The bread is like your original image, and the butter represents the details and colors in that image.&lt;/p&gt;

&lt;p&gt;Now, to make it easier to carry or store, you decide to compress it. Compression, in this case, is like melting the butter and spreading it more thinly across the bread while still keeping its taste. You use less butter, but you can still enjoy the flavor.&lt;/p&gt;

&lt;p&gt;In the same way, image compression reduces the amount of data needed to represent the picture, but it tries to keep the essential details intact. So, just like you can have a smaller amount of spread-out butter that retains the essence of the taste, compressed images take up less space but aim to preserve important visual information.&lt;/p&gt;




&lt;h3&gt;
  
  
  Quote of the day
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;looking back, every single time I’ve been inspired to do&lt;br&gt;
something difficult, I was in a soft environment, because it all sounds doable&lt;br&gt;
when you’re chilling on your fucking couch -*&lt;strong&gt;&lt;em&gt;Can't Hurt Me- David_Goggins&lt;/em&gt;&lt;/strong&gt;*&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  More From Us:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://hefnawystudio.substack.com/?utm_source=navbar&amp;amp;utm_medium=web&amp;amp;r=31jf6o"&gt;Newsletter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/hafanwy"&gt;Twitter / X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/hefnawystudio/"&gt;Instagram&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>performance</category>
      <category>webdev</category>
      <category>image</category>
      <category>programming</category>
    </item>
    <item>
      <title>How to sell anything! Increase your offer value to 100X| $100M Offers By Alex Hormozi book sum.</title>
      <dc:creator>Youssef Hefnawy </dc:creator>
      <pubDate>Wed, 13 Dec 2023 16:48:55 +0000</pubDate>
      <link>https://dev.to/hefnawy/book-sum-create-a-100m-offer-using-the-value-equation-100m-offers-by-alexhormozi-5gmn</link>
      <guid>https://dev.to/hefnawy/book-sum-create-a-100m-offer-using-the-value-equation-100m-offers-by-alexhormozi-5gmn</guid>
      <description>&lt;h1&gt;
  
  
  $100M Offers!
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;With over 300,000 copies sold and a #1 Amazon bestseller ranking for 74 consecutive weeks, this book has transformed businesses and lives.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;With a title like this and claims like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make people an offer so good they would feel stupid saying no.&lt;/li&gt;
&lt;li&gt;Charge as high a price as you can say out loud without cracking a smile.&lt;/li&gt;
&lt;li&gt;Creating Irresistible Products&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You may think this book tells the story of some Very talented and lucky people, then gives you an empty box and tells you to fill it with your goals and achieve them by dividing them into small tasks.&lt;/p&gt;

&lt;p&gt;but you are wrong!&lt;/p&gt;

&lt;p&gt;This is undoubtedly one of the best books in its field. and It is one of the few books that I rate 5/5, whether the simple writing style or actually Providing a workable plan for success!&lt;/p&gt;

&lt;h2&gt;
  
  
  Author's notes:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Due to the amount of content in the book and your short attention span, I will divide the summary into parts starting with &lt;strong&gt;The Value Equation.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;This summary is not a detailed summary, page by page, but rather a useful summary of the book’s content. Why, you're not in school, you don't have to study this book page by page!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Don't just read my summary, read the book!&lt;/p&gt;

&lt;p&gt;Reading summaries will not be enough, as to implement what is in the books you must be convinced of what it says, and a summary read in 5 minutes will not make you convinced of the idea enough to believe in its success&lt;/p&gt;

&lt;p&gt;Go and get the book with my Affiliate Link (: → &lt;a href="https://www.amazon.com/100M-Offers-People-Stupid-Saying-ebook/dp/B099QVG1H8?&amp;amp;_encoding=UTF8&amp;amp;tag=hafnawy2002-20&amp;amp;linkCode=ur2&amp;amp;linkId=db83bf16543e6df9bd75c4468d45452f&amp;amp;camp=1789&amp;amp;creative=9325"&gt;$100M Offers By Alex_Hormozi&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Goodreads → &lt;a href="https://www.goodreads.com/book/show/58612786-100m-offers"&gt;$100M Offers on Goodreads&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  The Value Equation.
&lt;/h1&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Make people an offer so good they would feel stupid saying no!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;“Charge as high a price as you can say out loud without cracking a smile” &lt;/p&gt;

&lt;p&gt;By increasing the value of the offer, you can sell the same product at a higher price, Imagine the difference between a taxi driver and a Limousine driver, same skill but different value, and by increasing the value of your product, you can sell anything at any price, but how?&lt;/p&gt;

&lt;p&gt;The Value Equation!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The reason people buy anything is to get a deal. They believe what they are getting (VALUE) is worth more than what they are giving in exchange for it (PRICE). The moment the value they receive dips below what they are paying, they stop buying from you. This price to value discrepancy is what you need to avoid at all costs.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;The value equation = [ Dream * the possibility of success ] \ [ Time * Ease of use ]&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1- Result, a dream that you can achieve for the customer!
&lt;/h2&gt;

&lt;p&gt;What's the difference between a skin-lightening cream and an anti-aging cream? Both producers achieve the same goal, Not to be ugly, but the difference in the size of the gap!  &lt;/p&gt;

&lt;p&gt;The gap, as defined by the book &lt;em&gt;Gap Selling&lt;/em&gt;, is the difference between the customer's current state and their anticipated future state after purchasing your product. The greater the difference in value perception, the greater the opportunity for a successful sale.&lt;/p&gt;

&lt;p&gt;To increase the results (dream), you must make sure that your product achieves the biggest goal you can achieve for the customer.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Instead of simply writing an article for the customer, craft compelling copy that helps them build their brand identity.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Don't just sell a diet, offer a comprehensive plan for integrating healthy habits into your life.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Move beyond selling food, and focus on delivering an exceptional high-end dining experience.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To delve deeper into the dream/gap principle I advise you to read → &lt;em&gt;&lt;a href="https://www.amazon.com/Gap-Selling-Problem-Centric-Everything-Relationships/dp/1732891001?&amp;amp;_encoding=UTF8&amp;amp;tag=hafnawy2002-20&amp;amp;linkCode=ur2&amp;amp;linkId=e611f00f113667bf75311fa4fa1a4344&amp;amp;camp=1789&amp;amp;creative=9325"&gt;Gap Selling&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2- Confirm the probability of success
&lt;/h2&gt;

&lt;p&gt;the &lt;strong&gt;placebo effect&lt;/strong&gt; is a fascinating phenomenon in medicine. It demonstrates the powerful influence of our mind over our body. When a person believes a treatment will be effective, it can actually produce real physiological changes, leading to symptom improvement even if the treatment itself is inert.&lt;/p&gt;

&lt;p&gt;This principle holds true for your product as well. The greater your ability to convince customers that it fulfills their needs, the higher your purchase rate will be.&lt;/p&gt;

&lt;p&gt;You can achieve this by: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Highlighting your extensive experience and expertise in the field.&lt;/strong&gt; By showcasing your knowledge and track record, you build trust and credibility with potential clients.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offering risk-free guarantees, such as "no payment if it doesn't work" or "profit sharing" models.&lt;/strong&gt; This demonstrates your commitment to client satisfaction and reduces the perceived risk for potential clients.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sharing compelling testimonials and case studies demonstrating your product's success with other customers.&lt;/strong&gt; Real-world examples of satisfied clients can be incredibly persuasive and provide social proof of your product's effectiveness.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Time, between purchasing the product and achieving the dream
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;The only thing that beats “free” is “fast.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Without a doubt, speed is arguably the most important factor in the equation. Throughout history, "faster" has consistently outpaced "slower," as demonstrated by the evolution of transportation: horses gave way to cars, which themselves will be replaced by aircraft.&lt;/p&gt;

&lt;p&gt;Most people focus only on results and marketing to ensure success. The competition here is so intense that it may be useless to say that your producer is the best, The solution is to make sure that your product is the fastest until you can say you are an Uber among the taxis!&lt;/p&gt;

&lt;h2&gt;
  
  
  Ease of use
&lt;/h2&gt;

&lt;p&gt;Ease of use is…, you don't need an explanation of what ease of use is, right? Just make your product easy to use!&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Conclusion&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;By applying this equation, you can guarantee that your offer delivers exceptional value. But now, the questions arise: how do you craft the offer and what product should it feature? Wait for the summary of the next chapter or Go ahead and delve into the book yourself You are not a child → &lt;a href="https://www.amazon.com/100M-Offers-People-Stupid-Saying-ebook/dp/B099QVG1H8?&amp;amp;_encoding=UTF8&amp;amp;tag=hafnawy2002-20&amp;amp;linkCode=ur2&amp;amp;linkId=db83bf16543e6df9bd75c4468d45452f&amp;amp;camp=1789&amp;amp;creative=9325"&gt;$100M Offers By Alex_Hormozi&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  More From Us:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://hefnawystudio.substack.com/?utm_source=navbar&amp;amp;utm_medium=web&amp;amp;r=31jf6o"&gt;Newsletter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/hafanwy"&gt;Twitter / X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/hefnawystudio/"&gt;Instagram&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>books</category>
      <category>learning</category>
      <category>money</category>
    </item>
    <item>
      <title>The Button that every Front-End developer should use, the written once-and-forgotten code!!!</title>
      <dc:creator>Youssef Hefnawy </dc:creator>
      <pubDate>Sat, 02 Dec 2023 12:26:19 +0000</pubDate>
      <link>https://dev.to/hefnawy/the-button-that-every-front-end-developer-should-use-the-written-once-and-forgotten-code-2olp</link>
      <guid>https://dev.to/hefnawy/the-button-that-every-front-end-developer-should-use-the-written-once-and-forgotten-code-2olp</guid>
      <description>&lt;h1&gt;
  
  
  Why would I need a magic button?
&lt;/h1&gt;

&lt;p&gt;I mean, who doesn't want a magic button? a Button that always works!&lt;/p&gt;

&lt;p&gt;behaves as you expect it to behave and stays where you put it in the size you specified. I think you already have enough layout and responsiveness problems to add a bad button problem, I know it's just a button why overrengine it? &lt;/p&gt;

&lt;p&gt;Because you will write the code once and forget it, Don't believe me, you can go to review the code on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://codepen.io/ymhaah/pen/WNJpKJK"&gt;CodePen&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/ymhaah/the-Indestructible-button"&gt;GitHub&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But if you want to understand how I made my magic button. Well, continue reading!&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;HTML&lt;/strong&gt; &lt;code&gt;&amp;lt;button&amp;gt;&amp;lt;/button&amp;gt;&lt;/code&gt;, Well not that simple!
&lt;/h1&gt;

&lt;p&gt;If when you press the button and something happens use &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;add &lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-type"&gt;type=”button”&lt;/a&gt;&lt;/strong&gt; To tell the browser how this button behaves, or any other button &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button"&gt;type&lt;/a&gt;
.&lt;/li&gt;
&lt;li&gt;if the button is icon only “no text” add &lt;a href="https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label"&gt;aria-label=”description”&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;if the button is disabled add &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/disabled"&gt;disabled`&lt;/a&gt; and &lt;a href="https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-disabled"&gt;aria-disabled=”true”&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;br&gt;
&amp;lt;button type="button" class="Button"&amp;gt;normal&amp;lt;/button&amp;gt;&lt;br&gt;
&amp;lt;button type="button" aria-label=”star” class="Button"&amp;gt;*&amp;lt;/button&amp;gt;&lt;br&gt;
&amp;lt;button type="button" disabled aria-disabled=”true” class="Button"&amp;gt;disabled&amp;lt;/button&amp;gt;&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;If when you press the button, you move to another page use the &lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a"&gt;Anchor element&lt;/a&gt;&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;add &lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/button_role"&gt;role=”button”&lt;/a&gt;&lt;/strong&gt; to specify to the browser what is the role of this link.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;html&lt;br&gt;
&amp;lt;a href="#" role="button" class="Button"&amp;gt;a link button&amp;lt;/a&amp;gt;&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;But if you do not know which one to use, I recommend reading the following: &lt;strong&gt;&lt;a href="https://bitsofco.de/anchors-vs-buttons/"&gt;Anchors vs Buttons&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;if you're thinking of using anything else as a button, here's a message from the smart people of &lt;a href="https://developer.mozilla.org/en-US/"&gt;Mozilla&lt;/a&gt; telling you why this is a stupid idea.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: If using role="button" instead of the semantic [button] or [input type="button"] elements, you will need to make the element focusable and define event handlers for click and keydown events. This includes handling the Enter and Space keypresses in order to process all forms of user input.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  CSS that just works!
&lt;/h1&gt;

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

&lt;p&gt;I want to admit something; I'm obsessed with buttons!&lt;/p&gt;

&lt;p&gt;I've always been interested in creating the perfect button, as the first thing I do when trying a new library is check how they made the button, I even built a library specifically for that, a library that aims to provide only the Important items with high quality, you will find there even a more overrengined button, and If you would like to get it or help me to overengineer the front-end world with some high quality react component, visit &lt;strong&gt;&lt;a href="https://github.com/ymhaah/Moon-RockUI"&gt;Moon-RockUI&lt;/a&gt;&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Help me launch version 1.0.0 soon!&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Some basics before we start:&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;I will use &lt;code&gt;rem&lt;/code&gt; and &lt;code&gt;em&lt;/code&gt; a lot and other css units, if you want to know more, I advise you to read this: &lt;strong&gt;&lt;a href="https://www.digitalocean.com/community/tutorials/css-css-units-explained"&gt;CSS Units Explained&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;In general, I use &lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties"&gt;CSS custom properties&lt;/a&gt;&lt;/strong&gt; in my own code, It gives me superpowers, but I won't use them in this article&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Button Size:
&lt;/h2&gt;

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

&lt;p&gt;the trick here is not to specify a &lt;strong&gt;fixed size&lt;/strong&gt;, but rather to set limits for the &lt;strong&gt;largest&lt;/strong&gt; and &lt;strong&gt;smallest&lt;/strong&gt; size, as the button size will depend mainly on the &lt;strong&gt;font size, t&lt;/strong&gt;o determine the size we will follow the basic design rules for buttons to find out more, I recommend reading this: &lt;strong&gt;&lt;a href="https://www.justinmind.com/blog/button-design-websites-mobile-apps/"&gt;Button design for websites and mobile apps&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;css&lt;br&gt;
.Button {&lt;br&gt;
    width: fit-content;&lt;br&gt;
    max-width: min(100%, 100vw);&lt;br&gt;
}&lt;br&gt;
@supports not (width: fit-content) {&lt;br&gt;
    .Button {&lt;br&gt;
        width: auto;&lt;br&gt;
    }&lt;br&gt;
}&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;width: fit-content;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;we use &lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/fit-content"&gt;fit-content&lt;/a&gt;&lt;/strong&gt; as the size will use the available space, but never more than &lt;code&gt;max-content&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;max-width: min(100%, 100vw);&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;You specify the largest width that the element can reach &lt;strong&gt;&lt;em&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/max-width"&gt;max-width&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;using the &lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/min"&gt;min()&lt;/a&gt;&lt;/strong&gt; To choose the smallest value between &lt;strong&gt;100%&lt;/strong&gt; linked to the size of the parent element, which may be half the screen for example.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;100vw&lt;/strong&gt; linked to the screen size.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You do this to allow the element to expand ( if desired ) to either parent size or screen size, without any overflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Button layout, display &amp;amp; Align:
&lt;/h2&gt;

&lt;p&gt;I used to use &lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/display"&gt;display: Block&lt;/a&gt;&lt;/strong&gt; then I used &lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/display"&gt;display: inline&lt;/a&gt;&lt;/strong&gt; but when I was learning &lt;strong&gt;&lt;a href="https://reactjs.org/"&gt;React&lt;/a&gt;&lt;/strong&gt; I discovered &lt;strong&gt;&lt;a href="https://mui.com/"&gt;MUI&lt;/a&gt;&lt;/strong&gt;, and as usual, the first thing I did was look at how they did their button and I found them using &lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/display"&gt;inline-flex&lt;/a&gt;!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;inline-flex The element behaves like an inline element and lays out its content according to the flexbox model.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;`css&lt;br&gt;
.Button {&lt;br&gt;
  display: inline-flex;&lt;br&gt;
    justify-content: center;&lt;br&gt;
    align-items: center;&lt;br&gt;
    vertical-align: middle;&lt;br&gt;
    text-align: center;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;`&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;using the magic of Flex We will center any items inside this button. with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content"&gt;justify-content&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/align-items"&gt;align-items&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We will use properties like &lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/text-align"&gt;text-align&lt;/a&gt;&lt;/strong&gt; &amp;amp; &lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align"&gt;vertical-align&lt;/a&gt;&lt;/strong&gt; in general for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To make sure an extra image or strange text is always in the middle.&lt;/li&gt;
&lt;li&gt;For the person who still uses an old browser (for browser support) In case flex doesn't work for some reason.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h2&gt;
  
  
  Button properties, &lt;strong&gt;padding &amp;amp; Font-size:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Here lies the magic that makes this button work in all cases and all sizes.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;css&lt;br&gt;
.Button {&lt;br&gt;
    padding: max(0.5em, 0.5rem) max(1.5em, 1.5rem);&lt;br&gt;
    font-size: clamp(0.875rem, 0.7rem + 0.7vw, 1.375rem);&lt;br&gt;
}&lt;br&gt;
@supports not (font-size: clamp(0.875rem, 0.7rem + 0.7vw, 1.375rem)) {&lt;br&gt;
    .Button {&lt;br&gt;
        font-size: 1rem;&lt;br&gt;
    }&lt;br&gt;
}&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;this seems more overkill than the max-width trick and it is, but You will only copy this code once and it will work in all cases.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/padding"&gt;padding&lt;/a&gt;&lt;/strong&gt;: max(0.5em, 0.5rem) max(1.5em, 1.5rem); The trick here is to use &lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/max"&gt;max()&lt;/a&gt;&lt;/strong&gt; Where if you notice that I use the same value once with &lt;strong&gt;rem&lt;/strong&gt; and once with &lt;strong&gt;em&lt;/strong&gt; but why?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The point of max() It is to choose which value is greater; Usually &lt;strong&gt;em&lt;/strong&gt; will be bigger, Where if we assume that the font size of the button is &lt;strong&gt;24px.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;em = 24px and rem = 16px Follow the default browser size&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So why do we do this? In general, when using a small font size such as &lt;strong&gt;12px&lt;/strong&gt; if you use just &lt;strong&gt;em&lt;/strong&gt; The button dimensions will be too narrow Since it is related to the font size, but then &lt;strong&gt;rem&lt;/strong&gt; will be the biggest. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;em = 12px rem = 16px Still at the default text size&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;we use this trick to define the &lt;strong&gt;minimum&lt;/strong&gt; space inside the button and at the same time it allows the button to grow with the font size.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;font-size: clamp(0.875rem, 0.7rem + 0.7vw, 1.375rem); Honestly, I cannot explain to you how to choose these values here, as I will need another article.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But in short using &lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/clamp"&gt;clamp()&lt;/a&gt;&lt;/strong&gt; Allows you to use a font that is responsive to your screen size with a &lt;strong&gt;minimum of 0.875rem&lt;/strong&gt; and a &lt;strong&gt;maximum of 1.375rem&lt;/strong&gt; ( for Example ).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;To make it easier, you can use a font size clamp calculator&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I &lt;strong&gt;strongly&lt;/strong&gt; advise you to read these articles, as they will benefit you as web dev in general:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://css-tricks.com/linearly-scale-font-size-with-css-clamp-based-on-the-viewport/"&gt;Linearly Scale font-size with CSS clamp()&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.aleksandrhovhannisyan.com/blog/fluid-type-scale-with-css-clamp/"&gt;Creating a Fluid Type Scale with CSS Clamp&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.smashingmagazine.com/2022/01/modern-fluid-typography-css-clamp/"&gt;Modern Fluid Typography Using CSS Clamp&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h2&gt;
  
  
  the Cherry on the Button:
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;`css&lt;br&gt;
.Button {&lt;br&gt;
    overflow: hidden;&lt;br&gt;
    white-space: nowrap;&lt;br&gt;
    cursor: pointer;&lt;br&gt;
    user-select: none;&lt;br&gt;
    appearance: button;&lt;/p&gt;

&lt;p&gt;}&lt;br&gt;
`&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/overflow"&gt;overflow: hidden;&lt;/a&gt;&lt;/strong&gt; To prevent anything from coming out outside the button.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/white-space"&gt;white-space: nowrap;&lt;/a&gt;&lt;/strong&gt; Prevent text from going to more than one line.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/cursor"&gt;cursor: pointer;&lt;/a&gt;&lt;/strong&gt; The cursor is a pointer that indicates a link. Typically an image of a pointing hand.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/user-select"&gt;user-select: none;&lt;/a&gt;&lt;/strong&gt; make The text of the element and its sub-elements is not selectable.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;'user-select' is not supported by Safari, Safari on iOS.This is an optional feature where if the button contains important text, you may allow it&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/appearance"&gt;appearance: button;&lt;/a&gt;&lt;/strong&gt; The appearance CSS property is used to control native appearance of UI controls, that are based on operating system's theme.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;'appearance' is not supported by Safari on iOS &amp;lt; 15.4.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Button &lt;strong&gt;hover &amp;amp; focus:&lt;/strong&gt;
&lt;/h2&gt;

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

&lt;p&gt;Nothing special I just determined how the button behaves in different situations, and I used a cool focus ring trick I learned from the king of CSS.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;`css&lt;br&gt;
.Button {&lt;br&gt;
    box-shadow: 0 0 0 -0.4em hsl(0, 0%, 100%),&lt;br&gt;
        0 0 0 -0.6em rgba(13, 109, 253, 0.7);&lt;br&gt;
    transition: box-shadow 400ms cubic-bezier(0.66, -0.2, 0.27, 1.15);&lt;/p&gt;

&lt;p&gt;}&lt;br&gt;
.Button:active,&lt;br&gt;
.Button:hover {&lt;br&gt;
    opacity: 0.7;&lt;br&gt;
}&lt;br&gt;
.Button:focus-visible {&lt;br&gt;
    box-shadow: 0 0 0 0.3em hsl(0, 0%, 100%),&lt;br&gt;
        0 0 0 0.5em rgba(13, 109, 253, 0.7);&lt;br&gt;
}&lt;br&gt;
.Button:focus {&lt;br&gt;
    outline: none;&lt;br&gt;
}&lt;br&gt;
`&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Conclusion + Free gift!&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;I hope I kept my promise to you!&lt;/p&gt;

&lt;p&gt;“the written once-and-forgotten code” thing, now go and copy the code. I want to fulfill my promise to you, If you would like to use a more complex button in your next project, you can visit &lt;strong&gt;&lt;a href="https://github.com/ymhaah/Moon-RockUI"&gt;Moon-RockUI&lt;/a&gt;,&lt;/strong&gt; Where you can help me create the best button.&lt;/p&gt;

&lt;p&gt;version 1.0.0 soon!&lt;/p&gt;

&lt;h2&gt;
  
  
  More From Us:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://hefnawystudio.substack.com/?utm_source=navbar&amp;amp;utm_medium=web&amp;amp;r=31jf6o"&gt;Newsletter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/hafanwy"&gt;Twitter / X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/hefnawystudio/"&gt;Instagram&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  the complete code:
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;br&gt;
.Button {&lt;br&gt;
    width: fit-content;&lt;br&gt;
    max-width: min(100%, 100vw);&lt;br&gt;
    display: inline-flex;&lt;br&gt;
    justify-content: center;&lt;br&gt;
    align-items: center;&lt;br&gt;
    text-align: center;&lt;br&gt;
    vertical-align: middle;&lt;br&gt;
    overflow: hidden;&lt;br&gt;
    appearance: button;&lt;br&gt;
    user-select: none;&lt;br&gt;
    text-transform: capitalize;&lt;br&gt;
    white-space: nowrap;&lt;br&gt;
    text-decoration: none;&lt;br&gt;
    cursor: pointer;&lt;br&gt;
    padding: max(0.5em, 0.5rem) max(1.5em, 1.5rem);&lt;br&gt;
    font-size: clamp(0.875rem, 0.7220363289rem + 0.7648183556vw, 1.375rem);&lt;br&gt;
    box-shadow: 0 0 0 -0.4em hsl(0, 0%, 100%),&lt;br&gt;
        0 0 0 -0.6em rgba(13, 109, 253, 0.7);&lt;br&gt;
    transition: box-shadow 400ms cubic-bezier(0.66, -0.2, 0.27, 1.15);&lt;br&gt;
}&lt;br&gt;
.Button:active,&lt;br&gt;
.Button:hover {&lt;br&gt;
    opacity: 0.7;&lt;br&gt;
}&lt;br&gt;
.Button:focus-visible {&lt;br&gt;
    box-shadow: 0 0 0 0.3em hsl(0, 0%, 100%),&lt;br&gt;
        0 0 0 0.5em rgba(13, 109, 253, 0.7);&lt;br&gt;
}&lt;br&gt;
.Button:focus {&lt;br&gt;
    outline: none;&lt;br&gt;
}&lt;br&gt;
@supports not (font-size: clamp(0.875rem, 0.7rem + 0.7vw, 1.375rem)) {&lt;br&gt;
    .Button {&lt;br&gt;
        font-size: 1rem;&lt;br&gt;
    }&lt;br&gt;
}&lt;br&gt;
@supports not (width: fit-content) {&lt;br&gt;
    .Button {&lt;br&gt;
        width: auto;&lt;br&gt;
    }&lt;br&gt;
}&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>css</category>
      <category>beginners</category>
    </item>
    <item>
      <title>4 ways to deal with overflowing text in CSS!</title>
      <dc:creator>Youssef Hefnawy </dc:creator>
      <pubDate>Sun, 16 Jul 2023 20:30:38 +0000</pubDate>
      <link>https://dev.to/hefnawy/4-ways-to-deal-with-overflowing-text-in-css-1j5m</link>
      <guid>https://dev.to/hefnawy/4-ways-to-deal-with-overflowing-text-in-css-1j5m</guid>
      <description>&lt;h1&gt;
  
  
  Introduction:
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;CSS is awesome&lt;/strong&gt;, said no one after his text overflow!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;CSS is an incredibly powerful tool for web developers, but it's not without its challenges. One of the most common issues that developers face is data loss caused by overflow.&lt;/p&gt;

&lt;p&gt;text can spill out and become hidden or unreadable. This can be frustrating, but luckily, CSS provides several solutions to prevent data loss caused by overflow.&lt;/p&gt;

&lt;p&gt;So I present to you &lt;strong&gt;4 ways to deal with overflowing text in CSS!&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  why does text overflow?
&lt;/h2&gt;

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

&lt;p&gt;First, let's take a look at the root cause of overflow issues. Typically, overflow occurs when there is a fixed width on an element and its content exceeds that width.&lt;/p&gt;

&lt;p&gt;In general, try to avoid setting a fixed width and height, and try to make the sizes relative to either the screen or the parent element.&lt;/p&gt;

&lt;p&gt;But you may be forced to do this because of the design, as it could be a sidebar wiht limited width, for example!&lt;/p&gt;




&lt;h2&gt;
  
  
  Use &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/overflow"&gt;overflow: hidden&lt;/a&gt;
&lt;/h2&gt;

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

&lt;p&gt;One common solution is to use the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/overflow"&gt;overflow: hidden&lt;/a&gt; property, which hides the overflowing content. However, this solution isn't always the best option, especially when dealing with text.&lt;/p&gt;

&lt;p&gt;Fortunately, there are several alternative solutions that you can use to prevent overflow and keep your content visible and readable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/overflow"&gt;overflow-x: auto&lt;/a&gt;
&lt;/h2&gt;

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

&lt;p&gt;One way to prevent data loss caused by overflow is to use the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/overflow"&gt;overflow-x: auto&lt;/a&gt; property. This allows the content to remain visible even if it exceeds the container's width. This solution introduces scrolling, which allows users to view the full content by scrolling horizontally. You can even customize the scrollbar!&lt;/p&gt;

&lt;h2&gt;
  
  
  Use &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-wrap"&gt;overflow-wrap: break-word&lt;/a&gt;
&lt;/h2&gt;

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

&lt;p&gt;Another solution is to use the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-wrap"&gt;overflow-wrap: break-word&lt;/a&gt; property. This property breaks words to prevent overflow and ensure that all content remains visible. However, this solution may not always be the best option since it can make the text hard to read, especially without hyphenation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use &lt;code&gt;min-content&lt;/code&gt; or &lt;code&gt;fit-content&lt;/code&gt;
&lt;/h2&gt;

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

&lt;p&gt;If you're not stuck with a fixed width or height, a third solution is to use either &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/min-content"&gt;min-content&lt;/a&gt; or &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/fit-content"&gt;fit-content&lt;/a&gt;. These properties set the width or height of an element to the smallest or largest possible size based on its content.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/min-content"&gt;Min-content&lt;/a&gt; sets the width or height to the smallest possible size&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/fit-content"&gt;fit-content&lt;/a&gt; stretches the width or height to fit its content with the option to wrap if necessary.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Use &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_container_queries"&gt;container queries&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;The fourth and perhaps most exciting solution is to use &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_container_queries"&gt;container queries&lt;/a&gt;, specifically container query units. This option allows you to adjust the font size of the content within the container based on its size. Container queries are not yet fully supported by all browsers, but they offer a promising solution to the problem of overflow.&lt;/p&gt;

&lt;p&gt;To use container queries, you will need to select the parent container and set its type to &lt;code&gt;inline-size&lt;/code&gt;. Then, you can adjust the font size of the content within the container using the &lt;code&gt;font-size: calc()&lt;/code&gt; function and the &lt;code&gt;var(--cq)&lt;/code&gt; container query unit.&lt;/p&gt;

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

&lt;p&gt;In conclusion, CSS provides several solutions to prevent data loss caused by overflow. By using &lt;code&gt;overflow-x: auto&lt;/code&gt;, &lt;code&gt;overflow-wrap: break-word&lt;/code&gt;, &lt;code&gt;min-content&lt;/code&gt; or &lt;code&gt;fit-content&lt;/code&gt;, and container queries, you can ensure that your content remains visible and readable. So next time you encounter an overflow issue, don't panic - try out one of these solutions instead.&lt;/p&gt;

&lt;p&gt;In the end, I would like to hear your opinions about the article.&lt;/p&gt;

&lt;h2&gt;
  
  
  Author
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/hafanwy"&gt;Twitter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>learning</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Top 5 YouTube Channels for Front-end Devs!!!</title>
      <dc:creator>Youssef Hefnawy </dc:creator>
      <pubDate>Wed, 05 Jul 2023 18:06:40 +0000</pubDate>
      <link>https://dev.to/hefnawy/top-5-youtube-channels-for-front-end-devs-29ld</link>
      <guid>https://dev.to/hefnawy/top-5-youtube-channels-for-front-end-devs-29ld</guid>
      <description>&lt;h1&gt;
  
  
  Introduction:
&lt;/h1&gt;

&lt;p&gt;The environment expresses its owner, as we imitate the people with spend most of our time with, And if most of your time on social media is spent following stupidity, you will be stupid!&lt;/p&gt;

&lt;p&gt;So literally choosing the content you watch can make you a better person, This also applies to how good of a Front-end Dev you are.&lt;/p&gt;

&lt;p&gt;So, in today's article, I collected for you the &lt;strong&gt;“Top 5 YouTube Channels for Front-end Devs”.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Honorable Mention:
&lt;/h1&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%2F6k07u7j2t1pw7fa73yeb.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6k07u7j2t1pw7fa73yeb.jpeg" alt="free code camp"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.youtube.com/@freecodecamp" rel="noopener noreferrer"&gt;freecodecamp&lt;/a&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Since 2014, more than 40,000 freeCodeCamp.org graduates have gotten jobs at tech companies&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;freecodecamp is one of the largest and most popular education platforms in the world, Where not only the YouTube channel, but also the famous platform &lt;a href="https://www.freecodecamp.org/" rel="noopener noreferrer"&gt;freecodecamp.org&lt;/a&gt;, Which has more than 15 different tracks to learn programming.&lt;/p&gt;

&lt;p&gt;Thanks to them for cooperating with many paid course platforms to bring their content to us for free!&lt;/p&gt;

&lt;p&gt;Where you will find more than one different course that explains the same thing, which guarantees you that you will find the best teacher that suits your level.&lt;/p&gt;

&lt;p&gt;The only reason they didn't make it to the list is the variety, which can be a bit confusing.&lt;/p&gt;

&lt;p&gt;But in general, they are one of the best sources for learning programming, Whether the YouTube channel or the educational platform, they will provide you with the best quality.&lt;/p&gt;




&lt;h1&gt;
  
  
  Top 5 YouTube Channels for Front-end Devs
&lt;/h1&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%2Fh2r426yh5at7cszn2bw8.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh2r426yh5at7cszn2bw8.jpeg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.youtube.com/@KevinPowell/videos" rel="noopener noreferrer"&gt;Kevin Powell&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;The undisputed king of CSS, whether you are a beginner or an advanced dev, following him is essential to ensure your continuous improvement!&lt;/p&gt;

&lt;p&gt;whether you want to learn flex, grid or something annoying like position Kevin Powell is the right person for that.&lt;/p&gt;

&lt;p&gt;An excellent source to be aware of the latest CSS updates like &lt;a href="https://www.youtube.com/watch?v=3_-Je5XpbqY&amp;amp;t=502s&amp;amp;ab_channel=KevinPowell" rel="noopener noreferrer"&gt;container queries&lt;/a&gt;, Ensure the quality of your code and follow the accessibility standard.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.youtube.com/@Fireship" rel="noopener noreferrer"&gt;Fireship&lt;/a&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%2Fu0lroo7aokc351k06evb.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu0lroo7aokc351k06evb.jpeg" alt="Fireship"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At first, you may think that this channel does not provide useful content because of the non-academic style it uses and the short duration of its videos, which breaks standards, but after you start giving it a chance, you will discover that it is undisputedly one of the best content creators not only in the field of programming, but in YouTube as a whole. Where the amount of creativity and the genius sense of humor that only those in the field can understand.&lt;/p&gt;

&lt;p&gt;From the news of the week that keeps you up to date with all the latest news, to the 100-second videos that give you a quick look at what this technology is, and its discussion videos, this channel offers content that you won't find anywhere else, although it does not focus on full and detailed courses, it does provide additional content.&lt;/p&gt;

&lt;p&gt;videos like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=SJeBRW1QQMA&amp;amp;list=PLPeqRhIotBsxErb1Wi6cCTBBQXyAh6Ifs&amp;amp;index=111&amp;amp;t=348s" rel="noopener noreferrer"&gt;I built a JavaScript framework
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=Xg9ihH15Uto&amp;amp;t=608s" rel="noopener noreferrer"&gt;How to Land a 100K/yr Tech Job - 10 Strategies
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=1t1_a1BZ04o" rel="noopener noreferrer"&gt;How to NOT Fail a Technical Interview&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Or even the last 20 videos on artificial intelligence, where whenever I watch his content, I am sure that it is the best YouTuber in the field, and if not for his full courses being paid, he would have been the first without a doubt.&lt;/p&gt;

&lt;h2&gt;
  
  
    ‏
&lt;/h2&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.youtube.com/@WebDevSimplified" rel="noopener noreferrer"&gt;Web Dev Simplified&lt;/a&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%2F7hfjq5m4il891avrm23d.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7hfjq5m4il891avrm23d.jpeg" alt="web dev simplified"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The person who got everything dominating the field of JavaScript and React and the best hair in the field of programming.&lt;/p&gt;

&lt;p&gt;he really simplifies the web, as he has a distinguished ability to explain what you need only without any useless things, which makes the information short and easy to understand.&lt;/p&gt;

&lt;p&gt;And in his brief way of explaining what you need to know, make sure that he will be the only person who is able to provide a new course at the same speed a new JS framework is made.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://www.youtube.com/@t3dotgg" rel="noopener noreferrer"&gt;Theo - t3․gg&lt;/a&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%2F50iuwdumk6l6zkkjfsmc.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F50iuwdumk6l6zkkjfsmc.jpeg" alt="Theo t3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;He made the best discussions you can get, a new point of view on topics, and he has the most number of ahhhaa moments in the field.&lt;/p&gt;

&lt;p&gt;After you follow him, you will suddenly feel that you can form a logical opinion about what you know in the field.&lt;/p&gt;

&lt;p&gt;videos like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=CQuTF-bkOgc&amp;amp;list=PLPeqRhIotBsxErb1Wi6cCTBBQXyAh6Ifs&amp;amp;index=29&amp;amp;t=277s" rel="noopener noreferrer"&gt;CSS in 2023 - Tailwind vs MUI vs Bootstrap vs Chakra vs...&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=S7X6fLbdwlc&amp;amp;list=PLPeqRhIotBsxErb1Wi6cCTBBQXyAh6Ifs&amp;amp;index=73" rel="noopener noreferrer"&gt;JavaScript Frameworks in 2023&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://www.youtube.com/@NetNinja" rel="noopener noreferrer"&gt;The Net Ninja&lt;/a&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%2Fssznj0n620cl6ypgrmhq.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fssznj0n620cl6ypgrmhq.jpeg" alt="The Net Ninja"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Before you do anything, you should watch &lt;a href="https://www.youtube.com/watch?v=dQw4w9WgXcQ" rel="noopener noreferrer"&gt;this&lt;/a&gt; video from The Net Ninja!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;One of the most varied and content-rich channels, you will find courses for almost everything you need in the field.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion:
&lt;/h1&gt;

&lt;p&gt;In the end, I would like to hear your opinions about the article.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What was missing?&lt;/li&gt;
&lt;li&gt;Should I add more or fewer details?&lt;/li&gt;
&lt;li&gt;Do I add more explanation or cut it out and only talk about the experience?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Author
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;professional links:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/hafanwy" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/youssef-hafnawy/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ymhaah" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Hire me:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.upwork.com/freelancers/~01acd8e5370e5646aa" rel="noopener noreferrer"&gt;UpWork&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>frontend</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>Best Programming Memes of the Week #1</title>
      <dc:creator>Youssef Hefnawy </dc:creator>
      <pubDate>Sun, 30 Apr 2023 18:47:57 +0000</pubDate>
      <link>https://dev.to/hefnawy/best-programming-memes-of-the-week-1-gc3</link>
      <guid>https://dev.to/hefnawy/best-programming-memes-of-the-week-1-gc3</guid>
      <description>&lt;h2&gt;
  
  
  Introduction:
&lt;/h2&gt;

&lt;p&gt;There is no real benefit from this article, but despite that, you chose to read it&lt;/p&gt;

&lt;p&gt;but there is no better feeling than laughing at a meme that shares your suffering with a Programming language, and if you understand the meme, you understand the language!&lt;/p&gt;

&lt;p&gt;therefore Here's the 'Best Programming Memes of the Week' I found.&lt;/p&gt;

&lt;h2&gt;
  
  
  First time using js Regex be like:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uM7V89WA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cdq5ln1tqj8y4z8ixdr4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uM7V89WA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cdq5ln1tqj8y4z8ixdr4.png" alt="js regex meme" width="490" height="411"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Every front-end dev's friend:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2SAWTepT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/os16v1a9unbx8f0msyin.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2SAWTepT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/os16v1a9unbx8f0msyin.jpg" alt="debug meme" width="800" height="590"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  using while be like:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MVx4HweR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cttni0d8ua0vv9be85pt.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MVx4HweR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cttni0d8ua0vv9be85pt.jpg" alt="loop meme" width="800" height="683"&gt;&lt;/a&gt;&lt;br&gt;
This image will take time to load&lt;/p&gt;




&lt;h2&gt;
  
  
  Every developer's nightmare:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cBgIXyxX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5oonqsicasvwa9opuy88.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cBgIXyxX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5oonqsicasvwa9opuy88.jpg" alt="js and java meme" width="604" height="473"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  my in any work group:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6r5bMuGh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w6n7glapiok0k78t8sd3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6r5bMuGh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w6n7glapiok0k78t8sd3.jpg" alt="for loop meme" width="800" height="662"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;If you have reached this stage, you should at least go read something useful, I suggest you one of my last article:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/ymhaah/top-5-websites-to-sharpen-your-front-end-skills-3ao0"&gt;Top 5 websites to sharpen your front-end skills.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/ymhaah/30-day-react-learning-journey-part-1-14od"&gt;30-Day React Learning Journey&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/ymhaah/how-to-build-an-advanced-lightdark-theme-website-gke"&gt;How To Build An Advanced Light/Dark Theme Website&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I hope you will share your opinion about the best meme and share with me if you find a new meme.&lt;/p&gt;

&lt;h2&gt;
  
  
  Author
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;professional links:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/hafanwi"&gt;Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/youssef-hafnawy/"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ymhaah"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Hire me:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.upwork.com/services/product/development-it-a-custom-and-responsive-websites-in-wordpress-1577236892828233728?ref=project_share"&gt;UpWork&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://freelancer.com/u/ymhaah"&gt;Freelancer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Blog:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://hafnawi.hashnode.dev/"&gt;HashNode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/ymhaah"&gt;Dev.to&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/@ymhaah250"&gt;Medium&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>meme</category>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
    <item>
      <title>How To Build An Advanced Light/Dark Theme Website!</title>
      <dc:creator>Youssef Hefnawy </dc:creator>
      <pubDate>Mon, 10 Apr 2023 21:25:25 +0000</pubDate>
      <link>https://dev.to/hefnawy/how-to-build-an-advanced-lightdark-theme-website-gke</link>
      <guid>https://dev.to/hefnawy/how-to-build-an-advanced-lightdark-theme-website-gke</guid>
      <description>&lt;h2&gt;
  
  
  Introduction:
&lt;/h2&gt;

&lt;p&gt;An adult need, on average, 15 minutes of direct exposure to sunlight per day to produce enough vitamin D, but still many people suffer from vitamin D deficiency due to lack of exposure to natural light and only exposure to artificial blue light.&lt;/p&gt;

&lt;p&gt;So, our job as web devs is to make sure that even artificial light does not reach them; by adding dark mode to their websites.&lt;/p&gt;

&lt;p&gt;Whether for the sake of stylish looks or accessibility, adding a dark mode to any website has become very popular lately, and considerate to the eyes of programmers and content creators who spend all their day in front of a computer screen Today you will learn “How To Build An Advanced Light/Dark Theme website”&lt;/p&gt;

&lt;p&gt;You can find all the code used in this article on &lt;a href="https://codepen.io/ymhaah/pen/poxJVbP" rel="noopener noreferrer"&gt;codepen&lt;/a&gt; or &lt;a href="https://github.com/ymhaah/Dark-mode-template" rel="noopener noreferrer"&gt;github&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%2Fxmh5gvp2je3xgiymfs01.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxmh5gvp2je3xgiymfs01.jpg" alt="dark mode meme"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The easy way:
&lt;/h2&gt;

&lt;p&gt;You can close the article now, as I have collected a set of libraries that will give you easy to-add dark mode but If you were a &lt;strong&gt;real programmer&lt;/strong&gt;, I would wait for a detailed explanation of how to do it yourself when you could use a library and get it done in half the time!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://darkmodejs.learn.uno/" rel="noopener noreferrer"&gt;Darkmode.Js&lt;/a&gt;&lt;/strong&gt; library uses the CSS &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/mix-blend-mode" rel="noopener noreferrer"&gt;&lt;code&gt;mix-blend-mode&lt;/code&gt;&lt;/a&gt; in order to bring Dark-mode to any of your websites.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/Fcmam5/nightly.js" rel="noopener noreferrer"&gt;Nightly.js&lt;/a&gt;&lt;/strong&gt; A zero-dependency Javascript library for enabling dark/night mode in you UI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/Assortment/darkmodejs" rel="noopener noreferrer"&gt;darkmodejs&lt;/a&gt;&lt;/strong&gt; Link between system preferences and your site automatically, And yes, there is no longer creativity in names&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And don't forget that most of the new components libraries support dark mode out of the box like &lt;a href="https://getbootstrap.com/" rel="noopener noreferrer"&gt;bootstrap&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%2Fj6t2ub0wav5h61jdkw92.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%2Fj6t2ub0wav5h61jdkw92.png" alt="real programmer meme"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  real programmer way:
&lt;/h2&gt;

&lt;p&gt;Let's start with the simplest thing you can do to make your site support dark mode and also follow device preferences, which is to use the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/color-scheme" rel="noopener noreferrer"&gt;&lt;code&gt;color-scheme&lt;/code&gt;&lt;/a&gt; CSS property&lt;/p&gt;

&lt;p&gt;All new browsers have a default style Built into them, for example when you use a form it Comes in a specific shape and color&lt;/p&gt;

&lt;p&gt;Also, most browsers have a dark mode version of all the elements, and using and using the &lt;code&gt;color-scheme&lt;/code&gt; property changes the page to the browser version of the dark mode.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="py"&gt;color-scheme&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;dark&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;You should not rely too heavily on this feature, as the level of modification that you can do with it is low, and also your site can vary from browser to browser.&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%2Fkfu2gp3k1mwdhknrbchl.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkfu2gp3k1mwdhknrbchl.jpeg" alt="chorom vs firefox dark mode style"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In fact, there are many details in this simple thing, but if we want to build an Advanced Light/Dark Theme Website we can't just rely on it, if you want more details, I recommend this video: &lt;a href="https://www.youtube.com/watch?v=n3lcjY4Mm00&amp;amp;ab_channel=KevinPowell" rel="noopener noreferrer"&gt;Light &amp;amp; Dark mode WITHOUT CSS&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%2F7gg8a30cumusi7rbvhev.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7gg8a30cumusi7rbvhev.jpg" alt="dark mode colors"&gt;&lt;/a&gt;&lt;br&gt;
Before you start writing the code, of course, you have to choose the colors in both modes, and since I am not a designer here is some good sources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://m2.material.io/design/color/dark-theme.html" rel="noopener noreferrer"&gt;Material Design Dark theme&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/eightshapes-llc/light-dark-9f8ea42c9081" rel="noopener noreferrer"&gt;Light &amp;amp; Dark Color Modes in Design Systems&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After you choose the appropriate colors for your project, the easiest way to deal with these colors is to collect them in a system of &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties" rel="noopener noreferrer"&gt;CSS variables&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nd"&gt;:root&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="py"&gt;--clr-dark-gray&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;hsl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0%&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;13%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="py"&gt;--clr-white&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;hsl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;16%&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;89%&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;ul&gt;
&lt;li&gt;Create a variable that represents dark mode and light mode [--&lt;code&gt;bg-clr-light&lt;/code&gt;, &lt;code&gt;--bg-clr-dark&lt;/code&gt;, ...]
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nd"&gt;:root&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c"&gt;/* light mode */&lt;/span&gt;
    &lt;span class="py"&gt;--bg-clr-light&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--clr-white&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="py"&gt;--txt-clr-light&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--clr-dark-gray&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="c"&gt;/* dark mode */&lt;/span&gt;
    &lt;span class="py"&gt;--bg-clr-dark&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--clr-dark-gray&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="py"&gt;--txt-clr-dark&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--clr-white&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;ul&gt;
&lt;li&gt;&lt;p&gt;Create the main variables that are used throughout the site [&lt;code&gt;--bg-clr&lt;/code&gt;, &lt;code&gt;--txt-clr&lt;/code&gt;, ...]&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;And in the absence of the &lt;strong&gt;'dark'&lt;/strong&gt; class make that the value of the main variables is equal to the light mode variables: &lt;code&gt;--bg-clr: var(--bg-clr-light);&lt;/code&gt; and vice versa&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="py"&gt;--bg-clr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--bg-clr-light&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="py"&gt;--txt-clr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--txt-clr-light&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="py"&gt;color-scheme&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;light&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="nc"&gt;.dark&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="py"&gt;--bg-clr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--bg-clr-dark&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="py"&gt;--txt-clr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--txt-clr-dark&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="py"&gt;color-scheme&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;dark&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;ul&gt;
&lt;li&gt;Use these variables in your project, as their value will change once you but the 'dark' class
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.App&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--bg-clr&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;
  
  
  CSS code
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nd"&gt;:root&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="py"&gt;--clr-dark-gray&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;hsl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;0%&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;13%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="py"&gt;--clr-white&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;hsl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;16%&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;89%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="py"&gt;--bg-clr-light&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--clr-white&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="py"&gt;--txt-clr-light&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--clr-dark-gray&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="py"&gt;--bg-clr-dark&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--clr-dark-gray&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="py"&gt;--txt-clr-dark&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--clr-white&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="py"&gt;--bg-clr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--bg-clr-light&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="py"&gt;--txt-clr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--txt-clr-light&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="py"&gt;color-scheme&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;light&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="nc"&gt;.dark&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="py"&gt;--bg-clr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--bg-clr-dark&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="py"&gt;--txt-clr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--txt-clr-dark&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="py"&gt;color-scheme&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;dark&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.App&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--bg-clr&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;all that's left is everyone's favorite part &lt;strong&gt;JS&lt;/strong&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%2Fc26zlb75boph8tdiw7v8.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc26zlb75boph8tdiw7v8.jpg" alt="js meme"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Don't worry all you have to do is toggle the 'dark' class on the body when you click on the button.&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;let&lt;/span&gt; &lt;span class="nx"&gt;toggleButton&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;.Button&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;body&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;body&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;toggleButton&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&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="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;classList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toggle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;dark&lt;/span&gt;&lt;span class="dl"&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;ul&gt;
&lt;li&gt;Target the button and the body using &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector" rel="noopener noreferrer"&gt;&lt;code&gt;document.querySelector(document.querySelector)&lt;/code&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;add an &lt;strong&gt;EventListener&lt;/strong&gt; to listen to the button when clicked using &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener" rel="noopener noreferrer"&gt;&lt;code&gt;addEventListener(type, listener)&lt;/code&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;pass a function to the &lt;strong&gt;EventListener&lt;/strong&gt; that adds or removes the class to the body using &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Element/classList" rel="noopener noreferrer"&gt;&lt;code&gt;classList.toggle(class)&lt;/code&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And now when you press the button the 'dark' class will be added and the main CSS variables values will be swapped.&lt;/p&gt;

&lt;p&gt;Of course, you can make the project more elegant by adding animations, keeping the status of the site, and other ideas, but I leave the opportunity for your creativity to continue here after me.&lt;/p&gt;

&lt;p&gt;But I will not leave you without many sources to draw inspiration from them and continue learning more:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=RiWxhm5ZdFM&amp;amp;ab_channel=WebDevSimplified" rel="noopener noreferrer"&gt;How To Build An Advanced Light/Dark Theme Toggle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=wodWDIdV9BY&amp;amp;ab_channel=KevinPowell" rel="noopener noreferrer"&gt;How to make a website light/dark toggle with CSS &amp;amp; JS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=dQw4w9WgXcQ&amp;amp;ab_channel=RickAstley" rel="noopener noreferrer"&gt;How To Build An Advanced Light/Dark Theme Website!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;this was How To Build An Advanced Light/Dark Theme Website, and don't forget to make dark mode the default mode on your website.&lt;/p&gt;

&lt;p&gt;In the end, I would like to hear your opinions about the article.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What was missing?&lt;/li&gt;
&lt;li&gt;Should I add more or fewer details?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I hope you liked the article and don't forget to follow me on:&lt;/p&gt;

&lt;h2&gt;
  
  
  Author
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;professional links:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/hafanwi" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/youssef-hafnawy/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ymhaah" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Hire me:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.upwork.com/services/product/development-it-a-custom-and-responsive-websites-in-wordpress-1577236892828233728?ref=project_share" rel="noopener noreferrer"&gt;UpWork&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://freelancer.com/u/ymhaah" rel="noopener noreferrer"&gt;Freelancer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Blog:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://hafnawi.hashnode.dev/" rel="noopener noreferrer"&gt;HashNode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/ymhaah"&gt;Dev.to&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/@ymhaah250" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>css</category>
      <category>html</category>
      <category>darkmode</category>
    </item>
    <item>
      <title>Top 5 websites to sharpen your front-end skills.</title>
      <dc:creator>Youssef Hefnawy </dc:creator>
      <pubDate>Sun, 12 Feb 2023 17:50:29 +0000</pubDate>
      <link>https://dev.to/hefnawy/top-5-websites-to-sharpen-your-front-end-skills-3ao0</link>
      <guid>https://dev.to/hefnawy/top-5-websites-to-sharpen-your-front-end-skills-3ao0</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Introduction:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;As a front-end developer, from the moment you write the first HTML line to the last minute in the React course, it's hard to get experience; Since you are not yet good enough to get experience from a real job, but you are able to create Semi complete website.&lt;/p&gt;

&lt;p&gt;You may think that keeping up with the courses is enough, but if math proves one thing to me, it is that you understand until you start trying.&lt;/p&gt;

&lt;p&gt;So, in today's article, I collected for you the &lt;strong&gt;“Top 5 websites to sharpen your front-end skills”&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Honorable Mention:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FhqR72Pc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ttobrfkpp9gcp0yi9oxw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FhqR72Pc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ttobrfkpp9gcp0yi9oxw.jpeg" alt="frontend practicel home page" width="800" height="503"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.frontendpractice.com/"&gt;frontend practice&lt;/a&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;With frontendPractice, you can browse high quality Figma templates that you can use to sharpen your HTML and CSS skills.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Creating high-quality projects yourself is considered one of the best that will help you build experience in a field, and ensuring the quality of the project is an important thing, as good and bad designs need the same code.&lt;/p&gt;

&lt;p&gt;frontendPractice provides you with a high-quality ready-made website design for you to train on, and it would have deserved to be included in the list had it not been for the presence of the first rank that surpasses it in quality and number of projects&lt;/p&gt;




&lt;h2&gt;
  
  
  Top 5 websites to sharpen your front-end skills:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LsoQAbpd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yawca8rq0ecm2sawff8d.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LsoQAbpd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yawca8rq0ecm2sawff8d.jpeg" alt="Front End Mentor" width="800" height="606"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.frontendmentor.io"&gt;1- frontend mentor&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;You cannot start a list talking about the best website to sharpen your front-end skills without mentioning frontend mentor.&lt;/p&gt;

&lt;p&gt;The site that will help you in all stages of your learning, whether you are a beginner or advanced, you will always find a suitable challenge for your skill.&lt;/p&gt;

&lt;p&gt;Basically, you will find ready-made website designs with several levels of difficulty, starting with a simple card that just need basics Html and CSS to an advanced site that needs you to deal with API and some advanced JS tricks or maybe React.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Improve your front-end coding skills by building real projects&lt;br&gt;
Solve real-world HTML, CSS and JavaScript challenges whilst working to professional designs.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---3VAMeXJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zm5q66tt0o4u3txyxf0f.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---3VAMeXJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zm5q66tt0o4u3txyxf0f.jpeg" alt="frontedn mentor challenges page" width="800" height="725"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The only drawback may be that you will not get the design file in the free version, but from experience you will not feel this big difference. On the contrary, the added difficulty of not having the design file helps you increase your skill.&lt;/p&gt;

&lt;p&gt;With each challenge, you will get pictures of each site's status, design resources, colors and fonts, and the best README file template Which I still use until now in my projects, and with the paid version, you can get Sketch and Figma design file.&lt;/p&gt;

&lt;p&gt;And if you do not know the solution or want more sources, you can always view the solutions page or search on GitHub, as most of the projects are open source.&lt;/p&gt;

&lt;p&gt;Here are some useful links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;GitHub: &lt;a href="https://github.com/zuolizhu/frontendmentor_challenges"&gt;44 Frontendmentor challenges solutions&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;YouTube list: &lt;a href="https://www.youtube.com/playlist?list=PLcZZlEf3w738Bv45a8yI_iIv2OGx_JLvz"&gt;Frontend Mentor Challenges&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://codepip.com"&gt;2- codepip&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FLj_qSOu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/latuwl077goc9pwhh3mq.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FLj_qSOu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/latuwl077goc9pwhh3mq.jpeg" alt="codepip homepage" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gamification is One of the most effective ways to increase motivation and increase the fun of the learning journey; by adding the factor of challenge and the desire to win, and also by hiding any complexity within easy-to-understand visual effects.&lt;/p&gt;

&lt;p&gt;And at the beginning of your learning journey, you will face complex things that may be the reason for your frustration, for example, the first time you will deal with CSS flexBox or grid It's going to be difficult.&lt;/p&gt;

&lt;p&gt;Codepip facilitated the learning journey by creating games that you play by writing code, adding a fun and challenging factor to programming.&lt;/p&gt;

&lt;p&gt;Games like &lt;a href="https://codepip.com/games/flexbox-froggy/"&gt;Flexbox Froggy&lt;/a&gt; and &lt;a href="https://codepip.com/games/grid-garden/"&gt;Grid Garden&lt;/a&gt; It was an essential thing in my learning journey that helped me master these techniques.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://leetcode.com"&gt;3- leetcode&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CxORXdB8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3mloy3kpy1y90uxx0q2f.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CxORXdB8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3mloy3kpy1y90uxx0q2f.jpeg" alt="leetcode homepage" width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the world of programming, especially in front-end Many self-educated devs enter the field without a degree in computer science. &lt;/p&gt;

&lt;p&gt;most of them, during their learning journey, entered into studying their field of specialization directly without learning things like algorithms, where they end up reinventing the wheel and solving their programming problems in a low-quality way from the well-known algorithms methods.&lt;/p&gt;

&lt;p&gt;You will not notice this weakness that you have unless you solve a lot of problems, then you will discover that in fact most of the problems can be solved with less than 14 known algorithmic patterns.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;LeetCode is the best platform to help you enhance your skills, expand your knowledge and prepare for technical interviews.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can find many problems at different levels, and you can also solve them in different programming languages.&lt;/p&gt;

&lt;p&gt;Although I don't agree with this approach, problem-solving is key in job interviews, so &lt;strong&gt;a leetcode a day keep unemployment away!&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://codepen.io/challenges"&gt;4- Codepen challenges&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--X82OwXMa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/01ognwgxrrrvsix5t21c.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--X82OwXMa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/01ognwgxrrrvsix5t21c.jpeg" alt="code pen" width="800" height="558"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CodePen is a social development environment. At its heart, it allows you to write code in the browser, and see the results of it as you build.&lt;/p&gt;

&lt;p&gt;A useful and liberating online code editor for developers of any skill focus primarily on front-end languages like HTML, CSS, JavaScript, and preprocessing syntaxes that turn into those things.&lt;/p&gt;

&lt;p&gt;You can practice your skill there without any complications, just writing code, and you can also share your code and see other people's code.&lt;/p&gt;

&lt;p&gt;A great platform to get inspiration and just brainstorm and write code.&lt;/p&gt;

&lt;p&gt;Here are some of my favorite Pens I found:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://codepen.io/v_Bauer/pen/WNroMOq"&gt;liquid navbar effect&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://codepen.io/jkantner/pen/ZEvQbOK"&gt;loading screen Animation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://codepen.io/jkantner/pen/rNaPadg"&gt;radio button animation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://cssbattle.dev/"&gt;5- cssbattle&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GM1YzWR_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8t9iy5hp8ho0lpesdfgx.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GM1YzWR_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8t9iy5hp8ho0lpesdfgx.jpeg" alt="cssbattle homepage" width="800" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In general, front-end devs can be divided into two types:&lt;/p&gt;

&lt;p&gt;The first is the person who spends most of his time writing JavaScript code, working on the basic functions of the site, dealing with servers and API, and this type will benefit greatly from LeetCode and Learn some principles of algorithms.&lt;/p&gt;

&lt;p&gt;The second type, which I am from, spends most of its time dealing with CSS and the general shape of the site dealing with animations, colors, fonts and cssbattle teach you problem solving for CSS.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;CSSBattle is an online CSS Code Golfing game. Here, players from all around the world try to visually replicate "Targets" in smallest possible CSS code and battle it out to get to the top of the leaderboard.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Solving the challenges on this site forces you to think about css properties in a way that you will not think of before by going beyond the limits of traditional site properties.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;CSS code-golfing game is here! Use your CSS skills to replicate targets with smallest possible code. Feel free to check out the targets below and put your CSS skills to test.&lt;/p&gt;
&lt;/blockquote&gt;




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

&lt;p&gt;And this was Top 5 websites to sharpen your front-end skills, tell me if you want an article on the best learning resources for future front-end developers!&lt;/p&gt;

&lt;p&gt;In the end, I would like to hear your opinions about the article.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What was missing?&lt;/li&gt;
&lt;li&gt;Should I add more or fewer details?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I hope you liked the article and don't forget to follow me on:&lt;/p&gt;

&lt;h2&gt;
  
  
  Author
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;professional links:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/hafanwi"&gt;Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/youssef-hafnawy/"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ymhaah"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Hire me:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.upwork.com/services/product/development-it-a-custom-and-responsive-websites-in-wordpress-1577236892828233728?ref=project_share"&gt;UpWork&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://freelancer.com/u/ymhaah"&gt;Freelancer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Blog:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://hafnawi.hashnode.dev/"&gt;HashNode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/ymhaah"&gt;Dev.to&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/@ymhaah250"&gt;Medium&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>html</category>
      <category>css</category>
    </item>
    <item>
      <title>I wrote five articles on 4 different website, and this is what happened!!!</title>
      <dc:creator>Youssef Hefnawy </dc:creator>
      <pubDate>Fri, 23 Dec 2022 20:01:32 +0000</pubDate>
      <link>https://dev.to/hefnawy/i-wrote-five-articles-on-4-different-website-and-this-is-what-happened-4h59</link>
      <guid>https://dev.to/hefnawy/i-wrote-five-articles-on-4-different-website-and-this-is-what-happened-4h59</guid>
      <description>&lt;h2&gt;
  
  
  Introduction:
&lt;/h2&gt;

&lt;p&gt;Anyone who has even a little interest in the writing field has this question in his mind, How much will I get from writing my first article?&lt;/p&gt;

&lt;p&gt;Whether you watched a YouTube video that has millions of followers on how to get money from writing articles, or you are just a person who is passionate about your field and wants to write about what you love We all have these questions.&lt;/p&gt;

&lt;p&gt;Questions such as how many readers will read my article, how long I need to write an article, what is the best platform to publish on, and many other questions.&lt;/p&gt;

&lt;p&gt;You wish there was this article that contains the experience of an ordinary person who does not have a doctorate degree and does not have millions of followers and asks why people read his article. A beginner who learned from the same free resources that you learned from has the same limited time as you with an above-average IQ ( if you are reading This article you are probably a smart person ).&lt;/p&gt;

&lt;p&gt;Yes, you finally found this article, where I will talk about my personal experience with &lt;strong&gt;writing 5 articles on 4 different sites.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I had hoped that the title would be "I wrote five articles on five sites," but I was too lazy to search for a fifth.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In this article, I will not try to convince you to start writing articles and to talk about the number of benefits that you will get, as I am sure that you watched a video about this before reading this article, but tell me in the comments if you want an article like this&lt;/p&gt;

&lt;p&gt;I am simply going to share my writing experience, the numbers I got on each platform, and the pros, and cons of writing articles that I felt.&lt;/p&gt;

&lt;p&gt;But since I am still a beginner, and the experience only talks about five articles, I want to suggest to you this video that talks about the expected profits for writing articles, in the long run → &lt;a href="https://www.youtube.com/watch?v=wBTayGMcypY&amp;amp;list=PLPeqRhIotBswie9znCgNfBq_Uf2mZRg5Z&amp;amp;index=2&amp;amp;t=786s" rel="noopener noreferrer"&gt;How Much Do Blogs Earn in 2022? It Changed Again! - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And so that you know what are your advantages compared to mine, here are my current qualities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I have less than 100 followers on Twitter, so I do not have any advantage in terms of marketing myself.

&lt;ul&gt;
&lt;li&gt;If you would like to follow me → &lt;a href="https://twitter.com/hafanwi" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;I am a beginner Front-end dev that still learning React

&lt;ul&gt;
&lt;li&gt;my Journey with React → &lt;strong&gt;&lt;a href="https://dev.to/ymhaah/30-day-react-learning-journey-part-1-14od"&gt;30-Day React Learning Journey&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;I have an IQ of 143&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Of course, the platforms I posted on are as follows ( do not forget to follow me there ):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/ymhaah"&gt;Dev.to&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/@ymhaah250" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://hafnawi.hashnode.dev/" rel="noopener noreferrer"&gt;HashNode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/youssef-hafnawy/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Notes:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In order to simplify the information, I took the average of the results from the four platforms&lt;/li&gt;
&lt;li&gt;I will talk in general about the writing experience as a whole, then I will talk specifically about the writing experience in each platform&lt;/li&gt;
&lt;li&gt;There is no such thing as two notes, so did you know that the arteries of a blue whale are so large that a human being can swim inside them?&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  writing experience:
&lt;/h2&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%2Fz4w43ldjzcfsm65kb5tb.jpg" 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%2Fz4w43ldjzcfsm65kb5tb.jpg" alt="starting a blog meme" width="458" height="278"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Like I said before, I'm not going to try to convince you to start writing articles, as I'm sure you watched a YouTube video about “10 benefits to start writing”, I'm just here to talk about my experience.&lt;/p&gt;

&lt;p&gt;My story with writing articles does not contain any inspiration or noble reasons at all, as I did not seek to spread free knowledge among people, or I am passionate about what I learn&lt;/p&gt;

&lt;p&gt;I am still a beginner and most of what I write about is a first-time experience&lt;/p&gt;

&lt;h3&gt;
  
  
  I started writing for the following reasons:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;If you give me the choice between learning React forms or writing an article, I will write the article without feeling guilty&lt;/li&gt;
&lt;li&gt;Anyone who writes articles acquires a kind of aura that places them above the average person and I am sure this will help in getting a job.&lt;/li&gt;
&lt;li&gt;I want something to talk about on Twitter&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am sure that you do not take me seriously now, since my goals are not noble enough for your sake. I am sure that every person who claims that he started writing for a noble purpose wants to benefit in one way or another from these articles, whether by increasing his fame or obtaining money.&lt;/p&gt;

&lt;p&gt;For me, my plan was simple. I am currently learning to program, so why not talk about what I learned, I will not lose anything.&lt;/p&gt;

&lt;p&gt;And the moment I decided to start writing, I was learning React, so I decided to record everything on my journey so that others could benefit from it, and oh my, what a decision it was.&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%2Fopjji765xmp1j7zhzdnf.jpg" 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%2Fopjji765xmp1j7zhzdnf.jpg" alt="blogging cat meme" width="705" height="469"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Who would have imagined that writing an article about my journey of learning React would take more time and effort than the learning journey itself?&lt;/p&gt;

&lt;p&gt;the first thing I noticed is that writing an article takes more time than I expect, especially if you are a person who loves to talk like me. I cannot put a useful summary without putting my personal comment and experience, and I cannot mention something in an article without putting a link to it. And the most energy-consuming thing is deciding which meme I will put with what I write.&lt;/p&gt;

&lt;p&gt;I remember learning React for an hour and then spending the whole day writing about it.&lt;/p&gt;

&lt;p&gt;I know that my style of writing is not the most professional and will not bring me the most interaction, but it is the style that I like, as I like memes and making fun of things.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the benefits of writing:
&lt;/h3&gt;

&lt;p&gt;Five articles are not enough to get money or fame, as you still will not get enough interaction in order to achieve this, but this does not mean There are no benefits!&lt;/p&gt;

&lt;p&gt;In fact, I am amazed at the number of benefits I got from just 5 articles.&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%2F0b5mzst6veepyzrydkar.jpg" 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%2F0b5mzst6veepyzrydkar.jpg" alt="blogging meme" width="334" height="302"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Look at this Notion page → &lt;a href="https://www.notion.so/React-summary-065b74152727409b8197b656226bf041" rel="noopener noreferrer"&gt;React summary&lt;/a&gt; It contains a summary of most of what I've learned so far in React, a page that my future self will probably thank me for years since I'll easily remember everything I've learned with a page like this.&lt;/p&gt;

&lt;p&gt;And without my “&lt;strong&gt;30-day React learning journey&lt;/strong&gt;” series that I publish I would not have thought of making this effort in anything, Hours of effort have been spent summarizing what I have learned just to make the article I am writing as informative as possible, Or the number of links I collected in my “&lt;strong&gt;Top 5 Icon websites for devs and designers&lt;/strong&gt;” article.&lt;/p&gt;

&lt;p&gt;I don't know if it's just me, but I feel more responsible when I write about what I learned than what I feel when I learn.&lt;/p&gt;

&lt;p&gt;I remember the first positive comment that came to me. It turned my day from bad to legendary. I don't know how, but there's something about being complimented by someone who doesn't know you.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the cons of writing articles:
&lt;/h3&gt;

&lt;p&gt;I don't know when, but I think at least in your first year of writing, the time spent writing versus the interaction you'll get is not worth it.&lt;/p&gt;

&lt;p&gt;For me, boredom does not affect me that much, as I write in a style that I enjoy, but I am sure that if you were writing articles formally, you would definitely feel bored.&lt;/p&gt;

&lt;p&gt;In general, if you love to write, the only thing that will stop you is frustration; Where if you spend 6 hours writing an article in order to eventually get 30 readers, you will feel frustrated, as it does not matter how good your article is if no one knows who you are, they will not care&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I choose my article topic:
&lt;/h3&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%2Fwtuanucokn4d1m1s1wvt.jpg" 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%2Fwtuanucokn4d1m1s1wvt.jpg" alt="blogging meme" width="550" height="690"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Honestly, for most of my life, I always know what I have to do in order to achieve what I want, but the problem is always that I am lazy, and the same situation with the topics of articles, where I have about 30 different article ideas, but I am a lazy person.&lt;/p&gt;

&lt;p&gt;But with some productivity tricks, I can at least make sure I record my thoughts so I can execute them when I'm not being lazy.&lt;/p&gt;

&lt;p&gt;And after recording the random thoughts that come to me, I noticed a pattern in how I choose the good thoughts, as 99% of my life is normal, and my life is similar to millions of people, and I myself will not read an article that talks about anything that happens there.&lt;/p&gt;

&lt;p&gt;But when I write a good line of code, or when I encounter a problem that takes thinking to solve, or when I learn something that I find difficult, I know that I am not alone, so I choose. I write about these ideas.&lt;/p&gt;

&lt;h3&gt;
  
  
  what is my writing process:
&lt;/h3&gt;

&lt;p&gt;Start by choosing an idea from the ideas that I collected, as I take into account the following in my choice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The amount of effort that I am willing to give&lt;/li&gt;
&lt;li&gt;A combination of how much I care about the topic and how much I think the reader will care&lt;/li&gt;
&lt;li&gt;The possibility of converting this article into more than one part&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I apologize, but we will stop here and continue to the next part!&lt;/p&gt;

&lt;p&gt;I know you probably didn't get anything useful from this article as I didn't talk about advice or give you a detailed experience but if I tried to do all this in one article, you wouldn't read it because of its length, and at the same time, I want to talk about everything in my experience.&lt;/p&gt;

&lt;p&gt;Even though I did not go into details in this article, but this is still better than putting the experience in a summary section in a large article.&lt;/p&gt;

&lt;p&gt;So expect two more upcoming parts, the first about the numbers I got from writing and the second about some advice based on these results.&lt;/p&gt;

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

&lt;p&gt;I apologize again for ending here, but the results of the fifth article did not excite me to write in a large amount, so I hope you liked this article, and do not forget to share your writing experience with me also and share your opinion about this article in the comments.&lt;/p&gt;

&lt;p&gt;In the end, I would like to hear your opinions about the article.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What was missing?&lt;/li&gt;
&lt;li&gt;Should I add more or fewer details?&lt;/li&gt;
&lt;li&gt;Do I add more explanation or cut it out and only talk about the experience?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Author
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;professional links:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/hafanwi" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/youssef-hafnawy/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ymhaah" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Hire me:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.upwork.com/services/product/development-it-a-custom-and-responsive-websites-in-wordpress-1577236892828233728?ref=project_share" rel="noopener noreferrer"&gt;UpWork&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://freelancer.com/u/ymhaah" rel="noopener noreferrer"&gt;Freelancer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Blog:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://hafnawi.hashnode.dev/" rel="noopener noreferrer"&gt;HashNode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/ymhaah"&gt;Dev.to&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/@ymhaah250" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>python</category>
      <category>programming</category>
    </item>
    <item>
      <title>30-Day React Learning Journey part-2 ( JSX )</title>
      <dc:creator>Youssef Hefnawy </dc:creator>
      <pubDate>Fri, 18 Nov 2022 17:39:18 +0000</pubDate>
      <link>https://dev.to/hefnawy/30-day-react-learning-journey-part-2-jsx--8hj</link>
      <guid>https://dev.to/hefnawy/30-day-react-learning-journey-part-2-jsx--8hj</guid>
      <description>&lt;h2&gt;
  
  
  Introduction:
&lt;/h2&gt;

&lt;p&gt;This article is the second part of “&lt;a href="https://dev.to/ymhaah/30-day-react-learning-journey-part-1-14od"&gt;30-Day React Learning Journey (part 1)&lt;/a&gt;” Where we talked in the previous part about:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Suggestions for learning resources.&lt;/li&gt;
&lt;li&gt;Why you should learn React.&lt;/li&gt;
&lt;li&gt;how to get started.&lt;/li&gt;
&lt;li&gt;wrote our first line in React.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All this with sharing my personal learning experience and some tips + a simplified explanation of what I learned.&lt;/p&gt;

&lt;p&gt;We will continue from day 5 to day 7, I know that this seems a little, but these are the basics of React that you must master before we move on to another part.&lt;/p&gt;




&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;I post daily on Twitter about my experience with learning React and other things. Follow me there → &lt;strong&gt;&lt;a href="https://twitter.com/hafanwi" rel="noopener noreferrer"&gt;Youssef Hafnawy&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;All the code shown in this article and more can be found here → &lt;a href="https://github.com/ymhaah/30-Day-React-Learning-Journey" rel="noopener noreferrer"&gt;GitHub: 30-Day-React-Learning-Journey&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📚 I know you're lazy so I collected all my tweets about React on → &lt;a href="https://iodized-crawdad-abc.notion.site/React-Tweets-631ddc8f9b6e467e996161026bbb0acc" rel="noopener noreferrer"&gt;React-Tweet&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%2F7b7lj0kn1bda2khycvqh.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7b7lj0kn1bda2khycvqh.jpeg" alt="react tweet"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📚 I have also compiled all the explanations on one page for you → &lt;a href="https://iodized-crawdad-abc.notion.site/React-summary-065b74152727409b8197b656226bf041" rel="noopener noreferrer"&gt;React-Summary&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%2F4a39lkv9g3ukgd2hv69x.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4a39lkv9g3ukgd2hv69x.jpeg" alt="React summary"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Notes:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Remember, this is a learning journey, It is possible that I made mistakes, so if you notice something wrong, tell me and I will correct it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I will build this article on the fact that you read the previous one, so if you find me talking about something in little detail, I may have talked about it in the previous part.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There is no such thing as just two notes, so did you know that React is the second most-starred library on GitHub after Vue?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without further ado, let's get started with → 30-Day React Learning Journey part-2 ( JSX )&lt;/p&gt;

&lt;h2&gt;
  
  
  day 5 ( JS vs JSX )
&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%2Fhod30c1zztignbno3mae.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhod30c1zztignbno3mae.jpg" alt="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hod30c1zztignbno3mae.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;to Create and add an element to the DOM using just JS You need to:&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;em&gt;select the parent element.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;create the element you want.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Add the contents of the element.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;append the element to the parent.&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;father&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#app&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;h1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createElement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;h1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hallo, react&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;father&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Four steps in order to create one element, and this is without adding a class or anything else. Imagine yourself trying to create a whole page in this way. Each element has at least four lines of code.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;with React you can just use JSX! with the main root we create&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nx"&gt;root&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Hallo, react&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;);&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;remember it from the first part!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;React took the logical path of creating an element and reduced all these steps using &lt;a href="https://reactjs.org/docs/introducing-jsx.html" rel="noopener noreferrer"&gt;JSX&lt;/a&gt; where all you have to do is just write the element!&lt;/p&gt;

&lt;p&gt;Yes, HTML directly inside JS. Can you imagine, before I continue, I want you to imagine how it can benefit you? The more you deal with JS before, the more excited you will be about the idea.&lt;/p&gt;

&lt;p&gt;I strongly advise you to continue learning JSX using the fact that you can write something HTML-like directly inside JS and try writing to see what works and what doesn't.&lt;/p&gt;

&lt;p&gt;Since it is not 100% HTML, so you can go to the documentation and see the differences, or you can experiment and discover it yourself, For me, I discovered about 70% of the differences on my own and will not forget them.&lt;/p&gt;

&lt;p&gt;I am interested to know what you discovered and what was your feeling the first time you saw JSX.&lt;/p&gt;

&lt;p&gt;and also I still haven't settled on the appropriate way to write this series as I don't know whether to explain to you what I learned or just share the experience and some tricks.&lt;/p&gt;

&lt;p&gt;So for now, I will briefly explain to you what I learned in my style.&lt;/p&gt;




&lt;h2&gt;
  
  
  day 6 ( JSX basics )
&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%2Fg8x200tb0wdog5ifbt3p.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg8x200tb0wdog5ifbt3p.jpeg" alt="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g8x200tb0wdog5ifbt3p.jpeg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://reactjs.org/docs/react-without-jsx.html" rel="noopener noreferrer"&gt;React Without JSX&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;Before we start, I would like to tell you that you can use React without JSX, if you do not want to increase the complexity or size of the work environment in which you work.&lt;/p&gt;

&lt;p&gt;And also learning React without JSX shows you how things work under the hood where you will understand the principles and basics of React.&lt;/p&gt;

&lt;p&gt;For me, I learned it firsthand, and if I needed something I would go look for it,I have not seen anyone or any course that does not advise you to learn it, and even React advises that&lt;/p&gt;




&lt;p&gt;&lt;a href="https://reactjs.org/docs/introducing-jsx.html" rel="noopener noreferrer"&gt;JSX basics&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;In general, React is just JS with a few extra things you call it js++ But you did not modify anything on the basics of the language.&lt;/p&gt;

&lt;p&gt;I won't go into detail about how React will know that you are writing JSX, but in general, just write any HTML code and React is smart enough to recognize it.&lt;/p&gt;

&lt;p&gt;yes, if you write &lt;code&gt;&amp;lt;h1&amp;gt;Hallo, react&amp;lt;/h1&amp;gt;&lt;/code&gt; Directly inside JS, react will do the four steps and create the element by itself.&lt;/p&gt;

&lt;p&gt;Since we are still inside JS we can simply do the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;link a JSX element to a variable:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;myHeading&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Hallo, react&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;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;myHeading&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

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

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;using it with a function or if:&lt;/li&gt;
&lt;/ul&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%2Fkkikzvhqbd9pu6h3ro1v.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkkikzvhqbd9pu6h3ro1v.jpg" alt="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kkikzvhqbd9pu6h3ro1v.jpg"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;reactISGood&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;myHeading&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Hallo, react&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;myHeading&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Hallo, vue&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

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

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;butting JSX inside an array or an object
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt; &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;myHeading&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Hallo, react&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;,&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Hallo, vue&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;why do you think, as I told you that you are inside JS? Use JSX wherever you want with any js feature.&lt;/p&gt;

&lt;p&gt;But since we are inside JS we have to follow the rules of JS like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the word &lt;strong&gt;"class"&lt;/strong&gt; is already taken so we need to use "className" instead
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;myHeading&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"veryBigHeading"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Hallo, react&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

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

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Forget anything like &lt;strong&gt;"aria-label"&lt;/strong&gt; it is now called "ariaLabel" yes, everything now is &lt;strong&gt;&lt;a href="https://en.wikipedia.org/wiki/Camel_case" rel="noopener noreferrer"&gt;camelCase&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Yes, that is why I advised you to try yourself and try to discover what works and what does not work and to think as a programmer and try to discover the reason with the least available information, as you will not forget anything you learned in this way.&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%2Fm130pdiulbgozh5hoe97.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm130pdiulbgozh5hoe97.jpg" alt="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m130pdiulbgozh5hoe97.jpg"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  day 7 ( JSX with JS ):
&lt;/h2&gt;

&lt;p&gt;Before we start, let me tell you some tricks that make you read an article that contains personal experience, not just educational content.&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%2Fv37q4xpyamdgel0lv0e9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv37q4xpyamdgel0lv0e9.jpg" alt="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v37q4xpyamdgel0lv0e9.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;if you use VsCode Look for this extension &lt;strong&gt;"Simple React Snippets"&lt;/strong&gt; It will make your life easier.&lt;/li&gt;
&lt;li&gt;if want to use &lt;a href="https://www.freecodecamp.org/news/write-html-css-faster-with-emmet-cheat-codes/" rel="noopener noreferrer"&gt;Emmet&lt;/a&gt; with React (JSX) go to this article: &lt;a href="https://eshwaren.medium.com/enable-emmet-support-for-jsx-in-visual-studio-code-react-f1f5dfe8809c" rel="noopener noreferrer"&gt;Enable Emmet support for JSX&lt;/a&gt; thank me later. &lt;/li&gt;
&lt;li&gt;Did you know that it is the male seahorse that lays eggs, not the female?&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  JSX with JS
&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%2Fiamwxbru72phyv3iqdgd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiamwxbru72phyv3iqdgd.jpg" alt="jsx meme"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;the same way you use JSX inside JS you can use JS inside JSX!&lt;/p&gt;

&lt;p&gt;So, to use JS inside JSX You have to tell react that we've dropped out of JSX and returned to JS, so if you don't do this, whatever you write will be treated as text or as a regular element.&lt;/p&gt;

&lt;p&gt;To do this, write whatever you want to be a JS code inside {}&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;bestFramework&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Svelte&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;myHeading&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"veryBigHeading"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Hallo, &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;bestFramework&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;)&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;You can open these brackets anywhere in JSX, allowing you to do Many cool things like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;imgSrc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 
&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://i.insider.com/602ee9ced3ad27001837f2ac?width=700&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;link&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://twitter.com/hafanwi/status/1593162901744803840&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;img&lt;/span&gt; &lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;imgSrc&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;&amp;lt;&lt;/span&gt;&lt;span class="err"&gt;/&lt;/span&gt;&lt;span class="na"&gt;img&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;link&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

// Do not go behind these links

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

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;you can map on an array with all your image URLs with one line&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;you can create a 100 div with a simple for loop&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'll leave the rest to the imagination of the enthusiastic programmer in you to discover how many things you can do just with this.&lt;/p&gt;




&lt;p&gt;Of course, a JSX element can contain more than one child, but you can not have more than one element on one variable.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;element&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;ul&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"bestFramework"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Vue&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Svelte&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Remix&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;ul&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgaxa7o7l9fu800cjd11d.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgaxa7o7l9fu800cjd11d.jpg" alt="best Framework meme"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;I hope you will forgive me for not completing the experience for some of you in this article, as I did not yet know what to focus on here.&lt;/p&gt;

&lt;p&gt;Since I did not explain everything about JSX as I did not tell you how JSX is just a big object or a trick to writing more than one element without a father and more.&lt;/p&gt;

&lt;p&gt;At the same time, I did not talk about the things I found difficult and what I learned from the JSX experience on my own and others.&lt;/p&gt;

&lt;p&gt;Therefore, my detailed explanation of all of the above, as well as my full experience with learning, are collected on one page, as I said previously.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.notion.so/React-Tweets-631ddc8f9b6e467e996161026bbb0acc" rel="noopener noreferrer"&gt;React-Tweet&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.notion.so/React-summary-065b74152727409b8197b656226bf041" rel="noopener noreferrer"&gt;React-Summary&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the end, I would like to hear your opinions about the article.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What was missing?&lt;/li&gt;
&lt;li&gt;Should I add more or fewer details?&lt;/li&gt;
&lt;li&gt;Do I add more explanation or cut it out and only talk about the experience?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Author
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;professional links:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/hafanwi" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/youssef-hafnawy/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ymhaah" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Hire me:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.upwork.com/services/product/development-it-a-custom-and-responsive-websites-in-wordpress-1577236892828233728?ref=project_share" rel="noopener noreferrer"&gt;UpWork&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://freelancer.com/u/ymhaah" rel="noopener noreferrer"&gt;Freelancer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Blog:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://hafnawi.hashnode.dev/" rel="noopener noreferrer"&gt;HashNode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/ymhaah"&gt;Dev.to&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/@ymhaah250" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>react</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Top 5 Icon websites for devs and designers!!!</title>
      <dc:creator>Youssef Hefnawy </dc:creator>
      <pubDate>Sat, 05 Nov 2022 19:01:02 +0000</pubDate>
      <link>https://dev.to/hefnawy/top-5-icon-websites-for-devs-and-designers-53mh</link>
      <guid>https://dev.to/hefnawy/top-5-icon-websites-for-devs-and-designers-53mh</guid>
      <description>&lt;h2&gt;
  
  
  Introduction:
&lt;/h2&gt;

&lt;p&gt;Everyone needs a website to get icons from it, Choosing the right icons is like putting a cherry on top of a cake, don't complete without it.&lt;/p&gt;

&lt;p&gt;Whether you want to create a design from scratch or update an old design, a high-quality set of icons will definitely help.&lt;/p&gt;

&lt;p&gt;You don't want to use bad or outdated icons, They can differentiate between good and bad design.&lt;/p&gt;

&lt;p&gt;I have collected for you Top 5 icon websites for devs and designers.&lt;/p&gt;

&lt;p&gt;I chose these sites from personal experience as I am not a designer, so sites that offer high quality and easy to use icons were really helpful.&lt;/p&gt;

&lt;p&gt;Through these sites, you can get the icons in all formats ( png - svg - atc.... )&lt;/p&gt;

&lt;p&gt;Today's collection is diverse where you will find everything; Hand-drawn icons, animated icons, and 3D icons and more.&lt;/p&gt;

&lt;p&gt;And I will not talk about how many icons the site has or how many users it has, as all the sites say that it is the largest library of icons, the most trusted, the most diverse, and others, but in general these are famous sites so expect quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Honorable Mention:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;If you want to get the famous programming icons and logos Here is an open source GitHub repo for that &lt;a href="https://github.com/simple-icons/simple-icons" rel="noopener noreferrer"&gt;simple-icons&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/PKief/vscode-material-icon-theme" rel="noopener noreferrer"&gt;Material Icon Theme&lt;/a&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%2Fak0gfc8ur1sx2bewilpb.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fak0gfc8ur1sx2bewilpb.jpeg" alt="material icon github repo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can also see &lt;a href="https://github.com/PKief/vscode-material-icon-theme" rel="noopener noreferrer"&gt;Material Icon Theme&lt;/a&gt; Yes, the famous VsCode extension also has an open source GitHub repo.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://www.streamlinehq.com/" rel="noopener noreferrer"&gt;Streamline&lt;/a&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%2Fuzd83h1lng8rocxwy9p0.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuzd83h1lng8rocxwy9p0.jpeg" alt="Streamline home page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.streamlinehq.com/" rel="noopener noreferrer"&gt;Streamline&lt;/a&gt; has a large variety of icons and is considered one of the most famous sites in the field, but because I discovered it recently and I do not have much experience with it, and also there is no such thing as the best 11 icon sites.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without further ado, Top 5 icon websites for devs and designers:&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://fontawesome.com/" rel="noopener noreferrer"&gt;1- fontawesome&lt;/a&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%2Fesssljt72iydwh9hl0pf.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fesssljt72iydwh9hl0pf.jpeg" alt="fontawesome home page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can't get more classic than that.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Font Awesome is the Internet's icon library and toolkit, used by millions of designers, developers, and content creators.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;it offers a library and toolkit of icons suitable for programmers Where when you download the library you can just use a class on an &lt;code&gt;&amp;lt;i&amp;gt;&amp;lt;/i&amp;gt;&lt;/code&gt; element and it will work.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;i class="fa-duotone fa-camera-retro fa-beat" style="color: #1c7ed6;"&amp;gt;&amp;lt;/i&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can modify the shape and color of the icon and even add animation to it.&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%2Fsgzk9sywgdpjxevijxps.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsgzk9sywgdpjxevijxps.jpeg" alt="fontawesome home page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Great for Developers:&lt;br&gt;
We've got frameworks and toolkits for the most popular plugins and packages that already work the way you expect.&lt;/p&gt;

&lt;p&gt;Great for Designers&lt;br&gt;
Use your own designs alongside thousands of matching Font Awesome icons in each of six unique styles.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://www.flaticon.com/" rel="noopener noreferrer"&gt;2- flaticon&lt;/a&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%2Fcfz6iln57w9xid4pgb7r.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcfz6iln57w9xid4pgb7r.jpeg" alt="flaticon home page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The most diverse in terms of icon styles.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Icon Fonts for any project, big or small&lt;br&gt;
+8,300 SVG and 0.000000ont files based on vector icons optimized for web, iOS, and Android applications.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Another excellent site in terms of compatibility with programmers and designers.&lt;/p&gt;

&lt;p&gt;When I search for a new style icon, I always start searching here, where you will find an icon that expresses everything you want.&lt;/p&gt;

&lt;p&gt;And if you are a heavy user of Notion and want to put an icon for each page like me, this site is very suitable for you.&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%2F4aatrmhxd11ysxfuxa8h.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4aatrmhxd11ysxfuxa8h.jpeg" alt="flaticon page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Access 8.5M+ vector icons &amp;amp; stickers&lt;br&gt;
Download Free Icons and Stickers for your projects. Images made by and for designers in PNG, SVG, EPS, PSD and CSS formats.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://iconscout.com/" rel="noopener noreferrer"&gt;3- iconscout&lt;/a&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%2Foqjqfz9ey3k2j8w4sogc.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foqjqfz9ey3k2j8w4sogc.jpeg" alt="iconscout home page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of what I like the most about this site is the 3D icons, which are professionally made and varied in terms of styles.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Over 5.3 Million+ Design Assets&lt;br&gt;
Curated SVGs, Vector Icons, Illustrations, 3D graphics, and Lottie Animations.&lt;br&gt;
Over 7000+ new assets added every day. Integrated plugins, tools, editors, and more.&lt;/p&gt;
&lt;/blockquote&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%2Fz9dgl5qex2qx3optjkgg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz9dgl5qex2qx3optjkgg.jpeg" alt="iconscout page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Work faster and Save time with Apps and Plugins:&lt;br&gt;
IconScout has integrations with Figma, Adobe XD, Sketch, Illustrator, GSuite, and MS Office. Our plugins let you find assets without you leaving the tools you’re using.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://fonts.google.com/icons" rel="noopener noreferrer"&gt;4- google fonts&lt;/a&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%2Fbefvedt1saarhcnxf8x3.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbefvedt1saarhcnxf8x3.jpeg" alt="google fonts"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I can't mention the word most famous sites without mentioning Google!!!&lt;/p&gt;

&lt;p&gt;Simple, easy-to-use, variety, qualities we are used to from Google.&lt;/p&gt;

&lt;p&gt;You may know this site because it is almost the largest site that people use to get fonts, but it also has a good set of icons.&lt;/p&gt;

&lt;p&gt;Perhaps the experience of using it is the simplest for programmers, where all you need is to copy the code and it will work simply.&lt;/p&gt;




&lt;h2&gt;
  
  
  Are you bored? Don't worry, Let's end this list with an interesting site!!!
&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%2Ff46l9pyvpjdkwc9rb4fm.gif" 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%2Ff46l9pyvpjdkwc9rb4fm.gif" alt="css animation meme"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://lordicon.com/" rel="noopener noreferrer"&gt;5- lordicon&lt;/a&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%2Fzchzl7r56fep85fsshdr.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzchzl7r56fep85fsshdr.jpeg" alt="lordicon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Although adding animation is usually not difficult, it adds a lot to any design.&lt;/p&gt;

&lt;p&gt;And even if you're not going to use animated icons for some reason, when I look at them I get inspired.&lt;/p&gt;

&lt;p&gt;Just add an animation to the Twitter icon on your site or add an entire animation. This site is for you.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Access 8,700+ Animated Icons&lt;br&gt;
Lordicon is a powerful library of carefully crafted animated icons,&lt;br&gt;
ready to use in digital products, presentations, or videos!&lt;/p&gt;
&lt;/blockquote&gt;




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

&lt;p&gt;Originally this article was about the top 10 sites and not the top 5 but why do I write an article once when I can write two articles.&lt;/p&gt;

&lt;p&gt;Usually I prefer to talk about Dev topics more, so I would like to hear your opinions about the article.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What was missing?&lt;/li&gt;
&lt;li&gt;Should I add more or fewer details?&lt;/li&gt;
&lt;li&gt;Do I add more explanation or cut it out and only talk about the experience?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Author
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;professional links:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/hafanwi" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/youssef-hafnawy/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ymhaah" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Hire me:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.upwork.com/services/product/development-it-a-custom-and-responsive-websites-in-wordpress-1577236892828233728?ref=project_share" rel="noopener noreferrer"&gt;UpWork&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://freelancer.com/u/ymhaah" rel="noopener noreferrer"&gt;Freelancer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Blog:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://hafnawi.hashnode.dev/" rel="noopener noreferrer"&gt;HashNode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/ymhaah"&gt;Dev.to&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>design</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Why couldn't you get a job as a freelancer?</title>
      <dc:creator>Youssef Hefnawy </dc:creator>
      <pubDate>Wed, 19 Oct 2022 11:23:31 +0000</pubDate>
      <link>https://dev.to/hefnawy/why-couldnt-you-get-a-job-as-a-freelancer-1jm8</link>
      <guid>https://dev.to/hefnawy/why-couldnt-you-get-a-job-as-a-freelancer-1jm8</guid>
      <description>&lt;h2&gt;
  
  
  Introduction:
&lt;/h2&gt;

&lt;p&gt;I think that no one really believes that he will get a job after a month, but within every programmer, there is &lt;strong&gt;hope&lt;/strong&gt; to achieve this that makes him want to continue.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I am still working with this hope to get a job after six months despite the passage of a year.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But now I'm not dreaming, I actually reached the level required to get a job, I learned most of the skills in any roadmap and even more.&lt;/p&gt;

&lt;p&gt;I am ready now to get the job I worked for, not any ordinary job, but the most luxurious thing that any ordinary programmer can dream of!!!&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%2Fhcvsojmmuaik0fjess6u.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhcvsojmmuaik0fjess6u.jpg" alt="gigachad face meme"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;freelancer&lt;/strong&gt;, the freest of all, the smartest, the best of the best, a king who works only for himself, gets up at 11 pm, works 3 hours from his bed.&lt;/p&gt;

&lt;p&gt;But after many attempts to be that person, I failed.&lt;/p&gt;

&lt;h2&gt;
  
  
  But why?
&lt;/h2&gt;

&lt;p&gt;In this article, I will try to reveal the reasons why most devs can not get a freelancer job easily, and we also try to find solutions.&lt;/p&gt;

&lt;p&gt;We will divide the reasons as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Lack of necessary skills&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;market demands&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I will discuss with you the things that prevent people from getting a job and also some suggested solutions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nots:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Since I also haven't got a job yet, it would be hypocritical to talk like an expert on this, so I won't go into depth and I'll just attach the learning resources.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Please go check my account, as I will definitely talk about my first job experience if the situation changes.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without further ado, Let's talk about &lt;strong&gt;Why couldn't I get a job as a freelancer?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Lack of necessary skills!!
&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%2F34lmlq724jicm59rzims.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F34lmlq724jicm59rzims.jpg" alt="A face that expresses stupidity"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We will talk in this article from the perspective of a front-end dev But what I say apply to other fields.&lt;/p&gt;

&lt;p&gt;I have a question for you, do you think you can get a job using Only &lt;strong&gt;HTML&lt;/strong&gt; and &lt;strong&gt;CSS&lt;/strong&gt;? &lt;/p&gt;

&lt;p&gt;The short answer is &lt;strong&gt;yes&lt;/strong&gt; you can, as I have seen jobs that only ask for &lt;strong&gt;HTML&lt;/strong&gt; and &lt;strong&gt;CSS&lt;/strong&gt;!!!&lt;/p&gt;

&lt;p&gt;The long answer is yes you can, and millions of other developers can, I want you to go and see the number of views on &lt;strong&gt;HTML&lt;/strong&gt; and &lt;strong&gt;CSS&lt;/strong&gt; courses; Millions right!!!&lt;/p&gt;

&lt;p&gt;Like I said I've seen many jobs asking for only &lt;strong&gt;HTML&lt;/strong&gt; and &lt;strong&gt;CSS&lt;/strong&gt;; But I have not seen one of these jobs have less than 50 job applications.&lt;/p&gt;

&lt;p&gt;There is always someone better than you applying for the job, as the percentage of you being the best one among hundreds of applications is closer to zero than to one.&lt;/p&gt;

&lt;p&gt;Where even though the job only needs &lt;strong&gt;HTML&lt;/strong&gt; and &lt;strong&gt;CSS&lt;/strong&gt; If this is only what you know, then you often lack the ability to provide a good job, as the average developer does not reach an advanced level in &lt;strong&gt;HTML&lt;/strong&gt; and &lt;strong&gt;CSS&lt;/strong&gt; without learning other things.&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%2Ffghczoiyjknp4ceyjyrn.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffghczoiyjknp4ceyjyrn.jpg" alt="html and css meme"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  So what is the minimum?
&lt;/h2&gt;

&lt;p&gt;Honestly, I don't know where every time I think I found the gold standard, another one comes up.&lt;/p&gt;

&lt;p&gt;I think there is a scientific phenomenon for that, for example when you say that bad luck is always with you, you often focus on the times of bad luck and forget the rest, even if it is a small amount.&lt;/p&gt;

&lt;p&gt;Same thing with Freelance; Where you may find that the whole market asks for &lt;strong&gt;js&lt;/strong&gt; devs, but after you learn it, suddenly the market asks &lt;strong&gt;React&lt;/strong&gt; devs!!!&lt;/p&gt;

&lt;p&gt;For me it was &lt;strong&gt;js&lt;/strong&gt; then &lt;strong&gt;wordpress&lt;/strong&gt; then &lt;strong&gt;threeJS&lt;/strong&gt; then &lt;strong&gt;Gsap&lt;/strong&gt; then &lt;strong&gt;React&lt;/strong&gt;; Every time I learn something, I feel like the market is asking for something else.&lt;/p&gt;

&lt;p&gt;But to answer my question, I think that the minimum level for you to have a good chance of getting a job is the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;HTML&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CSS&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;JavaScript&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wordpress&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;wait a minute wordpress; I thought you were talking about front-end devs!!!&lt;/p&gt;

&lt;p&gt;Wait for the solution part and you will know why.&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%2Fwsuq4l2ldvsw1yy7ogxq.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwsuq4l2ldvsw1yy7ogxq.jpg" alt="wordpress meme"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  market demands?
&lt;/h2&gt;

&lt;p&gt;Perhaps if we know what the market demands, we may be able to get a job by providing that?&lt;/p&gt;

&lt;p&gt;So let me tell you briefly what kind of projects you will face when looking for a jop, And what kind of clients will you meet?&lt;/p&gt;

&lt;h2&gt;
  
  
  A million dollar idea with a $10 budget
&lt;/h2&gt;

&lt;p&gt;You will find this type of project everywhere where everyone has a &lt;strong&gt;million-dollar&lt;/strong&gt; idea; make a site similar to Tiktok or I want another Facebook, the simplest projects of them may take you months to make it, if you are even able to make it on your own.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I do not know what the owners of these projects think, but I have a life and will not work for 3 months for 15 dollars.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  super dev
&lt;/h2&gt;

&lt;p&gt;I don't really blame the customer for this, but it's just a topic that annoys me.&lt;/p&gt;

&lt;p&gt;I am a &lt;strong&gt;Front-End&lt;/strong&gt; dev not a &lt;strong&gt;Back-End&lt;/strong&gt; And definitely not a &lt;strong&gt;designer&lt;/strong&gt; But do you think the customer cares.&lt;/p&gt;

&lt;p&gt;The average person does not know that creating a website usually requires 3 professions at least.&lt;/p&gt;

&lt;p&gt;Usually you will be required to design and take care of the server side.&lt;/p&gt;

&lt;p&gt;In fact, in terms of demand front-end dev are least in demand!!!&lt;/p&gt;

&lt;h2&gt;
  
  
  The competition
&lt;/h2&gt;

&lt;p&gt;Of course I don't need to mention to you the high competition from people whose currency difference makes 15 dollars a fortune for them.&lt;/p&gt;

&lt;p&gt;As the current environment of most Freelance sites is designed in the interest of the customer, not the freelacner; It helps the customer to get the best price and the best service.&lt;/p&gt;

&lt;h2&gt;
  
  
  The solution
&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%2Fia01vap56uqx83v942a1.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fia01vap56uqx83v942a1.jpg" alt="big brain meme"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After briefly showing you most of the problems you may encounter, let me show you some solutions:&lt;/p&gt;

&lt;h2&gt;
  
  
  First the basics:
&lt;/h2&gt;

&lt;p&gt;You must remember that you are the one who chose to work as a freelancer; Therefore, you must take responsibility and realize that you are now a one-man company!!!&lt;/p&gt;

&lt;p&gt;So you should diversify your skills, I'm not telling you to specialize in something else, but at least master the basics of other skills.&lt;/p&gt;

&lt;p&gt;if you are a front-end like me I advise you to learn the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/playlist?list=PLXC_gcsKLD6n7p6tHPBxsKjN5hA_quaPI" rel="noopener noreferrer"&gt;Web Design basics&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At least, know how to choose suitable colors, as it will instantly increase the number of jobs available to you&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learn to use any &lt;a href="https://en.wikipedia.org/wiki/Content_management_system" rel="noopener noreferrer"&gt;CMS&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;WordPress is still dominant in this field and although you as a programmer may hate this, but this is the only solution to be suitable for the market&lt;/p&gt;

&lt;p&gt;You have to make sure that the only thing standing between you and your first job is luck, I can't change your luck so we'll do what we can.&lt;/p&gt;

&lt;h2&gt;
  
  
  your personal accounts:
&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%2Fjvccxfexisqctwbpmewo.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjvccxfexisqctwbpmewo.jpg" alt="personal account meme"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You must make sure that all of your personal accounts look professional; Where believe me, no one will work with you with a Twitter account that was created yesterday.&lt;/p&gt;

&lt;p&gt;So make sure that your social media account is good, your GitHub LinkedIn, And, of course, your account on freelance sites.&lt;/p&gt;

&lt;p&gt;These are some of the best learning resources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=Dwra7_Xeaac&amp;amp;t=238s&amp;amp;ab_channel=DavidDill" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=zd4ALKv8Das&amp;amp;ab_channel=ExpertAcademy" rel="noopener noreferrer"&gt;Linkedin&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=G-EGDH50hGE&amp;amp;ab_channel=RishavChanda" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=dvKGiNymrto&amp;amp;ab_channel=MikeVestil" rel="noopener noreferrer"&gt;Upwork&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After you have confirmed that the problem is not with your suspicious account, it is time to apply for jobs with confidence now, but how?&lt;/p&gt;

&lt;p&gt;You have to master how to apply for a job; as it may be the only way to attract customer attention.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=f4INGRluDAU&amp;amp;ab_channel=FreelanceMVP" rel="noopener noreferrer"&gt;8 Golden Rules for Writing Upwork Cover Letters&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are lucky and someone is interested in visiting your account, you should draw his attention to your previous projects (projects from random courses).&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%2Fdej0z08ckfdm7icpyoox.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdej0z08ckfdm7icpyoox.jpg" alt="bad website meme"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You do not have previous projects at all, nor why did you reach this stage in the article.&lt;/p&gt;

&lt;p&gt;Therefore, as long as you wait to get a job, you should always create projects where you will increase your skill first and draw people's attention to your skill second.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I advise you to try to create something original of your own to showcase your skills&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here are some sources for front-end dev:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.frontendmentor.io/" rel="noopener noreferrer"&gt;FrontEndMentor&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.frontendpractice.com/" rel="noopener noreferrer"&gt;frontendpractice&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.codewell.cc/" rel="noopener noreferrer"&gt;codewell&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's hard to ask my lazy brain to try to find a job every day after all this frustration and even if it did I wouldn't have the energy most of the time to submit a high-quality job application.&lt;/p&gt;

&lt;p&gt;Where I admit I didn't search all the time continuously, but there are interruptions, if I gather the serious time, I will find that in 3 months I got only 3 opportunities, and of course I failed in them, so on average there is an opportunity per month.&lt;/p&gt;

&lt;p&gt;You may be more skilled or luckier than me, but at first it will seem impossible to hunt in the whale area.&lt;/p&gt;

&lt;p&gt;So if you reach this stage like me where you have mastered the above, your personal accounts are good and you have skills, but you lack continuity and luck, I have a suggestion!&lt;/p&gt;

&lt;h2&gt;
  
  
  The solution:
&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%2Fvw6f48zqdkzzowwg2j07.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvw6f48zqdkzzowwg2j07.jpg" alt="solution meme"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instead of waiting for the customer to come to me, why don't I go to him?&lt;/p&gt;

&lt;p&gt;Have you ever been surfing the Internet and found something sold for money and said to yourself, I sure can do better, but I'm lazy at the end.&lt;/p&gt;

&lt;p&gt;for me as a front-end I always see poorly made website, whether outdated in design or not working well.&lt;/p&gt;

&lt;p&gt;Government websites, personal stores, million dollar ideas on a $15 budget, All of these opportunities are waiting for someone to take them.&lt;/p&gt;

&lt;p&gt;you don't even need to find something bad to fix, there are many business owners You can convince them that they need your services. &lt;/p&gt;

&lt;p&gt;Instagram and Facebook pages, your neighborhood stores, small businesses, all of these You can convince them that they need your services. &lt;/p&gt;

&lt;p&gt;Here's how to do it:&lt;/p&gt;

&lt;p&gt;Creating a semi-complete product, perhaps within 40% complete; Go to the customer and show him this unfinished product as an example of what you can offer.&lt;/p&gt;

&lt;p&gt;Tell him this product is missing your personal preference to complete, So you won't take any time to finish either. You give him a glimpse of what he can have.&lt;/p&gt;

&lt;p&gt;As for the price in general, you have to accept a little price at first, But you can always offer him more features for more money.&lt;/p&gt;

&lt;p&gt;Of course, you have to master the message that you will send, if you fail It doesn't matter, as this method will work with many people, so at first send your offer to 20 people, for example, to see the results.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I am writing this article before trying this method, so immediately after I try it, whether it failed or succeeded. Wait for an article that talks about the experience&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;p&gt;I was hoping to talk more about how to improve your personal account or about the best way to send a job application and so on, but as I said I did not get a job yet.&lt;/p&gt;

&lt;p&gt;But I promise to anyone who reads this article that I will complete the entire journey, but the speed will depend on the amount of interaction.&lt;/p&gt;

&lt;p&gt;In the end, I would like to hear your opinions about the article?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What was missing?&lt;/li&gt;
&lt;li&gt;Did you like the use of the meme in the article?&lt;/li&gt;
&lt;li&gt;Should I add more or fewer details?&lt;/li&gt;
&lt;li&gt;Do I add more explanation or cut it out and only talk about the experience?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Author
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;professional links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://twitter.com/hafanwi" rel="noopener noreferrer"&gt;twitter&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://linkedin.com/in/youssef-hafnawy-348221204/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/ymhaah" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Hire me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://upwork.com/freelancers/~01acd8e5370e5646aa" rel="noopener noreferrer"&gt;UpWork&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://freelancer.com/u/ymhaah" rel="noopener noreferrer"&gt;Freelancer&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Blog: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://hafnawi.hashnode.dev" rel="noopener noreferrer"&gt;hashNode&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://dev.to/ymhaah"&gt;dev.to&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
