Horizontal loading slider

:rotating_light: This functionality is now part of Discourse core. Use the ‘page loading indicator’ setting to enable it. More details below.

This theme component removes the core Discourse loading spinner, and replaces it with a loading slider at the top of the screen. This is a common approach on other sites (e.g. GitHub). The advantage is that there is less ‘flickering’ of content during a page change. Potential disadvantage is that it makes Discourse feel less like an app and more like a webpage.

normal with theme component
ezgif-6-370e14693a43 ezgif-6-f4ed194f762c

Known Issues:

  • Latest / Top / Unread… dropdown gets stuck on mobile :white_check_mark:

  • discourse-encrypt incompatibilities (e.g. topic titles getting stuck when switching between topics)

91 Likes

This is so much more visually appealing to me. The loading spinner is nice but quite jarring.

25 Likes

Can we give it a try for a day or two on Meta @david ?

16 Likes

Sure, let’s see what it feels like. Enabled here on Meta :+1: (And temporarily pinned/renamed this topic so people know it’s happening)

25 Likes

While I like it, it does feel quite slower. Maybe it’s because I have ~250ms latency from Meta.

14 Likes

Yeah I am torn on it. I like that it stops the full-page flickering, but it does make the UI feel a little less responsive :thinking:

15 Likes

Conversely I feel it makes the page feel faster with a low latency connection. Though the UI responsiveness is different.

13 Likes

I preferred the spinner, though to be honest I hadn’t really been aware of it. I like the way it is there for a split second then the page appears suddenly. This seems fast. With the bar, it makes me more aware of waiting. I found myself still looking at it when otherwise I could have started reading the page.

It might be some improvement if it “ended” at an earlier stage of page loading.

Or if you want to move away from the old spinner what about a new spinner that is like a circular version of the bar - reaching 360 degrees just before it disappears?

10 Likes

This was exposing a few different rendering bugs (e.g. navigating directly from one topic to another would cause issues displaying the OP). Removed from Meta for now, but you can still try it out using the theme creator link in the OP

14 Likes

Oh yes, this is 100% better, feel free to make it so!

17 Likes

The topic rendering bug should now be ironed out, so I’ve re-enabled this here on Meta. Let’s see how we get on with it.

17 Likes

Looking awesome. :+1:t2: Keep up the good work.

9 Likes

The bar is way better.

6 Likes

I like it very much, even if customized spinners won’t show up most of the time.
One issue though. The loading bar isn’t used when you reload the topic or topic list you’re on.
If you’re on meta home, click on the logo, and you’ll see the spinner instead of the bar.

8 Likes

I like it much better than the spinner. Great work!

How to set/change the color of the loading bar though?

6 Likes

Currently it’s set based on the ‘quaternary’ color in the color scheme. It would be easy to customize individually via CSS if you wanted to.

Good catch, thanks. I’ll see if I can override that situation as well :+1:

12 Likes

Is the goal to eventually move this into core Discourse and not require a theme component?

7 Likes