<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Sajid Sheikh</title>
    <description>The latest articles on Forem by Sajid Sheikh (@sajidrsk).</description>
    <link>https://forem.com/sajidrsk</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%2F1073647%2Fcc3a98a8-1ce3-4fa0-9631-fda75cad3cbc.jpeg</url>
      <title>Forem: Sajid Sheikh</title>
      <link>https://forem.com/sajidrsk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/sajidrsk"/>
    <language>en</language>
    <item>
      <title>MistCSS : Create React components using CSS Only!! 🚀</title>
      <dc:creator>Sajid Sheikh</dc:creator>
      <pubDate>Sun, 31 Mar 2024 11:52:38 +0000</pubDate>
      <link>https://forem.com/sajidrsk/create-react-components-using-css-only-40m9</link>
      <guid>https://forem.com/sajidrsk/create-react-components-using-css-only-40m9</guid>
      <description>&lt;p&gt;Hey there, developers! Today, we're diving into the world of atomic React components and exploring a powerful tool called MistCSS by Typicode.&lt;/p&gt;

&lt;p&gt;MistCSS offers a unique approach to building UI components using plain CSS, following the concept of JS-from-CSS. Let's break down what that means and how MistCSS can benefit your React development workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are Atomic Components? ⚛
&lt;/h2&gt;

&lt;p&gt;Imagine creating your React components from the tiniest possible CSS building blocks. These fundamental units, often referred to as atomic classes, represent basic styles like colors, margins, paddings, and more. By combining these atomic classes, you can construct more complex components.&lt;/p&gt;

&lt;p&gt;The beauty of atomic components lies in their reusability and composability. You can share these atomic classes across different components, promoting consistency and maintainability in your codebase.&lt;/p&gt;

&lt;h2&gt;
  
  
  MistCSS: CSS-powered React Components ⚡️
&lt;/h2&gt;

&lt;p&gt;MistCSS empowers you to define component styles entirely within CSS files. This approach can potentially reduce the need for separate JavaScript files, streamlining your development process. Here's a glimpse into what MistCSS offers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Simplified Styling&lt;/strong&gt;: Write CSS classes that directly map to React components, promoting a clean separation of concerns.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Atomic Class Generation&lt;/strong&gt;: Utilize MistCSS utilities to generate atomic classes based on your design specifications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Theming Capabilities&lt;/strong&gt;: Define themes within CSS and apply them to your components for a cohesive design system.
Incorporating a YouTube Video for Visual Learners&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To complement this written explanation, I've created a video that delves deeper into MistCSS and showcases its functionalities in action. Check it out here:&lt;/p&gt;

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

&lt;p&gt;So, why not give MistCSS a try in your next React project?&lt;/p&gt;

&lt;p&gt;Stay tuned for future posts where we'll explore MistCSS in more detail and delve into practical use cases!&lt;/p&gt;

</description>
      <category>react</category>
      <category>css</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Internationalization: Making Your Web App Accessible to Everyone 🌍</title>
      <dc:creator>Sajid Sheikh</dc:creator>
      <pubDate>Fri, 28 Apr 2023 20:54:06 +0000</pubDate>
      <link>https://forem.com/sajidrsk/internationalization-making-your-web-app-accessible-to-everyone-3ndp</link>
      <guid>https://forem.com/sajidrsk/internationalization-making-your-web-app-accessible-to-everyone-3ndp</guid>
      <description>&lt;p&gt;As the world becomes more connected, it's important to ensure that your web app can be accessed by users from different parts of the world. This is where internationalization comes into play.&lt;/p&gt;

&lt;p&gt;Internationalization, or i18n for short, is the process of designing and developing your web app to support multiple languages and cultures. By doing this, you can reach a wider audience and provide a better user experience for non-native speakers of your app's default language.&lt;/p&gt;

&lt;p&gt;There are several key aspects to consider when implementing i18n in your web app. Let's take a look at some of them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Content Localization 🌐&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The first step in i18n is to translate the content of your web app into different languages. This includes all text, images, videos, and other media that users interact with. You can either hire a professional translation service or use machine translation services like Google Translate to get started.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Date and Time Formatting 📅&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Different countries have different date and time formats. For example, in the United States, the date is written as mm/dd/yyyy, while in Europe, it's written as dd/mm/yyyy. It's important to consider these differences and format your dates and times accordingly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Number Formatting 🔢&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Similarly, numbers are formatted differently in different parts of the world. For example, in the United States, a decimal point is used to separate the whole number from the decimal fraction (e.g. 1.234), while in Europe, a comma is used (e.g. 1,234). You'll need to make sure your app can handle these differences correctly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Right-to-Left (RTL) Language Support 🔄&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Some languages, such as Arabic and Hebrew, are written from right to left. This means that your web app needs to support RTL text formatting to display these languages correctly. This includes everything from text alignment to navigation and layout.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Accessibility ♿&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Finally, it's important to ensure that your web app is accessible to users with disabilities. This includes providing alternative text for images, using proper heading tags, and making sure your app is keyboard accessible.&lt;/p&gt;

&lt;p&gt;By implementing these key aspects of i18n, you can make your web app accessible to users from all over the world. This not only helps you reach a wider audience but also shows that you value inclusivity and diversity. So don't wait any longer, start making your web app accessible to everyone today! 🌎&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
    <item>
      <title>TypeScript: A Strongly Typed Hero for Production-Grade Web Apps 🦸‍♂️</title>
      <dc:creator>Sajid Sheikh</dc:creator>
      <pubDate>Fri, 28 Apr 2023 20:47:18 +0000</pubDate>
      <link>https://forem.com/sajidrsk/typescript-a-strongly-typed-hero-for-production-grade-web-apps-46ec</link>
      <guid>https://forem.com/sajidrsk/typescript-a-strongly-typed-hero-for-production-grade-web-apps-46ec</guid>
      <description>&lt;p&gt;Are you tired of endless debugging sessions that lead to nowhere? Do you feel overwhelmed with maintaining large codebases? Fear not, TypeScript is here to save the day! 🚀&lt;/p&gt;

&lt;p&gt;With TypeScript, you can add optional static typing to your JavaScript code, providing a safety net for your application. No more runtime errors to spoil your day, TypeScript will catch them before they even happen! 🔍&lt;/p&gt;

&lt;p&gt;Let's take a look at an example of a function that calculates the area of a rectangle in JavaScript:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;calculateArea&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;width&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nx"&gt;height&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 let's add some TypeScript magic to it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;calculateArea&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;width&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nx"&gt;height&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;💥 Boom! 💥 You can now see the expected types of each argument and the return value. This will save you time and prevent errors that might arise from passing the wrong type of argument.&lt;/p&gt;

&lt;p&gt;But wait, there's more! TypeScript also supports classes and interfaces, making it easier to write and maintain complex code. Let's take a look at an interface for a User object:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;User&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&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 use this interface to define the shape of your User objects, and TypeScript will make sure you don't stray away from it. 🔒&lt;/p&gt;

&lt;p&gt;Moreover, TypeScript integrates well with popular frontend frameworks such as React, Angular, and Vue.js. This means you can take advantage of features like IntelliSense and improved code completion to speed up your development process. 💨&lt;/p&gt;

&lt;p&gt;In conclusion, TypeScript is the hero you deserve for your production-grade web apps. It adds safety, readability, and maintainability to your codebase, and it's a joy to work with. So what are you waiting for? Add some TypeScript to your project today! 🙌&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>Free Production Ready Next.js Template</title>
      <dc:creator>Sajid Sheikh</dc:creator>
      <pubDate>Fri, 28 Apr 2023 20:41:32 +0000</pubDate>
      <link>https://forem.com/sajidrsk/production-ready-nextjs-template-399m</link>
      <guid>https://forem.com/sajidrsk/production-ready-nextjs-template-399m</guid>
      <description>&lt;p&gt;I am excited to announce the release of my latest open-source project - a free, production-ready Next.js template repository. This template repository provides a strong foundation for building performant, scalable, and maintainable web applications using Next.js.&lt;/p&gt;

&lt;p&gt;With this template repository, developers can focus on building features and functionality for their web applications, without worrying about setting up the boilerplate code. The repository comes pre-configured with essential tools, such as Tailwind CSS, Prettier, ESLint, Jest, and Husky, to make the development process smoother and more efficient.&lt;/p&gt;

&lt;p&gt;The Tailwind CSS integration enables developers to build responsive and modern UIs with ease. Prettier and ESLint enforce consistent code formatting and help maintain the code quality. Jest provides a robust testing framework, while Husky ensures that code commits and pushes meet predefined standards.&lt;/p&gt;

&lt;p&gt;The template repository is licensed under the MIT License, allowing developers to use, modify, and distribute the code as they see fit. Additionally, contributions are welcome to improve the codebase, add new features, and fix any bugs or issues.&lt;/p&gt;

&lt;p&gt;The repository is available on GitHub, and developers can easily use it as a starting point for their web applications. They can clone the repository, customize it to meet their needs, and get started with building their application features right away.&lt;/p&gt;

&lt;p&gt;I invite developers to try out this template repository and contribute to the project. Together, we can make web development easier and more accessible for everyone.&lt;/p&gt;

&lt;p&gt;Check Project &lt;a href="https://github.com/sajidrsk/production-ready-nextjs-template"&gt;Here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>react</category>
      <category>javascript</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
