Skip to main content
There’s a set of psychological principles behind every interface that feels right. Every interface that feels natural respects how we actually think—not how a spec says we should think, but how our brains actually work. Researchers have been studying this for decades. This guide covers the laws that are most useful to keep in mind when building interfaces.

The Five Essential Laws

These principles are grounded in decades of psychological research and apply directly to interface design.

The time required to move to a target is a function of the target’s size and distance from the starting point.

The bigger something is, the easier it is to click. This one is pretty obvious, but it’s something that’s easy to overlook when building.Key Principle: Every pixel of padding on a button is a usability decision. Make the things people need to click easy to click.
Use ::before pseudo-elements to expand the hit area of interactive elements. The user can’t see the extra padding, but it’s there and it’s easy to click.
Real-World Example: In platformer games, there’s a trick called “coyote time” where the game lets you jump for a few frames after you’ve already walked off a ledge. You’re technically in the air, but the game pretends you’re still on solid ground.Same principle as expanding a button’s hit area. Instead of making a spatial target bigger, you’re making a temporal target bigger. The user doesn’t notice the forgiveness. They just feel like the system works.

The time it takes to make a decision increases with the number and complexity of choices.

More options, more cognitive load. And it’s not linear—it’s logarithmic. Going from 2 to 4 choices is noticeable. Going from 8 to 16 is painful.Finding a word among 4 options is easy. Try it with 24, each printed in the wrong color. That hesitation you feel is Hick’s Law.
This doesn’t mean you should always minimize choices. Sometimes people need options. The key is progressive disclosure—show what matters now, reveal complexity when it’s needed.
Restaurant menus understand this intuitively. The best ones don’t list 200 dishes. They curate what you think should be seen. Your interface should too.

The average person can hold about 7 (plus or minus 2) items in working memory at any given time.

Whenever you’re dealing with a lot of data, you need to chunk it or group it in a way that makes sense to the user. Showing them blobs of text is the worst thing you can do. It’s like trying to find a needle in a haystack of junk.Example: Compare these two representations of the same phone number:
  • Raw: 5551234567
  • Chunked: (555) 123-4567
The raw data is identical to the chunked version. Your brain processes them completely differently. Chunking isn’t a nice-to-have—it’s a cognitive necessity.
When displaying complex data:
  • Break long strings into meaningful groups
  • Use visual separators (spaces, dashes, parentheses)
  • Group related information together
  • Limit lists to 5-9 items when possible

Productivity soars when a computer and its users interact at a pace that ensures neither has to wait on the other. The threshold is 400 milliseconds.

Under 400ms, interactions feel instant. Above it, you notice. Way above it, you start wondering if something broke.Response Time Feel:
  • 100ms - Feels like the button is an extension of your hand
  • 400ms - Barely noticeable
  • 2000ms - Feels broken, even though it does exactly the same thing
If you can’t make something fast, make it feel fast. Optimistic UI, skeleton screens, and progress indicators all exist because perceived speed matters as much as actual speed.
The best interactions are the ones where you never think about speed at all.

Be conservative in what you send, be liberal in what you accept.

This was originally a networking principle from RFC 761, but it translates perfectly to interface design. Your inputs should accept messy human data and normalize it into clean output.Example: When someone types any of these date formats:
  • jan 15 2024
  • 2024-01-15
  • 1/15/24
  • January 15, 2024
They all mean the same thing. Your interface should understand that.
Users don’t think in formats. They think in meaning. The more formats you accept, the less friction people experience.Validate generously, format strictly.

Looking Back

These laws aren’t really about interfaces. They’re about how people work—how we perceive time, how we make decisions, how much we can hold in our heads at once. You don’t need to memorize any of this. Just pay attention to how things feel when you use them. At the end of the day, the hardest thing to do is make something feel easy, and that’s what we’re trying to achieve.

Further Reading

Build docs developers (and LLMs) love