Skip to content

[RFC] Make qqc2-breeze-style the default QQC2 style

Noah Davis requested to merge work/ndavis/qqc2-breeze-style into master

Say Yay or Nay if you want to use this as the default QQC2 style for Plasma Mobile.

Repo link: https://invent.kde.org/plasma/qqc2-breeze-style

I'm biased, but here are some pros and cons I thought of.

Pros of qqc2-breeze-style:

  • Has the future visuals of Breeze.
    • The exact visuals are still kinda up for debate, but this is generally in the ballpark. I will make changes when necessary.
  • Generally good contrast between text/icons and backgrounds
  • If you develop your app around qqc2-breeze-style, it should also be generally compatible with the Material, Default and Fusion QQC2 styles.
    • Just don't try to use any of the custom properties that I added to the components. Those are not public API and using them will make your app less compatible with other styles.
  • I just made this, so it has very little baggage and I have the freedom to adjust it wherever it needs to be adjusted.
  • It doesn't need to be compatible with PC2 (based on QQC1), unlike PC3. PC3 needs to be compatible with PC2 because otherwise existing Plasma themes and Plasmoids will break.
  • It doesn't need to use graphics grabbed from the system QStyle
    • it can have shadows, glows and focus rings that don't add extra margins around the graphics
    • It can properly use indicator, arrow, handle, contentItem and background properties, which gives you extra flexibility.

Cons:

  • It's visually inconsistent with PC3 and qqc2-desktop-styles.
  • Limits user customization to just fonts, icons, cursors, window decorations and color schemes
  • If you're not mindful about the differences in the code, then you'll have trouble when you run your apps with PC3 or qqc2-desktop-style. In a number of qqc2-desktop-style components, the contentItem and indicator are just empty Items and the actual content is in the background, so be aware of that.
  • I just made this, so naturally it's less well known. You're going to be less aware of the problems you might face in this style, except for it behaving in a similar way to Default and Material styles.
  • This is limited in the sense that I'm trying to make this reasonably compatible with Qt's QQC2 styles. I consider those to be the reference implementations of QQC2 styles. In particular, I care about compatibility with apps designed for the Default, Fusion and Material styles. Universal and Imagine are kinda weird, so I'm not going to care about those.

Also tagging the VDG since this is a visual change. @teams/vdg

Edited by Noah Davis

Merge request reports