<?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: Maicon Gilton de Souza Freire</title>
    <description>The latest articles on DEV Community by Maicon Gilton de Souza Freire (@maicongilton).</description>
    <link>https://dev.to/maicongilton</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%2F3671360%2Fe621476c-54a7-4b8f-93f4-fa236d68bd49.jpeg</url>
      <title>DEV Community: Maicon Gilton de Souza Freire</title>
      <link>https://dev.to/maicongilton</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/maicongilton"/>
    <language>en</language>
    <item>
      <title>From Mobile UX Expectations to Better Tabs on the Web</title>
      <dc:creator>Maicon Gilton de Souza Freire</dc:creator>
      <pubDate>Sat, 20 Dec 2025 06:30:42 +0000</pubDate>
      <link>https://dev.to/maicongilton/from-mobile-ux-expectations-to-better-tabs-on-the-web-3h7k</link>
      <guid>https://dev.to/maicongilton/from-mobile-ux-expectations-to-better-tabs-on-the-web-3h7k</guid>
      <description>&lt;p&gt;Recently, I was building an admin dashboard with several screens using tab-based navigation.&lt;/p&gt;

&lt;p&gt;During my 7 years of experience, I’ve implemented tabs in multiple projects — but almost every tab solution I tried had the same issues:&lt;/p&gt;

&lt;p&gt;❌ Tabs simply mount/unmount components on change&lt;br&gt;
❌ No transitions, no continuity — just abrupt UI jumps&lt;br&gt;
❌ Components re-mounted every time → unnecessary API calls&lt;br&gt;
❌ Lost local state (filters, scroll position, UI context)&lt;/p&gt;

&lt;p&gt;FFrom a UI/UX and performance perspective, it always felt wrong.&lt;/p&gt;

&lt;p&gt;After working on several React Native and SwiftUI projects, I kept thinking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Why can’t tabs on the web behave like the ones we use on mobile?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I didn’t want tabs that just switch views. I wanted tabs that preserve state, feel intentional, and respect the user’s context.&lt;/p&gt;

&lt;p&gt;My focus was on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;avoiding unnecessary mount/unmount cycles&lt;/li&gt;
&lt;li&gt;keeping each tab’s state alive&lt;/li&gt;
&lt;li&gt;smooth, interruptible transitions&lt;/li&gt;
&lt;li&gt;performance-first behavior&lt;/li&gt;
&lt;li&gt;zero styling assumptions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I built one focused on real 1:1 touch interactions:&lt;/p&gt;

&lt;p&gt;✨ &lt;a href="https://maicongilton.github.io/react-fluid-tabs" rel="noopener noreferrer"&gt;react-fluid-tabs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A lightweight, high-performance React tabs component with native-like swipe behavior.&lt;/p&gt;

&lt;p&gt;Highlights:&lt;br&gt;
👆 Real-time swipe tracking with velocity &amp;amp; resistance&lt;br&gt;
⚡ 60fps animations using hardware-accelerated transforms&lt;br&gt;
♿ Fully accessible (WAI-ARIA compliant)&lt;br&gt;
🎨 Headless &amp;amp; fully customizable&lt;br&gt;
📦 Tiny bundle, no dependencies&lt;/p&gt;

&lt;p&gt;Mobile-friendly gestures weren’t a requirement at first — but once the foundation was right, it naturally evolved into a more complete and unique tab experience for React / Next.js users.&lt;/p&gt;

&lt;p&gt;I’ve open-sourced it and plan to keep extending it — including support beyond React in the future.&lt;/p&gt;

&lt;p&gt;So, if you are working in complex dashboards and admin panels, data-heavy UIs where state should persist, mobile-first or touch-friendly web apps and teams that care about UX continuity and performance, git it a try, I’d really love your feedback.&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/maicongilton/react-fluid-tabs" rel="noopener noreferrer"&gt;Repo&lt;/a&gt; &amp;amp; &lt;a href="https://maicongilton.github.io/react-fluid-tabs" rel="noopener noreferrer"&gt;Docs&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  react #nextjs #frontend #opensource #ui #ux #webperformance #javascript
&lt;/h1&gt;

</description>
      <category>react</category>
      <category>nextjs</category>
      <category>ux</category>
      <category>frontend</category>
    </item>
  </channel>
</rss>
