<?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>Sat, 08 Aug 2026 07:05:05 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[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>
        <item>
            <title><![CDATA[WWW Ep247 Live At React Miami With Ken Wheeler]]></title>
            <description><![CDATA[
          <img style="display: none" src="https://nerdy.dev/media/www-ep247.jpg" alt="Whiskey web and whatnot episode 247" height="2000" width="2000" />
        <p><span class="Tag">Ep #247</span><br>
<strong>Live at React Miami with guest <a href="https://x.com/kenwheeler">Ken Wheeler</a></strong></p>
<p><a href="https://robbiethewagner.dev">Robbie</a>, Ken and I chat about proxies, pranks, survival bags, agent swarms and Ramon the 420 IQ Gorilla.</p>
<p>⤷ <a href="https://whiskey.fm/proxies-petty-pranks-and-ramon-the-420-iq-gorilla-w-ken-wheeler">whiskey.fm</a> · <a href="https://www.youtube.com/watch?v=HLRkh-dbFAk">youtube</a> · <a href="https://open.spotify.com/episode/5iqgL3LWIlZgnBDgrmCodZ">spotify</a> · <a href="https://podcasts.apple.com/us/podcast/proxies-petty-pranks-and-ramon-the-420-iq-gorilla-w/id1552776603?i=1000773454709">apple</a></p>
]]></description>
            <link>https://nerdy.dev/www-ep247-live-at-React-Miami-with-Ken-Wheeler?utm_source=rss</link>
            <guid isPermaLink="true">https://nerdy.dev/www-ep247-live-at-React-Miami-with-Ken-Wheeler?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>Sat, 20 Jun 2026 06:38:14 GMT</pubDate>
            <enclosure url="https://nerdy.dev/media/www-ep247.jpg" length="0" type="image/jpeg"/>
            <media:thumbnail url="https://nerdy.dev/media/www-ep247.jpg"/>
        </item>
        <item>
            <title><![CDATA[Prop For That]]></title>
            <description><![CDATA[
          <img style="display: none" src="https://nerdy.dev/media/prop-for-that.jpg" alt="A screenshot of the prop-for-that kitchen sink homepage hero area" height="626" width="1600" />
        <script type="module">
  import "https://cdn.jsdelivr.net/npm/baseline-status";
</script>

<p>Announcing <a href="https://prop-for-that.netlify.app/">Prop For That</a>, a JS library that backfills what CSS doesn&#39;t provide us yet (and maybe never will). </p>
<p>I&#39;m done waiting for CSS to catch up to all the valuable information JS knows and done watching folks write the same little JS to just write a custom property to a component.</p>
<q class="info">

<p><a href="https://prop-for-that.netlify.app">demo</a> · <a href="https://prop-for-that.netlify.app/docsite/">docs</a> · <a href="https://www.npmjs.com/package/prop-for-that">npm</a></p>
</q>

<p><a href="https://codepen.io/argyleink/pen/XJpjNNa">Here&#39;s a basic example</a> taking the value from a range slider to draw a nice gradient that fills up the slider:</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:#ff1493">import</span><span style="color:inherit"> 'prop-for-that/auto'</span></span>
<span class="line"><span style="color:#868e96">// or import 'https://esm.sh/prop-for-that/auto'</span></span></code></pre>
<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">&#x3C;</span><span style="color:#4263eb">input</span><span style="color:#ff1493"> type</span><span style="color:#030507">=</span><span style="color:#4263eb">"range"</span><span style="color:#ff1493"> data-props-for</span><span style="color:#030507">=</span><span style="color:#4263eb">"range"</span><span style="color:#ff1493"> min</span><span style="color:#030507">=</span><span style="color:#4263eb">"0"</span><span style="color:#ff1493"> max</span><span style="color:#030507">=</span><span style="color:#4263eb">"100"</span><span style="color:#ff1493"> value</span><span style="color:#030507">=</span><span style="color:#4263eb">"40"</span><span style="color:#030507"> /></span></span></code></pre>
<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">input</span><span style="color:#030507">[</span><span style="color:#4263eb">type</span><span style="color:#ff1493">=</span><span style="color:#4263eb">"range"</span><span style="color:#030507">] {</span></span>
<span class="line"><span style="color:inherit">  background</span><span style="color:#ff1493">:</span><span style="color:#4263eb"> linear-gradient</span><span style="color:inherit">(</span></span>
<span class="line"><span style="color:#ff1493">    to</span><span style="color:inherit"> right </span><span style="color:#ff1493">in</span><span style="color:inherit"> oklab</span><span style="color:#be4bdb">,</span></span>
<span class="line"><span style="color:#4263eb">    var</span><span style="color:inherit">(--theme) </span><span style="color:#4263eb">calc</span><span style="color:inherit">(</span><span style="color:#4263eb">var</span><span style="color:inherit">(--live-value-pct) </span><span style="color:#ff1493">*</span><span style="color:inherit"> 100</span><span style="color:#ff1493">%</span><span style="color:inherit">)</span><span style="color:#be4bdb">,</span></span>
<span class="line"><span style="color:#4263eb">    var</span><span style="color:inherit">(--track) 0</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>
<p><a href="https://codepen.io/argyleink/pen/XJpjNNa">codepen</a> · <a href="https://prop-for-that.netlify.app/docsite/demos/range/">docs example</a> · <a href="https://codepen.io/collection/WQEKJG">codepen collection</a></p>

        <h2 id="why?">
          Why?
          <a name="why?" href="#why?">#</a>
        </h2>
       <p>It&#39;s <strong>super common</strong> to need a few lines of JS for a simple thing like:</p>
<ul>
<li>the value of the color input</li>
<li>the mouse pointer position</li>
<li>the size of the scrollbar</li>
<li>the colors present in an image or video</li>
<li>the battery level</li>
<li>an element&#39;s visibility</li>
<li>etc</li>
</ul>
<p>With <a href="https://prop-for-that.netlify.app/">Prop For That</a>, you just declaratively specify on any element the props you want, and live props show up. </p>
<p><q>There&#39;s an imperitive API too, but the data attribute path is the slickest</q></p>
<p>Everything is a plugin that loads only if you need it too, ultimately putting you right where you wanted to be: <strong>creating something sick in CSS using dynamic information</strong> without wiring up some dorky JS.</p>

        <h2 id="what-kind-of-props?">
          What kind of props?
          <a name="what-kind-of-props?" href="#what-kind-of-props?">#</a>
        </h2>
       <p>My <a href="/contextualism-talk-at-CSS-Day-2026">talk at CSS Day</a> was an enumeration of all the ways CSS can adapt to users, contexts, pages, etc… which made me hyper aware of all the ways CSS couldn&#39;t adapt without JS. </p>
<p>Here&#39;s a flat list of all the <strong>live props</strong> currently supported by the library:</p>
<ol>
<li>Pointer x/y in the window</li>
<li>Pointer x/y inside/local to an element</li>
<li>Viewport pixel height/width values</li>
<li>Visual viewport information</li>
<li>Element size information</li>
<li>Element visibility</li>
<li>Scrollbar and thin scrollbar sizes</li>
<li>Input element values </li>
<li>Input element dirty, touched, pristine, etc</li>
<li>Select element value, index, count, etc</li>
<li>Colors from an image or gradient (average, accent, light, dark, etc)</li>
<li>Colors occuring in a video</li>
<li>Video progress</li>
<li>Image loaded or broken + natural h/w</li>
<li>Clock time</li>
<li>FPS</li>
<li>Online/offline status</li>
<li>Page focused/visible</li>
<li>Scroll velocity</li>
<li>Accelerometer and device tilt/orientation</li>
<li>Geolocation</li>
<li>DPR, CPU cores, memory</li>
<li>Page navigation type (reload, back, etc)</li>
</ol>
<p>And a few Chromium only props:</p>
<ol>
<li>Network status like type, speed, save data, etc</li>
<li>Battery status</li>
<li>CPU pressure</li>
</ol>

        <h2 id="style-queries">
          Style Queries
          <a name="style-queries" href="#style-queries">#</a>
        </h2>
       <p>Style Queries being in all major browsers marks an important milestone for CSS, and made this library much more viable. </p>
<p><baseline-status featureId="container-style-queries"></baseline-status></p>
<p>Using Prop For That with <a href="https://una.im/style-queries/">Style Queries</a> looks 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:#ff1493">import</span><span style="color:inherit"> 'https://esm.sh/prop-for-that/auto'</span></span></code></pre>
<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">&#x3C;</span><span style="color:#4263eb">form</span><span style="color:#ff1493"> data-props-for</span><span style="color:#030507">=</span><span style="color:#4263eb">"form-state"</span><span style="color:#030507">></span></span>
<span class="line"><span style="color:#030507">  &#x3C;</span><span style="color:#4263eb">input</span><span style="color:#ff1493"> name</span><span style="color:#030507">=</span><span style="color:#4263eb">"name"</span><span style="color:#030507"> required></span></span>
<span class="line"><span style="color:#030507">  &#x3C;</span><span style="color:#4263eb">input</span><span style="color:#ff1493"> name</span><span style="color:#030507">=</span><span style="color:#4263eb">"email"</span><span style="color:#ff1493"> type</span><span style="color:#030507">=</span><span style="color:#4263eb">"email"</span><span style="color:#030507"> required></span></span>
<span class="line"><span style="color:#030507">  &#x3C;</span><span style="color:#4263eb">button</span><span style="color:#ff1493"> type</span><span style="color:#030507">=</span><span style="color:#4263eb">"submit"</span><span style="color:#030507">>Save&#x3C;/</span><span style="color:#4263eb">button</span><span style="color:#030507">></span></span>
<span class="line"><span style="color:#030507">&#x3C;/</span><span style="color:#4263eb">form</span><span style="color:#030507">></span></span></code></pre>
<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:#ff1493">@container</span><span style="color:#030507"> style(--live-all-valid: 1) {</span></span>
<span class="line"><span style="color:#030507">  …</span></span>
<span class="line"><span style="color:#030507">}</span></span></code></pre>

        <h2 id="bye-noise">
          Bye noise
          <a name="bye-noise" href="#bye-noise">#</a>
        </h2>
       <p><strong>Import, add attribute(s), have CSS fun.</strong></p>
<p>Go make cool shit and share it with me 🤘🏻💀</p>
]]></description>
            <link>https://nerdy.dev/prop-for-that?utm_source=rss</link>
            <guid isPermaLink="true">https://nerdy.dev/prop-for-that?utm_source=rss</guid>
            <category><![CDATA[blog]]></category>
            <category><![CDATA[oss]]></category>
            <category><![CDATA[js]]></category>
            <category><![CDATA[css]]></category>
            <dc:creator><![CDATA[atom@argyleink]]></dc:creator>
            <pubDate>Sat, 13 Jun 2026 22:58:10 GMT</pubDate>
            <enclosure url="https://nerdy.dev/media/prop-for-that.jpg" length="0" type="image/jpeg"/>
            <media:thumbnail url="https://nerdy.dev/media/prop-for-that.jpg"/>
        </item>
    </channel>
</rss>