<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Zeeshan ur Rehman</title>
    <description>The latest articles on DEV Community by Zeeshan ur Rehman (@zeeshani42).</description>
    <link>https://dev.to/zeeshani42</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4183013%2Fac278dc7-2fb9-4c33-a0fa-6dd404d0961a.png</url>
      <title>DEV Community: Zeeshan ur Rehman</title>
      <link>https://dev.to/zeeshani42</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zeeshani42"/>
    <language>en</language>
    <item>
      <title>I built a Claude skill that makes AI design like a senior UX designer</title>
      <dc:creator>Zeeshan ur Rehman</dc:creator>
      <pubDate>Tue, 13 Oct 2026 21:11:14 +0000</pubDate>
      <link>https://dev.to/zeeshani42/i-built-a-claude-skill-that-makes-ai-design-like-a-senior-ux-designer-2gdm</link>
      <guid>https://dev.to/zeeshani42/i-built-a-claude-skill-that-makes-ai-design-like-a-senior-ux-designer-2gdm</guid>
      <description>&lt;p&gt;Ask any AI to "design a dashboard" and you get the same thing every time. A KPI row, a line chart, a table. Logistics, HR, healthcare, fintech: they all look identical. And the moment you look closer, there's no loading state, no empty state, no error state. It renders. It doesn't work.&lt;/p&gt;

&lt;p&gt;I've spent 14 years designing enterprise SaaS for aviation, logistics, and HR products. So I wrote down how I actually design, and turned it into a Claude skill.&lt;/p&gt;

&lt;p&gt;It's free, open source, and MIT licensed: &lt;strong&gt;&lt;a href="https://github.com/zeeshani42/your-ui-ux-designer" rel="noopener noreferrer"&gt;your-ui-ux-designer on GitHub&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F50cwtyafp34gip4k3ln8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F50cwtyafp34gip4k3ln8.png" alt="Logistics shipment dashboard generated by the UI/UX Designer Claude skill" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A logistics shipment dashboard, generated with the skill in HTML.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The core rule: render, don't describe
&lt;/h2&gt;

&lt;p&gt;Most AI output &lt;em&gt;describes&lt;/em&gt; good design. "The table should have a loading state." "Buttons should have focus styles."&lt;/p&gt;

&lt;p&gt;The skill treats a described state as &lt;strong&gt;not delivered&lt;/strong&gt;. If a rule names an output, that output must appear in the result. So every screen ships with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Default, Loading, Empty, and Error states, as real rendered views&lt;/li&gt;
&lt;li&gt;Focus rings and working interactions&lt;/li&gt;
&lt;li&gt;Four responsive breakpoints&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;prefers-reduced-motion&lt;/code&gt; fallback&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuec9mxyna59wbdhxlt3g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuec9mxyna59wbdhxlt3g.png" alt="Dashboard shown in Loading, Empty, and Error states" width="800" height="938"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The same dashboard in its Loading, Empty, and Error states. Built in, not added later.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;It asks before it designs.&lt;/strong&gt; At the start of a session, it asks 5 questions once: your design system (or it creates one), industry, output target, style, and dark mode. Then it commits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;11 distinct styles.&lt;/strong&gt; Minimal, Material 3, Bento Grid, Glassmorphism, Liquid Glass, Spatial, Aurora, Neo-Brutalism, plus Neumorphism, Claymorphism, and Skeuomorphic for the narrow cases where they fit. It also warns you when a style is wrong for the context, like Claymorphism for enterprise B2B.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enterprise navigation.&lt;/strong&gt; Gmail-style dual nav, a fixed icon rail plus a collapsible secondary panel, that reflows correctly to a mobile top bar and bottom bar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bring your own design system.&lt;/strong&gt; Share tokens, a link, or an image. It adopts them and fills in what's missing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multiple output targets.&lt;/strong&gt; HTML, Figma, Claude Design, or a written spec.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Built-in validation.&lt;/strong&gt; Before delivering, it checks that charts actually paint, controls actually work, and contrast actually passes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fytacl3o84pc25errb5zw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fytacl3o84pc25errb5zw.png" alt="Fintech invoice reconciliation landing page with live dashboard" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Same skill, different industry: a fintech landing page with a live dashboard, in HTML.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How it's built
&lt;/h2&gt;

&lt;p&gt;A lean core file, plus reference files that load only when needed. That keeps it fast and stops it from dropping rules on big tasks.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ui-ux-designer/
├── SKILL.md          core spine
└── references/
    ├── styles.md     11 style definitions
    ├── patterns.md   navigation, tables, dropdowns
    ├── mobile.md     touch / gesture / mobile spec
    └── figma.md      Figma auto-layout &amp;amp; variants
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Does it work?
&lt;/h2&gt;

&lt;p&gt;I tested it on 30 cases across aviation, transport, and HRM, scored on a 10-point rubric covering screen logic, style fidelity, contrast, grid, states, interaction, and responsiveness.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Overall: &lt;strong&gt;86.7 / 100&lt;/strong&gt; on Sonnet 4.6&lt;/li&gt;
&lt;li&gt;HTML on Opus 4.8: &lt;strong&gt;93.0 / 100&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Figma on Opus 4.8: &lt;strong&gt;88.0 / 100&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One lesson from testing: model choice matters. Routing HTML and Figma work to Opus fixed the responsiveness gap. And low reasoning effort drops states, so don't run it on low.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install in 3 steps
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Download &lt;code&gt;ui-ux-designer.skill&lt;/code&gt; from the &lt;a href="https://github.com/zeeshani42/your-ui-ux-designer" rel="noopener noreferrer"&gt;repo&lt;/a&gt; or its Releases page&lt;/li&gt;
&lt;li&gt;In Claude: &lt;strong&gt;Settings → Capabilities → Skills → Upload skill&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select the file. It installs automatically.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It triggers on any UI/UX request, or call it directly with &lt;code&gt;/ui-ux-designer&lt;/code&gt;. Works in Claude Chat, Claude Code, and Claude Cowork.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;Paste this after installing:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Design a mobile app screen for a field-service technician: a job list with status, and a job detail view. Output as HTML.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What I learned building it
&lt;/h2&gt;

&lt;p&gt;AI is fast, but it's confidently incomplete. The value isn't in getting AI to generate a screen. It's in encoding the checks a senior designer runs without thinking: what happens when this table is empty? What does a technician see when the network fails? Where does this nav go on a phone?&lt;/p&gt;

&lt;p&gt;That's what this skill tries to capture.&lt;/p&gt;

&lt;p&gt;If you try it and it gets something wrong, &lt;a href="https://github.com/zeeshani42/your-ui-ux-designer/issues" rel="noopener noreferrer"&gt;open an issue&lt;/a&gt; with the prompt and a screenshot. And if it's useful, a ⭐ on GitHub helps other people find it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AI builds. I decide.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>ux</category>
      <category>productdesign</category>
    </item>
  </channel>
</rss>
