Skip to main content
AI Development

How Claude Code Turned Me Into a UI Designer

How the frontend-design and impeccable skills let a Laravel backend dev ship a token-driven blog redesign with measured, not assumed, contrast.

6 min
Read time
1,030
Words
Published
Last revised
Engr Mejba Ahmed

Written by

Engr Mejba Ahmed

Share Article

How Claude Code Turned Me Into a UI Designer

I am a backend developer. Eight-plus years of Laravel, queues, schema design, and API contracts, and for most of that time my honest relationship with UI design was: copy something that looks fine, tweak it until it stops looking fine, ship it anyway. What changed that was not a burst of talent. It was installing two design skills into Claude Code, and here is the claim I actually want to defend: these skills did not make me a designer. They made design decisions inspectable. Numbers instead of vibes. And I can prove it with a commit message.

How Claude Code Turned Me Into a UI Designer - overview of the two skills doing the work, the proof: a redesign with receipts

The Two Skills Doing the Work

My Claude Code setup has two design skills installed:

  • frontend-design — aesthetic direction. Typography, layout, color, and the discipline of making choices that do not read as templated defaults. My project's permission allowlist literally contains Skill(frontend-design) because I invoke it that often.
  • impeccable — the critic. It audits and polishes: visual hierarchy, accessibility, contrast, spacing, responsive behavior, focus states, tap targets, motion.

The division of labor matters. One skill proposes a direction; the other interrogates it. Running only the first gets you prettier output. Running both gets you output you can defend, which is the difference between decoration and design. I compared the strengths of the critic side in more depth in my review of the impeccable design skill.

The Proof: A Redesign With Receipts

In July 2026 I shipped a token-driven redesign of every blog surface on this site: index, category, tag, search, single post, cards, pagination. The commit message reads like a design audit because that is literally how the work happened. A few specifics, all of them things I would never have caught on my own:

The brand green failed contrast, and I had never checked. My brand color, #38D39F, had been carrying white text on buttons across the site for years. Measured: 1.9:1. WCAG minimum for normal text is 4.5:1. The skill did not say "consider accessibility"; it computed the ratio, declared the failure, and proposed a theme-dependent fix: a dedicated --blog-on-link token so the brand fill carries near-black ink where needed, landing at 10.0:1 in dark mode and 5.8:1 on interactive elements. The commit message states the design principle I have now adopted wholesale: contrast is measured, not assumed.

A shared partial was quietly broken in one theme. The blog's pagination partial is shared with my forum shell, which is hardcoded dark with no light-mode variants. In light mode, pagination links rendered at 1.79:1, essentially invisible, and nobody had ever reported it because nobody could see the links well enough to complain. The fix was a .theme-dark class that opts a subtree into the dark token ramp regardless of the page theme. Finding that required tracing which templates include which partials across two features. That is exactly the kind of cross-cutting audit a human skips and a skill does not.

Typography became a system instead of a pile. The redesign replaced ad-hoc sizes with a fluid clamp() type scale anchored at 390px, 768px, and 1440px viewports, and rebuilt the duplicated newsletter CTA as one component with a real 44px tap target and a visible focus ring. The old newsletter widget was hardcoded dark and rendered as a black slab on light-mode pages; it also carried a backdrop-filter blurring an opaque background, paying a compositing cost for an effect nobody could see. The skill flagged both.

The mechanism underneath all of it: a semantic CSS custom-property ramp (--blog-* tokens for surfaces, ink, lines, interactive states) exposed to Tailwind, so one set of classes renders correctly in both light and dark themes. Body copy targets AAA contrast; everything else targets AA. Those are testable claims, which is the whole point.

What Actually Changed in My Process

Before the skills, my design process was: build it, squint at it, adjust, repeat until deadline. Now it looks like this:

  1. Tokens first. Define the color ramp and type scale as custom properties before touching any template. Every later decision becomes a token choice, not a one-off.
  2. Direction pass with frontend-design: layout, hierarchy, and the explicit instruction to avoid defaults that make every AI-built page look identical.
  3. Critique pass with impeccable: contrast ratios computed, tap targets measured, focus states verified, both themes checked.
  4. Browser verification at three widths. Claude drives the actual browser and checks desktop, tablet, and mobile, the same rule I have always enforced on client WordPress work, except now it happens every iteration instead of once before launch.

The full pipeline from a design file to production code is its own topic; I documented it in my design-to-code workflow with Claude Code, and there is a broader tour in the designer's guide to Claude Code.

The Honest Limits

Three things the skills have not fixed:

  1. Taste is still mine. The skill can tell me 1.9:1 fails and propose alternatives. It cannot tell me whether the site should feel editorial or technical. When I give it no direction, I get competent, forgettable output.
  2. Brand identity needs a human anchor. The #38D39F green, the Instrument Sans / DM Serif Display / JetBrains Mono font stack: those were my decisions. The skills work within an identity far better than they invent one.
  3. It will over-polish if you let it. Left unchecked, the critic pass keeps finding refinements forever. I stop at "measured claims verified"; chasing the last 5% is procrastination wearing a design hat.

Should Backend Developers Bother?

Yes, and here is the reframe that makes it work: stop thinking of it as "AI makes my UI pretty" and start thinking of it as "design review as part of the toolchain," the same way Pint formats my PHP and PHPStan catches my type errors. A measurable design defect (a 1.9:1 button, a 32px tap target) is now a build-quality issue in my workflow, caught before commit, not after a user complaint. Discoverability of features like skills is its own problem, which I wrote about in Claude Code features most developers never find.

The blog you are reading right now is the before/after, and at project scale the same loop does more work than it can on a single page. Several of the client sites and product UIs on my projects shipped through exactly this token-first, critique-second process.

Advertisement
Coffee cup

Enjoyed this article?

Your support helps me create more in-depth technical content, open-source tools, and free resources for the developer community.

Related Topics

Engr Mejba Ahmed

Engr Mejba Ahmed

Engr. Mejba Ahmed builds AI-powered applications and secure cloud systems for businesses worldwide. With 8+ years shipping production software in Laravel, Python, and AWS, he's helped companies automate workflows, reduce infrastructure costs, and scale without security headaches. He writes about practical AI integration, cloud architecture, and developer productivity.

Related Articles

Browse All

Comments

Leave a Comment

Comments are moderated before appearing.

Learning Resources

Expand Your Knowledge

Accelerate your growth with structured courses, verified certificates, interactive flashcards, and production-ready AI agent skills.

Sample Certificate of Completion

Sample certificate — complete any course to earn yours

Engr Mejba Ahmed

Engr Mejba Ahmed

AI assistant · trained on my work

👋

Hey there!

Quick Actions

WhatsApp Direct line to me

Chat on WhatsApp

+880 1723 741224 · Replies within the hour on working days

Popular Questions

Engr Mejba Ahmed is connected
Engr Mejba Ahmed is typing...
Engr Mejba Ahmed avatar

✉ Want me to follow up? Drop your email

Engr Mejba Ahmed avatar

📞 Connect Directly

Choose how you'd like to reach me

WhatsApp

+880 1723 741224

Email

mejba.13@gmail.com

✓ Details sent! I'll get back to you shortly.

Powered by OpenAI

335+

Blog Posts

25

AI Courses

63

Projects

Services & Expertise

Pricing & Process

Learning & Resources

Connect & Support