<?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: Aliasger Ratlam</title>
    <description>The latest articles on DEV Community by Aliasger Ratlam (@boringcoder53).</description>
    <link>https://dev.to/boringcoder53</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%2F1295777%2F9d9589c5-cfab-4759-bd8d-a07547f35f9b.png</url>
      <title>DEV Community: Aliasger Ratlam</title>
      <link>https://dev.to/boringcoder53</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/boringcoder53"/>
    <language>en</language>
    <item>
      <title>Comparing Lovable.dev, Bolt.new, and v0.dev: Which AI UI Tool Delivers the Best Results?</title>
      <dc:creator>Aliasger Ratlam</dc:creator>
      <pubDate>Mon, 31 Mar 2025 12:05:45 +0000</pubDate>
      <link>https://dev.to/boringcoder53/comparing-lovabledev-boltnew-and-v0dev-which-ai-ui-tool-delivers-the-best-results-54d8</link>
      <guid>https://dev.to/boringcoder53/comparing-lovabledev-boltnew-and-v0dev-which-ai-ui-tool-delivers-the-best-results-54d8</guid>
      <description>&lt;p&gt;As a frontend developer, I'm always looking for ways to speed up my workflow without compromising on quality. Recently, I explored three AI-powered tools—Lovable.dev, Bolt.new, and v0.dev—to see how well they generate UI components. While all of them have their strengths, v0.dev stood out the most for me. Here’s why. 👇&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ My Experience with Each Tool
&lt;/h2&gt;

&lt;h3&gt;
  
  
  💙 Lovable.dev
&lt;/h3&gt;

&lt;p&gt;✅ Lovable.dev is a great tool for generating UI components quickly. It provides structured results and works well if you give it a clear and detailed prompt. However, I found that it sometimes required additional tweaks to match my expectations, especially in terms of styling and responsiveness.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚡ Bolt.new
&lt;/h3&gt;

&lt;p&gt;✅ Bolt.new is another solid option. It generates UI components efficiently, but in my experience, it didn’t always align with my preferred styling approach. While it does a decent job, I often had to modify the output manually to make it production-ready.&lt;/p&gt;

&lt;h3&gt;
  
  
  🏆 v0.dev: The Best Fit for My Workflow
&lt;/h3&gt;

&lt;p&gt;Among the three, v0.dev gave me the best results. What impressed me the most was its ability to generate UI components using Tailwind CSS and ShadCN with about 90% accuracy compared to what I had in mind. It significantly reduced the need for manual adjustments and provided a more polished output right from the start. 🚀&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 The Key Factor: Writing the Right Prompt
&lt;/h3&gt;

&lt;p&gt;One thing I noticed across all three tools is that the quality of the output depends heavily on how well you structure your prompt. A vague or unclear prompt will lead to generic results, whereas a well-detailed prompt ensures more accurate component generation. ✍️&lt;/p&gt;

&lt;p&gt;That said, even with the same prompt, v0.dev consistently provided better results. This made a huge difference in my workflow, allowing me to focus more on fine-tuning rather than rewriting code from scratch. 🎨&lt;/p&gt;

&lt;h2&gt;
  
  
  🔥 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;All three tools are great in their own way, and the best choice depends on individual preferences and project requirements. However, for me, v0.dev proved to be the most efficient for generating UI components with Tailwind CSS and ShadCN. It saved me time and gave me results that were closer to what I envisioned.&lt;/p&gt;

&lt;p&gt;** 💬 Have you tried these tools? Which one worked best for you? Let’s discuss in the comments! ** &lt;/p&gt;

&lt;h1&gt;
  
  
  FrontendDevelopment #AItools #TailwindCSS #ShadCN #WebDev
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>Stop using px unit in CSS !!!</title>
      <dc:creator>Aliasger Ratlam</dc:creator>
      <pubDate>Tue, 25 Mar 2025 18:16:03 +0000</pubDate>
      <link>https://dev.to/boringcoder53/i-used-px-for-years-until-i-discovered-common-sense-d2l</link>
      <guid>https://dev.to/boringcoder53/i-used-px-for-years-until-i-discovered-common-sense-d2l</guid>
      <description>&lt;p&gt;For a long time in my career, I used px (pixels) for everything in CSS. It felt precise, predictable, and easy to control. But recently, I’ve changed my mind. I’ve surrendered to rem and em after realizing their true power. Now, I barely touch px unless I absolutely have to. Here’s why.&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%2Fq9nby6nw7pppajgrgqqh.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%2Fq9nby6nw7pppajgrgqqh.gif" alt="Image description" width="480" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with px
&lt;/h2&gt;

&lt;p&gt;At first, pixels seem like the best unit of measurement. Set a button to 50px, and it will always be 50px. But that’s exactly the problem—px is too rigid. It doesn’t adapt well to different screen sizes, zoom levels, or user preferences. This means:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Users who increase their browser’s font size for accessibility won’t see the changes.&lt;/li&gt;
&lt;li&gt;Responsive designs require constant media queries to adjust fixed pixel values.&lt;/li&gt;
&lt;li&gt;Maintaining a consistent, scalable design across devices becomes harder.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Superpower of rem and em
&lt;/h2&gt;

&lt;p&gt;Once I fully understood rem and em, I realized they solve all these issues beautifully.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;rem (Root Em)&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;rem is relative to the root font size (html { font-size: 16px; } means 1rem = 16px).&lt;/li&gt;
&lt;li&gt;If a user changes their browser’s default font size, everything using rem scales accordingly.&lt;/li&gt;
&lt;li&gt;Want to 
scale everything up or down? Just change the root font size.&lt;/li&gt;
&lt;/ol&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;button {
  font-size: 1.25rem; /* Scales with the root font size */
  padding: 0.5rem 1rem;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;em (Relative to Parent)&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;em is relative to the font size of its parent element.&lt;/li&gt;
&lt;li&gt;Great for keeping elements proportional inside components.&lt;/li&gt;
&lt;li&gt;Nested em values can multiply, which can be useful (or tricky if not careful).&lt;/li&gt;
&lt;/ol&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;.card {
  font-size: 1.2em;
}
.card button {
  font-size: 0.9em; /* Relative to .card's font size */
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Where I Still Use px
&lt;/h2&gt;

&lt;p&gt;Though I avoid px for most things, I still use it for:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Borders (1px is fine because borders shouldn’t scale unpredictably).&lt;/li&gt;
&lt;li&gt;Box shadows (for a consistent appearance).&lt;/li&gt;
&lt;li&gt;Media queries (though em and rem work, many browsers handle px better).&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%2Fyhxi5j4p9mshhlqccqm4.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%2Fyhxi5j4p9mshhlqccqm4.gif" alt="Image description" width="500" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>5 Chrome Extensions Every Designer &amp; Developer Needs 🚀</title>
      <dc:creator>Aliasger Ratlam</dc:creator>
      <pubDate>Tue, 18 Mar 2025 10:52:34 +0000</pubDate>
      <link>https://dev.to/boringcoder53/5-chrome-extensions-every-designer-developer-needs-3g8f</link>
      <guid>https://dev.to/boringcoder53/5-chrome-extensions-every-designer-developer-needs-3g8f</guid>
      <description>&lt;p&gt;Design development can be a mix of creativity, problem-solving, and, let’s be honest—moments of frustration. Whether you’re inspecting code, identifying fonts, or just trying to streamline your workflow, the right tools can make a world of difference. Luckily, Chrome extensions exist to save us from unnecessary headaches.&lt;/p&gt;

&lt;p&gt;Here are five must-have Chrome extensions that have helped me stay productive while working on design development.&lt;/p&gt;

&lt;h3&gt;
  
  
  1️⃣ Web Developer Extension –
&lt;/h3&gt;

&lt;p&gt;Ever wished you had a magic wand to disable JavaScript, edit cookies, resize the browser, and inspect CSS all in one place? Web Developer Extension is that magic wand. It’s a powerhouse packed with tools that make debugging and testing designs ridiculously easy. Think of it as your personal design sidekick—minus the cape.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡Why I love it:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Quick access to tons of development tools&lt;/li&gt;
&lt;li&gt;Easily disable CSS, JavaScript, and images to see how a site behaves&lt;/li&gt;
&lt;li&gt;Resize your browser to test responsive designs like a pro&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2️⃣ WhatFont – The “Wait, What Font is That?” Savior
&lt;/h3&gt;

&lt;p&gt;We've all been there—scrolling through a website and spotting that perfect font. But instead of playing detective and digging through the dev tools, WhatFont lets you hover over any text and instantly see what font it is. No more “I NEED this font” meltdowns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡Why I love it:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;One-click font identification&lt;/li&gt;
&lt;li&gt;Shows size, weight, and style&lt;/li&gt;
&lt;li&gt;Saves time and keeps font obsession in check&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  3️⃣ html.to.design – The Photoshop to Figma Shortcut
&lt;/h3&gt;

&lt;p&gt;Converting an existing webpage into a Figma design used to be a nightmare. But html.to.design changes the game by letting you pull live web pages straight into Figma. It’s like a teleportation device for web elements—minus the sci-fi glitches.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡Why I love it:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Instantly imports live websites into Figma&lt;/li&gt;
&lt;li&gt;Saves hours of recreating layouts from scratch&lt;/li&gt;
&lt;li&gt;Feels like cheating (but totally isn’t)&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  4️⃣ Ghostery – The Privacy Ninja
&lt;/h3&gt;

&lt;p&gt;Ads, trackers, and data collectors are lurking on every website, slowing down your workflow. Ghostery blocks all that nonsense, keeping your browsing clean and distraction-free. Plus, it speeds up your design testing by eliminating unnecessary scripts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡Why I love it:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Blocks annoying trackers and ads&lt;/li&gt;
&lt;li&gt;Speeds up website loading times&lt;/li&gt;
&lt;li&gt;Gives you a sense of digital “stealth mode”&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  5️⃣ Fake Filler – The Lorem Ipsum Lifesaver
&lt;/h3&gt;

&lt;p&gt;Tired of manually typing “Lorem Ipsum” or filling out endless form fields while testing? Fake Filler auto-generates realistic placeholder text, saving you from carpal tunnel (and boredom).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡Why I love it:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Instantly fills out forms with dummy data&lt;/li&gt;
&lt;li&gt;Saves time when testing input fields&lt;/li&gt;
&lt;li&gt;Feels like having an intern who only types nonsense (in a good way)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;💬 Got any other must-have design extensions? Drop them in the comments—I’m always on the hunt for new tools!&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Don't Forgot to Like. 👍
&lt;/h4&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>devops</category>
      <category>programming</category>
    </item>
    <item>
      <title>Quick Guide to Use Clamp() CSS</title>
      <dc:creator>Aliasger Ratlam</dc:creator>
      <pubDate>Mon, 25 Mar 2024 09:28:07 +0000</pubDate>
      <link>https://dev.to/boringcoder53/quick-guide-to-use-clamp-css-5f8h</link>
      <guid>https://dev.to/boringcoder53/quick-guide-to-use-clamp-css-5f8h</guid>
      <description>&lt;p&gt;Hello CSS Lovers,&lt;/p&gt;

&lt;p&gt;In modern development learning new CSS properties is achieving fundamental requirements. When you know they are just functions to achieve dynamic font size according to responsive. Basic usage can lead to tighter code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding Clamp()
&lt;/h2&gt;

&lt;p&gt;The clamp() function provides a flexible way to define a value within a specific range. It takes three parameters: a minimum value, a preferred value, and a maximum value. The browser then selects the preferred value, which falls within the specified range, ensuring that it neither exceeds the maximum nor falls below the minimum.&lt;/p&gt;

&lt;p&gt;Let's look into syntax:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;clamp(minimum, preferred, maximum);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Let's understand with example
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;font-size: clamp(16px, 2vw, 24px);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, the size of the font will be equivalent between 16 pixels and 24 pixels, with a preferred size of 3vw units. The browser will adjust the font size dynamically based on available space, striving to maintain the preferred size as much as possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of using Clamp()
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Responsive Design:&lt;/strong&gt; It is very useful for responsive design because its design for it as it allows you to define a preferred value that adjusts based on the viewport size while ensuring it stays within a specified range.&lt;br&gt;
&lt;strong&gt;2. Simplified Code:&lt;/strong&gt; You can simplify complex responsive behavior with a single line of code, reducing the need for media queries.&lt;br&gt;
&lt;strong&gt;3. Browser Compatibility:&lt;/strong&gt; The new feature of CSS, clamp() enjoys support across all modern browsers, making it a reliable option for front-end developers.&lt;/p&gt;

</description>
      <category>css</category>
      <category>tricks</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>CSS selector for parent element? 🤨</title>
      <dc:creator>Aliasger Ratlam</dc:creator>
      <pubDate>Sun, 03 Mar 2024 06:39:52 +0000</pubDate>
      <link>https://dev.to/boringcoder53/css-selector-for-parent-element-34cj</link>
      <guid>https://dev.to/boringcoder53/css-selector-for-parent-element-34cj</guid>
      <description>&lt;p&gt;Hello Fellow Coders! 👋&lt;/p&gt;

&lt;p&gt;Ever found yourself scratching your head over styling parent elements based on their child's class? Fear not, for here's a CSS trick that might just blow your mind!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution:
&lt;/h2&gt;

&lt;p&gt;Introducing &lt;code&gt;:has()&lt;/code&gt; CSS pseudo-class a game-changer method to achieve the parent element appearance based on the child element.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Explanation:
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;:has()&lt;/code&gt; is a pseudo-class CSS that takes a selector as an argument. On your parent element add &lt;code&gt;:has()&lt;/code&gt; pseudo-class CSS to target the element that matches the passed-in argument.&lt;/p&gt;

&lt;h2&gt;
  
  
  For Example:
&lt;/h2&gt;

&lt;p&gt;Consider a simple small Card Box.&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;div class="card"&amp;gt;
    &amp;lt;h2&amp;gt;Hello World!&amp;lt;/h2&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you want to change the card appearance like adding a box-shadow. when child div has active class.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;How can you do this? 🤷‍♂️ &lt;/p&gt;

&lt;p&gt;You can add like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.card:has(h2.active) {
   box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Alternatively, You can achieve this using JavaScript to add or remove classes from the parent div based on the state of the child div. However, there is &lt;strong&gt;no need for JavaScript – just pure CSS magic! 🤩&lt;/strong&gt;&lt;/p&gt;

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

</description>
      <category>discuss</category>
      <category>design</category>
      <category>css</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
