Projects/Usability/HIG: Difference between revisions

    From KDE TechBase
    (HIG moved to community)
     
    (15 intermediate revisions by 6 users not shown)
    Line 1: Line 1:
    = Introduction =
    {{ Moved To Community | KDE_Visual_Design_Group/HIG }}
     
    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.
     
    [[/About|Learn more about the philosophy behind the KDE HIG]]
     
    = Structure =
    == Conceptual Model ==
    * 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 ==
    * Get to know the [[Projects/Usability/HIG/Presentation/DesignVisionPrinciples|design vision and principles]] for KDE Applications and Workspaces.
     
    == Task Flow ==
    * Users should be able to complete tasks in natural [[Projects/Usability/HIG/WorkFlow|work flow]].
     
    == Organizational Model ==
    * Information architecture, Interface management, Window style, Basic arrangement, Screen design, Design Pattern
     
    * Central configuration
    * Notification mechanism
    * Minimize to tray
    * Processing of passwords
    * Implement a [[Projects/Usability/HIG/SearchPattern|search]] as common pattern.
     
    = Behaviour =
    == Viewing and Navigation ==
    === 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.
     
    === 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.
    * Layout visual elements to reduce clutter and ensure balance.
    ** Use appropriate [[Projects/Usability/HIG/Placement|size and spacing]] to create breathing room.
    ** Follow the [[Projects/Usability/HIG/Alignment|alignment]] guidelines.
    ** [[Projects/Usability/HIG/IconsAndText|Icons with text]] should be laid out in a consistent manner.
    * 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 =
    * [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]]

    Latest revision as of 11:26, 4 August 2016

    This page is now on the community wiki.