<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
    <channel>
        <title><![CDATA[Adam Argyle]]></title>
        <description><![CDATA[RSS Feed for Adam Argyle: Web design & development tips & tricks: CSS, JS, HTML, Design, & UX.]]></description>
        <link>https://nerdy.dev</link>
        <image>
            <url>https://nerdy.dev/rss-icon.png</url>
            <title>Adam Argyle</title>
            <link>https://nerdy.dev</link>
        </image>
        <generator>RSS for Node</generator>
        <lastBuildDate>Tue, 11 Aug 2026 00:47:44 GMT</lastBuildDate>
        <atom:link href="https://nerdy.dev/rss.xml" rel="self" type="application/rss+xml"/>
        <copyright><![CDATA[2026 Adam Argyle]]></copyright>
        <language><![CDATA[en]]></language>
        <webMaster><![CDATA[adam.is@nerdy.dev (Adam Argyle)]]></webMaster>
        <ttl>60</ttl>
        <category><![CDATA[CSS]]></category>
        <category><![CDATA[HTML]]></category>
        <category><![CDATA[JavaScript]]></category>
        <category><![CDATA[Front-End]]></category>
        <category><![CDATA[Design]]></category>
        <icon>https://nerdy.dev/rss-icon.png</icon>
        <logo>https://nerdy.dev/skull-card.png</logo>
        <item>
            <title><![CDATA[2026 Open Agentic Tools]]></title>
            <description><![CDATA[<p>Some &quot;open&quot; agentic tools:</p>
<ul>
<li><a href="https://openchamber.dev">Open Chamber</a></li>
<li><a href="https://openagents.com">Open Agents</a></li>
<li><a href="https://open-design.ai">Open Design</a></li>
<li><a href="https://open-design.ai/html-video/">Open Design HTML Video</a></li>
<li><a href="https://github.com/calesthio/OpenMontage">Open Montage</a></li>
</ul>
<p>Wonder if they use <a href="https://open-props.style/">Open Props</a> 😏</p>
]]></description>
            <link>https://nerdy.dev/2026-open-agentic-tools?utm_source=rss</link>
            <guid isPermaLink="true">https://nerdy.dev/2026-open-agentic-tools?utm_source=rss</guid>
            <category><![CDATA[note]]></category>
            <category><![CDATA[ai]]></category>
            <dc:creator><![CDATA[atom@argyleink]]></dc:creator>
            <pubDate>Mon, 10 Aug 2026 16:52:03 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Scroll Axis Lock]]></title>
            <description><![CDATA[
          <img style="display: none" src="https://nerdy.dev/media/scroll-axis-lock-hero.jpg" alt="Diagram comparing locked vs unlocked scroll gesture paths" height="781" width="1400" />
        <p>I first noticed web scroll areas had scroll locking behavior when making 2D scroll snap demos; I couldn&#39;t scroll diagonally without getting hijacked and locked into an <code>x</code> or <code>y</code> axis.</p>
<p>Even on a touch device, where a diagonal gesture is so easy and natural. </p>
<p>
          <iframe 
            class="codepen-embed" 
            scrolling="no" 
            title="null" 
            src="https://codepen.io/argyleink/embed/preview/GRxMPGb?default-tab=result&editable=true&theme-id=43079" 
            frameborder="no" 
            loading="lazy" 
            allowtransparency="true" 
            allowfullscreen="true"
          >
            See the Pen <a href="https://codepen.io/argyleink/embed/preview/GRxMPGb"> by Adam Argyle (<a href="https://codepen.io/argyleink">@argyleink</a>)
            on <a href="https://codepen.io">CodePen</a>.
          </iframe>
        </p>
<p>Thanks to <a href="https://www.bram.us/2026/08/09/unlock-immediate-diagonal-scrolling-with-css-scroll-axis-lock-none/">Bramus&#39;s rad interactive blog post</a> I saw <strong>Chrome 153</strong> with the remedy:</p>
<pre class="shiki css-variables" style="background-color:#f8f9fa;padding:1em;border-radius:.5em;overflow:auto;color:#030507" tabindex="0"><code><span class="line"><span style="color:#4263eb">.scroller</span><span style="color:#030507"> {</span></span>
<span class="line"><span style="color:inherit">  overflow</span><span style="color:#ff1493">:</span><span style="color:inherit"> auto</span><span style="color:#030507">;</span></span>
<span class="line"><span style="color:inherit">  overscroll-behavior</span><span style="color:#ff1493">:</span><span style="color:inherit"> contain</span><span style="color:#030507">;</span></span>
<span class="line"><span style="color:inherit">  scroll-axis-lock</span><span style="color:#ff1493">:</span><span style="color:inherit"> none</span><span style="color:#030507">; 👈</span></span>
<span class="line"><span style="color:#030507">}</span></span></code></pre>
<p><a href="https://drafts.csswg.org/css-overflow-5/#scroll-axis-locking">spec</a> | <a href="https://codepen.io/bramus/pen/vEgbwgr">check for support</a></p>
<p><strong>Freedom from the axis lock</strong> 🤘🏻</p>

        <h2 id="use-cases">
          Use cases
          <a name="use-cases" href="#use-cases">#</a>
        </h2>
       <p>I was thinking: </p>
<ol>
<li>swipe to dismiss interactions</li>
<li>flings</li>
<li>maps or infinite canvas navigating</li>
<li>datagrids or tables</li>
<li>image zoom scrolling around</li>
<li>360 pano images or 3D model panning</li>
<li>data vis exploration</li>
</ol>
<p>Just seems worth while to use the natural inertia, tensions, perf and feels that scroll snap has for the snap feedback of &quot;didnt swipe far enough&quot; and the browser owned easing.</p>
<p>Can also mitigate <code>scrollTo</code> strangeness that might do <code>x</code> then <code>y</code>. </p>

        <h2 id="i-did-log-a-bug">
          I did log a bug
          <a name="i-did-log-a-bug" href="#i-did-log-a-bug">#</a>
        </h2>
       <p>I saw some performance regressions in the first 2 demo&#39;s I pulled up to test with</p>
<ol>
<li><a href="https://codepen.io/argyleink/pen/oNLaBdv">swipe prototype</a></li>
<li><a href="https://codepen.io/argyleink/pen/GRxMPGb">snap matrix</a></li>
</ol>
<p><a href="https://issues.chromium.org/u/1/issues/544635549">Filed a bug</a>. </p>
<p>I wouldn&#39;t necessarily file this as perfectly fixed, I still felt it was a bit clumsy or not enabling diagonal scrolling as smoothly as I&#39;d like. </p>
<p><strong>Overall exciting and meaningful IMO tho.</strong> </p>
<p>Your thoughts?</p>
]]></description>
            <link>https://nerdy.dev/css-scroll-axis-lock?utm_source=rss</link>
            <guid isPermaLink="true">https://nerdy.dev/css-scroll-axis-lock?utm_source=rss</guid>
            <category><![CDATA[blog]]></category>
            <category><![CDATA[css]]></category>
            <dc:creator><![CDATA[atom@argyleink]]></dc:creator>
            <pubDate>Mon, 10 Aug 2026 16:04:51 GMT</pubDate>
            <enclosure url="https://nerdy.dev/media/scroll-axis-lock-hero.jpg" length="0" type="image/jpeg"/>
            <media:thumbnail url="https://nerdy.dev/media/scroll-axis-lock-hero.jpg"/>
        </item>
        <item>
            <title><![CDATA[Ranting Devigner]]></title>
            <description><![CDATA[
          <img style="display: none" src="https://nerdy.dev/media/argyleink_blogspot.jpg" alt="A wheat paste wall and art post wall used in the background of the ranting devigner blog. This wall is from Pike Place Market in Seattle, WA, famously next to the Bubble Gum Wall. This wall was also used for a Flash website portfolio I built back then too." height="1200" width="1600" />
        <p>My <a href="https://blogspot.com">Blogspot</a> in 2011: <a href="http://rantingdevigner.blogspot.com/">Ranting Devigner</a></p>
<ul>
<li>see what <a href="http://rantingdevigner.blogspot.com/2011/03/3-environmental-design-links.html">tech articles</a> I was reading <sup>lol</sup></li>
<li>dev and <a href="http://rantingdevigner.blogspot.com/2011/02/week-6-reading.html">design rants</a> I was making <sup>also lol</sup></li>
</ul>
<p><code>Devigner = Designer + Developer</code><br>
<small>Before &quot;<b>Design Engineer</b>&quot; was coo</small></p>
]]></description>
            <link>https://nerdy.dev/ranting-devigner?utm_source=rss</link>
            <guid isPermaLink="true">https://nerdy.dev/ranting-devigner?utm_source=rss</guid>
            <category><![CDATA[note]]></category>
            <dc:creator><![CDATA[atom@argyleink]]></dc:creator>
            <pubDate>Sat, 08 Aug 2026 05:46:10 GMT</pubDate>
            <enclosure url="https://nerdy.dev/media/argyleink_blogspot.jpg" length="0" type="image/jpeg"/>
            <media:thumbnail url="https://nerdy.dev/media/argyleink_blogspot.jpg"/>
        </item>
        <item>
            <title><![CDATA[Kevin Powell Trying Out Prop For That]]></title>
            <description><![CDATA[
          <img style="display: none" src="https://nerdy.dev/media/kevin-powell-prop-for-that.jpg" alt="some title" height="720" width="1280" />
        <p><a href="https://www.youtube.com/kevinpowell">Kevin Powell</a> tries out <a href="https://prop-for-that.netlify.app">Prop For That</a>, makin it look so slick and easy 🫶</p>
<p><a href="https://www.youtube.com/watch?v=fG6ToJJ9x_Y">Watch on YouTube</a></p>
]]></description>
            <link>https://nerdy.dev/kevin-powell-trying-out-prop-for-that?utm_source=rss</link>
            <guid isPermaLink="true">https://nerdy.dev/kevin-powell-trying-out-prop-for-that?utm_source=rss</guid>
            <category><![CDATA[note]]></category>
            <category><![CDATA[css]]></category>
            <dc:creator><![CDATA[atom@argyleink]]></dc:creator>
            <pubDate>Wed, 05 Aug 2026 15:11:07 GMT</pubDate>
            <enclosure url="https://nerdy.dev/media/kevin-powell-prop-for-that.jpg" length="0" type="image/jpeg"/>
            <media:thumbnail url="https://nerdy.dev/media/kevin-powell-prop-for-that.jpg"/>
        </item>
        <item>
            <title><![CDATA[Max Value Of A CSS Length Layout Unit]]></title>
            <description><![CDATA[<p><code>33554432px</code></p>
<p>the <a href="https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/geometry/layout_unit.h;l=66;drc=23f5271fa18d22362f3c739c631ef83ac709a1c1">maximum value for a CSS length</a> in a layout context. #randomCSSfacts</p>
<p><cite><a href="https://front-end.social/@bramus/117043307620167329">Bramus on Masto</a></cite></p>
]]></description>
            <link>https://nerdy.dev/max-value-of-a-css-length-layout-unit?utm_source=rss</link>
            <guid isPermaLink="true">https://nerdy.dev/max-value-of-a-css-length-layout-unit?utm_source=rss</guid>
            <category><![CDATA[note]]></category>
            <category><![CDATA[css]]></category>
            <dc:creator><![CDATA[atom@argyleink]]></dc:creator>
            <pubDate>Wed, 05 Aug 2026 14:53:20 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[WWW Ep250 With Christina Martinez]]></title>
            <description><![CDATA[
          <img style="display: none" src="https://nerdy.dev/media/www-ep250.jpg" alt="Whiskey web and whatnot episode 250" height="2000" width="2000" />
        <p><span class="Tag">Ep #250</span><br>
<strong>Live at React Miami with Christina Martinez</strong></p>
<p><a href="https://robbiethewagner.dev">Robbie</a>, <a href="https://github.com/christina-de-martinez">Christina</a> and I chat fun coding experiments, personifying agents, OpenClaw, hot takes and a little bit of whatnot.</p>
<p>⤷ <a href="https://whiskey.fm/silly-software-sugar-snap-peas-and-coding-in-gen-z-slang-w-christina-martinez">whiskey.fm</a> · <a href="https://www.youtube.com/watch?v=UfUFYnY4u2Y">youtube</a> · <a href="https://open.spotify.com/episode/65Lv5YYJVMiCxYmCrq0Xxv">spotify</a> · <a href="https://podcasts.apple.com/us/podcast/silly-software-sugar-snap-peas-and-coding-in-gen-z/id1552776603?i=1000779321860">apple</a></p>
]]></description>
            <link>https://nerdy.dev/www-ep250-with-christina-martinez?utm_source=rss</link>
            <guid isPermaLink="true">https://nerdy.dev/www-ep250-with-christina-martinez?utm_source=rss</guid>
            <category><![CDATA[note]]></category>
            <category><![CDATA[shows]]></category>
            <category><![CDATA[ai]]></category>
            <dc:creator><![CDATA[adam@whiskey.fm]]></dc:creator>
            <pubDate>Mon, 03 Aug 2026 20:55:45 GMT</pubDate>
            <enclosure url="https://nerdy.dev/media/www-ep250.jpg" length="0" type="image/jpeg"/>
            <media:thumbnail url="https://nerdy.dev/media/www-ep250.jpg"/>
        </item>
        <item>
            <title><![CDATA[CSS Infinity Use Cases]]></title>
            <description><![CDATA[
          <img style="display: none" src="https://nerdy.dev/media/css-infinity-and-beyond.jpg" alt="Buzz light year showing flying with a title showing css infinity and beyond" height="550" width="1500" />
        <script type="module">
  import "https://cdn.jsdelivr.net/npm/baseline-status";
</script>

<p>CSS <code>infinity</code> (and <code>-infinity</code>!) solve some pretty specific problems elegantly, but can also just be plain fun to use.</p>
<p><baseline-status featureId="calc-constants"></baseline-status></p>
<p><small>Showing support for <code>infinity</code>, <code>-infinity</code>, <code>NaN</code>, <code>pi</code>, and <code>e</code></small></p>
<p>Lets spur creative CSS juices with <code>infinity</code> and follow a couple use cases.</p>

        <h2 id="basics-and-gotchas">
          Basics and gotchas
          <a name="basics-and-gotchas" href="#basics-and-gotchas">#</a>
        </h2>
       <p><code>infinity</code> and <code>-infinity</code> need to always be wrapped in <code>calc()</code>.</p>
<p> If you want it to represent a dimension, it also needs to be multiplied by a unit like:</p>
<pre class="shiki css-variables" style="background-color:#f8f9fa;padding:1em;border-radius:.5em;overflow:auto;color:#030507" tabindex="0"><code><span class="line"><span style="color:#4263eb">div</span><span style="color:#030507"> {</span></span>
<span class="line"><span style="color:inherit">  border-radius</span><span style="color:#ff1493">:</span><span style="color:#4263eb"> calc</span><span style="color:inherit">(infinity </span><span style="color:#ff1493">*</span><span style="color:inherit"> 1</span><span style="color:#ff1493">px</span><span style="color:inherit">)</span><span style="color:#030507">;</span></span>
<span class="line"><span style="color:inherit">  z-index</span><span style="color:#ff1493">:</span><span style="color:#4263eb"> calc</span><span style="color:inherit">(infinity)</span><span style="color:#030507">;</span></span>
<span class="line"><span style="color:#030507">}</span></span></code></pre>
<p>Not quite limited to <code>calc()</code> too, you can use it with other <code>calc()</code>-like scenarios like <code>clamp()</code>, <code>min()</code>, <code>max()</code>, etc, which we&#39;ll dig into a bit 🤘🏻</p>

        <h2 id="1.-circles-and-pills">
          1. Circles and Pills
          <a name="1.-circles-and-pills" href="#1.-circles-and-pills">#</a>
        </h2>
       <p>Before <code>infinity</code>, I would have used scientific notation like <code>1e9px</code> (which is <code>1000000000px</code>) to create a &quot;big enough&quot; radius for circles and pills at any size. </p>
<p>But with <code>infinity</code>..!?</p>
<pre class="shiki css-variables" style="background-color:#f8f9fa;padding:1em;border-radius:.5em;overflow:auto;color:#030507" tabindex="0"><code><span class="line"><span style="color:#4263eb">.radius-full</span><span style="color:#030507"> {</span></span>
<span class="line"><span style="color:inherit">  border-radius</span><span style="color:#ff1493">:</span><span style="color:#4263eb"> calc</span><span style="color:inherit">(infinity </span><span style="color:#ff1493">*</span><span style="color:inherit"> 1</span><span style="color:#ff1493">px</span><span style="color:inherit">)</span><span style="color:#030507">;</span></span>
<span class="line"><span style="color:#030507">}</span></span></code></pre>
<div class="radius-full-example">
  <style>
    .radius-full-example {
      width: 100px;
      aspect-ratio: 1;
      background: var(--text-2);
      box-shadow: var(--shadow-2);
      border-radius: calc(infinity * 1px);
    }
  </style>
</div>

<div class="pill-example">
  <style>
    .pill-example {
      width: 100px;
      aspect-ratio: 3/1;
      background: var(--text-2);
      box-shadow: var(--shadow-2);
      border-radius: calc(infinity * 1px);
    }
  </style>
</div>


        <h2 id="2.-perma-state">
          2. Perma-state
          <a name="2.-perma-state" href="#2.-perma-state">#</a>
        </h2>
       <p>Setting duration <code>calc(infinity * 1s)</code> makes an animation/transition so long that it appears to be frozen ⛄️</p>
<p>Hover over those boxes and the duration will be pinned to happen over infinity seconds, sticking the state for the duration of the page&#39;s life.</p>
<div class="perma-state-example">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

<style>
  .perma-state-example {
    --size: min(3vi, 3ch);
    display: grid;
    grid: var(--size) var(--size) var(--size) / auto-flow var(--size);
    gap: 5px;

    > div {
      border: 2px solid var(--text-2);
      transition: background calc(infinity * 1s) ease;

      &:hover {
        background: var(--text-2);
        transition-duration: .2s;
      }
    }
  }
</style>

<p>I like how the duration of your hover is permanently made visible too. Visible millisecond duration via background color.</p>

        <h2 id="3.-z-index">
          3. z-index
          <a name="3.-z-index" href="#3.-z-index">#</a>
        </h2>
       <p>Need to beat <code>z-index: 999999999</code> or something? </p>
<pre class="shiki css-variables" style="background-color:#f8f9fa;padding:1em;border-radius:.5em;overflow:auto;color:#030507" tabindex="0"><code><span class="line"><span style="color:#4263eb">.tippy-top-of-stacking-context</span><span style="color:#030507"> {</span></span>
<span class="line"><span style="color:inherit">  z-index</span><span style="color:#ff1493">:</span><span style="color:#4263eb"> calc</span><span style="color:inherit">(infinity)</span></span>
<span class="line"><span style="color:#030507">}</span></span></code></pre>
<p>This will max out at the largest int a browser allows: <code>2147483647</code>. Speaking of that number, you can see it by using counters like this:</p>
<pre class="shiki css-variables" style="background-color:#f8f9fa;padding:1em;border-radius:.5em;overflow:auto;color:#030507" tabindex="0"><code><span class="line"><span style="color:#4263eb">.css-max-int</span><span style="color:#030507"> {</span></span>
<span class="line"><span style="color:inherit">  counter-reset</span><span style="color:#ff1493">:</span><span style="color:inherit"> cssInt </span><span style="color:#4263eb">calc</span><span style="color:inherit">(infinity)</span><span style="color:#030507">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#030507">  &#x26;</span><span style="color:#ff1493">:</span><span style="color:inherit">:after {</span></span>
<span class="line"><span style="color:inherit">    content: </span><span style="color:#4263eb">counter</span><span style="color:inherit">(cssInt)</span><span style="color:#030507">;</span></span>
<span class="line"><span style="color:#030507">  }</span></span>
<span class="line"><span style="color:#030507">}</span></span></code></pre>
<style>
  .css-max-int {
    counter-reset: cssInt calc(infinity);

    &::after {
      font-weight: bold;
      content: " " counter(cssInt);
    }
  }
</style>

<p class="css-max-int">See!</p>


        <h2 id="4.-to-infinity-and-beyond">
          4. To infinity and beyond
          <a name="4.-to-infinity-and-beyond" href="#4.-to-infinity-and-beyond">#</a>
        </h2>
       <p>Use <code>calc(infinity * 1px)</code> to remove the floor or ceiling of a clamp.</p>
<pre class="shiki css-variables" style="background-color:#f8f9fa;padding:1em;border-radius:.5em;overflow:auto;color:#030507" tabindex="0"><code><span class="line"><span style="color:#4263eb">div</span><span style="color:#030507"> {</span></span>
<span class="line"><span style="color:inherit">  inline-size</span><span style="color:#ff1493">:</span><span style="color:#4263eb"> clamp</span><span style="color:inherit">(</span></span>
<span class="line"><span style="color:#4263eb">    calc</span><span style="color:inherit">(-infinity </span><span style="color:#ff1493">*</span><span style="color:inherit"> 1</span><span style="color:#ff1493">px</span><span style="color:inherit">)</span><span style="color:#be4bdb">,</span><span style="color:#868e96"> /* no floor */</span></span>
<span class="line"><span style="color:inherit">    100</span><span style="color:#ff1493">%</span><span style="color:#be4bdb">,</span><span style="color:inherit"> </span></span>
<span class="line"><span style="color:#4263eb">    calc</span><span style="color:inherit">(infinity </span><span style="color:#ff1493">*</span><span style="color:inherit"> 1</span><span style="color:#ff1493">px</span><span style="color:inherit">)   </span><span style="color:#868e96">/* no ceiling */</span></span>
<span class="line"><span style="color:inherit">  )</span><span style="color:#030507">;</span></span>
<span class="line"><span style="color:#030507">}</span></span></code></pre>

        <h2 id="5.-freeze-view-transitions">
          5. Freeze view transitions
          <a name="5.-freeze-view-transitions" href="#5.-freeze-view-transitions">#</a>
        </h2>
       <p>Make view transitions never complete. </p>
<pre class="shiki css-variables" style="background-color:#f8f9fa;padding:1em;border-radius:.5em;overflow:auto;color:#030507" tabindex="0"><code><span class="line"><span style="color:#030507">::view-transition-group(</span><span style="color:#4263eb">*</span><span style="color:#030507">),</span></span>
<span class="line"><span style="color:#030507">::view-transition-old(</span><span style="color:#4263eb">*</span><span style="color:#030507">),</span></span>
<span class="line"><span style="color:#030507">::view-transition-new(</span><span style="color:#4263eb">*</span><span style="color:#030507">) {</span></span>
<span class="line"><span style="color:inherit">  animation-duration</span><span style="color:#ff1493">:</span><span style="color:#4263eb"> calc</span><span style="color:inherit">(infinity </span><span style="color:#ff1493">*</span><span style="color:inherit"> 1</span><span style="color:#ff1493">s</span><span style="color:inherit">)</span><span style="color:#030507">;</span></span>
<span class="line"><span style="color:#030507">}</span></span></code></pre>
<p>The <code>::view-transition</code> tree stays in the devtools DOM, giving you an opportunity to inspect or tweak. </p>
<p>You can also freeze and inspect animations using the Animations panel in devtools.</p>

        <h2 id="6.-responsive-radius">
          6. Responsive radius
          <a name="6.-responsive-radius" href="#6.-responsive-radius">#</a>
        </h2>
       <p>Another scenario where I would have reached for making a large number with scientific notation, is a responsive border radius. </p>
<pre class="shiki css-variables" style="background-color:#f8f9fa;padding:1em;border-radius:.5em;overflow:auto;color:#030507" tabindex="0"><code><span class="line"><span style="color:#4263eb">.viewport-responsive-radius</span><span style="color:#030507"> {</span></span>
<span class="line"><span style="color:inherit">  border-radius</span><span style="color:#ff1493">:</span><span style="color:#4263eb"> clamp</span><span style="color:inherit">(0</span><span style="color:#ff1493">px</span><span style="color:#be4bdb">,</span><span style="color:inherit"> (100vi - 100</span><span style="color:#ff1493">%</span><span style="color:inherit">) * infinity</span><span style="color:#be4bdb">,</span><span style="color:inherit"> 20</span><span style="color:#ff1493">px</span><span style="color:#030507">);</span></span>
<span class="line"><span style="color:#030507">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#4263eb">.container-responsive-radius</span><span style="color:#030507"> {</span></span>
<span class="line"><span style="color:inherit">  border-radius</span><span style="color:#ff1493">:</span><span style="color:#4263eb"> clamp</span><span style="color:inherit">(0</span><span style="color:#ff1493">px</span><span style="color:#be4bdb">,</span><span style="color:inherit"> (100cqi - 100</span><span style="color:#ff1493">%</span><span style="color:inherit">) * infinity</span><span style="color:#be4bdb">,</span><span style="color:inherit"> 20</span><span style="color:#ff1493">px</span><span style="color:#030507">);</span></span>
<span class="line"><span style="color:#030507">}</span></span></code></pre>
<p>If the elements inline-size is less than 100vi, the radius will be 0. If it&#39;s greater than 100vi, the radius will be 20px.</p>
<p>There are a set of these available in <a href="https://github.com/argyleink/open-props/blob/main/src/props.borders.css#L25-L30">Open Props</a>.</p>

        <h2 id="7.-bools">
          7. Bools
          <a name="7.-bools" href="#7.-bools">#</a>
        </h2>
       <p>Clamp an arbitrary number down to exactly 0 or 1, then use it:</p>
<pre class="shiki css-variables" style="background-color:#f8f9fa;padding:1em;border-radius:.5em;overflow:auto;color:#030507" tabindex="0"><code><span class="line"><span style="color:#4263eb">.flippy</span><span style="color:#030507"> {</span></span>
<span class="line"><span style="color:#030507">  --solo</span><span style="color:#ff1493">:</span><span style="color:#4263eb"> clamp</span><span style="color:inherit">(0</span><span style="color:#be4bdb">,</span><span style="color:inherit"> (2 - sibling-count()</span><span style="color:#030507">) * </span><span style="color:inherit">infinity</span><span style="color:#030507">, 1);</span></span>
<span class="line"><span style="color:#030507">  --crowded</span><span style="color:#ff1493">:</span><span style="color:#4263eb"> clamp</span><span style="color:inherit">(0</span><span style="color:#be4bdb">,</span><span style="color:inherit"> (sibling-count() - 5</span><span style="color:#030507">) * </span><span style="color:inherit">infinity</span><span style="color:#030507">, 1);</span></span>
<span class="line"></span>
<span class="line"><span style="color:inherit">  flex-grow</span><span style="color:#ff1493">:</span><span style="color:#4263eb"> calc</span><span style="color:inherit">(1 </span><span style="color:#ff1493">-</span><span style="color:#4263eb"> var</span><span style="color:inherit">(--solo))</span><span style="color:#030507">;</span></span>
<span class="line"><span style="color:inherit">  font-size</span><span style="color:#ff1493">:</span><span style="color:#4263eb"> calc</span><span style="color:inherit">(1</span><span style="color:#ff1493">rem</span><span style="color:#ff1493"> -</span><span style="color:#4263eb"> var</span><span style="color:inherit">(--crowded) </span><span style="color:#ff1493">*</span><span style="color:inherit"> 0.125</span><span style="color:#ff1493">rem</span><span style="color:inherit">)</span><span style="color:#030507">;</span></span>
<span class="line"><span style="color:#030507">}</span></span></code></pre>
<p>One variable now can drive color, offset, opacity, gaps, whatever. </p>

        <h2 id="8.-backdrop">
          8. Backdrop
          <a name="8.-backdrop" href="#8.-backdrop">#</a>
        </h2>
       <p>You can use the spread feature of <code>box-shadow</code> to create a <strong>non-interactive</strong> backdrop:</p>
<pre class="shiki css-variables" style="background-color:#f8f9fa;padding:1em;border-radius:.5em;overflow:auto;color:#030507" tabindex="0"><code><span class="line"><span style="color:#4263eb">.backdrop</span><span style="color:#030507"> {</span></span>
<span class="line"><span style="color:inherit">  box-shadow</span><span style="color:#ff1493">:</span><span style="color:inherit"> 0 0 0 </span><span style="color:#4263eb">calc</span><span style="color:inherit">(infinity </span><span style="color:#ff1493">*</span><span style="color:inherit"> 1</span><span style="color:#ff1493">px</span><span style="color:inherit">) #0005</span><span style="color:#030507">;</span></span>
<span class="line"><span style="color:#030507">}</span></span></code></pre>
<p>Paint past the &quot;entire viewport&quot;.</p>
<q class="warning">

<p>  <strong>Warning:</strong> This actually doesn&#39;t work! </p>
<p>  <a href="https://codepen.io/argyleink/pen/VYPgWGL">Try on Codepen</a></p>
<p>  <a href="https://front-end.social/@bramus/117043307620167329">Bramus explains it here</a></p>
</q>


        <h2 id="9.-scroll-trigger">
          9. Scroll Trigger
          <a name="9.-scroll-trigger" href="#9.-scroll-trigger">#</a>
        </h2>
       <p>Trigger a scroll driven transition in, and never transition out.</p>
<pre class="shiki css-variables" style="background-color:#f8f9fa;padding:1em;border-radius:.5em;overflow:auto;color:#030507" tabindex="0"><code><span class="line"><span style="color:#4263eb">.nav-title</span><span style="color:#030507"> {</span></span>
<span class="line"><span style="color:inherit">  timeline-trigger-activation-range-end</span><span style="color:#ff1493">:</span><span style="color:#4263eb"> calc</span><span style="color:inherit">(infinity </span><span style="color:#ff1493">*</span><span style="color:inherit"> 1</span><span style="color:#ff1493">px</span><span style="color:inherit">)</span><span style="color:#030507">;</span></span>
<span class="line"><span style="color:#030507">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#4263eb">.product-title</span><span style="color:#030507"> {</span></span>
<span class="line"><span style="color:inherit">  animation</span><span style="color:#ff1493">:</span><span style="color:inherit"> slide-and-fade 150</span><span style="color:#ff1493">ms</span><span style="color:inherit"> ease both</span><span style="color:#030507">;</span></span>
<span class="line"><span style="color:inherit">  animation-trigger</span><span style="color:#ff1493">:</span><span style="color:inherit"> play-forwards play-backwards</span><span style="color:#030507">;</span></span>
<span class="line"><span style="color:#030507">}</span></span></code></pre>
<p>Though you&#39;ll see in the demo I use <code>scroll 100%</code> which is a specced way that feels closer to the intent I was going for, in that I wanted the range end to be the end of the scroll area.</p>
<p>Try it:</p>
<p>
          <iframe 
            class="codepen-embed" 
            scrolling="no" 
            title="null" 
            src="https://codepen.io/argyleink/embed/preview/BypVjyj?default-tab=result&editable=true&theme-id=43079" 
            frameborder="no" 
            loading="lazy" 
            allowtransparency="true" 
            allowfullscreen="true"
          >
            See the Pen <a href="https://codepen.io/argyleink/embed/preview/BypVjyj"> by Adam Argyle (<a href="https://codepen.io/argyleink">@argyleink</a>)
            on <a href="https://codepen.io">CodePen</a>.
          </iframe>
        </p>
<p>Also, just for funsies to share, here&#39;s the scroll driven version of the same navbar effect. Doesn&#39;t use infinity, but fun to try and compare scroll-triggered vs scroll-driven animation.</p>
<p>
          <iframe 
            class="codepen-embed" 
            scrolling="no" 
            title="null" 
            src="https://codepen.io/argyleink/embed/preview/zxNaGVK?default-tab=result&editable=true&theme-id=43079" 
            frameborder="no" 
            loading="lazy" 
            allowtransparency="true" 
            allowfullscreen="true"
          >
            See the Pen <a href="https://codepen.io/argyleink/embed/preview/zxNaGVK"> by Adam Argyle (<a href="https://codepen.io/argyleink">@argyleink</a>)
            on <a href="https://codepen.io">CodePen</a>.
          </iframe>
        </p>

        <h2 id="thats-all">
          Thats all
          <a name="thats-all" href="#thats-all">#</a>
        </h2>
       <p>Hope you found that interesting! </p>
<p>Comment with your own creative uses of <code>infinity</code>?</p>
]]></description>
            <link>https://nerdy.dev/css-infinity-use-cases?utm_source=rss</link>
            <guid isPermaLink="true">https://nerdy.dev/css-infinity-use-cases?utm_source=rss</guid>
            <category><![CDATA[blog]]></category>
            <category><![CDATA[css]]></category>
            <dc:creator><![CDATA[atom@argyleink]]></dc:creator>
            <pubDate>Sat, 25 Jul 2026 19:57:08 GMT</pubDate>
            <enclosure url="https://nerdy.dev/media/css-infinity-and-beyond.jpg" length="0" type="image/jpeg"/>
            <media:thumbnail url="https://nerdy.dev/media/css-infinity-and-beyond.jpg"/>
        </item>
        <item>
            <title><![CDATA[WWW Ep249 With Joel Hooks]]></title>
            <description><![CDATA[
          <img style="display: none" src="https://nerdy.dev/media/www-ep249.jpg" alt="Whiskey web and whatnot episode 247" height="2000" width="2000" />
        <p><span class="Tag">Ep #249</span><br>
<strong>Live at React Miami with Joel Hooks</strong></p>
<p><a href="https://robbiethewagner.dev">Robbie</a>, <a href="https://joelhooks.com/">Joel</a> and I chat about <a href="https://pi.dev/">Pi</a>, OpenClaw, <a href="https://joelclaw.com/">JoelClaw</a>, YOLO mode, AGI, custom harnesses and a little bit of whatnot.</p>
<p>⤷ <a href="https://whiskey.fm/pi-extensions-yolo-mode-and-building-your-own-personal-claw-w-joel-hooks">whiskey.fm</a> · <a href="https://www.youtube.com/watch?v=WvqcvfGqVPY">youtube</a> · <a href="https://open.spotify.com/episode/0tdY7j7RprBQx2yCCDbllk">spotify</a> · <a href="https://podcasts.apple.com/us/podcast/pi-extensions-yolo-mode-and-building-your-own/id1552776603?i=1000777993502">apple</a></p>
]]></description>
            <link>https://nerdy.dev/www-ep249-with-joel-hooks?utm_source=rss</link>
            <guid isPermaLink="true">https://nerdy.dev/www-ep249-with-joel-hooks?utm_source=rss</guid>
            <category><![CDATA[note]]></category>
            <category><![CDATA[shows]]></category>
            <category><![CDATA[ai]]></category>
            <dc:creator><![CDATA[adam@whiskey.fm]]></dc:creator>
            <pubDate>Thu, 23 Jul 2026 19:57:08 GMT</pubDate>
            <enclosure url="https://nerdy.dev/media/www-ep249.jpg" length="0" type="image/jpeg"/>
            <media:thumbnail url="https://nerdy.dev/media/www-ep249.jpg"/>
        </item>
        <item>
            <title><![CDATA[100 Ways To Center A Div]]></title>
            <description><![CDATA[<p><a href="https://css-generators.com/center">100 ways to center a div</a><br>
<cite>by <a href="https://github.com/Afif13/">Temani Afif</a></cite></p>
]]></description>
            <link>https://nerdy.dev/100-ways-to-center-a-div?utm_source=rss</link>
            <guid isPermaLink="true">https://nerdy.dev/100-ways-to-center-a-div?utm_source=rss</guid>
            <category><![CDATA[note]]></category>
            <category><![CDATA[css]]></category>
            <dc:creator><![CDATA[atom@argyleink]]></dc:creator>
            <pubDate>Tue, 21 Jul 2026 02:46:06 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[WWW Ep248 Live At React Miami With Guests Jason Lengstorf And Kent C Dodds And Tanner Linsley And Francesco Cuilla]]></title>
            <description><![CDATA[
          <img style="display: none" src="https://nerdy.dev/media/www-ep248.jpg" alt="Whiskey web and whatnot episode 248" height="2000" width="2000" />
        <p><span class="Tag">Ep #248</span><br>
<strong>Live at React Miami with guests <a href="https://jason.energy/">Jason Lengstorf</a>, <a href="https://kentcdodds.com/">Kent C. Dodds</a>, <a href="https://tannerlinsley.com/about">Tanner Linsley</a> and <a href="https://francescociulla.com/">Francesco Ciulla</a></strong></p>
<p><a href="https://robbiethewagner.dev">Robbie</a> and I chat with <strong>4 guests in 1 episode</strong>! </p>
<p>Topics span things like Lambo&#39;s, MCP vs <a href="https://openclaw.ai/">OpenClaw</a>, agents building agents, polymorphic UI libraries, <a href="https://github.com/github/spec-kit/blob/main/spec-driven.md">SDD</a> + state machines, how <a href="https://en.wikipedia.org/wiki/Prolog">Prolog</a> is the most hated programming language, and whatnot.</p>
<p>⤷ <a href="https://whiskey.fm/dark-factories-polymorphic-ui-and-why-developers-still-matter">whiskey.fm</a> · <a href="https://www.youtube.com/watch?v=ZZvZ4rl3p_o">youtube</a> · <a href="https://open.spotify.com/episode/21GUwCvDA8zBvp1zjIMpZw">spotify</a> · <a href="https://podcasts.apple.com/us/podcast/dark-factories-polymorphic-ui-and-why-developers/id1552776603?i=1000774155984">apple</a></p>
<p><small>Presented by <a href="https://www.gitkraken.com/lp/whiskeyfm">GitKraken</a> and <a href="https://clerk.com/">Clerk</a></small></p>
]]></description>
            <link>https://nerdy.dev/www-ep248-live-at-React-Miami-with-guests-Jason-Lengstorf-and-Kent-C-Dodds-and-Tanner-Linsley-and-Francesco-Cuilla?utm_source=rss</link>
            <guid isPermaLink="true">https://nerdy.dev/www-ep248-live-at-React-Miami-with-guests-Jason-Lengstorf-and-Kent-C-Dodds-and-Tanner-Linsley-and-Francesco-Cuilla?utm_source=rss</guid>
            <category><![CDATA[note]]></category>
            <category><![CDATA[shows]]></category>
            <category><![CDATA[ai]]></category>
            <dc:creator><![CDATA[adam@whiskey.fm]]></dc:creator>
            <pubDate>Thu, 25 Jun 2026 21:58:32 GMT</pubDate>
            <enclosure url="https://nerdy.dev/media/www-ep248.jpg" length="0" type="image/jpeg"/>
            <media:thumbnail url="https://nerdy.dev/media/www-ep248.jpg"/>
        </item>
    </channel>
</rss>