Interfaces built
to the pixel.

UI Engineer

I'm Ramona. I build interfaces the way designers wish engineers would: motion, states, accessibility and all.

sandbox // try it yourself
Portfolio review
45 min ยท video call

Weekend slots
accent
page theme
> radius:16px accent:...
Selected work

From blank file
to live URL.

The Atlas travel-ops dashboard in dark mode: an in-transit Tokyo trip, KPI tiles, a trip list, and a 64% travel-budget ring
dashboard

Atlas

ReactTypeScriptStorybookTailwind

A travel-operations dashboard that shows status, budgets, and departures at a glance. A custom AI skill scaffolded the token-driven component library, with Storybook docs and light/dark theming, and then generated the dashboard from those same components.

Almanac trivia game category screen: a deep red aurora fading into a starlit night sky, the wide-tracked 'Almanac' wordmark, and four glass category tiles (Science & Nature, History, Geography, Pop Culture)
ai trivia

Almanac

Next.jsAI SDKTypeScriptTailwind

A trivia game where the score is the artwork. Every answer lights a star in a constellation that draws itself. Each round has ten AI-generated questions set in a living night sky built with Next.js and Tailwind on a full design-token system.

The Cha brand site's 'A day in five cups' section: five tea moments across the day, from first light to last warmth
brand website

Cha

Vanilla JSCSS tokensNode

A conceptual green-tea brand site that teaches instead of selling. It includes evidence-led copy, color that behaves like ink, and a steep timer you can actually brew with. It was built with JavaScript, CSS, a small Node backend for email sign-up, and AI to help refine the interactive details.

Luigi rendered entirely in CSS, shown in its skeuomorphic, 3D-shaded state
css art

Luigi

Pure CSSSCSS

Built entirely out of gradients, shadows, and border-radius. No AI, no images, no JavaScript. A single checkbox toggles the whole illustration between flat design and skeuomorphism.

Four things I won't
ship without.

Every state, mapped

Loading, empty, and error get the same code review as the happy path, each one designed and built before QA ever sees a build.

Tokens, not magic numbers

Every color, radius, and easing curve lives in a variable. The design survives refactors because it was never hardcoded in the first place.

Motion, tuned in code

Motion curves picked per component in code, never the library default. Hover the stage to feel one.

AI in the loop, not in charge

Agents scaffold components, explore variants, and surface the states I'd forget. Every line still gets read before it merges.

Engineer by trade,
designer by reflex.

I came up through front-end engineering, turning Figma files into production code and finding everything the mockups didn't say: loading states, awkward breakpoints, focus rings. At some point I stopped asking designers to fill the gaps and just designed those parts in the browser myself. Now I ship working components instead of tickets.

ramona@dev // stack

Let's build something people can feel.

Say hello