<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Vinoo Ganesh</title><link>https://vinooganesh.github.io/hugo-ink/tags/design/</link><description>Designer, developer, and writer.</description><generator>Hugo 0.155.3</generator><language>en</language><managingEditor>Vinoo Ganesh</managingEditor><lastBuildDate>Sun, 15 Feb 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://vinooganesh.github.io/hugo-ink/tags/design/index.xml" rel="self" type="application/rss+xml"/><item><title>On Speed and Simplicity</title><link>https://vinooganesh.github.io/hugo-ink/posts/on-speed-and-simplicity/</link><pubDate>Sat, 14 Feb 2026 00:00:00 +0000</pubDate><guid>https://vinooganesh.github.io/hugo-ink/posts/on-speed-and-simplicity/</guid><description><![CDATA[<p>The best websites are the ones that get out of your way. They load instantly, present content clearly, and respect your time.</p>
<p>Speed is not just a technical metric — it&rsquo;s a form of respect for your readers. Every kilobyte matters.</p>
<h2 id="measuring-what-matters">Measuring what matters</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -s -o /dev/null -w <span style="color:#e6db74">&#34;Total: %{size_download} bytes\n&#34;</span> https://yoursite.com/
</span></span></code></pre></div><p>The target: under 100KB for a first page load.</p>
]]></description></item><item><title>Dark Mode Done Right</title><link>https://vinooganesh.github.io/hugo-ink/posts/dark-mode-done-right/</link><pubDate>Thu, 12 Feb 2026 00:00:00 +0000</pubDate><guid>https://vinooganesh.github.io/hugo-ink/posts/dark-mode-done-right/</guid><description><![CDATA[<p>Dark mode reduces eye strain, saves battery on OLED screens, and respects user preferences. But implementing it wrong creates a flash of the wrong theme on load.</p>
<h2 id="the-flash-problem">The flash problem</h2>
<p>Most implementations set the theme with JavaScript after the page renders. Brief flash of the wrong theme.</p>
<h2 id="the-solution">The solution</h2>
<p>Run a tiny inline script in the <code>&lt;head&gt;</code>, before any content renders:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span>(<span style="color:#66d9ef">function</span>() {
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">var</span> <span style="color:#a6e22e">saved</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">localStorage</span>.<span style="color:#a6e22e">getItem</span>(<span style="color:#e6db74">&#39;theme&#39;</span>);
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">if</span> (<span style="color:#a6e22e">saved</span> <span style="color:#f92672">===</span> <span style="color:#e6db74">&#39;dark&#39;</span> <span style="color:#f92672">||</span> <span style="color:#a6e22e">saved</span> <span style="color:#f92672">===</span> <span style="color:#e6db74">&#39;light&#39;</span>) {
</span></span><span style="display:flex;"><span>    document.<span style="color:#a6e22e">documentElement</span>.<span style="color:#a6e22e">dataset</span>.<span style="color:#a6e22e">theme</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">saved</span>;
</span></span><span style="display:flex;"><span>  } <span style="color:#66d9ef">else</span> <span style="color:#66d9ef">if</span> (window.<span style="color:#a6e22e">matchMedia</span>(<span style="color:#e6db74">&#39;(prefers-color-scheme: dark)&#39;</span>).<span style="color:#a6e22e">matches</span>) {
</span></span><span style="display:flex;"><span>    document.<span style="color:#a6e22e">documentElement</span>.<span style="color:#a6e22e">dataset</span>.<span style="color:#a6e22e">theme</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&#39;dark&#39;</span>;
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span>})();
</span></span></code></pre></div><p>No flash. The <code>&lt;noscript&gt;</code> tag provides a CSS-only fallback for users with JavaScript disabled.</p>
]]></description></item></channel></rss>