<?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"><channel><title><![CDATA[Akshit's Space]]></title><description><![CDATA[Get to know my taste, my thought process and little tips on motion.]]></description><link>https://akshit-agrawal.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/6aa0fc13d0e4b176ef4e25ec/60742393-9488-41f7-811e-ed820ca2c77b.png</url><title>Akshit&apos;s Space</title><link>https://akshit-agrawal.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 22:20:26 GMT</lastBuildDate><atom:link href="https://akshit-agrawal.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[The Last 10% of Motion]]></title><description><![CDATA[Getting an animation to work is rarely the hard part.
You can make something move, add a spring, throw in a stagger, and call it done. But there’s a point where the animation technically works and sti]]></description><link>https://akshit-agrawal.hashnode.dev/the-last-10-of-motion</link><guid isPermaLink="true">https://akshit-agrawal.hashnode.dev/the-last-10-of-motion</guid><dc:creator><![CDATA[Akshit Agrawal]]></dc:creator><pubDate>Thu, 17 Sep 2026 09:51:32 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6aa0fc13d0e4b176ef4e25ec/60ed679d-8e4d-40f3-a04c-0b3130f23b7a.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Getting an animation to work is rarely the hard part.</p>
<p>You can make something move, add a spring, throw in a stagger, and call it done. But there’s a point where the animation technically works and still feels slightly wrong.</p>
<p>That gap is where polish lives.</p>
<h2>Small movement, big difference</h2>
<p>Static interfaces can sometimes feel strangely lifeless.</p>
<p>Not everything needs to move, but adding tiny amounts of movement to an otherwise static scene can make it feel much more natural.</p>
<p>A small vertical drift. A background that slowly shifts. Two elements moving at slightly different speeds.</p>
<p>The trick is not to make the animation noticeable.</p>
<p>If I can immediately tell you’re animating something, it’s probably doing too much.</p>
<p>I like motion that you only really notice when you compare it to the static version.</p>
<h2>Don't react to everything</h2>
<p>Another thing that makes interfaces feel cheap is instant feedback for every possible interaction.</p>
<p>Move your cursor across a bunch of elements and suddenly everything starts jumping, scaling, or changing.</p>
<p>The browser is responding perfectly.</p>
<p>The experience isn't.</p>
<p>Sometimes the best animation decision is adding a tiny bit of hesitation.</p>
<p>A small delay can separate an intentional interaction from an accidental one. This is especially useful for hover interactions where the cursor might just pass over something.</p>
<p>It's such a small change that users probably won't consciously notice it.</p>
<p>That's usually a good sign.</p>
<h2>Touch changes the rules</h2>
<p>A lot of interactions are designed around the assumption that a pointer exists.</p>
<p>Hover is the obvious example.</p>
<p>On desktop, you can hover something to reveal information and then click it to continue. On a phone, those two states don't naturally exist.</p>
<p>So instead of trying to recreate desktop behavior on mobile, the interaction itself sometimes needs to change.</p>
<p>Maybe the first tap reveals something and the next tap performs the action.</p>
<p>The important part isn't the exact pattern. It's recognizing that <strong>the input device is part of the interaction design</strong>.</p>
<p>Mobile shouldn't just be the desktop version with a smaller viewport.</p>
<h2>Motion also has to know when to stop</h2>
<p>Reduced motion is another part of polish that often gets treated as a technical requirement instead of a design decision.</p>
<p>If someone has reduced motion enabled, the interface shouldn't simply become a broken version of the normal experience.</p>
<p>For decorative animation, a completely static state can sometimes make more sense.</p>
<p>The goal isn't to preserve as much animation as possible.</p>
<p>The goal is to preserve the experience while respecting the user's preference.</p>
<h2>Then comes performance</h2>
<p>This is where all the nice motion can fall apart.</p>
<p>One animated element is easy.</p>
<p>A whole illustration with dozens of moving SVG elements, filters, transforms and interaction states is a different story.</p>
<p>Everything might look perfectly smooth individually, but once multiple animations run together, dropped frames start becoming noticeable.</p>
<p>And that's when animation stops feeling premium very quickly.</p>
<p>Performance shouldn't mean blindly adding things like <code>will-change</code> everywhere.</p>
<p>Build it first. Find what's actually expensive. Then optimize that part.</p>
<p>Good motion has to survive outside the perfect desktop demo.</p>
<h2>Polish isn't another effect</h2>
<p>I think this is the part that's easy to miss.</p>
<p>When an interaction feels polished, you usually can't point at one specific thing and say <em>that's why</em>.</p>
<p>It's the timing.</p>
<p>The restraint.</p>
<p>The way it behaves when you move quickly.</p>
<p>The way it changes on a phone.</p>
<p>The fact that it doesn't fight reduced-motion preferences.</p>
<p>The fact that it still feels smooth when everything else on the screen is moving.</p>
<p>None of these are huge features.</p>
<p>They're just decisions.</p>
<p>And that's probably what polish is: <strong>a collection of small decisions that make the obvious version feel a little less obvious.</strong></p>
]]></content:encoded></item><item><title><![CDATA[Interfaces That Don't Feel Like Screens]]></title><description><![CDATA[I've been thinking about where UI animation goes next.
For a long time, we treated transitions as something that happens between states.
You click a button → the old thing disappears → the new thing a]]></description><link>https://akshit-agrawal.hashnode.dev/interfaces-that-don-t-feel-like-screens</link><guid isPermaLink="true">https://akshit-agrawal.hashnode.dev/interfaces-that-don-t-feel-like-screens</guid><dc:creator><![CDATA[Akshit Agrawal]]></dc:creator><pubDate>Mon, 14 Sep 2026 10:43:17 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6aa0fc13d0e4b176ef4e25ec/a2d3aef1-68b6-4ed6-8e76-3d0dc0e44512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I've been thinking about where UI animation goes next.</p>
<p>For a long time, we treated transitions as something that happens <strong>between states</strong>.</p>
<p>You click a button → the old thing disappears → the new thing appears.</p>
<p>It works, but there's something slightly unnatural about it.</p>
<p>The interface was already showing you something. Then, for no particular reason, it threw that away and showed you something else.</p>
<p>I think the more interesting direction is to stop thinking in terms of separate states altogether.</p>
<p>Instead, <strong>let things become other things.</strong></p>
<p>A button can become a loader.</p>
<p>A card can expand into a page.</p>
<p>An illustration can turn into an input.</p>
<p>A small chart can grow into a detailed view.</p>
<p>Nothing really disappears. It just changes.</p>
<h2>It's a small difference, but it feels huge</h2>
<p>This is probably why some interfaces feel unusually good even when you can't immediately explain why.</p>
<p>You always have a sense of where something came from.</p>
<p>If a button turns into a success state, you understand the relationship between the two. If a list item expands into a detail view, your brain doesn't have to figure out where the new screen came from.</p>
<p>The interface is basically telling you:</p>
<blockquote>
<p><em>This is the same thing, just in a different state.</em></p>
</blockquote>
<p>That little bit of continuity makes the UI feel much more natural.</p>
<p>Text is especially interesting here.</p>
<p>If a button changes from <code>Compile</code> to <code>Compiled</code>, you could just swap the text.</p>
<p>Or you could actually let one become the other.</p>
<p>It's a tiny interaction, but now you're watching a state change happen rather than being told that it happened.</p>
<h2>It also messes with perceived speed</h2>
<p>There's another reason I like this approach: <strong>it can make things feel faster without actually making them faster.</strong></p>
<p>A static transition makes you wait for the next thing.</p>
<p>A continuous transition gives you something to follow.</p>
<p>Even if both take roughly the same amount of time, one feels more immediate because there's no visual break.</p>
<p>This is something I've become increasingly interested in as a design engineer.</p>
<p>Performance isn't only about milliseconds.</p>
<p>It's also about what those milliseconds <em>feel like</em>.</p>
<h2>The catch</h2>
<p>This stuff is hard.</p>
<p>Really hard.</p>
<p>You can't just bolt a fancy animation onto an existing interface and expect it to work. Often, the UI itself has to be designed around the transition.</p>
<p>Where an element sits, what shape it has, what information it contains — all of those decisions affect whether it can smoothly become something else later.</p>
<p>And then there's the engineering side.</p>
<p>On the web, building these kinds of transitions cleanly can take a ridiculous amount of time for something that might only last half a second.</p>
<p>That's probably why we don't see them everywhere.</p>
<p>But I think we'll see more of them.</p>
<p>Not because every interface needs to become an animation showcase, but because <strong>the best interfaces won't feel like collections of screens anymore.</strong></p>
<p>They'll feel like one continuous space that happens to change.</p>
<p>That's the part I'm excited about.</p>
]]></content:encoded></item><item><title><![CDATA[280 km for a View]]></title><description><![CDATA[Didn't sleep.
At 5:30 AM, instead of making the sensible decision to go to bed, I put on my riding gear and left for Vathalmalai.
The plan was fairly simple:
Ride 140 km → reach the hills → take some ]]></description><link>https://akshit-agrawal.hashnode.dev/280-km-for-a-view</link><guid isPermaLink="true">https://akshit-agrawal.hashnode.dev/280-km-for-a-view</guid><dc:creator><![CDATA[Akshit Agrawal]]></dc:creator><pubDate>Sun, 13 Sep 2026 13:18:31 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6aa0fc13d0e4b176ef4e25ec/188dc148-3692-4a76-b115-ec9e949eada0.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Didn't sleep.</p>
<p>At 5:30 AM, instead of making the sensible decision to go to bed, I put on my riding gear and left for Vathalmalai.</p>
<p>The plan was fairly simple:</p>
<p>Ride 140 km → reach the hills → take some photos → ride 140 km back.</p>
<p>That's it.</p>
<p>No group. No itinerary. No particularly good reason to be doing this while sleep deprived.</p>
<h2>The ride</h2>
<p>The first few hours were actually pretty uneventful.</p>
<p>Which, for a motorcycle ride, is kind of the point.</p>
<p>Once you're out of Bangalore, the roads start opening up and the ride gets significantly better. Fewer cars, more greenery, and eventually the kind of roads where you stop checking how many kilometres are left.</p>
<p>The S1K probably wasn't the most practical choice for this ride, but I wasn't exactly going to take the sensible bike.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6aa0fc13d0e4b176ef4e25ec/f78b3e13-1865-4a76-9871-25502cf4e5b5.jpg" alt="" style="display:block;margin:0 auto" />

<h2>Vathalmalai</h2>
<p>The last stretch was easily my favourite part.</p>
<p>The landscape changes pretty quickly as you get higher, and suddenly you're surrounded by hills and greenery instead of the usual highway scenery.</p>
<p>I parked the bike, took the helmet off, walked around for a bit and took some photos.</p>
<p>The funny thing about going somewhere specifically for the view is that once you're actually there, there's not much to do.</p>
<p>So I stood around.</p>
<p>Looked at the view.</p>
<p>Took more photos.</p>
<p>Checked the bike.</p>
<p>Looked at the view again.</p>
<p>Perfect.</p>
<h2>280 km later</h2>
<p>The ride back was considerably less exciting.</p>
<p>At some point, your brain enters that weird long-ride mode where you're basically operating the motorcycle on autopilot.</p>
<p>You stop thinking about the destination and start thinking about completely irrelevant things.</p>
<p>What should I eat?</p>
<p>How much fuel is left?</p>
<p>Why is that car driving like that?</p>
<p>Should I have taken the other road?</p>
<p>How many kilometres?</p>
<p><em>Checks.</em></p>
<p>Still 73 km.</p>
<p>Fantastic.</p>
<p>I eventually got home at 10:05 PM.</p>
<p><strong>280 km in total. Zero sleep. One very questionable decision.</strong></p>
<p>Would I do it again?</p>
<p>Obviously.</p>
]]></content:encoded></item><item><title><![CDATA[The Little Things Make Motion Feel Good]]></title><description><![CDATA[Getting an animation to work is one thing.
Getting it to feel right is another.
I've started noticing that the difference between a good animation and a great one usually isn't some complicated techni]]></description><link>https://akshit-agrawal.hashnode.dev/the-little-things-make-motion-feel-good</link><guid isPermaLink="true">https://akshit-agrawal.hashnode.dev/the-little-things-make-motion-feel-good</guid><dc:creator><![CDATA[Akshit Agrawal]]></dc:creator><pubDate>Fri, 11 Sep 2026 11:58:30 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6aa0fc13d0e4b176ef4e25ec/2757e293-ab3d-43b5-b02d-08cc165d746c.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Getting an animation to work is one thing.</p>
<p>Getting it to <em>feel right</em> is another.</p>
<p>I've started noticing that the difference between a good animation and a great one usually isn't some complicated technique. It's often a collection of tiny decisions that are easy to overlook.</p>
<h2>Motion has a personality</h2>
<p>We already use typography, color, spacing, and imagery to give products a personality.</p>
<p>Motion should do the same.</p>
<p>A fast interface feels different from a slow one. A sharp ease feels different from a soft one. Something that appears instantly feels completely different from something that takes its time arriving.</p>
<p>That's why I don't think there is a single "correct" animation.</p>
<p>The motion should match what you're trying to communicate.</p>
<p>A product built around speed probably shouldn't make me wait for every interaction to finish. A premium brand might benefit from giving things a little more room to breathe.</p>
<p>The important part is <strong>consistency</strong>.</p>
<p>If the brand feels calm but every interaction aggressively snaps into place, something feels off.</p>
<h2>Good motion has rhythm</h2>
<p>Another detail I really like is <strong>orchestration</strong>.</p>
<p>When multiple things enter the screen at exactly the same time, they often feel like a group of unrelated elements being switched on.</p>
<p>Give them a tiny bit of sequencing, and suddenly they feel connected.</p>
<p>It's almost like a wave moving through the interface.</p>
<p>The tricky part is that there isn't really a formula for this. A 50ms delay might feel perfect in one interaction and completely wrong in another.</p>
<p>You have to watch it.</p>
<p>Change it.</p>
<p>Replay it.</p>
<p>Change it again.</p>
<p>That's the fun part.</p>
<h2>Sometimes the invisible details matter most</h2>
<p>Blur is another example.</p>
<p>You might not immediately notice when it's there, but remove it and an animation can suddenly feel harsher or less believable.</p>
<p>I like these kinds of details because they're not trying to show off.</p>
<p>They're there to make the motion feel more natural.</p>
<p>And I think that's generally a good rule for animation:</p>
<p><strong>If the user notices the animation before they notice the experience, it's probably doing too much.</strong></p>
<h2>Don't ship the first version</h2>
<p>This is probably the most important one.</p>
<p>Don't write the animation and immediately move on.</p>
<p>Watch it.</p>
<p>Then watch it again tomorrow.</p>
<p>I've found that stepping away from something for even a little while makes problems much easier to see. The timing that felt perfect yesterday suddenly feels slow. A transition that seemed clever now feels unnecessary.</p>
<p>Animation needs the same review process as visual design.</p>
<p>The first version is rarely the best version.</p>
<p>Most of the quality comes from those last few tweaks that nobody asked for — the ones you only make because you've watched the interaction enough times to know that something is <em>slightly off</em>.</p>
<p>That's where the little details stop being little.</p>
]]></content:encoded></item><item><title><![CDATA[The Details Are the Product]]></title><description><![CDATA[AI has made building software almost ridiculously accessible.
You no longer need to spend weeks getting an idea from your head into a working prototype. A lot of the implementation can now happen in m]]></description><link>https://akshit-agrawal.hashnode.dev/the-details-are-the-product</link><guid isPermaLink="true">https://akshit-agrawal.hashnode.dev/the-details-are-the-product</guid><dc:creator><![CDATA[Akshit Agrawal]]></dc:creator><pubDate>Wed, 09 Sep 2026 07:10:57 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6aa0fc13d0e4b176ef4e25ec/5882c334-294e-4e1f-b47f-90acee8b6732.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>AI has made building software almost ridiculously accessible.</p>
<p>You no longer need to spend weeks getting an idea from your head into a working prototype. A lot of the implementation can now happen in minutes.</p>
<p>And I think that changes what makes a product stand out.</p>
<p>A working product is becoming the baseline.</p>
<p>What separates something good from something forgettable is increasingly the <em><strong>details</strong></em>.</p>
<h2>The things people don't ask for</h2>
<p>Some of my favorite parts of building are the things that aren't really requirements.</p>
<p>How does a button react when I press it?</p>
<p>Does a modal feel like it came from somewhere, or did it just appear?</p>
<p>Does a page transition feel intentional?</p>
<p>Does an animation get out of the user's way, or is it trying too hard to impress them?</p>
<p>None of these are particularly difficult problems to solve technically. The hard part is knowing <strong>what feels right</strong>.</p>
<p>That's where I think motion is underrated.</p>
<p>A 200ms animation and a 400ms animation can both be perfectly functional. One can feel instant and responsive, while the other feels painfully slow.</p>
<p>The difference isn't code. It's judgment.</p>
<h2>AI can build it. You still have to care.</h2>
<p>I use AI a lot when I build.</p>
<p>It's great at the boring stuff — scaffolding, repetitive code, refactoring, autocomplete, and getting from an idea to a first version quickly.</p>
<p>But I don't want to outsource the parts that require taste.</p>
<p>There's a subtle difference between asking AI <em>"How do I implement this?"</em> and asking it <em>"What should this feel like?"</em></p>
<p>The first is a great use of AI.</p>
<p>The second is where I want to stay involved.</p>
<p>Because if AI starts making every small design decision, you eventually stop making those decisions yourself. And I think taste comes from exactly that process — noticing things, experimenting, getting them wrong, and obsessing over details that most people won't consciously notice.</p>
<h2>The new advantage</h2>
<p>As software gets easier to create, I don't think craftsmanship becomes less important.</p>
<p>I think it becomes more visible.</p>
<p>When the baseline is a functional product, the things around the functionality become the experience:</p>
<p><strong>motion, typography, spacing, interactions, sound, restraint.</strong></p>
<p>The goal isn't to add more polish everywhere.</p>
<p>It's knowing <strong>where polish matters</strong>.</p>
<p>AI can help me build faster.</p>
<p>But deciding what deserves to exist in the first place — and how it should feel — is still the interesting part.</p>
<p>And that's probably where I'll keep spending my time.</p>
]]></content:encoded></item></channel></rss>