<?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: plsankar</title>
    <description>The latest articles on DEV Community by plsankar (@plsankar).</description>
    <link>https://dev.to/plsankar</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%2F604947%2Fd7f1fd80-2fd7-4850-a9b0-212bdb9f919d.png</url>
      <title>DEV Community: plsankar</title>
      <link>https://dev.to/plsankar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/plsankar"/>
    <language>en</language>
    <item>
      <title>Clip-Path Circle Reveal Animation With Mouse Movement</title>
      <dc:creator>plsankar</dc:creator>
      <pubDate>Tue, 03 Dec 2024 17:07:43 +0000</pubDate>
      <link>https://dev.to/plsankar/clip-path-circle-reveal-animation-with-mouse-movement-250d</link>
      <guid>https://dev.to/plsankar/clip-path-circle-reveal-animation-with-mouse-movement-250d</guid>
      <description>&lt;h3&gt;
  
  
  What’s the Plan?
&lt;/h3&gt;

&lt;p&gt;We’ll create an animation where an image is revealed through a circle that moves with your mouse. You’ll also be able to tweak the size of the circle and experiment with the behavior.&lt;/p&gt;

&lt;p&gt;Here’s what you’ll need:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GSAP:&lt;/strong&gt; For buttery-smooth animations.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tweakpane:&lt;/strong&gt; For a slick UI to adjust the animation on the fly.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTML &amp;amp; CSS:&lt;/strong&gt; To set up and style the page.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  HTML
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"UTF-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1.0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Clip-Path Animation&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"style.css"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; 
    &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://images.unsplash.com/photo-1696149328298-6e2f257bd45a?q=80&amp;amp;w=2104&amp;amp;auto=format&amp;amp;fit=crop&amp;amp;ixlib=rb-4.0.3&amp;amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"&lt;/span&gt; 
    &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Clip-path animation"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"script.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  CSS
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100vh&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;justify-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;align-items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;overflow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;hidden&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;img&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;clip-path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;circle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--size&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;10%&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;50%&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;50%&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
  &lt;span class="nl"&gt;transition&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;clip-path&lt;/span&gt; &lt;span class="m"&gt;0.6s&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;h4&gt;
  
  
  JS
&lt;/h4&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;gsap&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://esm.sh/gsap&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Smooth animations&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;xTo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;gsap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;quickTo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;img&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;--x&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;ease&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;power3&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;yTo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;gsap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;quickTo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;img&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;--y&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;ease&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;power3&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;sizeTo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;gsap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;quickTo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;img&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;--size&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;ease&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;power3&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="c1"&gt;// Update based on mouse movement&lt;/span&gt;
&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mousemove&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;xTo&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;clientX&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerWidth&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nf"&gt;yTo&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;clientY&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerHeight&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;100&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;h3&gt;
  
  
  Preview
&lt;/h3&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/plsankar/embed/ByBoZLa?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>gsap</category>
      <category>animation</category>
    </item>
    <item>
      <title>Tab Closer Pro v1.0.1: Sorting, and Search Features</title>
      <dc:creator>plsankar</dc:creator>
      <pubDate>Sat, 29 Jun 2024 18:31:15 +0000</pubDate>
      <link>https://dev.to/plsankar/tab-closer-pro-v101-sorting-and-search-features-o0l</link>
      <guid>https://dev.to/plsankar/tab-closer-pro-v101-sorting-and-search-features-o0l</guid>
      <description>&lt;p&gt;This update brings significant enhancements to the extension, making it even easier to manage your browser tabs. Here's a closer look at what's new in this release.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's New in Version 1.0.1?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Updated User Interface
&lt;/h3&gt;

&lt;p&gt;The new and improved UI offers is based on the shadcn/ui.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sort by Tabs Count
&lt;/h3&gt;

&lt;p&gt;With the new "Sort by Tabs Count" feature, you can quickly see your open websites based on the number of tabs associated with each. This allows you to identify and manage the most cluttered sites efficiently.&lt;/p&gt;

&lt;h3&gt;
  
  
  Added Search Feature
&lt;/h3&gt;

&lt;p&gt;Say goodbye to endless scrolling! The new search feature lets you instantly find specific websites among your open tabs. Just type in the name of the website, and Tab Closer Pro will display all related tabs, saving you time and effort.&lt;/p&gt;

&lt;p&gt;Follow me on GitHub for the latest updates, submit issues, and check out the package.json for more details. If you have any questions or feedback, don't hesitate to reach out through the GitHub issues page.&lt;/p&gt;

&lt;p&gt;Source Code: &lt;a href="https://github.com/plsankar/tabcloserpro" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Install the extension: &lt;a href="https://chromewebstore.google.com/detail/tab-closer-pro/dbpgdhpcdmbglccedednilahahdlnaio" rel="noopener noreferrer"&gt;Chrome Webstore&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>chrome</category>
      <category>extensions</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Lucide Icons for VS Code [Unofficial]</title>
      <dc:creator>plsankar</dc:creator>
      <pubDate>Fri, 03 May 2024 18:32:30 +0000</pubDate>
      <link>https://dev.to/plsankar/lucide-icons-for-vs-code-unofficial-2dk2</link>
      <guid>https://dev.to/plsankar/lucide-icons-for-vs-code-unofficial-2dk2</guid>
      <description>&lt;p&gt;Hey there,&lt;/p&gt;

&lt;p&gt;You know that feeling when you're in the flow, coding away, and then you realize you need an icon? Instead of interrupting your rhythm to hunt one down online, now you can just grab it from within VS Code.&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%2Fbywsdzxtytj1fu7j6rjy.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%2Fbywsdzxtytj1fu7j6rjy.jpg" alt=" " width="789" height="525"&gt;&lt;/a&gt;&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%2Fw94njpaztt4gdx8n564x.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%2Fw94njpaztt4gdx8n564x.jpg" alt=" " width="789" height="281"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I made this extension because, well, I needed it myself. And I figured, hey, if it helps me, it might just help you too.&lt;/p&gt;

&lt;p&gt;So if you're tired of the back-and-forth between your code and your browser, give it a shot. It's free, it's easy, and it's made with a whole lot of love.&lt;/p&gt;

&lt;p&gt;Download it now from the Visual Studio Code Marketplace and let's make coding a little smoother, one icon at a time.&lt;/p&gt;

&lt;p&gt;And its also open source.&lt;/p&gt;

&lt;p&gt;VSCode: &lt;a href="https://marketplace.visualstudio.com/items?itemName=Lakshmisankar.vscode-lucide-icons" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=Lakshmisankar.vscode-lucide-icons&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Repo Link: &lt;a href="https://github.com/plsankar/vscode-lucide-icons" rel="noopener noreferrer"&gt;https://github.com/plsankar/vscode-lucide-icons&lt;/a&gt;&lt;/p&gt;

</description>
      <category>lucide</category>
      <category>icons</category>
      <category>vscode</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Introducing Tab Closer Pro: Close Tabs More Easily</title>
      <dc:creator>plsankar</dc:creator>
      <pubDate>Tue, 05 Mar 2024 18:43:25 +0000</pubDate>
      <link>https://dev.to/plsankar/introducing-tab-closer-pro-close-tabs-more-easily-3lml</link>
      <guid>https://dev.to/plsankar/introducing-tab-closer-pro-close-tabs-more-easily-3lml</guid>
      <description>&lt;p&gt;Hey everyone! Do you ever find yourself drowning in a sea of open tabs while browsing? I know I do!.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://chromewebstore.google.com/detail/tab-closer-pro/dbpgdhpcdmbglccedednilahahdlnaio" rel="noopener noreferrer"&gt;Tab Closer Pro&lt;/a&gt; simplifies your browsing by organizing all your tabs by domain. No more endless scrolling to find that one tab buried in the chaos! With Tab Closer Pro, everything is neatly grouped together, making it super easy to navigate and manage your tabs.&lt;/p&gt;

&lt;p&gt;But here's the best part – with just a click, you can close all tabs from a specific domain. It's like magic for decluttering your browser!&lt;/p&gt;

&lt;p&gt;So if you're tired of tab overload and want to take back control of your browsing, give Tab Closer Pro a try.&lt;/p&gt;

&lt;p&gt;Its also a open source project. the source code can found at github.&lt;/p&gt;

&lt;p&gt;Source Code: &lt;a href="https://github.com/plsankar/tabcloserpro" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Install the extension: &lt;a href="https://chromewebstore.google.com/detail/tab-closer-pro/dbpgdhpcdmbglccedednilahahdlnaio" rel="noopener noreferrer"&gt;Chrome Webstore&lt;/a&gt;&lt;/p&gt;

</description>
      <category>chrome</category>
      <category>extensions</category>
      <category>browser</category>
      <category>javascript</category>
    </item>
    <item>
      <title>How to find all the colors used in a Webpage</title>
      <dc:creator>plsankar</dc:creator>
      <pubDate>Thu, 11 Jan 2024 18:59:33 +0000</pubDate>
      <link>https://dev.to/plsankar/how-to-find-all-the-colors-used-in-a-webpage-1bm1</link>
      <guid>https://dev.to/plsankar/how-to-find-all-the-colors-used-in-a-webpage-1bm1</guid>
      <description>&lt;p&gt;This is write up of how i created this chrome extension called ColorHunter. The project is also open source, you can find it here: Github.&lt;/p&gt;

&lt;p&gt;What we are going to see is the part where we scan all the elements in the webpage and find all the colors.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: How to get all elements in a webpage?
&lt;/h2&gt;

&lt;p&gt;Simple, the following code will get all the elements in the page and runs a foreach loop on them.&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;const&lt;/span&gt; &lt;span class="nx"&gt;allElments&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;querySelectorAll&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;HTMLElement&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;*&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;allElments&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;element&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;element&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;h2&gt;
  
  
  Step 2: How to get all the colors in a HTML element?
&lt;/h2&gt;

&lt;p&gt;We are using the &lt;code&gt;window.getComputedStyle()&lt;/code&gt;method.&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;const&lt;/span&gt; &lt;span class="nx"&gt;style&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getComputedStyle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;element&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;color&lt;/span&gt; &lt;span class="c1"&gt;// text color&lt;/span&gt;
&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;backgroundColor&lt;/span&gt; &lt;span class="c1"&gt;// background color&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 3: Putting it all these together.
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;colors&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;allElments&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;querySelectorAll&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;HTMLElement&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;*&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;allElments&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;element&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;style&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getComputedStyle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;element&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;colors&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;color&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;colors&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;backgroundColor&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;That’s all.&lt;/p&gt;

&lt;p&gt;Project: [&lt;a href="https://github.com/plsankar/colorhunter?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=blog&amp;amp;utm_term=find-colors" rel="noopener noreferrer"&gt;Github&lt;/a&gt;] [&lt;a href="https://chromewebstore.google.com/detail/color-hunter/bpgkpfghcehfbffdfhelbooocbafaakd?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=blog&amp;amp;utm_term=find-colors" rel="noopener noreferrer"&gt;Chrome Extension&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;Mine: [&lt;a href="https://lakshmisankar.com/?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=blog&amp;amp;utm_term=find-colors" rel="noopener noreferrer"&gt;Portfolio&lt;/a&gt;] | [&lt;a href="https://github.com/plsankar" rel="noopener noreferrer"&gt;Github&lt;/a&gt;]&lt;/p&gt;

</description>
    </item>
    <item>
      <title>FileOrganizer: Organize your files in a simple command</title>
      <dc:creator>plsankar</dc:creator>
      <pubDate>Sat, 14 Jan 2023 05:38:27 +0000</pubDate>
      <link>https://dev.to/plsankar/fileorganizer-organize-your-files-in-a-simple-command-4hkn</link>
      <guid>https://dev.to/plsankar/fileorganizer-organize-your-files-in-a-simple-command-4hkn</guid>
      <description>&lt;p&gt;I created this nodejs cli program to organize your files. &lt;/p&gt;

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

&lt;p&gt;Every day at the end of the day my downloads folder gets messy and unorganized. So I used to reorganize the folders. and after a while, I didn't want to do it manually. that is why I created this program.&lt;/p&gt;

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

&lt;p&gt;After a little analyzing, I came to the conclusion that if I can put my files in the same file type folder and add a date to them, I can easily manage them.&lt;/p&gt;

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

&lt;p&gt;I know there may be other libs like this available. But I wanted to create my own. and with little knowledge of the batch script, I started the first version in a batch script. but I had problems making this work in other operating systems. That was when I started using javascript and node js.&lt;/p&gt;

&lt;p&gt;So now i present you &lt;a href="https://github.com/plsankar/fileorganizer-cli" rel="noopener noreferrer"&gt;FileOrganizer&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Do Like, Share your feedback 🙌 and contributions are welcome.&lt;/p&gt;

&lt;p&gt;Feel free to connect with me 👍 &lt;/p&gt;

</description>
      <category>watercooler</category>
    </item>
  </channel>
</rss>
