Your product works. It just looks unresolved.
I make the surface precise — type scale, spacing, hierarchy, and every state — so it reads as one product somebody built on purpose.
Change the values. This is a real component reacting — the same variables I hand to engineering.--type-scale : 1.00 --space-unit : 16px --radius : 10px --weight : 650
Hire me for this when
- 01the interface feels off and nobody can name why
- 02three designers passed through and left three visual languages
- 03you have dense data and it has stopped being readable
- 04you are weeks from launch and the screens do not hold together
Where this starts and stops
Once we know what the screen is for and what the user is doing on it. The flow is already decided.
At build-ready screens where every state — empty, loading, error, too much data — is specified, not left to the developer.
- This is not deciding what to build — that is Product Design.
- This is not fixing a flow that loses people — that is UX Design.
- It is not decoration. If a change does not improve legibility or hierarchy, I do not ship it.
How I work
- 01
Audit what is there
I collect every screen and list the inconsistencies. Usually the same component exists in five sizes.
- 02
Set the scales
One type scale, one spacing scale. Every later decision references them instead of being invented.
- 03
Build the hierarchy rules
What is loudest on this screen, and why. Applied the same way on every screen after it.
- 04
Specify the states
Empty, loading, error, and the overflow case nobody designs. These are where products feel unfinished.
- 05
Hand off the rules
Not just files. The rules, so the next screen someone builds without me still looks like it belongs.
Proof
On IranBroker I gave every number one meaning — one token for gains, one for losses, one for pending — applied across the platform. On Developica the work was dense UI patterns for people who read interfaces for a living.
Screens that need resolving?
Send me the messiest three screens you have. I will tell you what I would change first.
Send me your screens →