Taste Is Trained

Taste gets talked about like a gift. Some people have the eye, the rest of us install a component library. It is a comfortable story because it excuses not practicing.

But nobody's sense of whether an easing is right came pre-installed. The people we call tasteful have simply noticed more things, more carefully, for longer. Taste is trained. It is a skill with reps.

Here are two cards. One of them has three things wrong with it. Take your time, then reveal.

Launch week
12 tasks, 3 open
Launch week
12 tasks, 3 open

If you found all three, good. If you found none, also good. The point is that you can only fix what you can see, and seeing gets better with practice.

The training loop

Use good software slowly. Open the same menu three times. Ask what the shadow is doing, why the exit is faster than the entrance, what the hover state is not doing. Linear, Raycast, and the Family wallet are all worth an afternoon of this.

Say what you notice, out loud or in writing. "This feels nice" trains nothing. "The popover scales from the trigger, not the center" is a rep. Vague admiration does not stick. Named differences do.

Rebuild it, then compare. Put your copy next to the original and study the gap. The gap is the curriculum. Paco Coursey and Rauno Freiberg both learned this way, and both say so.

Change one thing at a time

Judging two options side by side is far easier than judging one on its own. Keep the component fixed and change a single variable. Press play a few times for each pair.

400ms
150ms

Once you can tell 150ms from 400ms without thinking, you have a reference point you did not have before. Do this for easing, for origin, for shadow, for spacing. Each pair adds a notch to the scale.

Why it matters more now

When a tool can generate a plausible interface in seconds, execution stops being the bottleneck. Picking the right one out of five plausible options is the job, and that is taste.

The tools got faster. The eye still has to be earned.

Resources

Search concepts

Search for a command to run...