For some time, I’ve been aware of issues around how GNOME’s UI design patterns are supported by the platform. These include:
- Ambiguity regarding which design patterns are recommended.
- When we do recommend patterns, or use them in our designs, they’re not always easy for app develeopers to implement.
- It’s not always clear how each design pattern should be implemented.
- It’s often hard for us designers to understand the limitations and constraints of each pattern.
This has various negative consequences. In the worst cases, the patterns are:
- A lot of work for app developers
- Inconsistent in appearance and behaviour
- Implemented in a superficial manner
- Difficult to maintain and update
Us designers bear a lot of responsibility for this situation, and I want us to do a much better job of both keeping within the bounds of the platform and creating a compelling designer/developer experience around it.
One obvious answer to the issues I’ve described is to review our design patterns to ensure that they are fully supported (and if they’re not, adjusting accordingly). This is an exercise that I’m already working on, but will need help from GTK developers.
There are some other issues that I’m less sure how to address, but which probably need discussion (this doesn’t necessarily have to happen here):
- Stability expectations for the design patterns, since I think we probably do want to iterate on a fair number of them.
- How we can differentiate between recommended and non-recommended patterns. Is it just a matter of design documentation, or do we need to do more?
- How to make the platform consumable by GNOME designers: for example, if there is tooling, documentation or examples that would allow us to use GTK for prototyping or mockups.
This post is mostly to let people know that this is something I’d like to work trhough in the near future, but of course any thoughts would be welcome.