Projects/Usability/HIG: Difference between revisions

From KDE TechBase
m (Fix link)
(Update landing page to new navigation structure.)
Line 1: Line 1:
= Introduction =
__NOTOC__
= KDE User Interface Guidelines =


Human interface guidelines (HIG) are software development documents that offer  
The KDE Human interface guidelines (HIG) offer application designers and developers a set of recommendations. Their aim is to improve the experience for users by making application interfaces more consistent and hence more intuitive and learnable.  
application developers a set of recommendations. Their aim is to improve the  
experience for users by making application interfaces more consistent and  
hence more intuitive and learnable.  


[[/About|Learn more about the philosophy behind the KDE HIG]]
== Getting Started ==
* [[Projects/Usability/HIG/Presentation/DesignVisionPrinciples|Design Vision and Principles]] - The overall vision and principles that guide the design and development of user interfaces for KDE software.
* [[Projects/Usability/HIG/Concept|Concept]] -  Creating a project vision, determining the users, and the scenarios of use.
*  [[Projects/Usability/HIG/Organization|Organization]] - Guidelines on how an application’s content and functionality are ordered and categorized.


= Structure =
== Behaviour ==
== Conceptual Model ==
This section contains guidelines for application behaviour.
* Have a clear [[Projects/Usability/HIG/Vision|vision]] what your application will achieve and what not.
* Meet the needs of KDE's [[Projects/Usability/HIG/Persona|personas]] in your application.
* Define a [[Projects/Usability/HIG/Scenario|scenario]] where persona(s) interact with your application.
* Specify requirements considering [[Projects/Usability/HIG/Destinata|destinata]] and [[Projects/Usability/HIG/Animata|animata]] of users.


== Design Vision and Principles ==
* [[Projects/Usability/HIG/ViewingAndNavigation|Viewing and Navigation]] - Guidelines on controls and patterns to use for viewing, navigating and performing actions on application content.
* Get to know the [[Projects/Usability/HIG/Presentation/DesignVisionPrinciples|design vision and principles]] for KDE Applications and Workspaces.
* [[Projects/Usability/HIG/EditingAndManipulation|Editing and Manipulation]] - Guidelines on controls and patterns to use for selection and input.
* [[Projects/Usability/HIG/UserAssistance|User Assistance]] - Guidelines on tooltips, notifications, messages and help.
* [[Projects/Usability/HIG/Patterns|Patterns]] - Guidelines on how to use controls in different combinations to accomplish specific behaviors.


== Task Flow ==
== Presentation ==
* Users should be able to complete tasks in natural [[Projects/Usability/HIG/WorkFlow|work flow]].
Presentation deals with the visual design of the user interface.
* Carefully consider [[Projects/Usability/HIG/Layout/CommandPatterns|command structure]] of the application.


== Organizational Model ==
* [[Projects/Usability/HIG/Layout|Layout]] - Guidelines regarding the placement and ordering of onscreen elements. Includes guidance on layout patterns, alignment, size and spacing.
* Carefully consider the [[Projects/Usability/HIG/Layout/NavigationPatterns|content structure]] and select an appropriate navigation pattern for the application.
* [[Projects/Usability/HIG/Style|Style]] - Guidelines on the use of colour, icon design and the typography to communicate with a consistent visual vocabulary.
* Central configuration
* [[Projects/Usability/HIG/Text|Text]] - Guidelines for the written, language-based elements of the interface. Includes guidelines on wording, capitalization and localization.
* Notification mechanism
* Minimize to tray
* Processing of passwords


= Pattern =
== Tools and Resources ==
== Use-case based ==
The following tools and resources are offered to help with following these guidelines.
== Widget based ==
* Implement a [[Projects/Usability/HIG/SearchPattern|search]] as common pattern.


= Controls =
* [[Projects/Usability/HIG/ControlsList|Controls List]] - A complete listing of all user interface controls and their guidelines in alphabetical order.
Baxley calls this section 'behavior'...
* [[Projects/Usability/HIG/MockupToolkit|Mockup Toolkit]] - Includes UI controls stencils, color swatches and fonts to help create the visual design your application.
 
* [[/About|About the HIG]] - Learn more about the philosophy behind the KDE HIG.
== Viewing and Navigation ==
* [http://forum.kde.org/viewforum.php?f=285 Visual Design Group forum] - Ask for help and share your design ideas.
=== Access functions ===
* Apply a [[Projects/Usability/HIG/Menu_Bar|menu bar]] to every standard application.
* Try to omit the [[Projects/Usability/HIG/StatusBar| status bar]] from your application.
* Provide a [[Projects/Usability/HIG/ContextMenu|context menu]] for controls with implicit functions.
* Provide a [[Projects/Usability/HIG/Toolbar|toolbar]] for frequently used functions.
* Use a [[Projects/Usability/HIG/Buttons|push button]] to initiate an action when the user clicks it.
* Use a [[Projects/Usability/HIG/Toggle_Buttons|toogle button]] to indicate a state, preferably in toolbars only.
* Use a [[Projects/Usability/HIG/Command_Link|command link]] to navigate between pages.
* Support keyboard access by [[Projects/Usability/HIG/Keyboard_Accelerators|accelerators]] and [[Projects/Usability/HIG/Keyboard_Shortcuts|shortcuts]].
* Follow the guidelines for [[Projects/Usability/HIG/Dialogs|dialogs]] for secondary windows.
 
=== Grouping ===
* Arrange associated controls by using a labeled [[Projects/Usability/HIG/GroupBox| group box]] or an unlabeled [[Projects/Usability/HIG/GroupBox| frame]].
* Allow users to resize aligned groups by placing a [[Projects/Usability/HIG/Splitter| splitter]] between the groups.
* Use [[Projects/Usability/HIG/TabControl|tabs]] to show related information on separate pages.
* Provide an [[Projects/Usability/HIG/Accordion|accordion]] (aka tool box) for different views to content.
 
=== Complex views ===
* Use a [[Projects/Usability/HIG/ListView| list view]] to show some items out of one category.
* Use a [[Projects/Usability/HIG/TreeView| tree view]] to show items with a single, natural, hierarchical categorization.
* If you really need to create your own widget follow the guidelines for [[Projects/Usability/HIG/CustomControls| custom controls]].
* Double check the guidelines about plotting [[Projects/Usability/HIG/Diagram|diagram/charts]].
 
== Editing and Manipulation ==
=== Selection ===
* Use [[Projects/Usability/HIG/Radio Buttons|radio buttons]] for selection of 1 out of a few items.
* Use one or more [[Projects/Usability/HIG/Check_Box|check boxes]] for clear options or to select items out of a small number of options.
* Use a [[Projects/Usability/HIG/DropDown| drop-down]] list for selection of 1 out of a small number of items.
* Use a [[Projects/Usability/HIG/Combo_Box| combo box]] to select 1 out of a small number of items where users should be able to add items.
* Use a [[Projects/Usability/HIG/ListView|list view]] to select 1 singular item out of a potentially big list.
* Apply the [[Projects/Usability/HIG/DualList| dual list pattern]] for several selections out of a large number of (multiple) items.
 
=== Unconstrained input ===
* Provide a [[Projects/Usability/HIG/LineEdit| line edit]] to enter one line of text.
* Provide a [[Projects/Usability/HIG/TextEdit| text edit]] to enter multiple lines of texts.
* Use a [[Projects/Usability/HIG/TableView| table view]] to arrange data in rows and columns with inline editing feature.
 
=== Constrained input ===
* Use a [[Projects/Usability/HIG/Spin_Box|spin box]] for numerical input within a range and with fix steps.
* Use a [[Projects/Usability/HIG/Slider|slider]] for arbitrary changes within a defined range.
* Apply the [[Projects/Usability/HIG/Slider_and_Spin_Box|slider and spin box pattern]] for numeric input with both large changes and precise control.
* Use [[Projects/Usability/HIG/Date_Time_Pickers|date and time pickers]] for formatted input of datum, time of day, or periods etc.
 
== User Assistance ==
=== User-driven information ===
* Provide [[Projects/Usability/HIG/Tooltip|tool-tips]] for user driven information.
* Provide [[Projects/Usability/HIG/Callouts|callouts]] for user driven information coming from desktop widgets.
 
=== System triggered notification ===
* Provide a [[Projects/Usability/HIG/MessageWidget| message panel]] to inform users about non-critical problems.
* Use a [[Projects/Usability/HIG/Notifications|notification]] as system-triggered message to inform about events out of the current context.
* Show a [[Projects/Usability/HIG/ProgressIndicator| progress indicator]] for lengthy actions.
 
=== Disruptive messages ===
* Show a modal [[Projects/Usability/HIG/Messages|message dialog]] if the processing has reached an unexpected condition that needs interaction.
 
=== Help system ===
* Support the user by an elaborated interface or per [[Projects/Usability/HIG/HelpSystem|help system]].
 
= Presentation =
Become familiar with [[Projects/Usability/HIG/Presentation/DesignVisionPrinciples|design vision and principles]] to understand how the visual design plays its role in fulfilling them.
 
== Style ==
The following style elements provide a palette to express your own unique vision while preserving the shared design vision.
* Use [[Projects/Usability/HIG/Color|colors]] consistently.
* Ensure [[Projects/Usability/HIG/Style/Backgrounds|backgrounds and edges]] honor the design vision.
* [[Projects/Usability/HIG/IconDesign|Icon design and use]] should be consistent throughout the interface.
* Use low level [[Projects/Usability/HIG/Animations|animations]] to support usability.
* [[Projects/Usability/HIG/Layout|Layout]] visual elements by considering both application function and content.
* Treat [[Projects/Usability/HIG/Style/Typography|typography]] with the same care as any other aspect of the visual design.
** Keep [[Projects/Usability/HIG/Wording|wording]] consistent and easy to understand.
** Understand when and where to apply [[Projects/Usability/HIG/Capitalization|capitalization]].
** Apply standard [[Projects/Usability/HIG/Labels|control labels]] in your app.
** Use [[Projects/Usability/HIG/StaticText|static text]] for main instruction and supplemental information.
** Account for [[Projects/Usability/HIG/localization|localization]] of your project.
 
== Building blocks ==
* [[Projects/Usability/HIG/Style/BuildingBlocks|Building blocks]] help make it easier to design applications that satisfy the design vision without needing to always create your own custom UI elements.
 
== Visual Design Tools and Resources ==
* Try the [[Projects/Usability/HIG/MockupToolkit|mock-up toolkit]] which includes UI controls stencils, color swatches and fonts to help create the visual design your application.
* Ask for help and share your visual design ideas on the [http://forum.kde.org/viewforum.php?f=285 KDE Visual Design Group forum].
 
=Contributing=
 
Didn't find what you were looking for?
 
A guide to the guide can be found at the [[Projects/Usability/HIG/About|about page]].
 
Our Human Interface Guidelines are a work in progress and we need your help. Visit the [[Projects/Usability/HIG/Contributing|Contributing page]] to report problems or get involved.
 
= See also =
*[[/MockupToolkit/|The mockup toolkit]]  provides each Building Block UI element and sample mocked applications
* [http://techbase.kde.org/Projects/Usability/HIG/Tablet/Index KDE HIG for Plasma Active]
* [http://techbase.kde.org/Projects/Usability/HIG/Netbook/Index KDE HIG for Plasma Netbook]
* [http://hcibib.org/sam Guidelines for Designing User Interface Software (Smith & Mosier, 1986)]
* [http://msdn.microsoft.com/en-us/library/windows/desktop/aa511258.aspx Microsoft Windows User Experience Interaction Guidelines]
* [https://developer.apple.com/library/mac/documentation/UserExperience/Conceptual/AppleHIGuidelines/Intro/Intro.html Mac OS X Human Interface Guidelines]
* [https://developer.gnome.org/hig-book/stable/ GNOME Human Interface Guidelines (v2.2.3)]
* [http://elementaryos.org/docs/human-interface-guidelines elementary OS HIG]
* [http://developer.android.com/guide/practices/index.html Android User Interface Guidelines]




[[Category:Usability]]
[[Category:Usability]]

Revision as of 17:27, 28 September 2014

KDE User Interface Guidelines

The KDE Human interface guidelines (HIG) offer application designers and developers a set of recommendations. Their aim is to improve the experience for users by making application interfaces more consistent and hence more intuitive and learnable.

Getting Started

  • Design Vision and Principles - The overall vision and principles that guide the design and development of user interfaces for KDE software.
  • Concept - Creating a project vision, determining the users, and the scenarios of use.
  • Organization - Guidelines on how an application’s content and functionality are ordered and categorized.

Behaviour

This section contains guidelines for application behaviour.

  • Viewing and Navigation - Guidelines on controls and patterns to use for viewing, navigating and performing actions on application content.
  • Editing and Manipulation - Guidelines on controls and patterns to use for selection and input.
  • User Assistance - Guidelines on tooltips, notifications, messages and help.
  • Patterns - Guidelines on how to use controls in different combinations to accomplish specific behaviors.

Presentation

Presentation deals with the visual design of the user interface.

  • Layout - Guidelines regarding the placement and ordering of onscreen elements. Includes guidance on layout patterns, alignment, size and spacing.
  • Style - Guidelines on the use of colour, icon design and the typography to communicate with a consistent visual vocabulary.
  • Text - Guidelines for the written, language-based elements of the interface. Includes guidelines on wording, capitalization and localization.

Tools and Resources

The following tools and resources are offered to help with following these guidelines.

  • Controls List - A complete listing of all user interface controls and their guidelines in alphabetical order.
  • Mockup Toolkit - Includes UI controls stencils, color swatches and fonts to help create the visual design your application.
  • About the HIG - Learn more about the philosophy behind the KDE HIG.
  • Visual Design Group forum - Ask for help and share your design ideas.