Graphical user interface

GUIs were introduced in reaction to the perceived steep learning curve of command-line interfaces (CLIs),[4][5][6] which require commands to be typed on a computer keyboard.

Designing the visual composition and temporal behavior of a GUI is an important part of software application programming in the area of human–computer interaction.

A model–view–controller allows flexible structures in which the interface is independent of and indirectly linked to application functions, so the GUI can be customized easily.

Large widgets, such as windows, usually provide a frame or container for the main presentation content such as a web page, email message, or drawing.

Examples include automated teller machines (ATM), point of sale (POS) touchscreens at restaurants,[15] self-service checkouts used in a retail store, airline self-ticket and check-in, information kiosks in a public space, like a train station or a museum, and monitors or control screens in an embedded industrial application which employ a real-time operating system (RTOS).

A GUI uses a combination of technologies and devices to provide a platform that users can interact with, for the tasks of gathering and producing information.

The most common combination of such elements in GUIs is the windows, icons, text fields, canvases, menus, pointer (WIMP) paradigm, especially in personal computers.

A waterfall layout found on Imgur and TweetDeck with fixed width but variable height per item is usually implemented by specifying column-width:.

These support styles of interaction using more than one finger in contact with a display, which allows actions such as pinching and rotating, which are unsupported by one pointer and mouse.

The Xerox PARC GUI consisted of graphical elements such as windows, menus, radio buttons, and check boxes.

The concept of icons was later introduced by David Canfield Smith, who had written a thesis on the subject under the guidance of Kay.

These ideas evolved to create the interface found in current versions of Microsoft Windows, and in various desktop environments for Unix-like operating systems, such as macOS and Linux.

[27] Despite the GUIs advantages, many reviewers questioned the value of the entire concept,[28] citing hardware limits, and problems in finding compatible software.

This interface ran as a separate task, meaning it was very responsive and, unlike other GUIs of the time, it didn't freeze up when a program was busy.

Windows 95, accompanied by an extensive marketing campaign,[32] was a major success in the marketplace at launch and shortly became the most popular desktop operating system.

Command-line interfaces are more lightweight, as they only recall information necessary for a task; for example, no preview thumbnails or graphical rendering of web pages.

However, windows, icons, menus, pointer (WIMP) interfaces present users with many widgets that represent and can trigger some of the system's available commands.

GUI wrappers find a way around the command-line interface versions (CLI) of (typically) Linux and Unix-like software applications and their text-based UIs or typed command labels.

The latter used to be implemented first because it allowed the developers to focus exclusively on their product's functionality without bothering about interface details such as designing icons and placing buttons.

Zooming (ZUI) is a related technology that promises to deliver the representation benefits of 3D environments without their usability drawbacks of orientation problems and hidden objects.

[42] Other innovations include the menus on the PlayStation 2, the menus on the Xbox, Sun's Project Looking Glass, Metisse, which was similar to Project Looking Glass,[43] BumpTop, where users can manipulate documents and windows with realistic movement and physics as if they were physical documents, Croquet OS, which is built for collaboration,[44] and compositing window managers such as Enlightenment and Compiz.

A graphical user interface (GUI) showing various elements: radio buttons, checkboxes, and other elements
The GUI is presented (displayed) on the computer screen. It is the result of processed user input and usually the main interface for human-machine interaction. The touch UIs popular on small mobile devices are an overlay of the visual output to the visual input.
Layers of a GUI based on a windowing system
An Apple Lisa (1983) demonstrating the Lisa Office System (LisaOS), which featured Apple Computer's first commercially available GUI
A modern Command-Line Interface (CLI)