Skip to content
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

Redesign the Jenkins header #10245

Draft
wants to merge 111 commits into
base: master
Choose a base branch
from
Draft

Conversation

janfaracik
Copy link
Contributor

@janfaracik janfaracik commented Feb 6, 2025

⚠️ This is still early, but posting it now for thoughts and to undoubtedly fix broken tests.

--

Hey there 👋

This PR redesigns the Jenkins header, bringing it a modern look and new functionality. This was demoed in the latest UX Sig as well as at the 2025 Jenkins Contributor Summit. The goal of this redesign is to simplify the header, whilst also introducing new functionality as well.

image image

What's new?

  • New theme, draws less attention to itself vs content on the page
  • Breadcrumb bar has been merged with the header, providing roughly 40px in extra vertical real estate, when combined with the removed margin its close to 90px extra

View comparison

  • Top level actions now show in the header
    • For example, Manage Jenkins now appears in the header by default - making it accessible on every page
    • Plugins like Design Library and the infamous Beer plugin behave the same way
    • They can also feature badges - this is currently used to highlight administrative monitors on the Manage Jenkins action
    • These actions collapse into an overflow menu when there's not enough space for them
  • The user account action now shows the users avatar
  • Breadcrumbs now collapse rather than scroll if theres too many, you'll see an overflow menu when there are too many
  • ➡️ Breadcrumbs no longer feature menus - this is something that can be restored based on user feedback in this thread, let me know if you use them and find them valuable - I personally find them rather fiddly but that could just be me
  • For header developers - the header features spots to show additional information now, so for simpler changes you'll no longer need to replace the entire header
Additional screenshots image image image image image

I've got a branch for Customizable header plugin in the works - it's quite fun:

image image image

What's left to do?

  • Get thoughts on the changes - discuss away!
  • Get tests passing
  • Get ATH passing
  • Get PCT passing
  • Update Customizable Header Plugin to work with this

Testing done

Proposed changelog entries

  • human-readable text

Proposed upgrade guidelines

N/A

Submitter checklist

Preview Give feedback

Desired reviewers

@jenkinsci/sig-ux

Before the changes are marked as ready-for-merge:

Maintainer checklist

Preview Give feedback

@mawinter69
Copy link
Contributor

The plugins that contribute those icons:

The plugin sidebar-link allows to contribute arbitrary root action

@mawinter69
Copy link
Contributor

mawinter69 commented Feb 6, 2025

Blimey that is a lot and I agree - would you be able to send a list of those plugins (if they're public)? I've got a branch to update the Support plugin at least. More distinctive icons will be a must, as well as perhaps an overflow menu for when there's too many icons.

Or always have some kind of menu in the header left of the logo like you have it on github. The custom header menu could integrate there it's links (e.g. the favorites as a submenu)
Alternatively add some flag to RootAction that defines if the action is shown directly or behind an overflow menu

@mawinter69
Copy link
Contributor

Another aspect is that those root actions in the header might be confusing. E.g. the job config history link will be in the header and for jobs in the sidepanel as well.

@daniel-beck
Copy link
Member

daniel-beck commented Feb 7, 2025

perhaps an overflow menu for when there's too many icons

Seems like a must-have to me (ideally configurable, perhaps similar to Firefox extension icons overflow menu).

Lots of plugins add RootAction implementations, here's a list: https://www.jenkins.io/doc/developer/extensions/jenkins-core/#rootaction

Note that some do not have a sidepanel entry, so are irrelevant here (null #getIconFileName)

@daniel-beck
Copy link
Member

➡️ Breadcrumbs no longer feature menus - this is something that can be restored based on user feedback in this thread, let me know if you use them and find them valuable - I personally find them rather fiddly but that could just be me

What makes them fiddly? IMO they're a little annoying to use since 2.340 due to #6084 (comment) but otherwise they're still useful for navigating around Jenkins without having to go to some pages just to click another link.

Also not a fan of no longer having a way to view active admin monitors without navigating to /manage/. Admittedly I'm quite biased there 😁

@janfaracik
Copy link
Contributor Author

Or always have some kind of menu in the header left of the logo like you have it on github. The custom header menu could integrate there it's links (e.g. the favorites as a submenu) Alternatively add some flag to RootAction that defines if the action is shown directly or behind an overflow menu

Want to get your thoughts on this -

image

Currently the Customisable Header Plugin appears in the top left, however, if we're to add an overflow menu for actions in the top right, would it make sense to move the Customisable Header Plugins' overflow menu there too for consistency/merge them?

I can see the argument for keeping them separate and for merging them.

@timja
Copy link
Member

timja commented Feb 8, 2025

I think the left hand menu is something else.

Its based on the Jira concept of application links for adding related applications in the top left.

@janfaracik
Copy link
Contributor Author

janfaracik commented Feb 8, 2025

image

Updated the actions list so that they collapse when there's not enough space for them, they're currently allowed to occupy 22~% of screen width - can tweak if need be. Working quite nicely.

Working nicely on mobile devices too:

Big picture

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
major-rfe For changelog: Major enhancement. Will be highlighted on the top web-ui The PR includes WebUI changes which may need special expertise
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants