<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Miguel Batalha — Writing</title>
    <link>https://miguelbatalha.com/blog/</link>
    <description>Notes on interface design, motion, and the details that make interfaces hold up.</description>
    <item>
      <title>Transform, Opacity, and the Exceptions</title>
      <link>https://miguelbatalha.com/blog/motion-foundations/</link>
      <guid>https://miguelbatalha.com/blog/motion-foundations/</guid>
      <pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate>
      <description>Why the one rule of web animation works, a 3D coin and orbit that stay on the cheap path, and the one place I break it on purpose.</description>
    </item>
    <item>
      <title>Springs, Velocity, and Letting Go</title>
      <link>https://miguelbatalha.com/blog/springs-and-gestures/</link>
      <guid>https://miguelbatalha.com/blog/springs-and-gestures/</guid>
      <pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate>
      <description>What a spring gives you that a duration can't: a carousel that keeps your fling, a meter that reacts, and a dialog that resizes to fit.</description>
    </item>
    <item>
      <title>Animating Between Layouts</title>
      <link>https://miguelbatalha.com/blog/layout-animations/</link>
      <guid>https://miguelbatalha.com/blog/layout-animations/</guid>
      <pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate>
      <description>How layout and layoutId animations work, what they cost, and the details that make a tab bar, a reorder and a card-to-dialog feel continuous.</description>
    </item>
    <item>
      <title>Designing for the Pointer</title>
      <link>https://miguelbatalha.com/blog/designing-for-the-pointer/</link>
      <guid>https://miguelbatalha.com/blog/designing-for-the-pointer/</guid>
      <pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate>
      <description>Cursor-driven effects from someone who works on an aim trainer, and what each one does when there's no cursor at all.</description>
    </item>
    <item>
      <title>CSS Gradients, Revisited</title>
      <link>https://miguelbatalha.com/blog/css-gradients/</link>
      <guid>https://miguelbatalha.com/blog/css-gradients/</guid>
      <pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate>
      <description>Colour-space interpolation, animated borders with @property, and layered backgrounds, with demos that show the difference.</description>
    </item>
    <item>
      <title>The Boring Components</title>
      <link>https://miguelbatalha.com/blog/the-boring-components/</link>
      <guid>https://miguelbatalha.com/blog/the-boring-components/</guid>
      <pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate>
      <description>Buttons, inputs, switches, tabs, toasts and icons: the parts that ship in every feature, and the details that make them hold up.</description>
    </item>
  </channel>
</rss>
