<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Frontend on cloudmato.com</title><link>https://cloudmato.com/tags/frontend/</link><description>Recent content in Frontend on cloudmato.com</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>cloudmato.com</managingEditor><webMaster>cloudmato.com</webMaster><lastBuildDate>Sat, 13 Jun 2026 17:37:28 +0530</lastBuildDate><atom:link href="https://cloudmato.com/tags/frontend/index.xml" rel="self" type="application/rss+xml"/><item><title>How React Really Works: Fiber and Batch Rendering Explained</title><link>https://cloudmato.com/posts/how-react-works-fiber-and-batch-rendering-explained/</link><pubDate>Sat, 13 Jun 2026 17:37:28 +0530</pubDate><author>cloudmato.com</author><guid>https://cloudmato.com/posts/how-react-works-fiber-and-batch-rendering-explained/</guid><description>&lt;p&gt;Ever clicked a button in a React app and just&amp;hellip; trusted that the UI would update correctly? Yeah, me too, for years. I never really stopped to think about what happens between &lt;code&gt;setState&lt;/code&gt; and the pixels changing on screen — until I started debugging a component that was re-rendering five times for a single click. That rabbit hole led me straight into Fiber, lanes, and the surprisingly long history of how React decides &lt;em&gt;when&lt;/em&gt; to actually re-render your app.&lt;/p&gt;</description></item><item><title>Every Way to Set Font Size in a UI (and Which Wins)</title><link>https://cloudmato.com/posts/every-way-to-set-font-size-in-ui/</link><pubDate>Sat, 13 Jun 2026 08:16:18 +0530</pubDate><author>cloudmato.com</author><guid>https://cloudmato.com/posts/every-way-to-set-font-size-in-ui/</guid><description>&lt;p&gt;Ever opened a project&amp;rsquo;s CSS and found font sizes set in &lt;code&gt;px&lt;/code&gt;, &lt;code&gt;em&lt;/code&gt;, &lt;code&gt;rem&lt;/code&gt;, &lt;code&gt;%&lt;/code&gt;, and &lt;code&gt;vw&lt;/code&gt; — all in the same file, sometimes on the same element? Yeah, me too. Font size feels like the most boring property in CSS until you realize there are at least &lt;strong&gt;eight different ways&lt;/strong&gt; to express it, and picking the wrong one quietly breaks accessibility for a chunk of your users without throwing a single error.&lt;/p&gt;</description></item><item><title>Vite Explained: Why It Beats Webpack and What's Next</title><link>https://cloudmato.com/posts/vite-vs-webpack-why-vite-is-fast/</link><pubDate>Fri, 05 Jun 2026 14:59:00 +0530</pubDate><author>cloudmato.com</author><guid>https://cloudmato.com/posts/vite-vs-webpack-why-vite-is-fast/</guid><description>&lt;p&gt;I remember the first time I switched a project from CRA (which uses Webpack under the hood) to Vite. The dev server came up in under a second. I genuinely stared at the terminal for a moment, waiting for something else to happen. Nothing did. That was it — it was ready. That&amp;rsquo;s not a small improvement over Webpack. It&amp;rsquo;s a completely different experience.&lt;/p&gt;
&lt;h2 class="header-anchor-wrapper"&gt;What Is Vite?
&lt;a href="#what-is-vite" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Vite (French for &amp;ldquo;fast&amp;rdquo;, pronounced &amp;ldquo;veet&amp;rdquo;) is a frontend build tool created by Evan You — the same person who built Vue.js [1]. It launched in 2020 and has been growing fast. As of 2025, Vite logs &lt;strong&gt;53 million weekly npm downloads&lt;/strong&gt; against Webpack&amp;rsquo;s 36 million [5]. Its GitHub stars tell the same story: 78,000 vs Webpack&amp;rsquo;s 66,000 [5].&lt;/p&gt;</description></item><item><title>Frontend 2026: New Frameworks, Tools &amp; Design Patterns</title><link>https://cloudmato.com/posts/frontend-2026-frameworks-tools-design-patterns/</link><pubDate>Fri, 05 Jun 2026 10:48:59 +0530</pubDate><author>cloudmato.com</author><guid>https://cloudmato.com/posts/frontend-2026-frameworks-tools-design-patterns/</guid><description>&lt;p&gt;The frontend ecosystem shifts every year, but 2025-2026 felt structurally different. It wasn&amp;rsquo;t just new libraries — the underlying mental models changed. How we hydrate, bundle, structure components, and handle reactivity has moved in ways that actually affect how apps perform and how long they take to build. Here&amp;rsquo;s what&amp;rsquo;s worth paying attention to.&lt;/p&gt;
&lt;h2 class="header-anchor-wrapper"&gt;The Framework Landscape Is Fragmenting (In a Good Way)
&lt;a href="#the-framework-landscape-is-fragmenting-in-a-good-way" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;React still dominates with roughly 45% adoption [1], but calling it the default answer is getting harder to justify for every project type. Three challengers are serious now.&lt;/p&gt;</description></item><item><title>Every Way to Center a Div in CSS, Ranked (2026)</title><link>https://cloudmato.com/posts/center-a-div-css-2026/</link><pubDate>Wed, 03 Jun 2026 17:28:24 +0530</pubDate><author>cloudmato.com</author><guid>https://cloudmato.com/posts/center-a-div-css-2026/</guid><description>&lt;p&gt;Nobody ever forgets their first fight with CSS centering. You Google it, paste a Stack Overflow snippet, and move on — never stopping to ask if that was the &lt;em&gt;right&lt;/em&gt; way or just &lt;em&gt;a&lt;/em&gt; way. In 2026, there are at least seven distinct ways to center a div, and some of them should have been buried years ago.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s all of them, ranked worst to best.&lt;/p&gt;
&lt;h2 class="header-anchor-wrapper"&gt;The Full Comparison
&lt;a href="#the-full-comparison" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Horizontal&lt;/th&gt;
&lt;th&gt;Vertical&lt;/th&gt;
&lt;th&gt;Verdict&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;display: table-cell&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Never&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Negative margins&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Never&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;abs&lt;/code&gt; + &lt;code&gt;translate(-50%, -50%)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Avoid&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;inset: 0&lt;/code&gt; + &lt;code&gt;margin: auto&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Sometimes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;margin: auto&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Horizontal only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Flexbox&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Good default&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CSS Grid&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Best default&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CSS Anchor Positioning&lt;/td&gt;
&lt;td&gt;Relative&lt;/td&gt;
&lt;td&gt;Relative&lt;/td&gt;
&lt;td&gt;Specific use&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 class="header-anchor-wrapper"&gt;1. &lt;code&gt;display: table-cell&lt;/code&gt; — Please Stop
&lt;a href="#1-display-table-cell--please-stop" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;This is what people did before Flexbox existed. You wrap your element in a fake table, trick the browser into treating it like a &lt;code&gt;&amp;lt;td&amp;gt;&lt;/code&gt;, and abuse &lt;code&gt;vertical-align: middle&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>CSS Layout History: Tables to Grid — What to Use in 2026</title><link>https://cloudmato.com/posts/css-layout-history-flexbox-grid-2026/</link><pubDate>Tue, 02 Jun 2026 22:15:04 +0530</pubDate><author>cloudmato.com</author><guid>https://cloudmato.com/posts/css-layout-history-flexbox-grid-2026/</guid><description>&lt;p&gt;Every few years the &amp;ldquo;right&amp;rdquo; way to do layout in CSS changes completely. If you started writing CSS before 2015, you probably have a small trauma response every time someone mentions &lt;code&gt;clearfix&lt;/code&gt;. Let me walk through how we got here — and what you should actually reach for in 2026.&lt;/p&gt;
&lt;h2 class="header-anchor-wrapper"&gt;The Table Era (1990s – mid 2000s)
&lt;a href="#the-table-era-1990s--mid-2000s" class="header-anchor-link"&gt;
&lt;svg
xmlns="http://www.w3.org/2000/svg"
width="1rem" height="1rem" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"&gt;
&lt;line x1="4" y1="9" x2="20" y2="9"&gt;&lt;/line&gt;&lt;line x1="4" y1="15" x2="20" y2="15"&gt;&lt;/line&gt;&lt;line x1="10" y1="3" x2="8" y2="21"&gt;&lt;/line&gt;&lt;line x1="16" y1="3" x2="14" y2="21"&gt;&lt;/line&gt;
&lt;/svg&gt;
&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;HTML tables were never designed for layout. They existed to display tabular data. Then web designers discovered that &lt;code&gt;&amp;lt;table&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;tr&amp;gt;&lt;/code&gt;, and &lt;code&gt;&amp;lt;td&amp;gt;&lt;/code&gt; gave you something CSS couldn&amp;rsquo;t yet deliver: predictable column control [1].&lt;/p&gt;</description></item></channel></rss>