"Act on press" is usually a bad UI choice. Waiting until mouse up adds an extra failsafe for misclicks by allowing the user to drag their cursor off the button to cancel. And from what i've seen, it's somewhat common for users to hold their mouse button down for a moment when they're not confident they're using the program right; waiting for them to complete the click provides some reassurance.
Generally, I think it feels weird for actions to occur before user input has finished. It gives a sense that the application is running ahead of you, and not fully in your control. And the user can't really initiate anything else in the split second between pressing and releasing the mouse button, so it's not really faster to act before the click ends.
"But what if users mouse off the button by mistake while they're clicking it?"
Honestly, if you're worried that'll cause user confusion, that's indicative of bigger problems with your UI design. It should automatically be clear if an action took place because you should be showing the progress/results of it to the user. But if you're not satisfied with that, there's a very easy solution: just provide feedback when the "click cancel" gesture is performed. Mac OS 9 does this well: there's a distinct sound effect for mousing out of a UI control mid-click. (IMO, UI sounds are a great bit of feedback & charm, and getting rid of them was a mistake.)
Act on release is also more consistent with the "click-drag-release" gesture for pull-down menus. Which every UI should support, because it's SLICK AS HELL.
boatderg Sam likes this.
boatderg Sam reshared this.