-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Description
What problem does this address?
Part of: #49563
The list view sidebar uses windowing logic when the list contains a very large number of items so that they're not rendered as real list view items until they appear within view (or a little outside of it). When they become visible, the current logic is to display all the newly visible ones all at once. This results in a "pop in" effect of these list view items suddenly appearing, which can feel a little sudden or janky depending on your language for things that don't feel smooth. On fast machines, you mightn't even notice it, since it can be pretty quick to render the new items (and where I most noticed it was with selected blocks, which has been fixed in large part over in #54900).
Note: I usually don't find the issue very noticeable, however if I switch my environment to use CPU throttling (4x slowdown) it's more obvious. Here's a screengrab:
2023-10-06.16.05.21.mp4
What is your proposed solution?
I wondered if we can smooth it out by doing something like the following:
- As list view items are newly within the view, can we iteratively swap each newly exposed item out one at a time, i.e. only reveal the second one once the first one has been mounted. They might be a single frame or so apart. Then, also:
- Add a tiny opacity animation for these newly exposed list view items so that they smoothly flow in as the user scrolls.
To me, this is likely a low priority issue, so I'll label it accordingly. Please add a comment if this is something you've noticed, though, as I'm curious if it's something that people notice, or if it's something that's on my mind because of working on this component lately 🙂