<?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: Cezary Mazur</title>
    <description>The latest articles on DEV Community by Cezary Mazur (@cezarymazur).</description>
    <link>https://dev.to/cezarymazur</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%2F1107233%2F4f397798-f9ad-4ed3-9315-7e9dc68071fb.jpg</url>
      <title>DEV Community: Cezary Mazur</title>
      <link>https://dev.to/cezarymazur</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cezarymazur"/>
    <language>en</language>
    <item>
      <title>Unveiling the Magic of CSS Pseudo-Classes in Frontend Development</title>
      <dc:creator>Cezary Mazur</dc:creator>
      <pubDate>Fri, 20 Dec 2024 11:58:41 +0000</pubDate>
      <link>https://dev.to/cezarymazur/unveiling-the-magic-of-css-pseudo-classes-in-frontend-development-3fie</link>
      <guid>https://dev.to/cezarymazur/unveiling-the-magic-of-css-pseudo-classes-in-frontend-development-3fie</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Introduction:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Welcome to the fascinating world of CSS pseudo-classes, where styling meets interactivity! &lt;/p&gt;

&lt;p&gt;As a front-end developer, you've likely encountered the need to style elements dynamically based on user interaction or element states. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CSS pseudo-classes&lt;/strong&gt; come to the rescue, providing a powerful set of tools to achieve this. In this article, we'll explore the ins and outs of &lt;strong&gt;CSS pseudo-classes&lt;/strong&gt;, leveraging information from official documentation and various online resources.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Understanding CSS Pseudo-Classes:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;CSS pseudo-classes&lt;/strong&gt; are selectors that target specific states or positions of HTML elements. They allow developers to style elements based on user interaction, such as hover effects, or the element's state, like styling visited links. Let's delve into some commonly used pseudo-classes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;:hover - Adding Interactivity:&lt;/strong&gt;&lt;br&gt;
One of the most popular pseudo-classes is &lt;strong&gt;&lt;code&gt;:hover&lt;/code&gt;&lt;/strong&gt;, which allows you to apply styles when a user hovers over an element. This is commonly used for creating interactive and engaging user interfaces.&lt;em&gt;Caption: Adding a hover effect to a button.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="nd"&gt;:hover&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="m"&gt;#3498db&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#fff&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;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;:active - Adding Feedback on Click:&lt;/strong&gt;&lt;br&gt;
The &lt;strong&gt;&lt;code&gt;:active&lt;/code&gt;&lt;/strong&gt; pseudo-class comes into play when an element is being activated by the user. It's often used to provide visual feedback when a button is clicked.&lt;em&gt;Caption: Scaling down the button when it is clicked.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="nd"&gt;:active&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;scale&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0.95&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;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Exploring Advanced Pseudo-Classes:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;As your projects become more sophisticated, you'll find the need for advanced pseudo-classes to handle specific scenarios.&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;:nth-child() - Selecting Specific Children:&lt;/strong&gt;&lt;br&gt;
The &lt;strong&gt;&lt;code&gt;:nth-child()&lt;/code&gt;&lt;/strong&gt; pseudo-class allows you to select elements based on their position within a parent. This is useful for creating striped tables or styling specific items in a list.&lt;em&gt;Caption: Styling odd list items with a different background color.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="nd"&gt;:nth-child&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;odd&lt;/span&gt;&lt;span class="o"&gt;)&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="m"&gt;#f2f2f2&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;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;:not() - Selecting Elements Excluding Others:&lt;/strong&gt;&lt;br&gt;
The &lt;strong&gt;&lt;code&gt;:not()&lt;/code&gt;&lt;/strong&gt; pseudo-class is handy for selecting elements that do not match a given selector. This is useful when you want to style all elements except a specific one.&lt;em&gt;Caption: Styling all input elements except submit buttons.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;input&lt;/span&gt;&lt;span class="nd"&gt;:not&lt;/span&gt;&lt;span class="o"&gt;([&lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;"submit"&lt;/span&gt;&lt;span class="o"&gt;])&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="m"&gt;#ccc&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;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;In conclusion, CSS pseudo-classes are a powerful tool for frontend developers to add interactivity and dynamic styling to web applications. By understanding and utilizing pseudo-classes effectively, you can create visually appealing and user-friendly interfaces. Remember to strike a balance between enhancing the user experience and ensuring compatibility across various browsers.&lt;/p&gt;

&lt;h3&gt;
  
  
  💬❤️ &lt;strong&gt;Leaving Comments, Reactions, and Saving the Article:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;I value your feedback! If you found this article helpful or have any questions, feel free to leave a 💬 comment below. Your ❤️ reactions and insights contribute to the vibrant developer community. Don't forget to save this article for future reference and share it with your fellow developers!&lt;/p&gt;

&lt;p&gt;For more frontend development insights, tutorials, and resources:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cezarymazur.com" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Visit cezarymazur.com&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Or read more in others articles:&lt;/p&gt;


&lt;div class="ltag__user ltag__user__id__1107233"&gt;
    &lt;a href="/cezarymazur" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&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%2Fuser%2Fprofile_image%2F1107233%2F4f397798-f9ad-4ed3-9315-7e9dc68071fb.jpg" alt="cezarymazur image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/cezarymazur"&gt;Cezary Mazur&lt;/a&gt;Follow
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/cezarymazur"&gt;AI Frontend Trainer &amp;amp; Consultant

Consulting — Mentoring — Workshops
Helping companies improve frontend processes.
Transforming teams into AI-powered innovators.&lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Explore a wealth of information to sharpen your skills and stay updated on the latest trends in the ever-evolving world of web development. &lt;/p&gt;

&lt;p&gt;🎉 &lt;strong&gt;Happy coding!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Styleguide in Tailwind CSS Step by step</title>
      <dc:creator>Cezary Mazur</dc:creator>
      <pubDate>Thu, 04 Jan 2024 06:36:19 +0000</pubDate>
      <link>https://dev.to/cezarymazur/styleguide-in-tailwindcss-step-by-step-2elb</link>
      <guid>https://dev.to/cezarymazur/styleguide-in-tailwindcss-step-by-step-2elb</guid>
      <description>&lt;p&gt;When starting work on a new project, whether small or large, &lt;strong&gt;it is worth establishing and programming an appropriate Styleguide at the beginning&lt;/strong&gt;, which will be useful at every stage of the subsequent implementation of the project.&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%2Fszeciksuft9f1mjp27v9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fszeciksuft9f1mjp27v9.png" alt="TailwindCSS infos" width="752" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this article, we will discuss step by step &lt;strong&gt;how to create a sample styleguide using TailwindCSS.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We will talk briefly about:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Installing &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;TailwindCSS&lt;/a&gt; into your project&lt;/li&gt;
&lt;li&gt;Uploading and configuring add-ons to TailwindCSS&lt;/li&gt;
&lt;li&gt;Fonts configuration&lt;/li&gt;
&lt;li&gt;Styling elements using the Tailwind and &lt;a class="mentioned-user" href="https://dev.to/apply"&gt;@apply&lt;/a&gt; classes&lt;/li&gt;
&lt;li&gt;Overwriting and extending Tailwind classes in tailwind.config&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  1. Install TailwindCSS into your project:
&lt;/h2&gt;

&lt;p&gt;To install &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind CSS&lt;/a&gt;, you need to use npm or yarn. Open your terminal and run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;tailwindcss
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;After installing, you need to create a configuration file. You can do this by running:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx tailwindcss init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This will generate a &lt;strong&gt;&lt;code&gt;tailwind.config.js&lt;/code&gt;&lt;/strong&gt; file in your project. Customize this file to tailor Tailwind to your project's needs.&lt;/p&gt;

&lt;p&gt;Read more about starting with TailwindCSS in my other article: &lt;strong&gt;&lt;a href="https://dev.to/cezarymazur/tailwind-css-beginners-guide-where-to-start-18lo"&gt;Tailwind CSS - Beginner's Guide: Where to Start?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  2. Uploading and configuring add-ons to TailwindCSS:
&lt;/h2&gt;

&lt;p&gt;Tailwind CSS has a rich ecosystem of plugins and add-ons that you can use to extend its functionality. You can install these add-ons using npm or yarn and then add them to your &lt;strong&gt;&lt;code&gt;tailwind.config.js&lt;/code&gt;&lt;/strong&gt; file. For example, if you want to use the Typography plugin, you can install it using:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @tailwindcss/typography
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;And then add it to your &lt;strong&gt;&lt;code&gt;tailwind.config.js&lt;/code&gt;&lt;/strong&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;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// ...&lt;/span&gt;
  &lt;span class="na"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@tailwindcss/typography&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="c1"&gt;// other plugins&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 can consider using the &lt;strong&gt;PrelineUI plugin&lt;/strong&gt; which can save you a lot of time when it comes to styling different elements such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dropdowns&lt;/li&gt;
&lt;li&gt;Accordions&lt;/li&gt;
&lt;li&gt;Toggles&lt;/li&gt;
&lt;li&gt;Dark mode (!)
and so on, and so on.&lt;/li&gt;
&lt;/ul&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%2Fwiyt2hcgmry68b5bnh22.gif" 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%2Fwiyt2hcgmry68b5bnh22.gif" alt="PrelineUI gif that is simple CTA" width="600" height="264"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check my other article where I focus on PrelineUI and how it can help you while working with TailwindCSS:&lt;br&gt;
&lt;strong&gt;&lt;a href="https://dev.to/cezarymazur/tailwindcss-on-hacks-get-to-know-prelineui-4kmo"&gt;TailwindCSS on hacks: Get to know PrelineUI&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  3. Font configuration:
&lt;/h2&gt;

&lt;p&gt;Tailwind allows you to configure and use custom fonts easily. In your &lt;strong&gt;&lt;code&gt;tailwind.config.js&lt;/code&gt;&lt;/strong&gt; file, you can define the fonts you want to use:&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;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// ...&lt;/span&gt;
  &lt;span class="na"&gt;theme&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;extend&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;fontFamily&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;custom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;CustomFont&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;sans-serif&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="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Now, you can apply the &lt;strong&gt;&lt;code&gt;font-custom&lt;/code&gt;&lt;/strong&gt; class to use your custom font in your HTML.&lt;/p&gt;


&lt;h2&gt;
  
  
  4. Styling elements using the Tailwind and &lt;a class="mentioned-user" href="https://dev.to/apply"&gt;@apply&lt;/a&gt; classes:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind CSS&lt;/a&gt; provides a vast set of utility classes that you can use directly in your HTML. For example, to style a button, you can use classes like &lt;strong&gt;&lt;code&gt;bg-blue-500&lt;/code&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;code&gt;text-white&lt;/code&gt;&lt;/strong&gt;, and &lt;strong&gt;&lt;code&gt;py-2&lt;/code&gt;&lt;/strong&gt;. You can also create custom styles using the &lt;strong&gt;&lt;code&gt;@apply&lt;/code&gt;&lt;/strong&gt; directive in your CSS:&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%2Fg2zkbfjswcbjnxfbfsbb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg2zkbfjswcbjnxfbfsbb.png" alt="Styling elements using the Tailwind and @apply classes" width="752" height="420"&gt;&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="nc"&gt;.my-custom-style&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="err"&gt;@apply&lt;/span&gt; &lt;span class="err"&gt;bg-blue-500&lt;/span&gt; &lt;span class="err"&gt;text-white&lt;/span&gt; &lt;span class="err"&gt;py-2;&lt;/span&gt;
  &lt;span class="c"&gt;/* additional styles */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  5. Overwriting and extending Tailwind classes in tailwind.config:
&lt;/h2&gt;

&lt;p&gt;In your &lt;strong&gt;&lt;code&gt;tailwind.config.js&lt;/code&gt;&lt;/strong&gt;, you can extend or overwrite existing styles. For example, if you want to change the default padding values, you can do:&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%2Fbrhxgafzmt7rir8wu2wn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbrhxgafzmt7rir8wu2wn.png" alt="Overwriting and extending Tailwind classes in tailwind.config" width="752" height="420"&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="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// ...&lt;/span&gt;
  &lt;span class="na"&gt;theme&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;extend&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;spacing&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;72&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;18rem&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;84&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;21rem&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="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This extends the default spacing options in Tailwind with your custom values. You can similarly extend or override other configuration options to fit your project's style guide.&lt;/p&gt;


&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Tailwind gives you a lot of options when it comes to creating a styleguide. We briefly discussed a few of them, but that's not all. At every stage of creating a styleguide, it is worth using the Tailwind documentation, which is a mine of knowledge for beginners but also for experienced developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💬 Your Thoughts Matter!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you have any questions or need help with creating your first styleguide with Tailwind - let me know in the comment - I will be happy to help. You can also contact me privately at &lt;a href="//mailto:kontakt@cezarymazur.pl"&gt;kontakt@cezarymazur.pl&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;❤️ React, Share, Save&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I also encourage you to leave reactions, comments and save this article for later.&lt;/p&gt;

&lt;p&gt;Follow me if you are interested in Tailwind, from time to time I will raise new issues regarding Tailwind and how to work with it even more effectively.&lt;/p&gt;


&lt;div class="ltag__user ltag__user__id__1107233"&gt;
    &lt;a href="/cezarymazur" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&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%2Fuser%2Fprofile_image%2F1107233%2F4f397798-f9ad-4ed3-9315-7e9dc68071fb.jpg" alt="cezarymazur image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/cezarymazur"&gt;Cezary Mazur&lt;/a&gt;Follow
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/cezarymazur"&gt;AI Frontend Trainer &amp;amp; Consultant

Consulting — Mentoring — Workshops
Helping companies improve frontend processes.
Transforming teams into AI-powered innovators.&lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;



</description>
      <category>tailwindcss</category>
      <category>css</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>The new CSS pseudo-classes explained :has()</title>
      <dc:creator>Cezary Mazur</dc:creator>
      <pubDate>Fri, 29 Dec 2023 16:58:05 +0000</pubDate>
      <link>https://dev.to/cezarymazur/the-new-css-pseudo-classes-explained-has-21pc</link>
      <guid>https://dev.to/cezarymazur/the-new-css-pseudo-classes-explained-has-21pc</guid>
      <description>&lt;p&gt;Technology: CSS&lt;br&gt;
Topic: Pseudo-classess explained&lt;br&gt;
Version: 1.1&lt;br&gt;
Author: Cezary Mazur&lt;br&gt;
Author Website: &lt;a href="https://cezarymazur.pl/" rel="noopener noreferrer"&gt;https://cezarymazur.pl&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;CSS is developing more and more. In addition to various frameworks based on CSS or Sass (&lt;a href="https://getbootstrap.com/" rel="noopener noreferrer"&gt;BootstrapCSS&lt;/a&gt;, &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;TailwindCSS&lt;/a&gt;), CSS assembly itself is developing based on the needs and problems reported by developers. With development comes changes, new products, and often new things that are intended to make our programmers' lives easier. This is also the case with the new pseudo-classes in CSS.&lt;/p&gt;

&lt;p&gt;In today's article I will briefly focus on the new pseudo-class :has().&lt;br&gt;
This article will explain:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What is the &lt;code&gt;:has()&lt;/code&gt; pseudo-class and what does it refer to?&lt;/li&gt;
&lt;li&gt;How to use the &lt;code&gt;:has()&lt;/code&gt; pseudo-class in practice?&lt;/li&gt;
&lt;li&gt;Examples of using the &lt;code&gt;:has()&lt;/code&gt; pseudo-class&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you are interested in how to start with TailiwndCSS, check out my latest article about: &lt;strong&gt;&lt;a href="https://dev.to/cezarymazur/tailwind-css-beginners-guide-where-to-start-18lo"&gt;Tailwind CSS - Beginner's Guide: Where to Start?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  1. What is the &lt;code&gt;:has()&lt;/code&gt; pseudo-class?
&lt;/h2&gt;

&lt;p&gt;To explain what the &lt;code&gt;:has()&lt;/code&gt; pseudo-class is, first we need to explain what pseudo-classes in CSS are.&lt;/p&gt;

&lt;p&gt;A pseudo-class is a keyword added to a css selector that specifies a special state of the selector. &lt;/p&gt;

&lt;p&gt;The basic pseudo-classes are, for example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;:hover&lt;/code&gt; - state after hovering over the element&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;:focus&lt;/code&gt; - state when focusing on an element&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;:active&lt;/code&gt; - element activity status&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  We already know what a pseudo-class is, so now let's say what a &lt;code&gt;:has()&lt;/code&gt; pseudo-class is responsible for
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;:has()&lt;/code&gt; pseudo-class selects an element containing the specified content. For example, &lt;code&gt;a:has(img)&lt;/code&gt; selects all &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; elements containing a child &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; element.&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%2Fxt04u9loudilr9pywkbl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxt04u9loudilr9pywkbl.png" alt="Image show css on screen" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  2. How to use the &lt;code&gt;:has()&lt;/code&gt; pseudo-class in practice?
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;:has()&lt;/code&gt; in CSS is like a special tool that allows you to change the appearance of a parent element based on whether it contains a specific child or another element. This might seem a bit different from how we usually think about CSS, where styles are applied from parent to child. Until now, there hasn't been a direct way to style the parent based on its content, and there are technical reasons for that.&lt;/p&gt;

&lt;p&gt;For example, you might want to style links only if they have images inside them. With &lt;code&gt;:has()&lt;/code&gt; you can do this. This opens up new possibilities, like adding styles conditionally depending on the content of an element, which wasn't easily achievable with standard CSS.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;:has()&lt;/code&gt; selector is part of the CSS Selectors Level 4 specification, the same set of rules that include the handy &lt;code&gt;:not()&lt;/code&gt; pseudo-class.&lt;/p&gt;


&lt;h2&gt;
  
  
  3. Examples of using a pseudo-class &lt;code&gt;:has()&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Let's assume you want to add a bottom margin to the &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; element, but (!) only to the one that contains the &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; element:&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="nc"&gt;.a&lt;/span&gt;&lt;span class="nd"&gt;:has&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;img&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;2em&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;or depending on whether there is a subheading under the heading, you want to increase or decrease the bottom margin:&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="nc"&gt;.heading&lt;/span&gt; &lt;span class="nt"&gt;h2&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;1.5em&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.heading-group&lt;/span&gt;&lt;span class="nd"&gt;:has&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="nd"&gt;:has&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;.subtitle&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nt"&gt;h2&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;2em&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Faoxjl79a7ktdgkzrrck7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faoxjl79a7ktdgkzrrck7.png" alt="Heading styling css with :has" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You could argue that the CSS &lt;code&gt;:has()&lt;/code&gt; selector goes beyond being just a "parent" selector, and that's exactly what it is! In the example with subheadings, it's not necessarily about selecting the ultimate parent; instead, you might choose the parent based on a condition and then proceed to select a child element from there.&lt;/p&gt;

&lt;p&gt;For instance:&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;figure&lt;/span&gt;&lt;span class="nd"&gt;:has&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;figcaption&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="err"&gt;...&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;figure&lt;/span&gt;&lt;span class="nd"&gt;:has&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;figcaption&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nt"&gt;img&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="err"&gt;...&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Here, the second selector specifically targets a child &lt;strong&gt;&lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt;&lt;/strong&gt;, not just the parent containing the &lt;strong&gt;&lt;code&gt;&amp;lt;figcaption&amp;gt;&lt;/code&gt;&lt;/strong&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Time passes quickly and technologies, even as basic as CSS, are developing. In order not to be left behind, it is worth following the news and learning how to make even better use of what we have all known well for years. Thanks to this approach, we will be able to be and become programmers who are desirable in the labor market. And the work itself will bring more joy. Therefore, from now on, you can safely use the &lt;code&gt;:has()&lt;/code&gt; pseudo-class, which will make your everyday work easier and faster 😄&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cezarymazur.pl" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Visit cezarymazur.pl&lt;/a&gt;
&lt;/p&gt;


&lt;h2&gt;
  
  
  💬 Your Thoughts Matter!
&lt;/h2&gt;

&lt;p&gt;We'd love to hear your thoughts on CSS and the different usage of CSS pseudo-classes. Have you used them in your projects? What has been your experience? Share your insights, suggestions, or any challenges you've faced in the comments below.&lt;/p&gt;


&lt;h2&gt;
  
  
  ❤️ React, Share, Save
&lt;/h2&gt;

&lt;p&gt;If you found this article helpful, consider sharing it with your fellow developers. React to the content and save it for future reference. Your engagement fuels our commitment to bringing you more insightful content.&lt;/p&gt;


&lt;div class="ltag__user ltag__user__id__1107233"&gt;
    &lt;a href="/cezarymazur" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&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%2Fuser%2Fprofile_image%2F1107233%2F4f397798-f9ad-4ed3-9315-7e9dc68071fb.jpg" alt="cezarymazur image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/cezarymazur"&gt;Cezary Mazur&lt;/a&gt;Follow
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/cezarymazur"&gt;AI Frontend Trainer &amp;amp; Consultant

Consulting — Mentoring — Workshops
Helping companies improve frontend processes.
Transforming teams into AI-powered innovators.&lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;



&lt;p&gt;Visit &lt;a href="https://cezarymazur.pl" rel="noopener noreferrer"&gt;cezarymazur.pl&lt;/a&gt; for more front-end development tips and tricks. Stay tuned for regular updates and in-depth tutorials to level up your coding game. &lt;/p&gt;

&lt;p&gt;🎉 &lt;strong&gt;Happy coding!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>css</category>
      <category>webdev</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Tailwind CSS on Hacks: Get to know Preline UI</title>
      <dc:creator>Cezary Mazur</dc:creator>
      <pubDate>Wed, 27 Dec 2023 19:52:54 +0000</pubDate>
      <link>https://dev.to/cezarymazur/tailwindcss-on-hacks-get-to-know-prelineui-4kmo</link>
      <guid>https://dev.to/cezarymazur/tailwindcss-on-hacks-get-to-know-prelineui-4kmo</guid>
      <description>&lt;p&gt;&lt;strong&gt;Technology:&lt;/strong&gt; TailwindCSS&lt;br&gt;
&lt;strong&gt;Series:&lt;/strong&gt; Get to Know&lt;br&gt;
&lt;strong&gt;Topic:&lt;/strong&gt; PrelineUI&lt;br&gt;
&lt;strong&gt;Version:&lt;/strong&gt; 1.1&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; Cezary Mazur&lt;br&gt;
&lt;strong&gt;Author Website:&lt;/strong&gt; &lt;a href="https://cezarymazur.pl/" rel="noopener noreferrer"&gt;cezarymazur.pl&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;User interfaces play a crucial role in the success of any web application or website. A well-designed UI enhances user experience, making navigation seamless and interactions intuitive. Two powerful tools in the web development arsenal, &lt;a href="https://preline.co/index.html" rel="noopener noreferrer"&gt;PrelineUI&lt;/a&gt; and &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;TailwindCSS&lt;/a&gt;, come together to streamline the process of creating elegant and responsive user interfaces.&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%2F2w193b22gam5o3drbggh.gif" 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%2F2w193b22gam5o3drbggh.gif" alt="Gif shows Preline Hero banner" width="600" height="264"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Understanding TailwindCSS&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Before delving into &lt;a href="https://preline.co/" rel="noopener noreferrer"&gt;PrelineUI&lt;/a&gt;, let's revisit the fundamentals of &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;TailwindCSS&lt;/a&gt;. This utility-first framework provides a plethora of pre-designed classes, enabling developers to style their components without the need for custom CSS. Its declarative approach aligns well with modern development practices, making it a favorite among frontend developers.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;Key TailwindCSS Concepts&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Utility-First Philosophy:&lt;/strong&gt; &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;TailwindCSS&lt;/a&gt; promotes the idea of composing designs by combining small utility classes rather than writing custom CSS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Responsive Design:&lt;/strong&gt; &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;TailwindCSS&lt;/a&gt; includes classes for responsive design, allowing developers to easily adapt layouts for various screen sizes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configuration:&lt;/strong&gt; Developers can customize the framework's default settings using a configuration file, tailoring it to fit the project's specific needs.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Read more about how to start coding with TailwindCSS in my previous article: &lt;a href="https://dev.to/cezarymazur/tailwind-css-beginners-guide-where-to-start-18lo"&gt;TailwindCSS - Beginner’s Guide: Where to start?&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa0kzbobmxb84tg7ji6m6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa0kzbobmxb84tg7ji6m6.png" alt="Image show accordion, one of the PrelineUI plugin" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  🤝 &lt;strong&gt;Introducing PrelineUI&lt;/strong&gt;
&lt;/h2&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;What is PrelineUI?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://preline.co/docs/index.html" rel="noopener noreferrer"&gt;PrelineUI&lt;/a&gt; is a comprehensive UI framework that empowers developers to build beautiful and functional user interfaces with ease. It offers a set of carefully designed components, styles, and utilities that can be seamlessly integrated into projects, saving time and effort during the development process.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;Implementation in TailwindCSS&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;To integrate &lt;a href="https://preline.co/" rel="noopener noreferrer"&gt;PrelineUI&lt;/a&gt; into your &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;TailwindCSS&lt;/a&gt; project, you need to follow a few simple steps. First, install PrelineUI using your preferred package manager:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm i preline
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, add it to your &lt;strong&gt;&lt;code&gt;tailwind.config.js&lt;/code&gt;&lt;/strong&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// tailwind.config.js
module.exports = {
  content: [
    // './src/**/*.{html,js}',
      'node_modules/preline/dist/*.js',
  ],
  plugins: [
    // require('@tailwindcss/forms'),
      require('preline/plugin'),
  ],
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Include the JavaScript &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; that powers the interactive elements near the end of your &lt;code&gt;&amp;lt;/body&amp;gt;&lt;/code&gt; tag:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;// index.html
&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./node_modules/preline/dist/preline.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Key Features of PrelineUI&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Component Library:&lt;/strong&gt; &lt;a href="https://preline.co/index.html" rel="noopener noreferrer"&gt;PrelineUI&lt;/a&gt; provides a rich library of UI components, including buttons, forms, navigation bars, and more. These components are crafted with attention to detail, ensuring a consistent and polished look throughout the application.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Responsive Design:&lt;/strong&gt; With a focus on responsiveness, &lt;a href="https://preline.co/index.html" rel="noopener noreferrer"&gt;PrelineUI&lt;/a&gt; ensures that your web application looks and works well on various devices and screen sizes. This is crucial in today's mobile-centric world, where users access websites from a multitude of devices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customization:&lt;/strong&gt; While &lt;a href="https://preline.co/index.html" rel="noopener noreferrer"&gt;PrelineUI&lt;/a&gt; comes with a default set of styles, it also allows for easy customization. Tailor the look and feel of your UI to match the branding and design preferences of your project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Documentation:&lt;/strong&gt; &lt;a href="https://preline.co/docs/index.html" rel="noopener noreferrer"&gt;The comprehensive documentation&lt;/a&gt;  provided by &lt;a href="https://preline.co/index.html" rel="noopener noreferrer"&gt;PrelineUI&lt;/a&gt; makes it easy for developers to get started and leverage the full potential of the framework. Whether you are a beginner or an experienced developer, the documentation is a valuable resource for understanding and implementing &lt;a href="https://preline.co/docs/accordion.html" rel="noopener noreferrer"&gt;PrelineUI components.&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&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%2F625msk05nkbfoxh3xvu0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F625msk05nkbfoxh3xvu0.png" alt="Image show screenshot of the first page of PrelineUI docs" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ &lt;strong&gt;Benefits of Using TailwindCSS with PrelineUI&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Rapid Prototyping:&lt;/strong&gt; &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;TailwindCSS's&lt;/a&gt; utility-first approach allows developers to prototype and iterate quickly. Apply styles directly in the HTML, making it easy to experiment and see immediate results.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No Custom CSS:&lt;/strong&gt; With &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;TailwinCSS&lt;/a&gt;, there's often no need to write custom CSS styles. The framework provides a vast set of utility classes that cover common styling needs, reducing the amount of CSS code in your project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistent Design Language:&lt;/strong&gt; By combining &lt;a href="https://preline.co/index.html" rel="noopener noreferrer"&gt;PrelineUI's&lt;/a&gt; components with &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;TailwindCSS&lt;/a&gt;, you can maintain a consistent design language throughout your application. Tailwind's utility classes can be used to fine-tune the appearance of individual components without sacrificing coherence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optimized Build Size:&lt;/strong&gt; &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;TailwindCSS&lt;/a&gt; is designed to generate optimized and minimal CSS builds. This is beneficial for performance, ensuring that your web application loads quickly and efficiently.&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;The combination of &lt;a href="https://preline.co/index.html" rel="noopener noreferrer"&gt;PrelineUI&lt;/a&gt; and &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;TailwindCSS&lt;/a&gt; offers a powerful and efficient solution for crafting elegant and responsive user interfaces. By leveraging the strengths of these frameworks, developers can save time, maintain a consistent design language, and deliver a seamless user experience. Explore the documentation provided by &lt;a href="https://preline.co/index.html" rel="noopener noreferrer"&gt;PrelineUI&lt;/a&gt; and &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;TailwindCSS&lt;/a&gt; to unlock the full potential of these tools and elevate the visual appeal of your web projects.&lt;/p&gt;

&lt;p&gt;🌐 Visit &lt;a href="http://cezarymazur.pl" rel="noopener noreferrer"&gt;cezarymazur.pl&lt;/a&gt; to see how I used TailwindCSS with &lt;a href="https://preline.co/index.html" rel="noopener noreferrer"&gt;PrelineUI&lt;/a&gt; in real life.&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 &lt;strong&gt;Your Thoughts Matter!&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;We'd love to hear your thoughts on &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;TailwindCSS&lt;/a&gt; and &lt;a href="https://preline.co/" rel="noopener noreferrer"&gt;PrelineUI&lt;/a&gt;. Have you used these tools in your projects? What has been your experience? Share your insights, suggestions, or any challenges you've faced in the comments below.&lt;/p&gt;




&lt;h2&gt;
  
  
  ❤️ &lt;strong&gt;React, Share, Save&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;If you found this article helpful, consider sharing it with your fellow developers. React to the content and save it for future reference. Your engagement fuels our commitment to bringing you more insightful content.&lt;/p&gt;

&lt;p&gt;Visit &lt;a href="https://cezarymazur.pl" rel="noopener noreferrer"&gt;cezarymazur.pl&lt;/a&gt; **for more front-end development tips and tricks. Stay tuned for regular updates and in-depth tutorials to level up your coding game. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy coding!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>tailwindcss</category>
      <category>css</category>
      <category>webdev</category>
      <category>frontend</category>
    </item>
    <item>
      <title>GIT - Beginner’s Guide: Useful GIT commands you should know</title>
      <dc:creator>Cezary Mazur</dc:creator>
      <pubDate>Sun, 24 Dec 2023 08:07:30 +0000</pubDate>
      <link>https://dev.to/cezarymazur/git-beginners-guide-useful-git-commands-you-should-know-1m6b</link>
      <guid>https://dev.to/cezarymazur/git-beginners-guide-useful-git-commands-you-should-know-1m6b</guid>
      <description>&lt;p&gt;Technology: GIT&lt;br&gt;
Series: Beginner's Guide&lt;br&gt;
Topic: Useful GIT commands you should know&lt;br&gt;
Version: 1.1&lt;br&gt;
Author: Cezary Mazur&lt;br&gt;
Author Website: &lt;a href="https://cezarymazur.pl/" rel="noopener noreferrer"&gt;https://cezarymazur.pl&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Version control is a crucial aspect of modern software development, and Git stands out as one of the most popular version control systems. If you're a beginner navigating the vast world of Git, this guide will provide you with essential commands to kickstart your journey. From basic operations to more advanced features, we'll explore the functionalities that will make your development workflow smoother.&lt;/p&gt;


&lt;h2&gt;
  
  
  &lt;strong&gt;Understanding Git Basics&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Each command in this article should be executed in a terminal in your project folder.&lt;/p&gt;
&lt;h3&gt;
  
  
  Initializing a Repository
&lt;/h3&gt;

&lt;p&gt;To start using Git, you need to initialize a repository. This is where Git will track changes in your project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Cloning a Repository
&lt;/h3&gt;

&lt;p&gt;If you're working on an existing project - for example project with the repository in GitLab, BitBucket, or GitHub - you can clone it to your local machine.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone &amp;lt;repository-url&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fr2t2bwzzjsib0706b3cw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr2t2bwzzjsib0706b3cw.png" alt="Image description" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Day-to-Day Commands&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Tracking Changes
&lt;/h3&gt;

&lt;p&gt;Once your repository is set up, you'll make changes to your code. The following commands help you track and commit those changes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &amp;lt;filename&amp;gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Your commit message"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Checking Status
&lt;/h3&gt;

&lt;p&gt;It's crucial to know the status of your repository at any given time.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Viewing Commit History
&lt;/h3&gt;

&lt;p&gt;Understanding the commit history is essential for collaboration and debugging.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Collaborating with Others&lt;/strong&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Pulling Changes
&lt;/h3&gt;

&lt;p&gt;If someone else has made changes to the repository, you need to pull those changes to your local machine.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git pull
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Pushing Changes
&lt;/h3&gt;

&lt;p&gt;When you've made changes and want to share them with others, you push your commits.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Branching
&lt;/h3&gt;

&lt;p&gt;Branching allows you to work on new features or bug fixes without affecting the main codebase.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git branch &amp;lt;branch-name&amp;gt;
git checkout &amp;lt;branch-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2F1ygk7437q1y6saebo1eg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1ygk7437q1y6saebo1eg.png" alt="Image description" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Advanced Git Commands&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Merging Branches
&lt;/h3&gt;

&lt;p&gt;Once you've completed your work on a branch, you merge it back into the main branch.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bashCopy code
git merge &amp;lt;branch-name&amp;gt;

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  Resolving Conflicts
&lt;/h3&gt;

&lt;p&gt;Conflicts may arise when merging branches with conflicting changes. Resolve them using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git mergetool
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Pros and Cons of Git&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ✅ Pros
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Distributed Version Control:&lt;/strong&gt; Git allows decentralized collaboration, enabling developers to work offline and merge changes seamlessly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Branching and Merging:&lt;/strong&gt; The ability to create branches and merge them easily facilitates collaborative development and feature isolation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fast and Efficient:&lt;/strong&gt; Git is designed to be quick, making it ideal for both small and large projects.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;😥&lt;/strong&gt; Cons
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Learning Curve:&lt;/strong&gt; For beginners, Git's extensive feature set can be overwhelming, leading to a steep learning curve.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Confusing Terminology:&lt;/strong&gt; Concepts like "rebase" and "detached HEAD" can be confusing for new users.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage Size:&lt;/strong&gt; Repositories with a long history can consume significant disk space.&lt;/li&gt;
&lt;/ol&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%2Fca0zjc6a6jn20dx8s388.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fca0zjc6a6jn20dx8s388.png" alt="Image description" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Tips for Efficient Git Usage&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Regularly Commit:&lt;/strong&gt; Make small, frequent commits to create a comprehensive commit history.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use Branches Wisely:&lt;/strong&gt; Create branches for new features or bug fixes to keep the main branch stable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write Meaningful Commit Messages:&lt;/strong&gt; Clearly articulate the purpose of each commit for better collaboration.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Visualizing Git Concepts&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Images can help visualize Git workflows. Consider using icons or diagrams to illustrate concepts like branching, merging, and commit history.&lt;/p&gt;




&lt;h2&gt;
  
  
  How to learn Git?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Courses
&lt;/h3&gt;

&lt;p&gt;One of the best ways to learn Git is through courses. You can find many of them for free on YouTube or purchase a course on Udemy. Regardless of which course you choose, it will help you better understand and implement the use of GIT.&lt;/p&gt;

&lt;h3&gt;
  
  
  Games
&lt;/h3&gt;

&lt;p&gt;I highly recommend games that can help you learn Git and its commands:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;LearnGitBranching: &lt;a href="https://learngitbranching.js.org/" rel="noopener noreferrer"&gt;https://learngitbranching.js.org/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;OhMyGit: &lt;a href="https://ohmygit.org/" rel="noopener noreferrer"&gt;https://ohmygit.org/&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Leaving Comments, Reacting, and Saving the Article&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I hope this guide provides you with a solid foundation for using Git. If you have any questions or thoughts, please leave a comment below. &lt;/p&gt;

&lt;p&gt;Your feedback is valuable to me! If you found this article helpful, consider reacting to it and saving it for future reference.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Explore More&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;For further insights and in-depth tutorials, visit &lt;a href="https://cezarymazur.pl/" rel="noopener noreferrer"&gt;author's website&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Stay tuned for more articles on front-end development, and 😀 happy coding!&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Tailwind CSS - Beginner's Guide: Where to Start?</title>
      <dc:creator>Cezary Mazur</dc:creator>
      <pubDate>Thu, 21 Dec 2023 20:09:05 +0000</pubDate>
      <link>https://dev.to/cezarymazur/tailwind-css-beginners-guide-where-to-start-18lo</link>
      <guid>https://dev.to/cezarymazur/tailwind-css-beginners-guide-where-to-start-18lo</guid>
      <description>&lt;p&gt;&lt;strong&gt;Technology:&lt;/strong&gt; TailwindCSS&lt;br&gt;
&lt;strong&gt;Series:&lt;/strong&gt; Beginner's Guide&lt;br&gt;
&lt;strong&gt;Topic:&lt;/strong&gt; Where to start?&lt;br&gt;
&lt;strong&gt;Version:&lt;/strong&gt; 1.1&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; Cezary Mazur&lt;br&gt;
&lt;strong&gt;Authors Website:&lt;/strong&gt; &lt;a href="https://cezarymazur.pl" rel="noopener noreferrer"&gt;https://cezarymazur.pl&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;In the fast-evolving landscape of web development, staying up-to-date with the latest tools and frameworks is crucial for front-end developers. &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind CSS&lt;/a&gt;, a utility-first CSS framework, has gained immense popularity for its simplicity and flexibility. As we step into 2024, let's explore the essentials of &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind CSS&lt;/a&gt; and guide beginners on where to start.&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%2Fbn19y9csrvh8k95nnmj1.gif" 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%2Fbn19y9csrvh8k95nnmj1.gif" alt="Image description" width="600" height="312"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  1. Introduction to Tailwind CSS
&lt;/h2&gt;

&lt;p&gt;Tailwind CSS is a utility-first CSS framework that provides low-level utility classes for building designs directly in your markup. It's designed to be easy to learn and highly customizable, making it a favorite among developers for quickly prototyping and building modern user interfaces.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Getting Started:&lt;/strong&gt;&lt;br&gt;
To begin using Tailwind CSS, you'll need to install it in your project. The recommended way is through npm:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install tailwindcss&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;After installation, you'll need to create a configuration file:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx tailwindcss init&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This will generate a tailwind.config.js file where you can customize various aspects of Tailwind's behavior.&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%2Fj54v8e2blbkeggwlkaca.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj54v8e2blbkeggwlkaca.png" alt="Image description" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  2. Understanding Utility-First Approach
&lt;/h2&gt;

&lt;p&gt;One of Tailwind's distinctive features is its utility-first approach, where you apply small, single-purpose utility classes directly in your HTML. This approach streamlines development by eliminating the need to write custom CSS, letting you focus on building components.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!-- Before --&amp;gt;
&amp;lt;div class="container mx-auto bg-blue-500 p-4"&amp;gt;
  &amp;lt;p class="text-white"&amp;gt;Hello, World!&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;!-- After --&amp;gt;
&amp;lt;div class="bg-blue-500 p-4"&amp;gt;
  &amp;lt;p class="text-white"&amp;gt;Hello, World!&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Exploring &lt;a href="https://tailwindcss.com/docs/installation" rel="noopener noreferrer"&gt;Tailwind's Documentation&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Tailwind's official documentation is a treasure trove of information for both beginners and experienced developers. It covers everything from installation to advanced customization, making it an invaluable resource.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Sections in the Documentation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Installation:&lt;/strong&gt; Step-by-step guide to installing Tailwind CSS in your project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configuration:&lt;/strong&gt; Customizing Tailwind to suit your project's needs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Core Concepts:&lt;/strong&gt; Understanding utility classes, responsive design, and pseudo-classes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plugins:&lt;/strong&gt; Exploring and integrating plugins to extend Tailwind's functionality.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Pros and Cons of Tailwind CSS
&lt;/h2&gt;

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

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Rapid Development:&lt;/strong&gt; Tailwind's utility-first approach speeds up development by reducing the need for custom CSS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexibility:&lt;/strong&gt; Highly customizable with a configuration file, allowing you to tailor it to your project's requirements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistent Design:&lt;/strong&gt; Enforces a consistent design language across your application.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Learning Curve:&lt;/strong&gt; Some developers find the utility-first approach initially challenging, especially if they are accustomed to traditional CSS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;File Size:&lt;/strong&gt; Depending on your usage, the generated CSS file can be larger than manually optimized stylesheets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not Suitable for Every Project:&lt;/strong&gt; While great for prototypes and small to medium-sized projects, it may not be the best fit for large-scale applications.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  5. Building Your First Project with Tailwind
&lt;/h2&gt;

&lt;p&gt;Now that you have a basic understanding of Tailwind, let's walk through building a simple project to reinforce what you've learned.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project Structure:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create HTML File:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta charset="UTF-8"&amp;gt;
  &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&amp;gt;
  &amp;lt;link rel="stylesheet" href="styles.css"&amp;gt;
  &amp;lt;title&amp;gt;My Tailwind Project&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  &amp;lt;div class="bg-gray-200 p-8"&amp;gt;
    &amp;lt;h1 class="text-3xl font-bold text-blue-500"&amp;gt;Welcome to Tailwind!&amp;lt;/h1&amp;gt;
    &amp;lt;p class="mt-4 text-gray-700"&amp;gt;Start building amazing interfaces with ease.&amp;lt;/p&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create CSS File (styles.css):&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Build and Run:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After creating your HTML and CSS files, run your project. You should see a styled welcome message using Tailwind CSS.&lt;/p&gt;

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

&lt;p&gt;Tailwind CSS, with its utility-first approach and simplicity, remains a powerful choice for front-end development in 2024. By delving into its documentation, understanding the pros and cons, and building a simple project, beginners can kickstart their journey into the world of Tailwind.&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%2Fpzurqbr10i974ffwuo8x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpzurqbr10i974ffwuo8x.png" alt="Image description" width="756" height="753"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Remember, practice is key. Experiment with &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind CSS&lt;/a&gt; in various projects to harness its full potential and discover how it fits into your development workflow. Stay curious, explore the ever-expanding ecosystem, and embrace the efficiency and flexibility that Tailwind CSS offers.&lt;/p&gt;




&lt;p&gt;I hope this beginner's guide to Tailwind CSS in 2024 has been a valuable resource for your front-end development journey. Whether you're a seasoned developer or just starting, your thoughts and experiences matter. &lt;/p&gt;

&lt;p&gt;Feel free to share your 💬 comments, insights, or questions below. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Did you find Tailwind CSS intuitive or encounter any challenges?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your feedback can contribute to a vibrant community of learners. Don't forget to react, save this article for future reference, and feel free to visit the author's website: &lt;a href="https://cezarymazur.pl/" rel="noopener noreferrer"&gt;https://cezarymazur.pl&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Your engagement is highly appreciated, and I look forward to fostering a collaborative learning space.&lt;/p&gt;

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

</description>
      <category>tailwindcss</category>
      <category>css</category>
      <category>webdev</category>
      <category>frontend</category>
    </item>
  </channel>
</rss>
