Short posts about interface design, motion, and the small tools I build.
In onpurpose, a quick click does nothing. You have to hold it.
hourlink has no database. The whole meeting time lives in the link.
Short links are public and cached. Changing them needs auth and is never cached.
A gray that looks fine on a dark background can almost disappear on a light one.
When someone turns animations off, a button still has to show that it worked.
A 16px icon is fine. A 16px hit area isn't.
Most people never open the options, so the default has to be the good version.
One inset() rectangle for a progress fill, a tab indicator, or a slider.
The curves and durations I use, and why the start of a transition matters most.
A small scale on press, the right curve, and what to leave out.
Before choosing a curve, think about how many times a day someone will see it.