Hacker News new | ask | show | jobs
by gf000 49 days ago
Hand tools have mass and momentum, they are most definitely "animated". You need force to accelerate them up to speed, they don't change state "in binary", or in a blink. Good UI is when you don't even consciously notice the animation, but it has subconsciously given you more information (e.g. desktop changes with very brief animation tells you from where did you transition to where. I personally find i3/sway to be a bit slightly disorienting with certain workloads)
1 comments

A mouse, even a lightweight gaming mouse, is substantially heavier than a pencil. Even if you somehow made a mouse with zero mass, your hand still has mass. The momentum is unavoidable. You don't need to add an inferior simulation of additional momentum to the momentum that already exists.
No one said that one should add "hindrance" to the movement itself. But just because your hand slowly decelerated at the end, causing the mouse as well to stop slowly, maybe the endpoint of the movement should reflect the vector of movement as well? E.g. scrolling to the bottom of the page causing a small bounce back instead of doing nothing is an absolutely information-providing animation you don't even think of as an animation. That's how you know it's good.

But then be against bad animations, not all.

>E.g. scrolling to the bottom of the page causing a small bounce back instead of doing nothing is an absolutely information-providing animation you don't even think of as an animation. That's how you know it's good.

A bounce-back animation is bad design. Bouncing is distracting and annoying. My scroll area should not bounce unless I deliberately order it to bounce. GTK has a somewhat better solution, where it shows a animated shrinking translucent chord of a circle (or some similar shape) at the end of the scroll area. This could be considered a dedicated notification area, but it's not a good one because it overlaps whatever else is in the scroll area. Ideally, the "invalid scroll" notification should be shown in the scrollbar.