UI refresh: a modern light and dark theme
Known issues
First version has been submitted. Here the list of already known issues we will work on.
- [x] Headers do not react to hovering events anymore. Add hover indicator. ( Dark, Light -> Win, Mac) --> https://github.com/eclipse-platform/eclipse.platform.ui/pull/2130
- [x] “Git Staging” view does not have a grey background. This makes the grey buttons standout. Background should be grey. (Light -> Win, Mac) --> https://github.com/eclipse-platform/eclipse.platform.ui/pull/2168
- [x] "Types" view does not have a grey background --> https://github.com/eclipse-platform/eclipse.platform.ui/pull/2153. --> Revert in https://github.com/eclipse-platform/eclipse.platform.ui/pull/2181
- [x] Editor line number strip should have the same color as the editor background. (Dark -> Win, Mac) --> https://github.com/eclipse-platform/eclipse.platform.ui/pull/2744
- [x] Editor line number strip should have the same color as the editor background. (Light -> Win, Mac) --> https://github.com/eclipse-platform/eclipse.platform.ui/pull/2314
- [x] Provide same themes for Linux (Dark, Light) --> https://github.com/eclipse-platform/eclipse.platform.ui/pull/2137
- [x] Issue in breadcrumb --> https://github.com/eclipse-jdt/eclipse.jdt.ui/pull/1577
- [x] Missing alternate row colors in tables on macOS https://github.com/eclipse-platform/eclipse.platform.ui/issues/2171)
- [x] Missing alternate row colors in trees on macOS https://github.com/eclipse-platform/eclipse.platform.ui/pull/2404
- [x] Editor Tabs looks greyed out --> https://github.com/eclipse-platform/eclipse.platform.ui/pull/2294
- [x] Multiple Tabs have blue highlight --> https://github.com/eclipse-platform/eclipse.platform.ui/pull/2286
- [ ] Labels in Progress View have wrong background
- [x] Move changes to "Light (Preview)" to "Light" theme and delete "Light (Preview)" theme. --> https://github.com/eclipse-platform/eclipse.platform.ui/pull/2549
- [x] Fix bread crumb for light theme --> https://github.com/eclipse-platform/eclipse.platform/pull/1704
- [x] Fix bread crumb for dark theme --> https://github.com/eclipse-platform/eclipse.platform/pull/1706
Status quo
A lot of Eclipse users are asking for a more modern look&feel. If you search the internet you will find a lot of such posts.
https://www.reddit.com/r/eclipse/comments/i4hlpw/make_eclipse_look_modern/ https://www.reddit.com/r/eclipse/comments/jvfyv8/will_eclipse_get_amajor_ui_upgrade_to_look_modern/ ...
There is quite some progress in this area with simplified tab view options (available), sticky scrolling (in progress), modernized find integration (in progress) and many other small and bigger fixes which are currently being worked on in the Eclipse community.
This issue focuses on the default themes. The default light theme has not been updated in years. It is not state of the art anymore. All major IDEs have shifted to a different light theme style. Here is an overview how the other most commonly used IDEs look like out of the box.
VS Code
IntelliJ
Visual Studio
XCode
What design styles follows a theme in 2024?
When comparing the different IDEs it is easy to pick out the design decisions they all share. These are:
- Lightweight view tab design.
- Flat look. No use of 3D gradiants.
- Views use a darker background color. This naturally focuses the eye on the editor area which is where most of the work happens. We like to call editors the main actors and views the supporting actors.
Especially, point 3) is important. When looking at other UIs outside the IDE space it becomes clear that this is the standard. The navigation sidebar is usually using a darker background color than the main content area (e.g. MacOS finder, Apple Music, Powerpoint, OneNote, MacOS notes, MS teams, ...). That's probably the biggest reason why Eclipse feels so outdated.
Proposal for the updated default light theme
The updated theme addresses all three points mentioned above. Here are some before/after screenshots.
Current theme:
Modernized theme:
Details Views tabs. Same minimalist design you can find in the other IDEs.
Editor tabs. Same design as in the other IDEs. The active tab has a white background which blends in nicely with the white background of the editor area.
Proposal for the updated dark theme
The updated theme follows in the footsteps of the light theme. From a design perspective it simply inverts the colors. This means the most important part is the darkest and the less important parts are brighter. When working on the dark theme we noticed that it was already in a much better shape. Our proposal simply cleans up same aspects of the current design.
Here is a screenshot of the IntelliJ dark theme as a reference.
Current theme:
Modernized theme:
Summary
We have been working hard on these proposals and were pleasantly surprised how good Eclipse can look like with the updated themes. Our in house developers have been using them already for months and do not want to go back to the old ones. While we tested them extensively there is still a chance that we missed some small details. Please report any issues you find and we will look into them. We decided to split the changes into three changes for easier review:
- One for the light theme: #2103
- One for the dark theme: #2112
- One to adjust the thickness of the highlight underline of active tabs. We propose to reduce it by one pixel: #2111
At the Eclipse Community Day we asked whether to immediately replace the existing themes or add them as new ones. All committers (@merks , @HeikoKlare , @marcushoepfner , @BeckerWdf , @HannesWell , @sratz , @fedejeanne ) we talked to asked us to replace the existing themes. We can always rollback the changes if there are issues.
As a final note, we focused on Windows and Mac first. This is already a lot of work. If these changes get accepted we will also look into applying the visual refresh to the Linux themes.
I love this change! Having see the difference it can make, I can not wait for this to be in my IDE. Thank you!!!
I might be alone with this opinion, but to me the new theme looks almost unchanged and I feel like a bigger contrast might look even better. From your presentation I know that you copied the values of VScode but to me, the light theme looks nearly unchanged. Have you experimented with "greater contrasts" already?
It might be my glasses but with the "modern" style I can hardly read Main class + method names ... and even if it says "Please ignore the incorrect syntax highlighting. It does not occur with the change." I wonder, why not make a screenshot with correct syntax highlight?
I really like and appreciate these changes and consider them a great improvement in terms of look&feel 👍 I hope that we can find an agreement soon and have them available as soon as possible.
I have two concerns so far:
- I agree with Christoph that having a proper dark theme screenshot with the correct syntax highlighting would be good.
- I am not sure about the view tab changes when using the classic dense tab style with icons instead of the newer one without icons. While I like this change with the new tab header styling (aligned with, e.g., VS Code), with the classic one they don't really feel like headers to me anymore. In addition, the headers do not react to hovering events anymore, like they did before, which makes it more difficult to understand them as tab headers. At least the latter is probably a bug and not intended.
@laeubi Your comment applies to #2112, correct? Sorry, for that one. Matthias Becker told us that the syntax highlighting colors are linked to a theme ID and if you change the ID they break. This is what you can see in the screenshot because we duplicated the theme while working on it. Now, with #2112 we thought it would not be a problem because we change the existing theme and no ID breakage should happen. But it turns out that we were wrong and somehow the editor is picking the light theme syntax colors and not the one for the dark theme. We are investigating this, right now. Of course, in this state the change for the dark theme cannot be submitted.
I updated the screenshot of the new dark theme. It features the correct syntax highlighting, now.
I updated the screenshot of the new dark theme. It features the correct syntax highlighting, now.
Thank you! The screenshot shows the new dark theme also with a changed font color theme. I don't see that as part of the current dark theme improvement PR. Will you provide it later on? When I test the PR, I still have the existing "christmas tree" font colors in dark theme, so I would really appreciate an update of them as well 🙂
I also like the changes, tested under Windows. They are not ground-breaking but do the little twists to make the theme look more professional.
In my opinion our styling also suffers from:
- Old styling icons, if you check the above non Eclipse tools they all moved to less colorful icons
- Color errors in the toolbar and toolbar icons, see for example the perspective button in the dark theme which is light or the toolbar background in the Outline view
- Mis-aligned icons, the center of multiple icons is different, for example the center of the "Run external tool" button icon is higher than the "Run button". Put a lineal on the toolbar bottom or top to see what I mean
None of the above is related to this change but I wanted to mention it, now that more people work on the theming.
I merge the changes so that we can polish these changes with the help of more eyes (and also to get the promised Linux change cc @thomasritter)
For reference on my styling background I introduced the dark theme in Eclipse and updated the Windows theme to be less Win95 (removed the gradients) among other changes in the CSS. I also introduced the pseudo-class support for preference styling to help @BeckerWdf with his initial dark theme of the ABAP tooling.
make sash width = 0? see https://bugs.eclipse.org/bugs/show_bug.cgi?id=562536
https://github.com/eclipse-platform/eclipse.platform.ui/pull/2112 and https://github.com/eclipse-platform/eclipse.platform.ui/pull/2103 merged
make sash width = 0?
Can you test and create before and after screenshot with new Eclipse? Your closing X for the view proves that you are using a super old version. IIRC the sash zero did not make a difference in past.
cc @PyvesB
Can you test and create before and after screenshot with new Eclipse?
You'll need to pull and rebase my proposed change to do so: https://git.eclipse.org/r/c/platform/eclipse.platform.ui/+/170913
Thank you @thomasritter for this enhancements, in general I like it. I tried tonight's I-build on my Windows computer and found the following cases that don't look nice after the update:
- Breadcrumb
- EGit Staging View
In both cases it looks like the background of 'flat' buttons (haven't checked what they are exactly) don't fits to the overall background color anymore. Maybe this is because some assumptions about the background were made that are not true anymore or maybe something is missing in the updated theming. I also noticed that the Commit-Header in the History view (green box) is now in a light gray, while before it was the same white as the git-diff shown below (in my screenshot that part is empty since no file is selected for a better contrast). But with files being selected and after one gets used to it, that looks actually fine.
As a small nitpick: the gutter line should be completely dark and not have this lighter border to the left of the numbers (or at least, there should be more padding to the left of the numbers, which is probably a bigger change)
Great job guys, I really enjoy this new dark mode!!! :)
I am not sure what I expect here but the staging view does not feel coherent. Maybe the outside should be light and the commit message box should be dark?
I feel like my Find/Replace Overlay should be adapted to the theme of the editor... I'll think about this
I feel like my Find/Replace Overlay should be adapted to the theme of the editor... I'll think about this
If you like your widget to be CSS style-able you can read about it here.
@laeubi thank you, this might be helpful! I have created a PR here, I believe it already addresses the issue quite well: https://github.com/eclipse-platform/eclipse.platform.ui/pull/2119 (What I want is not custom styling, what I want is adaptation to the target)
Thanks for trusting us on this and merging the first version 🙏 I went through the comments and started collecting all reported issues at the top of this issue.
@vogella We will make work on the Linux themes a priority. However, I want to be transparent. We usually do not develop on Linux so it will take a little while to get @mvm-sap up and running on a Linux machine.
I just found this plugin. Maybe you already knew it, maybe you didn't - anyways, I think it's cool and seems widely adopted
https://github.com/PyvesB/eclipse-planet-themes
@thomasritter for a quicker test of the Linux changes, remove the platform restrictions in the plugin.xml for the theme. This allows you to test it under windows. Not perfect as Linux is slightly different but this should allow you to move faster and Linux user can do the final testing.
@vogella Thanks for the pointer. We will keep that in mind. One question: which distribution should we ideally use for dev&testing? Ubuntu?
Ubuntu sounds good to me
Fedora would be better, as Ubuntu is known to break GTK time to time.
@thomasritter and @mvm-sap any news on the Linux update? Like I explained with my dev trick, you can use Windows to test and the Linux user community (that includes me) can do the final testing.
@vogella We are working on it. Will update you once it's done.
What I have noticed as well is that in Stacks of views all tabs (regardless of if they are active or not) now have the very same background color and at the least the active is not separated horizontally from the other ones anymore. One can only distinguish it from the other ones from the underlining:
@vogella We will make work on the Linux themes a priority. However, I want to be transparent. We usually do not develop on Linux so it will take a little while to get @mvm-sap up and running on a Linux machine.
Since you mentioned that it can be difficult to work on this I wanted to make you aware that from today in three weeks we have Milestone-3 for the upcoming autumn release. I think it would be good if the regressions are fixed until then. Fixing that only in the RC phase could become stressful since we then there is only little time to fix regressions from regression-fixes. :)
New light theme looks good to me:
The color for the selected tab in the new dark theme seem off with its blue text color.
I'm currently working on the issue - Editor line number strip should have the same color as the editor background. (Dark -> Win, Mac)