<?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: Kyle - Layer6 Training</title>
    <description>The latest articles on DEV Community by Kyle - Layer6 Training (@kytechhosting).</description>
    <link>https://dev.to/kytechhosting</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%2F905018%2Fa49f89b1-8e14-48eb-bb78-9622b548524d.png</url>
      <title>DEV Community: Kyle - Layer6 Training</title>
      <link>https://dev.to/kytechhosting</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kytechhosting"/>
    <language>en</language>
    <item>
      <title>How To Install TailwindCSS In Your NextJS Project ⚡️</title>
      <dc:creator>Kyle - Layer6 Training</dc:creator>
      <pubDate>Tue, 09 Aug 2022 13:31:00 +0000</pubDate>
      <link>https://dev.to/kytechhosting/how-to-install-tailwindcss-in-your-nextjs-project-5gmc</link>
      <guid>https://dev.to/kytechhosting/how-to-install-tailwindcss-in-your-nextjs-project-5gmc</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In this post, you will learn how to set up your &lt;a href="https://nextjs.org"&gt;NextJS&lt;/a&gt; project to use &lt;a href="https://tailwindcss.com"&gt;TailwindCSS&lt;/a&gt; as your styling utility.&lt;/p&gt;

&lt;h2&gt;
  
  
  Requirements
&lt;/h2&gt;

&lt;p&gt;Before we get going your going to need two things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://nodejs.org/en/"&gt;Node JS&lt;/a&gt; installed on your machine. I always recommend the LTS (v16) as it has the widest amount of support and will cause you the least amount of headaches when following guides like these.&lt;/li&gt;
&lt;li&gt;An IDE, I use &lt;a href="https://code.visualstudio.com/download"&gt;VS Code&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With that out of the way, lets get going!&lt;/p&gt;

&lt;p&gt;We have two options when it comes to making a NextJS project with Tailwinds.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 1 (Fastest ⚡️)
&lt;/h2&gt;

&lt;p&gt;One of the really nice things I've found with NextJS is they have a very nice library of "&lt;a href="https://nextjs.org/examples"&gt;Examples&lt;/a&gt;" as they call them, which are essentially just a bunch of ready-to-go templates for various starting points with a project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--e8nckrWR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659928006057/ynEgGyfiY.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--e8nckrWR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659928006057/ynEgGyfiY.png" alt="image.png" width="880" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And in this case, they have a &lt;a href="https://github.com/vercel/next.js/tree/canary/examples/with-tailwindcss"&gt;NextJS-with-TailwindCSS&lt;/a&gt; Example.&lt;/p&gt;

&lt;p&gt;To install this example it couldn't be simpler! Run the below command in a terminal window in the file location you would like to start your new project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-next-app --example with-tailwindcss my-app

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

&lt;/div&gt;



&lt;p&gt;Or for yarn users:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;yarn create next-app --example with-tailwindcss my-app

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

&lt;/div&gt;



&lt;p&gt;And then that's it! 🎉&lt;/p&gt;

&lt;p&gt;we can now run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd my-app
npm run dev
or
yarn dev

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

&lt;/div&gt;



&lt;p&gt;and you should see the NextJS boilerplate site page in your browser&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Hjnw64CS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659928567355/bLJlATuN2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Hjnw64CS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659928567355/bLJlATuN2.png" alt="image.png" width="880" height="655"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Too simple right? 🧐
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Options 2 🛠
&lt;/h2&gt;

&lt;p&gt;Option 2 starts the same way but we will use the base Create-NextJS command.&lt;/p&gt;

&lt;p&gt;In your terminal run this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-next-app my-app

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

&lt;/div&gt;



&lt;p&gt;Next cd into the my-app folder:&lt;br&gt;
&lt;/p&gt;

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

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

&lt;/div&gt;



&lt;p&gt;We are going to run a few Tailwind specific commands.&lt;/p&gt;

&lt;p&gt;The first is:&lt;br&gt;
&lt;/p&gt;

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

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

&lt;/div&gt;



&lt;p&gt;This will install tailwindcss as a dev dependency in your "package.json" file. As well, also install postcss and autoprefixer which are core elements of how tailwindcss operates.&lt;/p&gt;

&lt;p&gt;Next, we are going to create the tailwinds config file by running this command:&lt;br&gt;
&lt;/p&gt;

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

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

&lt;/div&gt;



&lt;p&gt;Now inside this newly created file "tailwind.config.js" we will insert a content array with all the file types in our project. Ensure to add any file types or routes that are specific to your project in order to use tailwindcss in them:&lt;br&gt;
&lt;/p&gt;

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

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

&lt;/div&gt;



&lt;p&gt;Next, we will change the contents of the "./styles/css/global.css" file. You can delete all the contents of this file and replace it with the below code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@tailwind base;
@tailwind components;
@tailwind utilities;

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

&lt;/div&gt;



&lt;p&gt;Final step is to start our dev server:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run dev
or
yarn dev

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

&lt;/div&gt;



&lt;p&gt;and then make a new element in our "index.js" file to test if tailwindcss is working (again you can delete all the boilerplate code). In this case, I made an H1 tag with a few tailwindcss classes to test.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export default function Home() {
  return (
    &amp;lt;h1 className="text-3xl font-bold underline"&amp;gt;
      Hello world!
    &amp;lt;/h1&amp;gt;
  )
}

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

&lt;/div&gt;



&lt;p&gt;If your H1 heading shows up as larger bolded text with an underline then congrats! 🎉 Tailwindcss is working!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NwI5cQJz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659929567647/o9GHIFfvi.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NwI5cQJz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659929567647/o9GHIFfvi.gif" alt="2UU.gif" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now after seeing how easy it was to get Option 1 up and going you might be wondering why you would do it any other way?? Especially, if you're coming from using TailwindCSS with another framework, you know how involved the setup process can be.&lt;/p&gt;

&lt;p&gt;Option 2 may be required if your working in a team and you need to scaffold your project from the ground up to adhere to strict environment/variable settings your team has set. Or, you are using another NextJS example, like Auth0, so you are already using the quick start function.&lt;/p&gt;

&lt;p&gt;Either way, getting TailwindCSS going is fairly straightforward. If you have any issues getting going, you can refer to the official &lt;a href="https://tailwindcss.com/docs/guides/nextjs"&gt;TailwindCSS Docs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you enjoyed or learned something from this post please give it a like and consider following me for more! 🙏&lt;/p&gt;

</description>
      <category>tailwindcss</category>
      <category>nextjs</category>
      <category>howto</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How To Style Blogs/CMS Data Auto-Magically with Tailwind CSS 🤩</title>
      <dc:creator>Kyle - Layer6 Training</dc:creator>
      <pubDate>Sun, 07 Aug 2022 22:49:44 +0000</pubDate>
      <link>https://dev.to/kytechhosting/how-to-style-blogscms-data-auto-magically-with-tailwind-css-48mj</link>
      <guid>https://dev.to/kytechhosting/how-to-style-blogscms-data-auto-magically-with-tailwind-css-48mj</guid>
      <description>&lt;h2&gt;
  
  
  Introduction:
&lt;/h2&gt;

&lt;p&gt;Today were going to look at a Tailwind component that only Prose know about! 😂 Sorry I had to get that joke out of the way!&lt;/p&gt;

&lt;p&gt;If you're like me and have been using Tailwind CSS for a while, even a very long time, you may still not have come across this amazing feature of the tool! I am speaking about the Typography Component and more specifically the set of Prose class elements. This collection of styling was built for large sets of HTML you may not be able to control. Maybe youve set up your website's blog using raw markdown text, or you're pulling in large amounts of text content from a CMS.&lt;/p&gt;

&lt;p&gt;Either way, the Prose classes are here to help! 👌&lt;/p&gt;

&lt;h2&gt;
  
  
  Sample Project:
&lt;/h2&gt;

&lt;p&gt;Naturally, we will need an example so let's get a Tailwind based project going&lt;/p&gt;

&lt;p&gt;Were going to use the &lt;a href="https://play.tailwindcss.com/"&gt;Tailwind CSS Play&lt;/a&gt; tool. This will get us up and going fast and make sure youre environment is identical to mine.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rfau6Sbv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659907375203/Fok8KUP6E.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rfau6Sbv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659907375203/Fok8KUP6E.png" alt="TailwindPlay.png" width="880" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We will replace the default code with the snippet below. This is unformatted HTML from my latest &lt;a href="https://dev.to/kytechhosting/5-web-dev-platforms-tools-frameworks-to-learn-in-2022-3egi-temp-slug-8478163"&gt;blog post&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"relative flex min-h-screen flex-col justify-center overflow-hidden bg-gray-50 py-6 sm:py-12"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;article&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;5 Web Dev Platforms, Tools &lt;span class="err"&gt;&amp;amp;&lt;/span&gt; Frameworks To Learn In 2022 🔥&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://blog.layer6training.com/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Funsplash%2FSyYmXSDnJ54%2Fupload%2Fv1659720841329%2Fss-CHaLc9d.jpeg%3Fw%3D1600%26h%3D840%26fit%3Dcrop%26crop%3Dentropy%26auto%3Dcompress%2Cformat%26format%3Dwebp&amp;amp;w=3840&amp;amp;q=75"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;1. React/NextJS &lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Like it or lump it, Javascript frameworks have continued to take over in all aspects of web development from Web3 to traditional web apps. React and frameworks based on it have exploded in 2022 taking over from some of the other major players in the field.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;As the tide of React rises, so do the others that are based on its component framework. This includes NextJS, a 2016 open source React-component-based framework that was created by the team at Vercel. Since its creation in 2016 the team has added a bunch of cutting-edge features geared towards edge hosting platforms like its own. In addition to NextJS's cloud edge focus, many consider the framework as a backend framework due to its many server-side features.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://nextjs.org/_next/image?url=%2Fstatic%2Fblog%2Flayouts-rfc%2Fpage.png&amp;amp;w=3840&amp;amp;q=75"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;NextJS is the framework I personally have chosen for all my projects. You can read more about it here: NextJS&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/article&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;It should look like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VzdjRgho--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659907610501/k9EPWBChP.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VzdjRgho--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659907610501/k9EPWBChP.png" alt="blog-raw.png" width="880" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Not great right? Which were not surprised. And of course, we could just add styles like normal to each HTML element. But let's say you have a large amount of text, either from a CMS or just generally have a lot of static text content on your site. It could be very time-consuming to style by hand. This is normally one of the largest complaints hard-core CSS users have about Tailwind CSS. Not worry the Typography component is on the way!&lt;/p&gt;

&lt;p&gt;So let's implement this.&lt;/p&gt;

&lt;p&gt;We're going to need to add one small piece of code to our Tailwind config file. This would be the third tab along the top in our code session labeled "Config".&lt;/p&gt;

&lt;p&gt;💡 NOTE* since we are using TailwindCSS Play we do not need to install the Typography plugin, but in a normal project you would need to install the plugin with npm install -D &lt;a class="mentioned-user" href="https://dev.to/tailwindcss"&gt;@tailwindcss&lt;/a&gt;/typography in addition to adding the below config code snippet&lt;/p&gt;

&lt;p&gt;Add the below require line to the config tab in TailwindCSS Play:&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="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="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="c1"&gt;// ...&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&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="nx"&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="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 were ready to go!&lt;/p&gt;

&lt;p&gt;Up in the Article tag, we have an empty class element. Within the open quotes place the prose class.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;article&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"prose"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;and with this one class attribute added you can see weve gone from bland to wow! 🤩&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DbP82FJf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659907720145/DtrIqZQYd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DbP82FJf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659907720145/DtrIqZQYd.png" alt="prose.png" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I know Im really hyping up simple text styles, and that we still have further to go, but this one-step feature can be a game changer for some.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is happening Behind The Scenes?
&lt;/h2&gt;

&lt;p&gt;So if youre curious about what is happening here the creators of &lt;a href="https://tailwindcss.com/"&gt;Tailwind CSS&lt;/a&gt; have worked very hard to create this prose style that takes into account the most optimal styling context for these types of text tags. Almost giving you a one=click blog styling option.&lt;/p&gt;

&lt;p&gt;We can take this a step further and this is where the real power comes in!&lt;/p&gt;

&lt;p&gt;So let's say we like how this is looking but would like to style our images differently. Again, instead of going through our file and adding styling to anything with an "img" tag, or by creating a custom reusable CSS class, we can simply use the prose class syntax to style all "img" tags the same way.&lt;/p&gt;

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

&lt;p&gt;let's say we wanted a slight rounding effect, we would add the following class:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;prose-img:rounded-lg

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

&lt;/div&gt;



&lt;p&gt;Now our image and any others using the "img" tag will inherit this styling:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SpQJ6li4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659907806572/lPgLK-ltb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SpQJ6li4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659907806572/lPgLK-ltb.png" alt="img-rounded.png" width="880" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can also target other HTML tags using this method, like our H1 heading. I think for this blog post I would like it to be centered.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;prose-h1:text-center

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

&lt;/div&gt;



&lt;p&gt;But let's say we want to style all our headings in our brand colors. Instead of adding a class for h1, h2, h3, etc, we can use a general class attribute called headings. This will apply a color to all of the heading types:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;prose-headings:text-indigo-600

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

&lt;/div&gt;



&lt;p&gt;Let's check in where we're at:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;article&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"prose prose-img:rounded-lg prose-h1:text-center prose-headings:text-indigo-600 p-6"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Mt6sCGXv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659907848009/fJhHhycu7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Mt6sCGXv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659907848009/fJhHhycu7.png" alt="Untitled 1.png" width="880" height="1149"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and now you can see with about 6-7 Tailwind CSS classes and one line of code we are able to style an unlimited amount of text/content.&lt;/p&gt;

&lt;p&gt;Now just to cover the inverse situation. You may come across the scenario where you don't want to inherit the "prose" styling for whatever reason. This is also handled easily as well.&lt;/p&gt;

&lt;p&gt;Simply use the "not-prose" class and add your styling as normal to that element!&lt;br&gt;
&lt;/p&gt;

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

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

&lt;/div&gt;



&lt;p&gt;And that's it! 👌 Now of course there is much more under the hood with this plugin and I encourage you to check out the official &lt;a href="https://tailwindcss.com/docs/typography-plugin"&gt;Tailwind CSS Docs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you enjoyed or learned something from this post please give it a like and consider following me for more! 🙏&lt;/p&gt;

</description>
      <category>tailwindcss</category>
      <category>css</category>
      <category>howto</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>5 Web Dev Platforms, Tools &amp; Frameworks To Learn In 2022 🔥</title>
      <dc:creator>Kyle - Layer6 Training</dc:creator>
      <pubDate>Mon, 01 Aug 2022 03:44:20 +0000</pubDate>
      <link>https://dev.to/kytechhosting/5-web-dev-platforms-tools-frameworks-to-learn-in-2022-44im</link>
      <guid>https://dev.to/kytechhosting/5-web-dev-platforms-tools-frameworks-to-learn-in-2022-44im</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IgWYV8yh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.unsplash.com/photo-1531297484001-80022131f5a1%3Fixlib%3Drb-1.2.1%26q%3D80%26cs%3Dtinysrgb%26fm%3Djpg%26crop%3Dentropy" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IgWYV8yh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.unsplash.com/photo-1531297484001-80022131f5a1%3Fixlib%3Drb-1.2.1%26q%3D80%26cs%3Dtinysrgb%26fm%3Djpg%26crop%3Dentropy" alt="https://images.unsplash.com/photo-1531297484001-80022131f5a1?ixlib=rb-1.2.1&amp;amp;q=80&amp;amp;cs=tinysrgb&amp;amp;fm=jpg&amp;amp;crop=entropy" width="880" height="623"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  1. React/NextJS
&lt;/h1&gt;

&lt;p&gt;Like it or lump it, Javascript frameworks have continued to take over in all aspects of web development from Web3 to traditional web apps. React and frameworks based on it have exploded in 2022 taking over from some of the other major players in the field.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--msRuHOst--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://static.invozone.com/uploads/2021/09/stackoverflow.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--msRuHOst--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://static.invozone.com/uploads/2021/09/stackoverflow.jpg" alt="https://static.invozone.com/uploads/2021/09/stackoverflow.jpg" width="540" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As the tide of React rises, so do the others that are based on its component framework. This includes NextJS, a 2016 open source React-component-based framework that was created by the team at &lt;a href="https://vercel.com/"&gt;Vercel&lt;/a&gt;. Since its creation in 2016 the team has added a bunch of cutting-edge features geared towards edge hosting platforms like its own. In addition to NextJS's cloud edge focus, many consider the framework as a backend framework due to its many server-side features.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ht9kHUwS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://nextjs.org/_next/image%3Furl%3D%252Fstatic%252Fblog%252Flayouts-rfc%252Fpage.png%26w%3D3840%26q%3D75" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ht9kHUwS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://nextjs.org/_next/image%3Furl%3D%252Fstatic%252Fblog%252Flayouts-rfc%252Fpage.png%26w%3D3840%26q%3D75" alt="https://nextjs.org/_next/image?url=%2Fstatic%2Fblog%2Flayouts-rfc%2Fpage.png&amp;amp;w=3840&amp;amp;q=75" width="880" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NextJS is the framework I personally have chosen for all my projects. You can read more about it here: &lt;a href="https://nextjs.org"&gt;NextJS&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  2. VueJS 🙏
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Xm7Jp30F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659324739868/7hSRdC3C2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Xm7Jp30F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659324739868/7hSRdC3C2.png" alt="vuejs.png" width="880" height="519"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vue.js is an open-source JavaScript framework for building user interfaces and single-page applications. It was created by Evan You in 2014, who also created Nuxt.js, a Vue-based framework to build production-ready Universal (isomorphic) web applications with server-side rendering.&lt;/p&gt;

&lt;p&gt;Vue is the alternative to React or Angular in the world of Single Page Applications (SPAs). In fact, it's not a typical SPA framework because it doesn't use the MVC pattern and thus does not have controllers or models like other frameworks do.&lt;/p&gt;

&lt;p&gt;Vue.js aims to be simple, intuitive, and easy to learn to use for new developers. It's got a lot of great features that make it an excellent alternative to other frameworks such as React or Angular.&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Supabase 🐘
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6__e6F3f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://repository-images.githubusercontent.com/214587193/00f59f00-90a6-11eb-8764-f49e3f731458" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6__e6F3f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://repository-images.githubusercontent.com/214587193/00f59f00-90a6-11eb-8764-f49e3f731458" alt="supaebase" width="880" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Supabase is a new player on the block in the world of DBaaS, Database as a Service. They are going up against the likes of Firebase by Google. But Supabase has some unique features that really set it apart from other offerings. Most notably is the use of a logical database type in the form of a managed PostGreSQL DB for all customers. This differs from Firebase which uses a NoSQL base scheme.&lt;/p&gt;

&lt;p&gt;Other features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DB Tables&lt;/li&gt;
&lt;li&gt;Authentication (Email/Pass, Magic Link, &amp;amp; Auth Identity Providers)&lt;/li&gt;
&lt;li&gt;Storage (images, files, etc)&lt;/li&gt;
&lt;li&gt;Edge Functions (New )&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check them out and signup for their very generous free tier for your side projects!: &lt;a href="http://supabase.com"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  4. Tailwind CSS 🔥
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SxO9LfLv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://tailwindui.com/img/og-default.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SxO9LfLv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://tailwindui.com/img/og-default.png" alt="https://tailwindui.com/img/og-default.png" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tailwind CSS is a utility-based modern UI framework. It uses classes instead of IDs, and the power of the class attribute to add styles to your DOM elements. This means that you dont need to think about element types or where in the document they are just add your classes where you want them. The most basic way to use Tailwind is with its global window presets, which are included by default in all projects generated with Tailwind CLI (command line interface).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OCfgW0zh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659223822892/KLyC1ZHNK.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OCfgW0zh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659223822892/KLyC1ZHNK.png" alt="Tailwind-CSS-class-tags.png" width="880" height="547"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;TailwindCSS is a great tool for beginners to learn how to style website elements. It makes it easy to use and has a lot of documentation. Tailwind CSS allows you more flexibility than any other CSS framework out there because it doesn't have any hard rulesjust go with the flow and have fun! 🙌&lt;/p&gt;

&lt;h1&gt;
  
  
  5. HyGraph CMS (Formerly GraphCMS) 🎉
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--laNxk5cl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659324914514/TXFdqKG4Y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--laNxk5cl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659324914514/TXFdqKG4Y.png" alt="hygraph-cms.png" width="880" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you've built an app and you want to get it to market faster, then a headless CMS is the solution. Headless CMSs let you focus on your app instead of managing content. They give you the data your app needs in a structured way so that your team can focus on building out features instead of learning how to write HTML or CSS.&lt;/p&gt;

&lt;p&gt;GraphCMS is a headless content management system. Instead of using a traditional CMS that includes an admin dashboard, GraphCMS removes the UI and gives you access to the API. This means that you can build any kind of frontend you want on top of your data-driven backend without having to rely on third parties!&lt;/p&gt;

&lt;p&gt;GraphCMS works with most popular frameworks and is always keeping up with the latest trends in web development!&lt;/p&gt;

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

&lt;p&gt;If you found this post helpful make sure to give it a like and follow me for more! 🙏&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>react</category>
      <category>tailwindcss</category>
      <category>supabase</category>
    </item>
    <item>
      <title>What is Tailwind CSS? And Why Should You Care? 🧐</title>
      <dc:creator>Kyle - Layer6 Training</dc:creator>
      <pubDate>Sun, 31 Jul 2022 00:00:36 +0000</pubDate>
      <link>https://dev.to/kytechhosting/what-is-tailwind-css-and-why-should-you-care-3eg3</link>
      <guid>https://dev.to/kytechhosting/what-is-tailwind-css-and-why-should-you-care-3eg3</guid>
      <description>&lt;p&gt;&lt;a href="https://youtu.be/TmWIrBPE6Bc"&gt;https://youtu.be/TmWIrBPE6Bc&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  What is Tailwind CSS and Why Should I Care? 🧐
&lt;/h1&gt;

&lt;p&gt;If you've found your way to this blog post it's probably because of many tweets, posts, and potentially conversations with your friends or colleagues about this thing called Tailwind CSS? You may be coming from the traditional world of CSS or SASS styling. Or you're like me and started to learn code with Tailwind as your styling base. No matter, we are going to catch you up on what you've missed!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yjsu5zg7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659225054317/m2TnWpfcS.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yjsu5zg7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659225054317/m2TnWpfcS.png" alt="Tailwind-Classes.png" width="880" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tailwind was created by &lt;a href="https://twitter.com/adamwathan"&gt;Adam Wathan&lt;/a&gt;, and it is based on the &lt;a href="https://acss.io/"&gt;Atomic CSS&lt;/a&gt; methodology. Unlike Bootstrap and other similar libraries, you cannot download Tailwind and start using it right away. This is because Tailwind does not come with any built-in UI elements such as buttons or text fields these are all generated from your codebase once you have compiled your own version of Tailwind CSS. Instead of relying on predefined classes from libraries like Bootstrap, we can generate any class we want before compiling our CSS file. In this way Tailwind is more versatile than a library like Bootstrap: while there are some limitations imposed by the fact that it generates classes instead of copying them over verbatim (e.g., certain font sizes don't work well with this method), overall I think it's still worth trying out!&lt;/p&gt;

&lt;p&gt;Tailwind CSS is a utility-based modern framework. It uses classes instead of IDs, and the power of the class attribute to add styles to your DOM elements. This means that you dont need to think about element types or where in the document they are just add your classes where you want them. The most basic way to use Tailwind is with its global window presets, which are included by default in all projects generated with Tailwind CLI (command line interface).&lt;/p&gt;

&lt;p&gt;You might be asking yourself: "If Tailwind is a utility-based framework, and it doesn't have any built-in UI or design system, what do I use?"&lt;/p&gt;

&lt;p&gt;The short answer is that you can create your own custom components. It's always been possible to do this through CSS variables and utility classes like [w], but tailwind makes it very easier for developers and designers to map out their designs from programs like Figma&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--i2ID5W7Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659225184453/av1_VonAP.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i2ID5W7Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1659225184453/av1_VonAP.png" alt="Tailwind-CSS-Output.png" width="880" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Tailwind uses PostCSS as its preprocessor.
&lt;/h1&gt;

&lt;p&gt;PostCSS is a tool for transforming styles with JS plugins, and it can be configured to run on the server and/or the client. It's useful for dynamically loading third-party CSS libraries or customizing them based on user preferences or content types. PostCSS also works with any build system or framework, so if you've ever had trouble adding other frameworks like Bootstrap or Bourbon to your project, you'll probably appreciate how easy it makes this process with Tailwind in general!&lt;/p&gt;

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

&lt;p&gt;TailwindCSS is a great tool for beginners to learn how to style website elements. It makes it easy to use and has a lot of documentation. TailwindCSS is built for modern web development, with components that don't need any extra frameworks or libraries.&lt;/p&gt;

&lt;p&gt;So, what do you think? Are you ready to try out Tailwind CSS? It's clearly a powerful tool and an interesting alternative to Bootstrap. It has many benefits over its competitors, such as more flexibility and better performance. This makes it a great choice for beginners who want to learn how websites work behind the scenes and how theyre built up from smaller components!&lt;/p&gt;

</description>
      <category>tailwindcss</category>
      <category>css</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
