Projects/Usability/HIG: Difference between revisions

From KDE TechBase
(Undo revision 82039 by Andrew (talk) - Will start integrating when Userbase version is more done.)
(→‎See also: The mockup toolkit)
(25 intermediate revisions by 3 users not shown)
Line 14: Line 14:
* Define a [[Projects/Usability/HIG/Scenario|scenario]] where persona(s) interact with 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.
* Specify requirements considering [[Projects/Usability/HIG/Destinata|destinata]] and [[Projects/Usability/HIG/Animata|animata]] of users.
== Design Vision and Principles ==
* Get to know the [[Projects/Usability/HIG/Presentation/DesignVisionPrinciples|design vision and principles]] for KDE Applications and Workspaces.


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


== Organizational Model ==
== Organizational Model ==
* Information architecture, Interface management, Window style, Basic arrangement, Screen design, Design Pattern
* Carefully consider the [[Projects/Usability/HIG/Layout/CommandPatterns|content structure]] and select an appropriate navigation pattern for the application.
 
* Central configuration
* Central configuration
* Notification mechanism
* Notification mechanism
* Minimize to tray
* Minimize to tray
* Processing of passwords
* Processing of passwords
= Pattern =
== Use-case based ==
== Widget based ==
* Implement a [[Projects/Usability/HIG/SearchPattern|search]] as common pattern.
* Implement a [[Projects/Usability/HIG/SearchPattern|search]] as common pattern.


= Behaviour =
= Controls =
Baxley calls this section 'behavior'...
 
== Viewing and Navigation ==
== Viewing and Navigation ==
=== Access functions ===
=== Access functions ===
Line 88: Line 97:


= Presentation =
= Presentation =
== Layout ==
Become familiar with [[Projects/Usability/HIG/Presentation/DesignVisionPrinciples|design vision and principles]] to understand how the visual design plays its role in fulfilling them.
* Place controls carefully with proper [[Projects/Usability/HIG/Placement|size and space]] between.
* Carefully place control according the KDE [[Projects/Usability/HIG/Alignment| alignment]] style.
* Do not use [[Projects/Usability/HIG/Color| color]]  as primary method of communication.
* Choose icons from the Oxygen icon set and follow guidelines on [[Projects/Usability/HIG/IconDesign| icon design]].


== Style ==
== Style ==
* KDE provides [[Development/Tutorials/Plasma/Theme|full theming]] to users.
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.


== Text ==
== Visual Design Tools and Resources ==
* Keep [[Projects/Usability/HIG/Wording|wording]] consistent and easy to understand.
* 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.
* Take care about [[Projects/Usability/HIG/localization| localization]] of your project.
* Ask for help and share your visual design ideas on the [http://forum.kde.org/viewforum.php?f=285 KDE Visual Design Group forum].
* Do not apply [[Projects/Usability/HIG/Capitalization|capitalization]] except for titles and in case of sentence style.
* Apply standard [[Projects/Usability/HIG/Labels|control labels]] in your app.
* Use [[Projects/Usability/HIG/StaticText|static text]] for main instruction and supplemental information.


=Contributing=
=Contributing=
Line 113: Line 129:


= See also =
= See also =
* [http://techbase.kde.org/Projects/Usability/HIG/Tablet/Index| KDE HIG for Plasma Active]
*[[/MockupToolkit/|The mockup toolkit]]  provides each Building Block UI element and sample mocked applications
* [http://techbase.kde.org/Projects/Usability/HIG/Netbook/Index| KDE HIG for Plasma Netbook]
* [http://techbase.kde.org/Projects/Usability/HIG/Tablet/Index KDE HIG for Plasma Active]
* [http://hcibib.org/sam| Guidelines for Designing User Interface Software (Smith & Mosier, 1986)]
* [http://techbase.kde.org/Projects/Usability/HIG/Netbook/Index KDE HIG for Plasma Netbook]
* [http://msdn.microsoft.com/en-us/library/windows/desktop/aa511258.aspx| Microsoft Windows User Experience Interaction Guidelines]
* [http://hcibib.org/sam Guidelines for Designing User Interface Software (Smith & Mosier, 1986)]
* [https://developer.apple.com/library/mac/documentation/UserExperience/Conceptual/AppleHIGuidelines/Intro/Intro.html| Mac OS X Human Interface Guidelines]
* [http://msdn.microsoft.com/en-us/library/windows/desktop/aa511258.aspx Microsoft Windows User Experience Interaction Guidelines]
* [https://developer.gnome.org/hig-book/stable/| GNOME Human Interface Guidelines (v2.2.3)]
* [https://developer.apple.com/library/mac/documentation/UserExperience/Conceptual/AppleHIGuidelines/Intro/Intro.html Mac OS X Human Interface Guidelines]
* [http://elementaryos.org/docs/human-interface-guidelines| elementary OS HIG]
* [https://developer.gnome.org/hig-book/stable/ GNOME Human Interface Guidelines (v2.2.3)]
* [http://developer.android.com/guide/practices/index.html| Android User Interface Guidelines]
* [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 23:10, 2 August 2014

Introduction

Human interface guidelines (HIG) are software development documents that offer 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.

Learn more about the philosophy behind the KDE HIG

Structure

Conceptual Model

  • Have a clear vision what your application will achieve and what not.
  • Meet the needs of KDE's personas in your application.
  • Define a scenario where persona(s) interact with your application.
  • Specify requirements considering destinata and animata of users.

Design Vision and Principles

Task Flow

Organizational Model

  • Carefully consider the content structure and select an appropriate navigation pattern for the application.
  • Central configuration
  • Notification mechanism
  • Minimize to tray
  • Processing of passwords

Pattern

Use-case based

Widget based

  • Implement a search as common pattern.

Controls

Baxley calls this section 'behavior'...

Viewing and Navigation

Access functions

Grouping

  • Arrange associated controls by using a labeled group box or an unlabeled frame.
  • Allow users to resize aligned groups by placing a splitter between the groups.
  • Use tabs to show related information on separate pages.
  • Provide an accordion (aka tool box) for different views to content.

Complex views

  • Use a list view to show some items out of one category.
  • Use a tree view to show items with a single, natural, hierarchical categorization.
  • If you really need to create your own widget follow the guidelines for custom controls.
  • Double check the guidelines about plotting diagram/charts.

Editing and Manipulation

Selection

  • Use radio buttons for selection of 1 out of a few items.
  • Use one or more check boxes for clear options or to select items out of a small number of options.
  • Use a drop-down list for selection of 1 out of a small number of items.
  • Use a combo box to select 1 out of a small number of items where users should be able to add items.
  • Use a list view to select 1 singular item out of a potentially big list.
  • Apply the dual list pattern for several selections out of a large number of (multiple) items.

Unconstrained input

  • Provide a line edit to enter one line of text.
  • Provide a text edit to enter multiple lines of texts.
  • Use a table view to arrange data in rows and columns with inline editing feature.

Constrained input

  • Use a spin box for numerical input within a range and with fix steps.
  • Use a slider for arbitrary changes within a defined range.
  • Apply the slider and spin box pattern for numeric input with both large changes and precise control.
  • Use date and time pickers for formatted input of datum, time of day, or periods etc.

User Assistance

User-driven information

  • Provide tool-tips for user driven information.

System triggered notification

Disruptive messages

  • Show a modal message dialog if the processing has reached an unexpected condition that needs interaction.

Help system

  • Support the user by an elaborated interface or per help system.

Presentation

Become familiar with 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.

Building blocks

  • 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 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 KDE Visual Design Group forum.

Contributing

Didn't find what you were looking for?

A guide to the guide can be found at the about page.

Our Human Interface Guidelines are a work in progress and we need your help. Visit the Contributing page to report problems or get involved.

See also