The user interface (UI) is a critical part of any software product. When it’s done well, users don’t even notice it. When it’s done poorly, users can’t get past it to efficiently use a product. To increase the chances of success when creating user interfaces, most designers follow interface design principles. Interface design principles represent high-level concepts that are used to guide software design. In this article, I’ll share a few fundamental principles. These are based on Jakob Nielsen’s 10 Usability Heuristics for UI Design, Ben Shneiderman’s The Eight Golden Rules of Interface Design, and Bruce Tognazzini’s Principles of Interaction Design. Most of the principles are applicable to any interactive systems — traditional GUI environments (such as desktop and mobile apps, websites) and non-GUI interfaces (such as voice-based interaction systems).
The UI design principals are:
- Place users in control of the interface
- Make it comfortable to interact with a product
- Reduce cognitive load
- Make user interfaces consistent
1.
Place users in control of the interface
Good UIs instill a sense of
control in their users. Keeping users in control makes them comfortable; they
will learn quickly and gain a fast sense of mastery.
Make actions reversible – be forgiving
This
rule means that the user should always be able to quickly backtrack whatever
they are doing. This allows users to explore the product without the constant
fear of failure — when a user knows that errors can be easily undone, this
encourages exploration of unfamiliar options. On the contrary, if a user has to
be extremely careful with every action they take, it leads to a slower
exploration and nerve-racking experience that no one wants.
Perhaps
the most common GUIs where users have the
‘Undo/Redo’ option are text and graphics editors. While writing text or
creating graphics, ‘Undo’ lets users make changes and go back step-by-step
through changes that were made. ‘Redo’ lets users undo the undo, which means
that once they go back a few steps, they are able to move forward through their
changes again.
‘Undo’
can be extremely helpful when users choose system function by mistake. In this
case, the undo function serves as an ’emergency exit,’ allowing users to leave
the unwanted state. One good example of such emergency exits is Gmail’s notification
message with an undo option when users accidentally delete an email.
Create an easy-to-navigate interface
Navigation
should always be clear and self-evident. Users should be able to enjoy
exploring the interface of any software product. Even complex B2B products full
of features shouldn’t intimidate users so that they are afraid to press a
button. Good UI puts users in their
comfort
zone by providing some context of where they are, where they’ve been, and where
they can go next:
- Provide visual cues. Visual cues serve as reminders for users. Allow users to navigate easily through the interface by providing points of reference as they move through a product interface. Page titles, highlights for currently selected navigation options, and other visual aids give users an immediate view of where they are in the interface. A user should never be wondering, “Where am I?” or “How did I get to this screen?”
- Predictability. Users should be provided with cues that help them predict the result of an action. A user should never be wondering, “What do I need to press in order to do my task?” or “What is this button for?”
Provide informative feedback – be acknowledging
Feedback
is typically associated with points of action — for every user action, the
system should show a meaningful, clear reaction. A system with feedback for
every action helps users achieve their goals without friction.
UI design should
consider the nature of interaction. For frequent actions, the response can be
modest. For example, when users interact with an interactive object (such as a
button), it’s essential to provide some indication that an action has been
acknowledged. This might be something as simple as a button changing color when
pressed (the change notifies the user of the interaction). The lack of such
feedback forces users to double-check to see if their intended actions have been
performed.
For
infrequent and significant actions, the response should be more substantial.
For example, when filling out a password field in the signup form, good UI might inform users of the
requirements for their password.
Show the visibility of system status
Users
are much more forgiving when they have information about what is going on and
are given periodic feedback about the status of the process. Visibility of
system status is essential when users initiate an action that takes some time
for a computer to complete. Users don’t like to be left seeing nothing on the
device screen while the app is supposed to be doing something. The use of
progress indicators is one of the subtle aspects of UI design that has a tremendous impact on the
comfort and enjoyment of users.
Good UI
can comfort users by showing progress while the system is completing a task.
Dropbox is indicating the status of a document upload: the current progress and
the amount of time left.
Accommodate users with different skill levels
Users
of different skill levels should be able to interact with a product at
different levels. Don’t sacrifice expert users for an easy-to-use interface for
novice or casual users. Instead, try to design for the needs of a diverse set
of users, so it doesn’t matter if your user is an expert or a newbie.
Adding
features like tutorials and explanations is extremely helpful for novice users
(just make sure that experienced users are able to skip this part).
Once
users are familiar with a product, they will look for shortcuts to speed up
commonly-used actions. You should provide fast paths for experienced users by
enabling them to use shortcuts.
2.
Make it comfortable for a user to interact with a product
Eliminate all elements that are not helping your users
Interfaces
shouldn’t contain information that is irrelevant or rarely needed. Irrelevant information introduces noise in UI —it competes with the
relevant information and diminishes its relative visibility. Simplify
interfaces by removing unnecessary elements or content that does not directly
support user tasks. Strive to design
UI
in a way that all information presented on the screen will be valuable and
relevant. Examine every element and evaluate it based on the value it delivers to users.
A good example of an app that follows the ‘less is more’ approach by avoiding overloading the interface with content or features is iA Writer.
The interface of iA Writer app is a clean typing sheet with no distractions. It allows users to focus on what they’re writing and hides everything else.
Don’t ask users for data they’ve already entered
Don’t
force users to have to repeat data they’ve previously entered. Users are easily
annoyed by tedious data-entry sequences, especially when they have provided all
the required information before. Good UI performs
a maximum of work while requiring a minimum amount of information from users.
Avoid jargon and system-oriented terms
When
designing a product, it’s important to use language that is easy to read and
understand. The system should speak the user’s language, with words, phrases,
and concepts familiar to the user, rather than jargon or system-oriented terms.
Apply Fitts’s Law to interactive elements
Fitts
Law states that the time to acquire a target is a function of the distance
to and size of the target. This means that it’s better to design large targets
for important functions (big buttons are easier to interact with).
It’s also important to remember that the time required to acquire multiple targets is the sum of the time to acquire each. Thus, when working on UI design, to increase the efficiency of an interaction, try to not only reduce distances and increase target sizes, but also reduce the total number of targets that users must interact with to complete a given task.
Design accessible interfaces
When
we design products it’s important to remember that a well-designed product is
accessible to users of all abilities, including those with low vision,
blindness, hearing impairments, cognitive impairments, or motor impairments. Good UI is accessible UI because improving your
product’s accessibility enhances the usability for all groups of users.
Color is one of the elements of design that has a strong impact on accessibility. People perceive color differently — some users can see a full range of colors, but many people can only make out a limited range of colors. Approximately 10 percent of men and one percent of women have some form of color blindness. When designing interfaces, it’s better to avoid using color as the only way to convey information. Anytime you want color to convey information in the interface, you should use other cues to convey the information to those who cannot see the colors.
Use real-world metaphors
Using metaphors in UI design allows users to create a connection between the real world and digital experiences. Real-world metaphors empower users by allowing them to transfer existing knowledge about how things should look and work. Metaphors are often used to make the unfamiliar familiar. Take the recycle bin on your desktop, which holds deleted files, as an example – it’s not a real trash bin, but it’s visually represented in a way that helps you understand the concept more easily.
Good metaphors generate a strong
connection to past experiences from the real world in users’ minds. The recycle
bin icon on Macs is similar to an actual bin, and it shows whether it has files
in it.
When choosing a metaphor for UI, select the one that will enable users to grasp the finest details of the conceptual model. For example, when asking for credit card details for payment processing, you can reference a real-world physical card as an example.
Engineer for errors
Errors are inadvertent in the user journey. Bad error handling paired with useless error messages can fill users with frustration and lead them to abandon your app. A well-crafted error message, on the other hand, can turn a moment of frustration into a moment of conversion. An effective error message is a combination of explicit error notification together with hints for solving the problem.
Even
better than writing good error messages is having UI design that prevents a problem from occurring
in the first place. Try to either eliminate error-prone conditions or check for
them and present users with a confirmation dialog before they commit to the
action. For example, Gmail prompts you when you forget to insert an attachment.
The best designs have excellent error
recovery while trying to prevent users from making those errors in the first
place. Error prevention in Gmail shows a pop-up if users forget to insert an
attachment after referencing one.
Protect a user’s work
Ensure
that users never lose their work. Users should not lose their work as a result
of an error on their side (i.e.
accidentally refresh a web page with a form that has user input), a system error,
problems with an internet connection, or any other reason other than those that
are completely unavoidable, like an unexpected power loss.
3. Reduce cognitive load
Cognitive
load is the amount of mental processing power required to use a product. It’s
better to avoid making users think/work too hard to use your product.
Chunking for sequences of information or actions
In
1956, psychologist George Miller introduced the world to the theory of
chunking. In his works, Miller says the human working memory can handle
seven-plus-or-minus two “chunks” of information while we’re processing
information.
This
rule can be used when organizing and grouping items together. For example, if
your UI forces users to enter telephone numbers without normal spacing it can
result in a lot of incorrectly-captured phone numbers. People cannot typically
scan clusters of ten or more digits to discover errors. That’s exactly why
phone numbers are broken up into smaller pieces.
Reduce the number of actions required to complete a task
When
designing a user interface, strive to reduce the total number of actions
required from a user to achieve the goal. It’s worth remembering the three-click
rule, which suggests the user of a product should be able to find any
information with no more than three mouse clicks.
Recognition over recall
One
of the Jakob Nielsen’s 10 usability heuristics advises promoting recognition over recall
in UI design. Recognizing something
is much easier than recalling it because recognition involves more cues in our
brain (cues spread activation to related information in memory, and those cues
help us remember information).
Designers
can promote recognition in user interfaces by making information and
functionality visible and easily accessible. Visual aids, such as tooltips and
context-sensitive details, also help support users in recognizing information.
Promote visual clarity
Good
visual organization improves usability and legibility, allowing users to
quickly find the information they are looking for and use the interface more
efficiently.
When designing layouts:
- Avoid presenting too much information at one time on the screen. Construct a grid system design to avoid visual clutter.
- Remember the principle ‘form follows function.’ Make things look like they work.
- Apply the general principles of content organization such as grouping similar items together, numbering items, and using headings and prompt text.
4. Make user interfaces consistent
Consistency is an essential property of good UI—consistent design is intuitive design. Consistency is one of the strongest contributors to usability and learnability. The main idea of consistency is the idea of transferable knowledge — let users transfer their knowledge and skills from one part of an app’s UI to another, and from one app to another app.
Visual consistency (style)
Users should never question the integrity of a product. The same colors, fonts, and icons should be present throughout the product. Be sure to always reference your design system manager to ensure you don’t change visual styles within your product for no apparent reason. For example, a Submit button on one page of your site should look the same on any other page.
Avoid using different styles for elements
on different pages of the site. Users should not have to wonder whether a
transformed button like this example means the same thing.
Functional consistency (behavior)
Consistency of behavior means the object should work in the same way throughout the interface. The behavior of interface controls, such as buttons and menu items, should not change within a product. Users don’t want surprises or changes in familiar behavior — they become easily frustrated when things don’t work. This can inhibit learning and stop users from feeling confident about consistency in the interface. Do not confuse your user — keep actions consistent by following “The principle of least surprise,” to have the interface behave the way users expect it to.
Consistent with user expectations
People
have certain expectations about the apps/websites they use. Designing your
product in a way that contradicts a user’s expectations is one of the worst
things you can do to a user. It doesn’t matter what logical argument you
provide for how something should work or look. If users expect it to work/look
a different way, you will face a hard time changing those expectations. If your
approach offers no clear advantage, go with what your users expect.
- Follow platform conventions. Your product should be consistent with standards dictated by platform guidelines. Guidelines ensure that your users can understand individual interface elements in your design.
- Don’t reinvent patterns. For most design problems, proper solutions already exist. These solutions are called patterns. Popular patterns become conventions and the majority of users are familiar with them. Not taking this solution into account and continuing to design your own solution can lead to challenges for users. In most cases, breaking design conventions results in a frustrating user experience — you’ll face usability problems not necessarily because your solution will be wrong, but because users won’t be familiar with it.
- Don’t try to reinvent terminology. Avoid using new terms when there are words available that users already know. Users spend most of their time in other apps and on other sites, so they have certain expectations about naming. Using different words might confuse them.
Conclusion
The goal for UI designers today is to produce user-friendly interfaces: interfaces that encourage exploration without fear of negative consequences. Without any doubt interfaces of the future will be more intuitive, enticing, predictable, and forgiving, but most principles of UI design listed in this article will surely be applicable to them, too.