Skip to content

Conversation

@uxdesignerhector
Copy link
Contributor

@uxdesignerhector uxdesignerhector commented Dec 9, 2025

I've replaced the generic, impersonal loading indicator with a new custom spinner based on the brand logo. This change successfully reinforces brand identity during waiting states, giving the UI a more custom and modern aesthetic.

Changes

  • Spinner Component: Swaps the old spinner implementation for a new custom component that utilizes the logo geometry for animation.
  • API Compatibility: Maintains all previously exported functions, ensuring a seamless drop-in replacement without breaking existing calls.

Key Improvements

  • Design & Identity: Integrates the custom logo and animation (using M3 expressive motion principles) to ensure the brand is consistently represented, even during loading states.
  • Graceful Exit: Employs CSS Discrete Transitioning to achieve a fade-out, avoiding abrupt visual cut-offs.

Browser Note

Note

Due to current browser limitations in handling the discrete transition, the fade-out behaviour in Firefox may appear abrupt. However, this is the same user experience behaviour observed with the previously used default spinner.


New spinner:

jellyfin-spinner-new-centered

Old spinner for comparison:

jellyfin-spinner-old

Music library example:

jellyfin-spinner-music-library

Issues
Fixes #4594

edit: replaced old gif ("off center" inner triangle) with new animation gif.

uxdesignerhector and others added 2 commits December 9, 2025 22:29
Replaces the old default loading indicator with a new, highly optimized custom component built around the brand's visual identity and a little touch from Material-3 design principles.
This change improves both perceived performance and design quality.
@uxdesignerhector uxdesignerhector requested a review from a team as a code owner December 9, 2025 22:11
@jellyfin-bot
Copy link
Collaborator

jellyfin-bot commented Dec 9, 2025

Cloudflare Pages deployment

Latest commit 7964637
Status ✅ Deployed!
Preview URL https://ac49b1c1.jellyfin-web.pages.dev
Type 🔀 Preview

View build logs

@uxdesignerhector uxdesignerhector changed the title [UX] Feature better new custom loading spinner [UX Feature] better new custom loading spinner Dec 9, 2025
@uxdesignerhector
Copy link
Contributor Author

Solves #4594

@soultaco83
Copy link

Surprisingly enough I am really enjoying the new spinner

@Lampan-git
Copy link

It looks very good imo. But it looks like the middle part doesn't spin from the middle, so when its upside down its off-center upwards.

…tion from users to believe the inner triangle it's off centered. Provides a better and smooth animation.
@sonarqubecloud
Copy link

@uxdesignerhector
Copy link
Contributor Author

It looks very good imo. But it looks like the middle part doesn't spin from the middle, so when its upside down its off-center upwards.

You are right. I have increased the geometric centre by 1. point to take into consideration our brain not braining smoothly due to our perception being very finicky. History repeats itself, this is the same as Greek columns bulging in the middle or the Madonna della Pietà holding an very disproportionated and not very anatomic human called Jesus.

Good Catch!

Old spinner:

jellyfin-spinner-new

New spinner:

jellyfin-spinner-new-centered

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Preloader is very imperceptible

4 participants