Guides

Claude Code Design Prompts: 9 Copy-Paste Prompts (2026)

Jason Zhou9 min read
claude code design promptsclaude code ui promptsclaude code prompts for designbest claude code prompts uiclaude codeprompt library

Quick answer

The best Claude Code design prompts are engineered around its three weaknesses: it is blind, it has no design memory, and it defaults to safe Tailwind. Use a design-system prompt to write a persistent DESIGN.md, an anti-slop block that forces one named direction, reference-grounded prompts for each screen (dashboard, landing, pricing, settings), a screenshot-compare-refine loop, and component-extraction prompts. The one variable that decides the outcome is the reference you paste in.

Try it now, freeTurn a prompt into a design on SuperdesignOpen the tool →

These are nine Claude Code design prompts you can copy, paste, and ship today. They are not generic "make it beautiful" lines. Each one is engineered around the three things Claude Code actually gets wrong: it is blind (it writes CSS but cannot see the result), it has no design memory between sessions, and left alone it defaults to safe Tailwind (Inter, a purple gradient, three rounded cards). Fix those and the same model that gave you slop yesterday ships UI you would actually keep.

Use them standalone. The one variable in almost every prompt below is "paste a reference", and getting a good reference is the genuinely hard part, so the last section covers how to get one fast. For the why behind all of this, the pillar on designing good UI with Claude Code goes deep.

These prompts are only as good as the reference you paste inSuperdesign gives Claude Code real references and a design-system file: a free prompt library, live Component Grab, and parallel directions on a canvas. Free tier, flat $20/mo.Start designing →

Why Claude Code needs special prompts

Because a coding agent is a great front-end engineer and a blind designer, so the prompts that work for logic do not work for looks. Claude writes flawless, accessible, responsive code, then converges on the statistical average of its training data when you leave the aesthetic open. A normal prompt ("build a dashboard") hands it three jobs at once (taste, layout, code) and it returns the safe middle of all three. The prompts below split those jobs apart and feed Claude the two things it lacks: a persistent system and a concrete reference. More on the manual version of this in how to make Claude Code UI look good.

1. The design-system prompt

This writes Claude a memory. Run it once per project so every later prompt inherits the same rules instead of re-guessing your fonts and colors each session.

Prompt: write DESIGN.md
Audit my repo before designing anything. Read package.json, my tailwind config,
globals.css, and 3 or 4 existing components. Then write a DESIGN.md at the project
root as rules you will follow every time:

- Fonts: display, body, mono. List the generic ones to NEVER use: Inter, Roboto,
Open Sans, Arial, system-ui.
- Color: ONE dominant color plus ONE accent, all as CSS variables. Ban purple or
indigo gradients on white.
- Spacing: an 8px rhythm. Type scale uses weight extremes (200 vs 800) and size
jumps of 3x, not 1.5x.
- Components: the shadcn/ui primitives plus the real components already in my repo,
with import paths, so you reuse instead of hand-rolling.
- Forbidden: three rounded cards in a row, centered-everything heroes, 0.1-opacity
drop shadows on everything.

Do NOT generate UI yet. Write DESIGN.md, show it to me, and wait.

Why it works: Claude has no design memory between sessions, so a committed DESIGN.md becomes the one it is missing, and forcing it to read your real code first stops it inventing a system that fights your repo.

2. The anti-slop constraint block

Paste this before any UI task. It makes Claude commit to one named direction and confirm it back to you, which is the single cheapest way to pull it off the center of the distribution.

Prompt: anti-slop preamble
Before you write any UI, follow these constraints and confirm them back first:

1. Pick ONE specific aesthetic direction by name (editorial, brutalist, technical,
 warm-minimal, high-contrast mono) and commit. No "modern and clean".
2. No Inter, Roboto, or system fonts. No purple or indigo gradient. No centered
 three-card hero.
3. Hierarchy comes from type and space, not borders and boxes everywhere.
4. Use real, specific content, never Lorem ipsum or "Feature one / Feature two".
5. Read DESIGN.md and obey it.

Tell me the direction and the exact font and color choices you will use, then stop
and wait for my go-ahead.

Why it works: a vague "make it nice" returns the average; naming the direction and adding a confirm gate forces a deliberate choice before a single line gets written.

3. Reference-grounded screen prompts

This is the heavy lifting. Each prompt anchors Claude to a reference and lists the states it loves to skip. Replace the bracket with a pasted screenshot, a prompt-library pattern, or a captured component.

A dashboard, where density and states matter most:

Prompt: dashboard
Build an analytics dashboard. Match this reference, do not invent your own layout:
[paste a screenshot, a prompt-library pattern, or a Component Grab capture].

From the reference, copy: the sidebar and topbar structure, card density, table row
height, type pairings, and spacing rhythm. Use my DESIGN.md tokens for color.

Cover every state, not just the happy path: loading (skeletons), empty (no data
yet), error, and one row with very long text. Build the mobile reflow too.

Then screenshot the populated view AND the empty state and show me both.

Why it works: dashboards live or die on information density and state coverage, the exact things a blind model glosses over, so a reference plus an explicit state list closes the gap a generic prompt leaves open.

A landing page, where Claude is strongest and copy is the tell:

Prompt: landing page
Build a landing page (hero, features, pricing teaser) for: [product, one sentence].
Anchor the visual language to this reference: [paste reference].

Match its type scale, whitespace, and how it uses a single accent color. Write real,
specific copy for MY product, not placeholder marketing lines. One deliberate
page-load animation, not scattered micro-interactions.

Use DESIGN.md fonts and colors. No purple gradient, no emoji feature cards.

Why it works: the skill already handles expressive pages well, so what is left to nail is a reference for the layout and real copy, which is what separates a specific page from a generic one.

A pricing section, where alignment and emphasis break:

Prompt: pricing section
Design a 3-tier pricing section. Reference: [paste a pricing page you admire].

Requirements: a clear "most popular" tier emphasized by scale and one accent (not a
loud colored box), a feature table with precisely aligned rows, a monthly/annual
toggle, and readable price typography (big number, small cadence).

Match the reference's spacing and restraint. Use DESIGN.md. Show desktop and mobile.

Why it works: "make a pricing page" returns the three-card default, so naming the failure points (alignment, emphasis without a loud box) plus a reference gets you a table that holds up.

A settings screen, which is pure state coverage and consistency:

Prompt: settings screen
Build a settings screen (account, billing, notifications, danger zone). Reference
for layout: [paste reference].

Design the unglamorous parts on purpose: form validation states, a saving/saved
indicator, disabled states, a destructive-action confirm, and how each section
looks with very long values. Group with section headers plus a left nav, match
DESIGN.md, and reuse my existing form components instead of new inputs.

Screenshot the billing section and the validation-error state.

Why it works: settings has almost no hero and almost all states, so the prompt makes Claude design the states and reuse your real components rather than ship one happy-path view with fresh one-off inputs.

4. The screenshot-compare-refine loop

This is the highest-leverage habit and it costs nothing. Claude cannot judge its own output, so you feed it the actual render and demand a concrete diff.

Prompt: screenshot loop
Here is a screenshot of what you just built: [attach image]. Compare it against the
reference: [attach reference].

Give me a specific diff, not a vibe check: list every place the spacing, hierarchy,
type size, or alignment differs from the reference. Fix only those, re-run, take a
new screenshot, and show me before and after side by side.

Do not tell me it "looks good". Show me the rendered result.

Why it works: Claude writes correct CSS but cannot see it, so pasting the real render and forcing a line-by-line diff is the only reliable bridge from technically correct to actually good.

5. The component-extraction prompts

Two related prompts that stop drift. The first makes Claude reuse what you have; the second turns a reference image into durable rules instead of one-time styling.

Prompt: reuse components
Before building this screen, inventory my existing components. List every reusable
UI primitive in my repo (buttons, inputs, cards, modals, tables) with import paths
and key props.

Then build the new screen using ONLY those where they exist, and flag anything
genuinely new. Do not hand-roll a second button style.

Why it works: without it, Claude reinvents a button every session and 50 screens drift apart, so making it inventory first keeps the whole app on one system.

Prompt: extract a reference
Here is a screenshot of a UI whose style I want: [attach]. Do NOT copy it pixel for
pixel. Extract its design language into reusable rules: type scale and pairings,
spacing rhythm, color logic (dominant plus accent), border radius, shadow style,
and density.

Append those as a "Reference: [name]" section in DESIGN.md, then build [screen] in
that language using my own content.

Why it works: a picture beats prose, but Claude has to be told to convert the picture into rules in DESIGN.md, or the taste evaporates the moment you move to the next screen.

Where to get a real reference

Every prompt above has one variable that decides the outcome: the reference you paste in. Describing a vibe from memory puts you right back at the average. There are three fast ways to get a real one, all free to start.

The Superdesign prompt library, a searchable grid of UI design prompts with a live preview
The free Superdesign prompt library: browse curated prompts by style, component, and full page, preview each, and copy a proven reference into Claude Code. Source: app.superdesign.dev/library

First, pull a proven pattern from the free Superdesign prompt library, a large set of styles, components, and full-page prompts with taste already baked in. Second, capture a live site you admire with the free Component Grab and feed Claude the clean Tailwind it returns. Third, generate and explore polished directions on a canvas, then hand the chosen one back as React and Tailwind.

That last path is the design layer Claude Code does not have on its own. Superdesign runs as a one-line skill inside Claude Code (or Cursor), explores several directions at once on a canvas, and writes the design-system file these prompts depend on:

npm install -g @superdesign/cli@latest
superdesign login
npx skills add superdesigndev/superdesign-skill

Trigger it with /superdesign and a plain-English request. It reads your repo first, opens a canvas to compare variations, and hands the winner back as code, so the reference and the design system in these prompts come from proven patterns instead of a text box. Free tier, then a flat $20/month with no credit meter. Stuck on a screen? Ping us and we will dial it in together.

For the deeper how-to, read the Claude Code UI design pillar, and if you want to round out your setup, see the best Claude Code skills.

Key takeaways

  • Engineer Claude Code design prompts around its three weaknesses: it is blind (writes CSS it cannot see), has no design memory between sessions, and defaults to safe Tailwind (Inter, purple gradient, three cards).
  • Run the design-system prompt once to make Claude audit your repo and write a persistent DESIGN.md, then paste an anti-slop block that forces one named aesthetic direction and a confirm step before any UI is written.
  • Reference-grounded screen prompts win on the boring surfaces: anchor each dashboard, pricing, and settings screen to a real reference and list the states Claude skips (loading, empty, error, long text, mobile).
  • The one variable that decides the outcome is the reference you paste in, and the screenshot-compare-refine loop is the free habit that turns technically-correct CSS into UI that actually looks right.

Frequently asked questions

What are the best Claude Code prompts for design?

The ones built around what Claude Code lacks, not generic 'make it beautiful' lines. In practice that is five jobs: a design-system prompt that writes a persistent DESIGN.md, an anti-slop preamble that forces one named aesthetic direction, reference-grounded screen prompts that anchor each layout to a real reference plus a state checklist, a screenshot-compare-refine loop, and component-extraction prompts that stop drift. Each carries your fonts, colors, and spacing so output stays consistent.

How do I stop Claude Code from making generic UI?

Give it direction it cannot guess. Paste an anti-slop block that bans Inter and purple gradients and makes Claude commit to one named direction (editorial, brutalist, technical) before it writes code, anchor every screen to a real reference instead of a vibe, and keep a DESIGN.md it reads each time. Generic is what one open prompt returns when it has to guess taste, layout, and code at once.

Do I need a DESIGN.md for Claude Code prompts to work?

Yes, for anything past a single screen. Claude Code has no design memory between sessions, so without a committed DESIGN.md it re-guesses your fonts, colors, and spacing every prompt and the UI drifts. Run the design-system prompt once to make Claude audit your repo and write the file, then every later prompt inherits the same rules.

Why does my UI still look generic even with a good prompt?

Because the prompt still leaves Claude free to fall back on familiar layouts unless you anchor it to a reference. Prose loses to a picture. Paste a screenshot, a prompt-library pattern, or a captured component and tell Claude to match its spacing, type pairings, and density. The hard part is having a good reference, which is why getting one is the real job.

Can prompts get Claude Code to design a dashboard?

Yes, if the prompt grounds it in a reference and lists the states Claude skips by default. Dashboards live on density and state coverage (loading, empty, error, long text, mobile reflow), the exact things a blind model glosses over. Give it a reference layout plus an explicit state checklist and ask it to screenshot both the populated and empty views.

Explore 5,000+ design prompts

The most-used styles from the Superdesign design prompt library.

Browse all →

Keep reading