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


[Home] [TitleIndex] [WordIndex

1. Tabbed Interface Design Specification

This document is still in draft form. Suggestions and comments are welcome.

1.1. Background

GNOME has a single desktop-wide tab interface widget, called GtkNoteBook. In addition, each GNOME application is responsible for integrating tabs (including things such as defining keyboard shortcuts, menu items, and context menus which relate to tabs). A number of GNOME applications utilise tabs in their interfaces: Epiphany, Gedit, Nautilus, Empathy, and GNOME Terminal. Tabs are also used in many preferences dialogues.

Unfortunately, there are a number of significant problems with GtkNoteBook, which are detailed below. There are also inconsistencies in the way that different GNOME applications integrate tabs. Currently, there are no guidelines on the usage of tabs in the GNOME's Human Interface Guidelines (known as the HIG; see GNOME bug 72101). This design specification is part of an attempt to overcome these problems by producing a new design for GtkNoteBook and a set of guidelines detailing how GNOME applications should integrate tabbed interfaces.

More information about existing discussions on this issue can be found here.

1.2. Basic design requirements

Designs for tabs in GNOME should:

1.3. Detailed design requirements

Designs should fulfil the following detailed design requirements.

1.3.1. Handling of high numbers of open tabs

Current tab implementations in GNOME perform badly when a high number of tabs are open. Any redesign of tabs should address this issue. In particular:

1.3.2. Tab states

1.4. Notes on current GNOME tab implementations

Discussions of current tab implementations in GNOME have produced a number of conclusions that designers should be aware of. Highlights are provided below. Greater detail of these discussions can be found here.

1.4.1. Intrusiveness

1.4.2. Tab appearance

1.4.3. Interacting with tabs

1.4.4. Integration with menu systems


2024-10-23 10:59