Back to portfolioHow I Learned to Build Better User Interfaces

How I Learned to Build Better User Interfaces

Amir.Mahdi Sultani

Amir.Mahdi Sultani

·

April 15, 2026

UI DesignUser InterfaceFrontend DevelopmentWeb DesignUXReactcsstailwind cssdesign systemsresponsive designdeveloper growthui improvement

How I Learned to Build Better User Interfaces

Learning to build better user interfaces changed the way I think about frontend development.

At the beginning, I thought UI was mostly about making things look good. I focused on colors, effects, components, layouts, and whatever felt visually attractive at the moment. Sometimes the result looked interesting, but it often lacked something deeper. The interface might have looked “designed,” but it did not always feel clean, clear, or easy to use.

Over time, I realized that a better user interface is not just a prettier interface.

A better UI is one that communicates clearly.
A better UI is one that reduces friction.
A better UI is one that helps the user understand what matters first, what to do next, and how the product is meant to feel.

That shift changed everything.

I stopped thinking only in terms of decoration and started thinking in terms of hierarchy, spacing, consistency, readability, responsiveness, and usability. I began to understand that strong UI work is not about adding more. It is often about removing noise and making the important things easier to feel.

This is how I learned to build better user interfaces.


At First, I Thought UI Was Mostly Visual

Like many developers, my first instinct was to judge an interface mainly by appearance.

If it had gradients, shadows, modern cards, and smooth buttons, I felt like it was good. If it looked polished at a glance, I assumed I was improving.

But after building more projects, I started noticing something important: some interfaces looked fancy but still felt weak. They were hard to scan, hard to navigate, or visually noisy. Meanwhile, some much simpler interfaces felt far more professional and comfortable to use.

That taught me a critical lesson:

Visual style alone is not enough.

An interface can be stylish and still confusing. It can be modern and still feel unbalanced. It can be detailed and still fail to guide the eye properly.

That was the beginning of a more serious understanding of UI.


I Started Paying Attention to Hierarchy

One of the most important improvements in my UI thinking came from understanding visual hierarchy.

Hierarchy is the answer to a simple question:

What should the user notice first?

When everything competes for attention, nothing wins. If the heading, the button, the card border, the icon, the description text, and the background all shout at the same level, the interface becomes tiring. The user has to work harder to understand what matters.

So I started asking myself:

  • What is the primary element on this screen?
  • What is secondary?
  • What supports the main content?
  • What should stay quiet in the background?

This changed how I handled font sizes, weight, spacing, contrast, and layout.

A page became easier to build when I knew what the eye should follow first.

Stronger hierarchy made my interfaces feel less random and more intentional.


I Realized Spacing Is One of the Biggest Differences Between Amateur and Professional UI

There was a time when I underestimated spacing.

I focused on colors more than margins. I cared about effects more than breathing room. I thought a good component was mostly about its border, background, or style. But as I improved, I began to notice that spacing often makes a bigger difference than decoration.

Good spacing creates calm.
It gives structure to content.
It helps the eye separate groups naturally.
It makes layouts feel cleaner without adding anything flashy.

Poor spacing does the opposite. It makes even decent designs feel crowded, awkward, and unfinished.

So I started becoming more deliberate about:

  • padding inside cards and sections
  • vertical rhythm between headings and paragraphs
  • consistent gaps between inputs and buttons
  • space between grouped elements
  • margin rules that repeat across the interface

This one shift alone made a huge improvement in the quality of my UIs.

Spacing is not empty space. It is structure.


I Learned That Typography Does More Work Than Most People Think

Typography is one of the strongest tools in interface design, and I did not fully appreciate it at the beginning.

Earlier on, I treated text mostly as content. Later, I learned to treat text as part of the design system itself.

I started paying attention to:

  • heading sizes
  • body text readability
  • line height
  • text weight
  • muted vs primary text
  • paragraph width
  • consistency across sections

This helped me understand that typography controls not just style, but clarity and rhythm.

When typography is weak, the whole interface feels weaker. Even good layouts can feel unprofessional if the text hierarchy is unclear or the body text is uncomfortable to read.

Once I improved typography, my interfaces began to feel much more stable and readable.


I Stopped Trying to Impress Every Screen

One of the biggest mistakes I used to make was trying to make every part of the UI visually impressive.

I wanted every section to stand out. Every card needed a strong effect. Every button needed personality. Every screen wanted to feel special.

But that created too much visual noise.

Over time, I learned that strong interfaces do not try to impress with every element. They build balance.

Some parts should stand out.
Some parts should simply support.
Some parts should almost disappear.

Not everything needs dramatic styling.

This is where I began to appreciate minimalism more deeply, not as emptiness, but as control. A clean UI is not boring when it is structured well. It is confident.

Now when I design interfaces, I ask myself what can be simplified instead of what can be added.

That usually leads to better results.


I Began Designing for Use, Not Just for Screenshots

A lot of beginner UI work looks good in static form but breaks down when used like a real product.

This happens because the interface was designed as an image instead of an experience.

At some point, I started asking better questions:

  • What happens when the user types a long value?
  • What happens on mobile?
  • What happens when there is no data?
  • What happens when a card title wraps to two lines?
  • What happens if an error message appears?
  • What happens when the network is slow?
  • What happens when the content grows over time?

These questions changed how I built interfaces.

Instead of only making screens look attractive, I started designing states:

  • loading states
  • empty states
  • error states
  • hover states
  • disabled states
  • success states
  • responsive states

This made my UI work much more practical.

A real interface is not just the ideal version. It is the complete behavior of the product under real conditions.


I Learned to Think in Components, Not Just Pages

Another major improvement happened when I stopped thinking about the UI only as full pages and started thinking more in components.

This is especially important in modern frontend development.

A good interface is often built from reusable building blocks:

  • buttons
  • inputs
  • cards
  • modals
  • dropdowns
  • tables
  • tabs
  • badges
  • layout wrappers
  • feedback elements

Once I started designing these pieces with more consistency, the whole interface improved.

Instead of reinventing styles every time, I began creating repeatable patterns. That made the product feel more unified and more professional.

It also made development faster.

Component thinking taught me that UI quality does not come only from strong pages. It also comes from strong systems.


I Started Respecting Consistency More

Consistency is one of the most powerful qualities in interface design, but it is easy to ignore when building quickly.

Early on, I might use different border radii in different places, different padding values across similar cards, different text styles for similar headings, or slightly different button behaviors between pages.

Each inconsistency seemed small, but together they made the product feel less polished.

As I improved, I began caring much more about repeated rules:

  • the same spacing scale
  • the same button style system
  • the same heading logic
  • the same card behavior
  • the same treatment for forms
  • the same hover language
  • the same visual rhythm

Consistency builds trust. It makes a product feel intentional instead of accidental.

This is one of the biggest reasons design systems are powerful. They turn scattered visual decisions into shared standards.


I Learned That Simplicity Is Harder Than Complexity

A noisy interface is easier to make than a clean one.

When an interface feels weak, adding more things can feel like progress. Add another shadow. Another background layer. Another line. Another icon. Another effect. Another color accent.

But simplicity takes more discipline.

To create a simple interface that still feels complete, you need stronger judgment. You need to know what matters, what can stay subtle, and what should be removed entirely.

This was an important lesson for me.

A better UI is often the result of editing, not decorating.

When I started simplifying more intentionally, my interfaces became clearer, calmer, and stronger.


I Became Much More Careful with Color

At first, I treated color mainly as a way to make the interface look modern.

Later, I started using color more purposefully.

I began to think about:

  • primary actions
  • secondary actions
  • success, warning, and error states
  • muted text vs strong text
  • contrast and accessibility
  • background layers
  • how much accent color is enough

This made the interface more controlled.

Too much color can make a design feel childish or overwhelming. Too little color can make it feel lifeless. Better UI usually comes from using color with intention, not excitement.

Now I try to let color support meaning, not replace structure.


I Learned Through Rebuilding, Not Just Reading

A lot of my UI improvement did not come from reading theory alone. It came from rebuilding interfaces, making mistakes, noticing what felt off, and gradually developing a stronger eye.

I learned by:

  • redesigning old projects
  • comparing weak UIs to better ones
  • studying product interfaces I respected
  • building many cards, forms, dashboards, and landing pages
  • noticing what repeatedly caused visual problems
  • fixing layout issues again and again

This repetition mattered a lot.

UI skill is partly knowledge, but it is also pattern recognition. The more interfaces you build, the more you begin to feel what is balanced and what is not.

That feeling only grows through practice.


Responsive Design Changed the Way I Build

Another major step in learning better UI was realizing that a good interface is not tied to one screen size.

An interface that looks strong on desktop but collapses awkwardly on mobile is not finished.

Responsive design forced me to think more carefully about:

  • layout flexibility
  • stacking behavior
  • content priority
  • button size on smaller screens
  • spacing changes across breakpoints
  • text wrapping
  • navigation behavior

This made my interface thinking much more mature.

Responsive design is not just technical adaptation. It is a design decision about how the experience should transform across devices.

Once I took responsiveness more seriously, the quality of my frontend work improved a lot.


Better UI Also Came from Better Restraint

One of the most underrated skills in interface building is restraint.

Not every idea should be used.
Not every effect should stay.
Not every section needs a special style.
Not every trend belongs in every project.

As I improved, I became more selective.

That selectiveness made my work stronger.

Good UI is not about showing how many design ideas you know. It is about using the right amount of design to make the product feel clear, strong, and easy to trust.


What Building Better UI Actually Changed for Me

Learning to build better interfaces did more than improve appearance. It improved how I think as a frontend developer.

It made me more careful.
It made me more structured.
It made me more user-focused.
It made me see the difference between decoration and communication.
It made me appreciate consistency, hierarchy, and simplicity much more deeply.

It also made my projects feel more complete.

When the UI becomes clearer, the whole product feels smarter, even before the user notices why.

That is the power of good interface work.


Final Thoughts

I learned to build better user interfaces by moving away from surface-level styling and toward deeper design thinking.

I stopped asking only, “Does this look good?”
And started asking, “Does this feel clear?”
“Does it guide the eye?”
“Is it easy to use?”
“Is it consistent?”
“Does it still work when real content appears?”
“Can the interface breathe?”
“Can the product be trusted at a glance?”

That shift changed the quality of my work.

For me, better UI did not come from one trick, one framework, or one design style. It came from learning how to see more clearly: hierarchy, spacing, typography, consistency, responsiveness, restraint, and usability.

That is what made my interfaces better.

And that is what continues to improve them every time I build.

Comments

Sign in to join the conversation.

Sign in