cubing.js icon indicating copy to clipboard operation
cubing.js copied to clipboard

[Feature request] Disable initial fade in of twisty-player

Open Wyverex42 opened this issue 1 year ago • 2 comments

Goal

When showing a lot of twisty-players on a single page (e.g. for an overview of cases), all of the players fade in after page load. This basically creates a fullscreen flash effect which is not a very nice UX. I'd like to be able to disable this fade in.

Was this a purely cosmetic choice or is there a deeper reason for this fade, e.g. to hide the fact that some data is still loading?

Possible solution

Have a config property to disable the fade in

Alternatives

No response

Wyverex42 avatar Feb 14 '24 19:02 Wyverex42

Was this a purely cosmetic choice or is there a deeper reason for this fade, e.g. to hide the fact that some data is still loading?

Both. There are a variety of reasons why a puzzle can take a while to load, not the least of which is a flaky network connection. In the future we'll almost certainly also want to consider optimizations that save time/battery life, by only loading players once they are close to the viewport. And once we get back to playing with VR and/or environments with multiple puzzles, we'll need some cues to indicate that puzzles are appearing and disappearing on purpose, rather than due to rendering glitches.

Even if the players each load instantly like image, I can't really prevent a flash by removing the fade-in. In fact, the transition will be even more sudden. Is that a desirable effect?

lgarron avatar Feb 18 '24 00:02 lgarron

I totally agree with needing some form of loading indicator for various situations and I'm not asking to remove that. I understand that you can't guarantee loading to be finished within a certain timeframe and fading in is a good solution for that use case. I'm just proposing that giving the user control over that effect could improve usability for certain use cases like mine.

The question between having sudden or animated transitions starts to matter once you get into the realm of having lots of players in your view and they all finish loading at roughly the same time. The fade in causes a flash while a sudden transition could be perceived as a part of the page load. In fact, the fade makes it very clear that not everything is loaded at the same time, which is slightly distracting.

See attached video for a demonstration. A 60 fps video doesn't capture the effect entirely, it's much more visible on my 144 Hz screen. Basically, the grid loads so quickly that the fade-in artificially prolongs the perceived loading time.

https://github.com/cubing/cubing.js/assets/16905876/2d5f8c8f-17df-4f5e-b1c8-070955d53cce

Wyverex42 avatar Feb 22 '24 16:02 Wyverex42