<?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: Raktim</title>
    <description>The latest articles on DEV Community by Raktim (@nathraktim).</description>
    <link>https://dev.to/nathraktim</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%2F3323123%2F322f8559-1f81-40e4-9023-435c864d4746.jpeg</url>
      <title>DEV Community: Raktim</title>
      <link>https://dev.to/nathraktim</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nathraktim"/>
    <language>en</language>
    <item>
      <title>React-flexi-window v2.0 — I added a WASM-powered Liquid Glass engine to my React window component</title>
      <dc:creator>Raktim</dc:creator>
      <pubDate>Sat, 11 Apr 2026 00:35:08 +0000</pubDate>
      <link>https://dev.to/nathraktim/react-flexi-window-v20-i-added-a-wasm-powered-liquid-glass-engine-to-my-react-window-component-2n81</link>
      <guid>https://dev.to/nathraktim/react-flexi-window-v20-i-added-a-wasm-powered-liquid-glass-engine-to-my-react-window-component-2n81</guid>
      <description>&lt;p&gt;Hellooooooo DEV Community!&lt;/p&gt;

&lt;p&gt;About 9 months ago, I shared my first ever npm package here — &lt;a href="https://dev.to/nathraktim/react-flexi-window-draggable-resizable-windows-for-react-2nna"&gt;react-flexi-window&lt;/a&gt;, a draggable and resizable window component for React. The response was really encouraging, and I've been working on it ever since.&lt;/p&gt;

&lt;p&gt;Today I'm excited to share &lt;strong&gt;v2.0&lt;/strong&gt; — and it's a big one. I built a custom &lt;strong&gt;WebAssembly optics engine&lt;/strong&gt; in Rust and shipped it as a new feature called the &lt;strong&gt;Material System&lt;/strong&gt;. The first material is &lt;strong&gt;Liquid Glass&lt;/strong&gt; — a refractive lens effect that actually bends background pixels through the window edges using real Snell's Law physics.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changed from v1?
&lt;/h2&gt;

&lt;p&gt;In v1, react-flexi-window was all about the basics — drag, resize, boundary constraints, and a built-in color system. That hasn't changed, but v2.0 adds an entirely new layer: &lt;strong&gt;materials&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of just styling the window with colors and blur, you can now apply physically-based visual effects:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;WindowComponent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;liquidGlass&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-flexi-window&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;WindowComponent&lt;/span&gt;
  &lt;span class="na"&gt;w&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;400&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;h&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
  &lt;span class="na"&gt;material&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;liquidGlass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
  &lt;span class="na"&gt;boundary&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;style&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;20px&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;white&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    Content behind glass
  &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;WindowComponent&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Three numbers — &lt;code&gt;radius&lt;/code&gt;, &lt;code&gt;blur&lt;/code&gt;, &lt;code&gt;bezelWidth&lt;/code&gt; — and you get a glass window that refracts whatever is behind it. No configuration files, no external assets, no loading spinners.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the Liquid Glass engine works
&lt;/h2&gt;

&lt;p&gt;I wanted something that goes beyond a CSS &lt;code&gt;backdrop-filter: blur()&lt;/code&gt; trick. Blur makes things look frosted, but it doesn't &lt;em&gt;bend&lt;/em&gt; pixels — it doesn't create that lens-like distortion you see in real glass. For that, you need per-pixel displacement mapping.&lt;/p&gt;

&lt;p&gt;Here's what happens under the hood:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Snell's Law in Rust/WASM
&lt;/h3&gt;

&lt;p&gt;I wrote a small Rust module (~6KB compiled) that computes displacement and specular maps using Snell's Law refraction. It runs with &lt;code&gt;no_std&lt;/code&gt; and no allocator — zero garbage collection overhead.&lt;/p&gt;

&lt;p&gt;The WASM binary is &lt;strong&gt;base64-inlined&lt;/strong&gt; directly into the JS bundle. No network fetch, no external files. It just works.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. 9-Slice rendering
&lt;/h3&gt;

&lt;p&gt;The computed maps get split into 9-slice parts (corners + edges + center), then assembled into SVG filters. This means the glass effect scales to any window size without re-running the refraction math every time you resize.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Single-pass SVG backdrop filter
&lt;/h3&gt;

&lt;p&gt;Everything runs through one SVG &lt;code&gt;backdrop-filter&lt;/code&gt; pipeline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Blur&lt;/strong&gt; → soft background&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Displacement&lt;/strong&gt; → actual pixel bending at the edges&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Specular&lt;/strong&gt; → depth and light highlights for realism&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. SSR safe
&lt;/h3&gt;

&lt;p&gt;All browser APIs (Canvas, WebAssembly) are called inside &lt;code&gt;useLayoutEffect&lt;/code&gt;. If you're using Next.js or any SSR framework, the server render produces clean HTML with zero hydration issues.&lt;/p&gt;

&lt;h2&gt;
  
  
  Still zero dependencies
&lt;/h2&gt;

&lt;p&gt;One thing I'm proud of is that this is still a &lt;strong&gt;zero-dependency&lt;/strong&gt; package (React is the only peer dependency). The entire thing — including the WASM engine — is &lt;strong&gt;~14KB gzipped&lt;/strong&gt;. No heavy graphics libraries, no runtime downloads.&lt;/p&gt;

&lt;h2&gt;
  
  
  Everything from v1 is still here
&lt;/h2&gt;

&lt;p&gt;All the features from the original release are still there:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; &lt;strong&gt;Drag &amp;amp; Resize&lt;/strong&gt; — edges and corners&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Assistive Resize Handles&lt;/strong&gt; — large 40×40px corner handles during interaction&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Boundary Constraints&lt;/strong&gt; — lock windows to viewport&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Color System&lt;/strong&gt; — &lt;code&gt;windowColor="blue-500/30"&lt;/code&gt; syntax&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Responsive&lt;/strong&gt; — auto-adjusts on viewport changes&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Smart Interactions&lt;/strong&gt; — respects buttons, inputs, links&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;TypeScript&lt;/strong&gt; — full type definitions&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's next?
&lt;/h2&gt;

&lt;p&gt;The material system is designed to be extensible. I'm planning these next:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Material&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Frosted Glass&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Diffuse scattering with adjustable roughness&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Chromatic Aberration&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Color-split refraction for prismatic effects&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Acrylic&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Windows 11 Fluent-style layered translucency&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Got an idea for a material? &lt;a href="https://github.com/Nathraktim/react-flexi-window/issues" rel="noopener noreferrer"&gt;Open an issue!&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it out
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;react-flexi-window
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt; &lt;a href="https://nathraktim.github.io/react-flexi-window/" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://github.com/Nathraktim/react-flexi-window" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.npmjs.com/package/react-flexi-window" rel="noopener noreferrer"&gt;npm&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Building this WASM engine and getting it to work inline with zero dependencies was one of the most fun engineering challenges I've taken on. If you found this interesting, a ⭐ on GitHub would mean a lot. And if you have questions about the WASM pipeline or the optics math, I'd love to chat in the comments!&lt;/p&gt;

&lt;p&gt;Thanks for the support on v1 — here's to v2!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
    </item>
    <item>
      <title>react-flexi-window – Draggable &amp; Resizable Windows for React</title>
      <dc:creator>Raktim</dc:creator>
      <pubDate>Fri, 04 Jul 2025 16:29:01 +0000</pubDate>
      <link>https://dev.to/nathraktim/react-flexi-window-draggable-resizable-windows-for-react-2nna</link>
      <guid>https://dev.to/nathraktim/react-flexi-window-draggable-resizable-windows-for-react-2nna</guid>
      <description>&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%2Fwwsbd8f3rbo1huui320a.jpg" 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%2Fwwsbd8f3rbo1huui320a.jpg" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;br&gt;
Hi DEV Community! I’m thrilled to share my first npm package, &lt;code&gt;react-flexi-window&lt;/code&gt;, a lightweight React component for creating &lt;strong&gt;draggable and resizable windows&lt;/strong&gt; in your apps. As a new open-source contributor, this is a big milestone for me, and I’d love your feedback!&lt;/p&gt;
&lt;h2&gt;
  
  
  What is react-flexi-window?
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;react-flexi-window&lt;/code&gt; lets you build dynamic, interactive UI windows that users can drag and resize. It’s designed to be flexible, performant, and easy to integrate, with &lt;strong&gt;zero dependencies&lt;/strong&gt; (except React) and full &lt;strong&gt;TypeScript support&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🖱️ &lt;strong&gt;Draggable &amp;amp; Resizable&lt;/strong&gt;: Move windows by dragging and resize them via edges or corners.&lt;/li&gt;
&lt;li&gt;🎯 &lt;strong&gt;Assistive Resize Handles&lt;/strong&gt;: Large, visible corner handles appear during interaction for better usability (great for touch devices).&lt;/li&gt;
&lt;li&gt;🔒 &lt;strong&gt;Viewport Constraints&lt;/strong&gt;: Optionally keep windows within the browser viewport.&lt;/li&gt;
&lt;li&gt;🎨 &lt;strong&gt;Customizable Styling&lt;/strong&gt;: Built-in color system (e.g., &lt;code&gt;blue-500/30&lt;/code&gt;), border radius, shadows, and backdrop blur.&lt;/li&gt;
&lt;li&gt;📱 &lt;strong&gt;Responsive&lt;/strong&gt;: Automatically adjusts to viewport changes.&lt;/li&gt;
&lt;li&gt;💨 &lt;strong&gt;Lightweight&lt;/strong&gt;: Only 90.5 kB with no extra dependencies.&lt;/li&gt;
&lt;li&gt;⚡ &lt;strong&gt;Performance Optimized&lt;/strong&gt;: Efficient event handling and minimal DOM updates.&lt;/li&gt;
&lt;li&gt;🔧 &lt;strong&gt;Smart Interactions&lt;/strong&gt;: Ignores clicks on buttons, inputs, and other interactive elements.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Get Started
&lt;/h2&gt;

&lt;p&gt;Install it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;react-flexi-window
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Basic example:&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="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;WindowComponent&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-flexi-window&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;App&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="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{{&lt;/span&gt; &lt;span class="na"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;100vw&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;100vh&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;relative&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;WindowComponent&lt;/span&gt;
        &lt;span class="nx"&gt;w&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;400&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nx"&gt;h&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nx"&gt;windowColor&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;blue-500/20&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
        &lt;span class="nx"&gt;windowBorderRadius&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;lg&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
        &lt;span class="nx"&gt;boundary&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{{&lt;/span&gt; &lt;span class="na"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;20px&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;h2&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;My&lt;/span&gt; &lt;span class="nx"&gt;Window&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/h2&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;          &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Drag&lt;/span&gt; &lt;span class="nx"&gt;and&lt;/span&gt; &lt;span class="nx"&gt;resize&lt;/span&gt; &lt;span class="nx"&gt;me&lt;/span&gt;&lt;span class="o"&gt;!&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/p&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/WindowComponent&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;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;Check out the full docs and demo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;npm: &lt;a href="https://www.npmjs.com/package/react-flexi-window" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/react-flexi-window&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Demo: &lt;a href="https://nathraktim.github.io/react-flexi-window" rel="noopener noreferrer"&gt;https://nathraktim.github.io/react-flexi-window&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why I Built It
&lt;/h2&gt;

&lt;p&gt;I wanted a simple, flexible way to create draggable windows in React without heavy dependencies. Inspired by libraries like &lt;code&gt;react-window&lt;/code&gt; (but for UI windows, not virtualization), I aimed for a component that’s easy to style and use, with features like TypeScript support and touch-friendly handles. &lt;/p&gt;

&lt;h2&gt;
  
  
  What’s Next?
&lt;/h2&gt;

&lt;p&gt;I’m working on improving the demo site and adding more examples. If you try &lt;code&gt;react-flexi-window&lt;/code&gt;, I’d love to hear your thoughts! Suggestions, bug reports, or contributions are welcome on GitHub.Thanks for checking it out!&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
