The maximized pane zooms into the conversation you picked

Featurekamo-internal
Shipped
August 28, 2026 at 3:45 AM UTC
Author
Kamo
Commit
aed599e

Switching conversations in the maximized view was an 8px nudge and a 180ms fade — close enough to nothing that the pane looked like it had simply repainted. It now reads as arriving somewhere: the incoming conversation comes up from 6% under size with a short rise and lands in the pane, opaque early so it is readable while it is still moving, on a curve that spends most of its travel up front and then settles. The shape is dictated by the z-stack rather than chosen. Clicking a navigator row focuses the new window, so the incoming is painted OVER the outgoing, and that decides both halves: - The incoming may grow INTO the pane but never past it. The maximized shell is a fixed element the size of the viewport and nothing here pins the document's overflow, so an arrival that overshoots 1 paints outside the viewport. - The outgoing holds full size and only fades. While the incoming is still under-scale it does not cover the pane and the outgoing is the only thing behind it, so shrinking that too would open a rim of backdrop around a MAXIMIZED window — a flicker, not depth. It is free to fade because the incoming is opaque over it long before it is gone. That coverage rule is arithmetic, not taste, so it is a test: the outgoing fade must outlast the incoming's. Two more pin the constraints that are invisible until they break — the arrival never scales past 1, and it finishes inside the swap phase, which retires the role and would otherwise retarget it mid-flight. Reduced motion keeps the plain crossfade. Incidentally fixes a smaller thing: the arrival used to be 200ms inside a 180ms phase, so it was handed the settle target 20ms before it finished.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing