Skip to content
contact@thehassansaid.com
Writing

Designing in code, not for it

Why I stopped handing off static files and started shipping the interface I designed.

  • Process
  • Design Engineering

The gap between a design file and a shipped interface is where most of the craft leaks out. Spacing drifts. Easing curves get approximated. The empty state nobody drew gets invented on the spot.

What changes when you build it yourself

You stop designing things that can't exist. Not because you lower your ambition, but because your ambition gets calibrated against what the platform actually does.

// The hover you drew as a 200ms fade is really this:
transition: transform var(--dur-fast) var(--ease-out-quart);

That's not a compromise. That's the design.

The part nobody mentions

You also become responsible for the boring half: the focus states, the reduced-motion path, the thing that happens on a 320px screen. Which is exactly the half that determines whether the work is any good.