-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Change progress bar to spinner #78460
Conversation
jenkins test this |
Pinging @elastic/kibana-core-ui (Team:Core UI) |
Pinging @elastic/kibana-design (Team:Kibana-Design) |
@ryankeairns is the interaction with the searchbar the main reason for this change? If so, we could add an option to (If it was also planned for other reasons, just forget about the proposition) |
@pgayvallet Thanks for the option. There has been clamoring (on the design side, at least) to improve the pink progress bar for some time and, yes, the new search feature made it even more visible. The loading indicator is useful for search, imo, so I've opted to try this new approach. |
jenkins test this |
💚 Build SucceededMetrics [docs]page load bundle size
History
To update your PR or re-run it, just comment with: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I 100% agree this is a much needed upgrade. Just wanted to know if you'd thought out that badge placement or if that is a thing of the past. We tend to shift content around on the user a lot and wanted to see if we could avoid that here. I'd probably resist changing back to the progress bar just for OSS, seems like an odd distinction/difference to make. But in that case the extra space is probably fine. 👍 😍
* Change progress bar to spinner * Add progress bar option for full screen mode * Update snapshots for router test * Update snapshots for loading indicator test * Update header snapshot * Change progress bar position to fix full screen
…a into add-anomalies-to-timeline * 'add-anomalies-to-timeline' of github.com:phillipb/kibana: (89 commits) Aligns several module versions across the repository (elastic#78327) Empty prompt and loading spinner for service map (elastic#78382) Change progress bar to spinner (elastic#78460) [QA][Code Coverage] Coverage teams lookup w/o Additional Config (elastic#77111) Slim down core bundle (elastic#75912) [Alerting] retry internal OCC calls within alertsClient (elastic#77838) [kbn/optimizer] only build xpack examples when building xpack plugins (elastic#78656) [Ingest Manager] Ingest setup upgrade (elastic#78081) [Ingest Manager] Surface saved object client 10,000 limitation to bulk actions UI (elastic#78520) fix name without a category or if field end with .text (elastic#78655) [Security Solution] [Detections] Log message enhancements (elastic#78429) [ML]DF Analytics exploration: default filter of results page by `defaultIsTraining` value in url (elastic#78303) [Enterprise Search] Remove all instances of KibanaContext to Kea store (elastic#78513) [ML] DF Analytics creation: ensure job did not fail to start before showing results link (elastic#78200) fix createAppNavigationHandler to use `navigateToUrl` (elastic#78583) Fixing a11y test failure on discover app (elastic#59975) (elastic#77614) [Security Solution] Initiate endpoint package upgrade from security app (elastic#77498) [kbn/es] use a basic build process (elastic#78090) [kbn/optimizer] fix .json extension handling (elastic#78524) Fix APM lodash imports (elastic#78438) ...
* master: (365 commits) making expression debug info serializable (elastic#78727) fix lodahs imports in app-arch code (elastic#78582) Make Field a React.lazy export (elastic#78483) [Security Solution] Improves detections tests (elastic#77295) [TSVB] Different field format on different series is ignored (elastic#78138) RFC: Improve saved object migrations (elastic#66056) [Security Solution] Fixes url timeline flaky test (elastic#78556) adds retryability feature (elastic#78611) Aligns several module versions across the repository (elastic#78327) Empty prompt and loading spinner for service map (elastic#78382) Change progress bar to spinner (elastic#78460) [QA][Code Coverage] Coverage teams lookup w/o Additional Config (elastic#77111) Slim down core bundle (elastic#75912) [Alerting] retry internal OCC calls within alertsClient (elastic#77838) [kbn/optimizer] only build xpack examples when building xpack plugins (elastic#78656) [Ingest Manager] Ingest setup upgrade (elastic#78081) [Ingest Manager] Surface saved object client 10,000 limitation to bulk actions UI (elastic#78520) fix name without a category or if field end with .text (elastic#78655) [Security Solution] [Detections] Log message enhancements (elastic#78429) [ML]DF Analytics exploration: default filter of results page by `defaultIsTraining` value in url (elastic#78303) ...
Summary
With the implementation of navigational search, the global progress bar became even more noticeable due to the frequent loading nature of the typeahead interaction. In other words, the pink progress bar flashes constantly as you type and it's rather distracting. This PR converts the current loading bar to a spinner that appears within the new stacked header (alongside the logo).
Before
After
Keeping the progress bar option for full screen mode
Same look as before but with
EuiProgressBar
Related changes in this PR
Single loading indicator on initial screen
A nice side effect of moving the loading indicator into the header is that we avoid having two loading elements on the initial loading screen. Notice the absence of the pink progress bar below:
Animated cluster between apps
Beyond the initial loading screen, an additional spinner (not the Elastic logo) could occasionally be seen in the body of the page. To avoid having the same spinner within the header and the page, I've changed the page spinner to use the animated cluster (
EuiLoadingElastic
). This one appears less frequently due to the new platform (thankfully), but here's a glimpse:Minimize loading 'flashes'
Lastly, I have also tuned the debounce setting to further reduce the number of spinner flashes seen as you type in the search input. Compared to the 'Before' gif atop this issue, you'll see the results panel no longer flickers as well.
Implementation notes
aria-hidden: true
approach - coupled withvisibility: hidden
- in order to preserve the real estate used by the spinner in the header. This prevents the search input from jumping around as it would if the spinner was hidden viadisplay: none
, for example.animation-play-state: paused
rule. I couldn't live with this, even if it's not visible:Checklist
Delete any items that are not applicable to this PR.