This site has been retired. For up to date information, see handbook.gnome.org or gitlab.gnome.org.


[Home] [TitleIndex] [WordIndex

Platform Support for Design Patterns

All the design patterns in use in GNOME should be easy for application developers to use. They should also be consistent for users. Unfortunately, this isn't always the case: a number of patterns have to be hand-crafted by developers, which makes implementing our design patterns difficult and laborious. It also results in an inconsistent user experience.

The goal is to make sure that every design pattern is fully supported. They should all be easy for developers to use, and consistent for users, as well as delivering a high-quality user experience.

The Process

One part of this that is yet to be decided is how we define which patterns are supported, and where they should be kept. So far the answer to this has been "if something is part of GTK", but this approach isn't always appropriate. GTK also supports design patterns which we don't generally recommend or encourage.

What we can say we want is:

Pattern Overview

Pattern

Background

Design Status

Implementation Status

Menus

Supported pattern, but there are glaring inconsistencies.

Reviewed and new designs done

Some progress in GTK 4; unclear what to do for GTK 3

Lists

Limited support in GTK; inconsistency everywhere.

New designs mostly done

Unclear what the next steps are; needs developer input

In-app notifications

Widget lives in libgd, inconsistent usage, quality issues.

We have new designs, though there's a bit of disagreement around them still

If we go with the current design, we'll likely need a new implementation

Split header bars

They're hard to implement

Requires a conversation between design and developers to see what can be done

Dropdown lists

Designs for this a highly inconsistent, developers have to roll their own each time

We have new designs

Matthias had some old work that could possibly be picked up again

Selection mode

Documented in the HIG and some support in libgd; there are consistency and quality issues.

Needs more discussion and reassessment

Detailed Notes

Background:

Next steps:

Lists

Background:

Next steps:

In-app notifications

Background:

Next steps:

Split header bars

Background:

Next steps:

Background

Next steps:

Selection mode

Background

Next steps:

Other patterns to consider

See Also

Comments


2024-10-23 11:04