Skip to content

DRAFT: New KDE HIG

Nate Graham requested to merge work/ngraham/new-hig into master

This is a new HIG that I've written to fix teams/vdg/issues#10.

The MR is not intended to be merged, but rather to gather fedback on the structure and textual content I've written so far. Once we have consensus on this, I'll start to bang everything into the shape of a merge-worthy MR, to be separately submitted later.

@teams/vdg @teams/usability

Action requested from reviewers

Go to the Changes tab and provide feedback on the structure and textual content. Inline if it's about a specific line, otherwise in a general comment here. Too much/too little? Anything unnecessary I can further cut? Anything really important that's missing?

If you see a FIXME or TODO comment that's asking for help, help me with it. :)

For easier reading, run a local hugo server as per the docs: https://invent.kde.org/documentation/develop-kde-org/-/blob/master/README.md#running-the-website-locally

While reviewing, please keep in mind these design goals:

Design goals

  • Be brief and only include actionable information; no filler or endless philosophizing.
  • Be more prescriptive than descriptive, because descriptiveness is impossible when the things being described are themselves currently inconsistent. Instead, make recommendations based on KDE's philosophy and most successful designs.
  • Focus on QtQuick for specific code/component recommendations.
  • ...But rather than offer details about how to implement every component under the sun, let their API documentation, default settings, and existing implementations do the explaining.
  • Primary audience is app developers, not Plasma developers or VDG icon designers. Plasma's core UI is different from that of an app, and a more focused HIG for it can be done later if needed.
  • Don't focus on visual styling as the default style itself should be the source of truth for this, and our styling is also in some flux right now. Details about styling for custom components and icons can be added later.

External changes needed or desired

In the process of writing this text, I found some omissions and issues that I think really need to be addressed soon, ideally before the new HIG is published:

Without these Framework APIs exposed to QML, it's harder than it needs to be to make a first-class QtQuick app without reinventing the wheel:

  • KConfig::KWindowConfig
  • KConfig::KStandardShortcut
  • KConfigWidgets::KStandardAction

Along the same lines, we need some sort of customizable toolbar component in Kirigami for powerful QtQuick apps, so that they don't have to use QtWidgets.

I also found some documentation issues in Kirigami:

Finally, I found some adoption and deprecation opportunities in Kirigami:

Edited by Nate Graham

Merge request reports