United States of UI: Tackling the Unusual
If good design is what happens when the unusual happens, then it's crucial to think about states. The term is fancy, but everyone works with states. The default state, for example, is the context in which you usually operate.
So, besides the default state, here are some more to consider:
Activation
Hover, focused, pressed, disabled sub-states
Blank
What the user sees if there's no data
Error
The feedback the user gets when an operation failed. An invalid input. A disabled control.
Success
The feedback the user gets once an operation is successful
Scroll
How the interface looks when the user scrolls it
Offline
What happens when there's no connectivity
Loading
What the user sees when something is being loaded
Edge
How the interface behaves when there are massive amounts of input
The key is to wrap this thinking around not just interfaces but also components.
Every state is an answer to an unexpected situation. So, by having more answers in mind, it's easier to explore all the possible things that could happen.
One final tip: I found a useful acronym that could help with keeping this method fresh. Here it goes:
A-ctivation B-lank E-rror S-uccess
S-croll O-ffline L-oading E-dge