Haiku Human Interface Guidelines...

Better Known as "How NOT to Write Software


Table of Contents

1. How to Design Software Good
Who's Gonna Use It?
What will the User be Doing?
How will Your Users Do Their Work?
Summary
2. Qualities of Good Software
Good Software Focuses on a User's Actual Needs
Good Software Uses Everyday Language
Good Software Does Not Expose Its Implementation
Good Software Uses Graphical Controls Properly
Good Software has a Natural Layout to its Controls
Good Software Gives Plenty of Feedback
Good Software Makes Errors Hard
Good Applications Handle Errors Gracefully
Good Software is Forgiving
Summary
3. Conventions of Haiku
Program Options: Format and Location
Maintain Responsiveness
Avoid Hardcoded File Paths
Make Your App's Look Fits in with Others
Live Updates
Translators
Squeezing the Most Out of BFS: Queries and Attributes
The System Tray: It's Not Just for Dinner Anymore
Tracker and its Uses
4. Getting Input from the User
Mouse Vocabulary, AKA "What's This Button Do?"
Keyboard Accelerators: The Sports Cars of GUIs
Design to Prevent Fitts
5. Dynamic Data Exchange: Pass Data Between Applications
Drag and Drop
The Clipboard
Replicants
6. Use of Text in the GUI
Error Messages, or, "I'm sorry Dave, I'm afraid I can't do that"
...Ellipses...
Abbreviations, Acronyms, and Contractions, oh my!
Capitalization and Spelling
Use of Fonts
Special Case: The Command Line
7. Branding - Program Icons, About Windows, Graphics, and Other Visuals at the OK Corral
Program Icons
About Windows... Doorways to Creative Expression
Graphics and Other Stuff
8. Cursors
Predefined Cursors and their Uses
Making Your Own Cursors
Animating Cursors
9. Menus, Menu Bars, and Menu Fields
Naming and Organization
Marking and Toggling Items
Common Menus and their Contents
10. Windows
You Need the Basics
Styles and Purpose
Naming, Placement, Size, and Other Decisions
B_ACCEPTS_FIRST_CLICK
Modality
11. Special Purpose Windows
Alert Windows
Find Windows
Options Window Design
Open and Save Panels
12. Controls
13. Installation and Updates
Software Valet packages
Getting Program Updates
A. How to Make a Good Error
Examples of Good Error Messages
Real World Examples of Bad Error Messages

List of Tables

12.1. Do's and Don'ts of Buttons
12.2. Do's and Don'ts of Checkboxes
12.3. Do's and Don'ts of Radio Buttons
12.4. Do's and Don'ts of Control Groups
12.5. Do's and Don'ts of Sliders
12.6. Do's and Don'ts of Labels
12.7. Do's and Don'ts of Text Controls
12.8. Do's and Don'ts of Text Views
12.9. Do's and Don'ts of List Views
12.10. Do's and Don'ts of Tabs
12.11. Do's and Don'ts of Scrollbars
12.12. Do's and Don'ts of Menu Fields
12.13. Do's and Don'ts of Popup Menus
12.14. Do's and Don'ts of Progress Meters
12.15. Do's and Don'ts of Toolbars