To-do list for customizable separator colors
I wanted to make an issue this to keep track of what I gotta do to get things rolling on this front, and to have discussion about it in one place.
Customizable separator colors
I have been thinking of this for a while now, and I believe we can fix a lot of issues with frames, separators and outlines by giving the user the control to color them, if they wish.
This would be especially really useful, when we make high-contrast themes: High contrast themes seem to often be very bright in their coloration when it comes to separation, to make sure the user can see where elements begin and end.
The elements that custom separator color would affect:
- Frame colors
- Window outline colors
- Instead of the current outline setting (Off, low, med, high), just have a toggle:
- Off or Separator color
- Context menu outline colors
- Any separator colors
- Any Plasma SVG file that would use this color
- I'd like to expose the color to the SVG engine
The elements I am not sure about:
- Button outlines
- High contrast themes would likely find this also useful
- Do we allow customizing this separately?
- Do we just use same separator color for this?
- Do we keep it as is?
- Input field outlines
- Same concerns as above
Feel free to comment if there is any other elements that could benefit from this!
Another benefit of this would be that we are closer to having a single source of truth, at least color-wise.
Config
How should this be configured? I was thinking of having it in the colors tab, as another color in the list.
In general tab, we could allow the user to checkbox "autogenerate separator color" (like how it is now). This would be default as well. Then, if the colorscheme does not have this color set, they would be autogenerated automatically.
Todo list
-
Define new separator color role in KColorScheme -
Add UI to change it to color settings -
Expose it to ksvg so that Plasma SVGs can use it -
Use it in Breeze QStyle -
Use it in qqc2-desktop-style -
Use it in Kirigami (e.g. Kirigami.Separator
) -
Use it in Breeze Plasma style (e.g. line separator SVGs)
Other ideas, things, notes
- Unsure if I can do this before the freeze, but I can try
😄
Will add more things here as they arise.
Do comment and share your thoughts! :)