-
Notifications
You must be signed in to change notification settings - Fork 2
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
New palette for Spyder's UI #13
Comments
I’ve been working a lot in the background trying to get this right so we can unblock some of other issues on this repo, but so far this has taken more experiments than I anticipated. Thanks for your patience. A little review on the goals of creating a Spyder color system:
This isn’t quite done, but this is the direction I’m working on refining for dark mode. It’s a combination of ideas from the current (v4.1.5) UI’s colors, the Darkly palette’s hue and temperature, and Material Design’s value distribution. Since this is long and needs refinement, I can type out all the colors in the next round. Here is how this might look in the UI. I’m showing it old mockups (because I already had them available to be recolored), so don’t worry about that part. What needs to be reviewed:
Even though I’m starting my design with dark mode (since it is the default), I’m intentionally creating a color system that allows dark and light mode to reflect each other. What does that mean, though? This is the current scale of overall grey I’m experimenting with: From this, I pull the dark mode base from the dark half of the scale and all dark mode accents (like text) from the opposite half. Light mode should just flip it. The main edits will come in play on the accent and info colors to make sure they have enough contrast to be used on the background colors. With this color palette, I also think it is worth editing Spyder’s color icons to match the relevant colors we end up choosing. |
As promised, I've narrowed down the number of colors proposed for use in each section. It's still based on a larger color scale (updated color names now reflect that), but helps make the choice of what color to use where in the UI a little easier. Meeting with some Spyder team members identified a few more areas of color I need to include next round, but I still wanted to update here with the more accurate version as I start testing it in the UI and with early contrast review. List of colors: How it might look in the UI: |
I'm back with another revision of colors. This version is more refined and complete since I looped in the work for colors to differentiate groups of info in Spyder (like the Variable Explorer #7). I also added a color option to the Background and Text sets since experimenting with them and comparing them to colors currently used in Spyder showed they were missing a pre-existing value. Broken down for easier access and documentation, here's the proposed colors for dark mode: Background ColorsThese are the colors that make up the majority of the Spyder UI since they are used to define the different sections of Spyder. All other elements colors rest on these. Text ColorsText in Spyder should be in one of these colors. Remember to be cautious of color contrast; as the number for the background color and text color get larger, the color scale converges (Background color 5 and Text color 5 are the same) and those colors should not be used together. Accent ColorsUsed for highlighting areas of Spyder, usually areas that are selected or are being interacted with. To avoid splitting user focus, apply accent colors thoughtfully and sparingly. Info ColorsThese colors reinforce feedback or roles of parts of Spyder. They are also used sparingly. Error colors represent errors or stopping an action. Warn colors report potential problems. They tend to be used the least. Icon colorsMatching other parts of the interface, these are the colors that icons in Spyder may use. Whenever possible, use single color icons especially in Icon color 1. Border colorsBorder colors are used for details that divide the Spyder UI further. They overlap with background colors. Group colorsThis name could still be refined. These are a set of colors designed to provide variety and help sections of Spyder with several items be easier to tell apart. Originally designed for the Variable Explorer's variables, this can also be used to represent different types areas of Code Analysis of Projects as needed. These colors are meant to be used very sparingly and only grouped with others of its set. They should not be used for text as this set is not optimized for high contrast. |
As previously mentioned, I'm also trying to set up a color system that makes
I’m testing a way to represent the system’s relation to itself helpfully. As I mentioned having a full color scale earlier, here it is as a value grid. 0 is always black The group set is the exception, as it’s not a scale of a single hue. That’s why it isn’t shown in the grid. Color names are separate from the scale numbers so that the colors can be switched out without changing the way a color is called in the code (so the definition only needs to be changed in one place in the future). I didn’t create a full set for each color because it wasn’t needed and I thought it might become overwhelming with the number of choices (similar to how Spyder might feel now). Because I aligned the shorter scales with the same number system as the full grey scale, though, the sets can easily be extended if needed. I’ve been trying to come up with a way to set the naming of the colors to help people evaluate the accessibility of a color combo (like what IBM’s Carbon does), but so far I have not found an effective way to implement it with the range of colors Spyder needs. I’m noting it because it’s something that I’d love to get more ideas on and return to. |
Another revision for the proposed color system! Here’s what’s changed in this round:
Dark ModeLight ModeAs usual, here’s how that might look in Spyder:Dark modeLight modeI think light mode still needs some work to make sure it looks as good as it can, and that will reflect on dark mode too. Most of the reversing of colors is working well enough in light mode, but the main problem I’m having is in the text colors. Specifically, I’m noticing that buttons would be set as having black text (like above) instead of the white text that I think is more legible and familiar (like below).
|
Here's the latest updates based on in-meeting feedback! Changes are as follows:
As usual, below is all that information color by color and mocked up. Dark ModeLight Mode |
|
When reviewing these last options in meetings, we discussed how Spyder’s colors pulls from multiple sources with the most important distinction (in code) being whether sets of colors are originally from to QDarkStyle or not. First, below are the proposed colors categories that are closest to, derive from, and would need to replace current QDarkStyle.
The following colors are currently not tied to QDarkStyle and don’t necessarily need to be in the future.
|
Hi, just to document as you are planning to make some changes in the QDarkStyle, the main palette we use is here. The icons and images were recently improved too (of course not professionally as it is being planned now). So, thank you so much for those improvements. |
After the meeting:
|
I've updated the examples I showed in our last meeting and have them ready to be accessed as needed. There's still details to be worked out, but I gave my best guess of what it should look like based on current QDarkStyle.
Let me know if you have any feedback or questions. Hope this helps. |
Based on work in spyder #13963, there was a request to adjust light mode's info colors to make them look softer on the light background but still dark enough to meet contrast requirements for the light text they are often used with. 1 is the set of colors used for inverted text like in the issue, so that is what I will focus on for this post. If we decide to change these colors, I can shift the pattern for each of the constants accordingly. Current light mode info colors (option 1)In the full set this looks like
All these options pass with Light mode with dark text (option 2)Personally, I prefer the light text on darker colors option, but since we can't get lighter with white text while keeping contrast I wanted to give another option. Here is the first color on the scales that is light enough to have contrast for In the full set this looks like
All my testsIn case you wanted to see the other options I tried, here's a quick overview of the combinations and whether they pass or fail standards for the text color they show for everything not already shown above. |
Thanks @isabela-pf I don't really like the options with dark text so I would prefer option 1. I think that one looks great. What do you think @ccordoba12 and @steff456? |
@isabela-pf and I met to discuss about the light theme and we have our first attempt. (Notice that since the code infraestructure is not yet implemented, there are things that are still dark that will not be). We will appreciate your feedback as soon as possible so we can continue iterating. Main Window (with selection color of editor): ![]() Tabs (hover and pressed states): ![]() Files pane (hover and selected item) (Also notice color of hover for the small arrows) ![]() Scrollbar hover: ![]() Tooltip: ![]() Preferences dialog (hover for buttons) (@isabela-pf looking at this, we might need to move the hover color a bit more) Hover color for "images" (Radio buttons) ![]() Hover color for "images" (X in tabs) ![]() Pane toolbars (hover and pressed states) ![]() |
Some points to me: Maybe the color for the menu selection can be darker like the line in the tab selection. The dark tab (selected) calls me too much attention. Since it has a blue bar indicator we can keep the same color as the other ones. Also, this color reduces the contrast with the tab title. Using a lighter color in the selected tab also improves the blue bar contrast. Check the second image, in which you can't see the details (or if you have myopia like me). Another option is just a lighter tone like the status bar color. Same for scrollbars (chrome example). The last one, maybe I'm wrong but I think these buttons have different colors/states (at least n1), it seems tricky - without Spyder to check right now. All the other points seem amazing. |
Thanks for your feedback @dpizetta I will try to address all your comments.
This color has the same problem we have in dark mode which is that this menu selection color is the same one as it is in the editor so we have to find an equilibrium between dark enough for contrast in menus and light enough that it's not too strong on top of the editor's text.
Because of how the system is defined, I think is not possible to make the selected tab and the other ones the same color without assigning two accent colors to the same color, or affecting the dark mode. Right @isabela-pf? Though we can try to see if we can bring these two colors closer to each other. @ccordoba12 suggested to use darker greys in general since he thinks the whole interface looks too light so maybe when making this change the selected tabs won't call that much attention.
The "Edit selected scheme" button is supposed to be a hover state. Though it looks very similar to the others so we need to work that out with @isabela-pf. The "Apply" button is deactivated so the text in it is lighter. |
@ccordoba12 and @steff456 please let me know if the interface looks dark enough with these new shades of grey. We will rework the tone of blue with @isabela-pf. She is already working on these colors in the color system. |
Thanks @juanis2112 for your work on this! I really like the new shades of grey! What do @isabela-pf and you think about them? Are they ok for you too? |
Hello! I've been summoned again! Here's some replies.
It would definitely take some kind of workaround to make all the tabs the same color without touching dark mode. I don’t know that it is possible at all since that color is used in other places where I don’t think we would want them all to match. We can adjust colors though. This color has once again been a challenge because of its relationship to the various button states, so that’s how it became darker than some of the first passes.
Noted! Thanks for catching this.
I can make this work, but I’m not certain why we want the entire interface darker. Already some areas are starting to look lower contrast. The more we move toward a middle range of values, the harder I think it is going to be to find solutions for some of the problem areas we already have. For example, we already are having trouble with finding a selection color that works well on the light mode editor themes (such as the almost white default Spyder one here) compared to the middle grey menus. With the darker overall interface, the selection color still has to work for almost white to an even darker grey. I’m happy to do my best to make this work since I think it’s still possible to find a solution, I just want to warn that we may find ourselves compromising a lot along the way. |
I think you're right and sorry for pushing in that direction. This weekend I made the light theme work on the QDarkstyle repo, so I had a chance of seeing it live on my end: And I think the theme looks pretty good already! |
We need a new palette for Spyder's interface with new shades of blue and grey that work well together:
To keep:
-Dark blue from background
-Dark grey for most UI elements
-White for text and some icons
To change:
-Blue of selections/hover (Opacity or light grey)
-Blue in the help pane start page
-Blue tiny lines in the pane tabs
-Tooltips #2
-Blue in titles of help pane
-Green in help pane
Theme for help pane: https://bootswatch.com/darkly/
The text was updated successfully, but these errors were encountered: