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
[JENKINS 60920] header breadcrumbs CSS update #4463
[JENKINS 60920] header breadcrumbs CSS update #4463
Conversation
- Used the material icons svg sprites to deliver the icons - Icons are rendered using a <svg> tag
- The new UI can be toggled with the -Dui.enableNewUi=true flag
- Rename the css class namespace from .main-header to .page-header - Page header CSS moved into a modules folder and now included on the new-base-styles.css. This is done to avoid loading a separate file everytime. - Extracted color variables to their own file
- The pageHeader template receives localization strings as props - Missing translation for the admin monitor on the it, bg and pl locales
Code looks fine to me, except the commented out code which is on the TODO list, will re-review when TODOs are completed Tested locally with old and new UI on a mac 13". |
@fqueiruga test failures look legit |
Co-Authored-By: Tim Jacomb <t.jacomb@kainos.com>
- Reverts breadcrumb link styling to use nested selectors instead of the .breadcrumbs__link class. The reason is that several plugins would break. - Shifted margins so that breadcrumbs can be fullwidth in the absence of the auto refresh link
I have set up the feature flag but nothing else on the |
Thanks for providing the new styles as PR! It is much simpler to get an impression of the changes now... Before I am looking into the PR just a few quick impressions: on a plain vanilla Jenkins everything looks really nice! One small thing: If I disable the new UI (using the property) I still get the new breadcrumbs, is that intended? Or should everything be restored to the original state? Did you try to use it with a theme? I'm using http://afonsof.com/jenkins-material-theme/ on my machine but these kind of themes seem not to work anymore. Even if I disable the new UI with the property, the theme looks weird. |
I use the same theme as @uhafner - but to be honest, I don't think we should take to much care - it does not seem to be maintained anymore |
Hmm, the simple theme plugin has > 25000 installations. I'm not sure if it is only the material theme that will break, did you check one of the maintained themes like https://github.com/TobiX/jenkins-neo2-theme of @TobiX still works after the changes? |
I thought it was expected that those plugins will have issues and will need to update? Possibly the need for those will go-away / decrease as the UI is improved / refreshed |
core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/resources.css
Outdated
Show resolved
Hide resolved
Thanks Daniel, I'll surface these pieces of design feedback on the next SIG meeting. I find them interesting, especially the pluralization one. |
@daniel-beck ux-sig is now on gitter https://gitter.im/jenkinsci/ux-sig |
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.
Less files are pretty large, difficult to be sure everything is perfect, but it seems to be working fine. Just a few comments, no blockers.
font-weight: bold; | ||
|
||
display: inline-block; | ||
display: inline-flex; |
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.
which is it, inline-block
or inline-flex
?
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.
It´s inline-flex but I left inline-block as a fallback.
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 think my initial comment proposing to add a comment in the code seems even more accurate :)
color:#3465a4; | ||
#breadcrumbs LI A:hover, #breadcrumbs LI A:focus, | ||
.breadcrumbs__auto-refresh:hover, .breadcrumbs__auto-refresh:focus { | ||
/* TODO: change hover state |
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.
Will it be part of a future work?
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.
Yes, probably once we work on the contextual menu dropdown.
visibility: hidden; | ||
cursor: pointer; | ||
z-index: 2000; | ||
background-color:transparent; |
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.
Not sure those changes are required..
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.
Do you mean the indentation changes? The file indentation was a bit inconsistent as it had different indentation levels. I put all the lines on the same level.
<img src="${imagesURL}/jenkins-header-logo-new.svg" | ||
alt="[${logoAlt}]" | ||
class="page-header__brand-image" /> | ||
<span class="page-header__brand-name">Jenkins</span> |
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.
No, Jenkins is Jenkins in all languages.
Co-Authored-By: Adrien Lecharpentier <adrien.lecharpentier@gmail.com>
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.
Taking the approvals, I suggest to merge it into 2.222 if there is no negative feedback by Thursday 4PM UTC
@fqueiruga FYI I added a short upgrade guide entry to address the comments in https://groups.google.com/d/msg/jenkinsci-dev/VRxRCP_IKhQ/8Uw2SJqWAAAJ . It is based on your changelog entry text. Please feel free to extend it as needed |
I am in the same boat as many that use the material theme. When you try to enable this it just breaks the login page. Even if you remove the plugin some thing still lingers. Is there any guidance for people who do run into this because we are back to the classic theme and people notice. Is there a place I can go look to fix this for the folks that have Simple Theme installed? |
each theme will need some updates done i.e. material theme here: |
You see how that causes an issue though right? 25000 things have this and that is a pretty substantial impact. Even if they install that plugin and remove it the break still happens. The only way to unload it is to restart the service twice. I get that this plugin is not Jenkins's and some of the templates need updates but this breaks jenkins bottom line. There may be something jenkins can do to force the css thats for some reason making the login pages blank. I think this is awesome and I would much rather have a nice UI that matched blue ocean and that you guys are giving some much needed attention to the UI I just wanted to make you aware that these things are happening. |
The material theme seems to be unmaintained currently. So if nobody steps in this theme will not be supported in the near future. |
The current one is dull and depressing. jenkinsci/jenkins#4463
See JENKINS-60920.
This PR includes the header and breadcrumb visual updates that came out of the work of the UX SIG.
Explanation for some technical decisions on the issue
NOTE: To enable/disable the change easily without restarting, you can use the
/script
URL (typically http://localhost:8080/script in local dev mode) and typehudson.Functions.UI_REFRESH=true
to enable the new UI orhudson.Functions.UI_REFRESH=false
to disable it.Proposed changelog entries
jenkins.ui.refresh
totrue
.Proposed upgrade guidelines
Instances with plugins that depend on details of the Jenkins layout (e.g. Simple Theme Plugin with custom CSS themes) may experience UI/layout problems. Minor patches to the themes may be required
Submitter checklist
Proposed changelog entries
section only if there are breaking changes or other changes which may require extra steps from users during the upgradeDesired reviewers
@uhafner
@timja
Maintainer checklist
Before the changes are marked as
ready-for-merge
:Proposed changelog entries
are correctupgrade-guide-needed
label is set and there is aProposed upgrade guidelines
section in the PR title. (example)lts-candidate
Screenshots
Classic UI on desktop
New UI on desktop
Classic UI on mobile
New UI on mobile
TODOs:
<svg>
tag for sprite icons.