Claude UI/UX Pro Max skill: 10 production interfaces in one prompt
Ten production interfaces — landing hero, pricing matrix, three-column dashboard, validated form, focus-trapped modal, mobile drawer nav, empty / error states, sortable data table, multi-step onboarding, tabbed settings — each as a single Claude prompt against the ui-ux-pro-max design skill (50+ styles, 161 palettes, 9 stacks).
Already know what skills are? Skip to the cookbook. First time? Read the explainer then come back. Need the install? It’s on the /skills/ui-ux-pro-max page.

On this page · 21 sections▾
- What this skill does
- The cookbook
- Install + README
- Watch it built
- 01 · Landing page hero with shadcn + Tailwind
- 02 · 3-tier pricing table with feature matrix
- 03 · Dashboard layout with sidebar, main, activity feed
- 04 · Form with validation, error states, success toast
- 05 · Modal dialog with focus trap and ESC dismiss
- 06 · Mobile-responsive nav with hamburger drawer
- 07 · Empty state and error state pages
- 08 · Data table with sorting, filtering, pagination
- 09 · Multi-step onboarding wizard
- 10 · Settings page with tabbed sections
- Community signal
- The contrarian take
- Real interfaces shipped
- Gotchas
- Pairs well with
- FAQ
- Sources
What this skill actually does
Sixty seconds of context before the cookbook — what the ui-ux-pro-max skill is, what Claude returns when you invoke it, and the one thing it does NOT do for you.
What this skill actually does
“UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind).”
— nextlevelbuilder · ui-ux-pro-max SKILL.md · /skills/ui-ux-pro-max
What Claude returns
Triggers a multi-domain search across the bundled `scripts/search.py` (domains: product, style, typography, color, landing, chart, ux, google-fonts, react, web, prompt), runs a reasoning engine that matches your project type to UI category rules, and emits ready-to-paste TSX / Vue / Svelte / SwiftUI / Flutter components plus design tokens. With `--persist` it writes a `.claude/design-system.json` so subsequent prompts reuse the same palette, type scale, and component primitives. Output is wired to your stack — shadcn/ui, Tailwind, React Native, Jetpack Compose — not a generic CSS dump.
What it does NOT do
It does not install shadcn or Tailwind for you, does not run your build, and does not replace a designer for original brand identity work — it composes from the bundled 50+ styles and 161 palettes, not invented-from-scratch art direction.
How you trigger it
design a landing page hero for …build a 3-tier pricing table with feature matrixreview and fix the UI/UX of components/Settings.tsxCost when idle
About 150 tokens of skill metadata stay loaded per turn — the SKILL.md description plus the search-script signature. The full style / palette / font databases are only read when Claude actually decides to render UI, so day-to-day chat cost is unchanged.
One framing note. The author nextlevelbuilder ships this as a design intelligence skill, not as a component generator. The difference matters: it does not hallucinate UI — it routes your request through a bundled scripts/search.py across eleven domains (product, style, typography, color, landing, chart, ux, google-fonts, react, web, prompt), then composes a stack-specific output. That is why every cookbook prompt below names a stack, a style, and a domain — the skill is doing real lookups, not free-association.
The cookbook
Each entry below is one interface you could ship today. They run in the order I’d teach them — the early ones (hero, pricing, dashboard) lean on the basic search + render surface, the later ones (data table, onboarding, settings) use the persisted design system from --persist so visual coherence stays locked across surfaces. Every entry pairs with one or two skills or MCP servers you already have on mcp.directory.
Install + README
If the skill isn’t on your machine yet, here’s the one-liner. The full install panel (Codex, Copilot, Antigravity variants) is on the skill page. The skill also ships a CLI companion — npm i -g uipro-cli then uipro init --ai claude — if you prefer a project-scoped install with a guided setup.
One-line install · by nextlevelbuilder
Open skill pageInstall
mkdir -p .claude/skills/ui-ux-pro-max && curl -L -o skill.zip "https://mcp.directory/api/skills/download/191" && unzip -o skill.zip -d .claude/skills/ui-ux-pro-max && rm skill.zipInstalls to .claude/skills/ui-ux-pro-max
Watch it built
A clean walkthrough of how a Claude design skill, the shadcn MCP, the Claude VS Code extension, and a Figma source compose into one production pipeline. Useful before the cookbook because it anchors what the rendered output should feel like — and why the persisted design system (use case 1 → 2) is the part that matters most.
Landing page hero with shadcn + Tailwind
One above-the-fold hero section — eyebrow tag, H1, subhead, two CTAs, gradient background — that does not look like every other AI landing page.
ForIndie founders shipping a SaaS marketing site without a brand designer on retainer.
The prompt
Use the ui-ux-pro-max skill. Build a landing-page hero for an AI customer-support startup called Threadhaven. Stack: Next.js 15 + Tailwind + shadcn/ui. Style: aurora UI (NOT generic teal-on-navy AI slop). Pick a palette aligned to fintech-trust + creative-warmth, and a font pairing where the heading is a contemporary geometric sans. Render the section to app/(marketing)/page.tsx with a single <Hero /> component, an <Eyebrow> badge, two <Button> CTAs (primary + ghost), and a soft aurora gradient backdrop. Persist the resulting design system to .claude/design-system.json so the next page reuses it.What slides.md looks like
// app/(marketing)/page.tsx
export default function Page() {
return (
<section className="relative isolate overflow-hidden bg-[radial-gradient(ellipse_at_top,#1e1b4b_0%,#020617_70%)] px-6 py-24">
<Badge variant="outline" className="border-fuchsia-400/30 text-fuchsia-200">New · Auto-triage v3</Badge>
<h1 className="mt-6 max-w-3xl font-display text-5xl leading-[1.05] tracking-tight text-white">
Stop drowning in support tickets.
</h1>
<p className="mt-5 max-w-xl text-lg text-slate-300">Threadhaven reads every conversation, drafts the reply, and routes the rest.</p>
<div className="mt-9 flex gap-3"><Button size="lg">Start free</Button><Button size="lg" variant="ghost">Watch the 2-min demo</Button></div>
</section>
);
}One-line tweak
Swap the search domain in the prompt — `--domain landing --style brutalism` — and you get a Memphis-meets-brutalist version of the exact same hero, same copy, same components. The rule-priority framework keeps accessibility and 44 px touch targets locked across both.
3-tier pricing table with feature matrix
A responsive pricing section — three plan cards, a 12-row feature comparison matrix, monthly/annual toggle — that ships against the persisted design system from use case 1.
ForB2B SaaS engineers who keep rebuilding the same Stripe pricing page from scratch.
The prompt
ui-ux-pro-max skill: design and implement a pricing section for Threadhaven. Three tiers (Starter $29, Team $99, Scale $299). Include a monthly/annual toggle (annual = 20% off), a 12-row feature matrix below the cards, a 'most popular' ribbon on the middle card, and accessible focus rings on every interactive element (WCAG AA, 4.5:1 contrast minimum). Reuse the design tokens persisted to .claude/design-system.json. Stack: Next.js + Tailwind + shadcn. Output as components/pricing/PricingSection.tsx.What slides.md looks like
// components/pricing/PricingSection.tsx (excerpt)
const tiers = [
{ name: "Starter", price: { monthly: 29, annual: 23 }, features: [...] },
{ name: "Team", price: { monthly: 99, annual: 79 }, features: [...], popular: true },
{ name: "Scale", price: { monthly: 299, annual: 239 }, features: [...] },
];
<RadioGroup value={cycle} onValueChange={setCycle} className="inline-flex rounded-full border bg-card p-1">
<RadioGroupItem value="monthly" id="m" className="px-4 py-1.5 data-[state=checked]:bg-primary" />
<RadioGroupItem value="annual" id="a" className="px-4 py-1.5 data-[state=checked]:bg-primary" />
</RadioGroup>One-line tweak
If the middle-card ribbon clashes with the persisted accent colour, re-run with `--persist false` on this section only — Pro Max regenerates the ribbon palette without poisoning the global design system.
Dashboard layout with sidebar, main, activity feed
A three-column app shell — collapsible sidebar nav, central canvas with stat cards and a chart, right-rail activity feed — wired to render real data via shadcn primitives.
ForSolo founders shipping internal admin panels or B2B analytics surfaces in a weekend.
The prompt
ui-ux-pro-max: build a dashboard layout for an analytics tool. Three regions: (1) collapsible sidebar with logo, six nav items (Overview, Customers, Revenue, Funnels, Reports, Settings), and a user menu pinned to the bottom; (2) main area with four stat cards across the top + a Recharts line chart below; (3) right-rail activity feed with live-status dots. Style: minimalism, dark mode default. Stack: Next.js + Tailwind + shadcn. Use a 25-chart-types domain search to pick the cleanest line-chart with comparison overlay.What slides.md looks like
// app/dashboard/layout.tsx
export default function Layout({ children }: { children: React.ReactNode }) {
return (
<div className="grid h-dvh grid-cols-[16rem_minmax(0,1fr)_22rem] bg-background">
<Sidebar />
<main className="overflow-y-auto p-8">{children}</main>
<ActivityFeed />
</div>
);
}
// components/dashboard/StatCard.tsx (excerpt)
<Card><CardHeader><CardDescription>MRR</CardDescription><CardTitle className="text-3xl tabular-nums">$48,210</CardTitle></CardHeader><CardFooter><Badge variant="outline" className="text-emerald-500">+12.4%</Badge></CardFooter></Card>One-line tweak
If you also want a mobile drawer instead of the desktop sidebar, append "and a mobile breakpoint that collapses the sidebar into a hamburger drawer" to the prompt — the skill keeps the same nav model and re-renders the responsive variant in one pass.
Form with validation, error states, success toast
A contact / signup form — five fields, inline validation, error states, loading spinner on submit, success toast — wired with React Hook Form + Zod and accessible by default.
ForAnyone shipping an authenticated SaaS who keeps regressing the empty-state and inline-error UX.
The prompt
ui-ux-pro-max: implement a sign-up form (email, password, name, company, role) with: real-time inline validation, distinct empty / focus / error / disabled states for every field, a primary submit button with a loading spinner state, and a sonner toast on success. Use React Hook Form + Zod. WCAG AA contrast, 44 px minimum touch targets, ARIA-described errors. Render to app/sign-up/page.tsx. Stack: Next.js + Tailwind + shadcn.What slides.md looks like
// app/sign-up/page.tsx (excerpt)
const schema = z.object({
email: z.string().email("Use a valid work email"),
password: z.string().min(10, "At least 10 characters"),
name: z.string().min(2),
company: z.string().optional(),
role: z.enum(["founder", "engineer", "designer", "other"]),
});
const form = useForm<z.infer<typeof schema>>({ resolver: zodResolver(schema), mode: "onBlur" });
<Form {...form}><form onSubmit={form.handleSubmit(onSubmit)} className="space-y-5">{/* FormField × 5 */}
<Button type="submit" disabled={form.formState.isSubmitting}>{form.formState.isSubmitting ? <Loader2 className="animate-spin" /> : "Create account"}</Button>
</form></Form>One-line tweak
Pass `--domain ux` and ask for "the empty / loading / error / success / disabled" set rendered as a Storybook stories file — Pro Max emits the five states as separate exports with realistic mock data.
Modal dialog with focus trap and ESC dismiss
A delete-confirmation modal — Radix Dialog primitive, focus trap, ESC + click-outside dismiss, autofocused destructive button — that does not break keyboard navigation.
ForFrontend devs who keep getting modal a11y wrong (focus escapes the dialog, ESC silently does nothing).
The prompt
ui-ux-pro-max: build a destructive-confirmation modal for deleting a customer record. Use Radix Dialog under shadcn's <Dialog>. Trap focus inside the panel, autofocus the secondary <Cancel> button (NOT the destructive one — typing through a modal should never confirm a delete), close on ESC, close on outside click, and mark the destructive button as <Button variant="destructive">. Render an inline <Alert variant="warning"> above the buttons explaining the action is irreversible. Stack: Next.js + Tailwind + shadcn.What slides.md looks like
<Dialog open={open} onOpenChange={setOpen}>
<DialogContent className="sm:max-w-md" onEscapeKeyDown={() => setOpen(false)}>
<DialogHeader>
<DialogTitle>Delete customer?</DialogTitle>
<DialogDescription>This permanently removes Acme Inc. and all 1,284 conversations.</DialogDescription>
</DialogHeader>
<Alert variant="warning"><AlertTriangle className="h-4 w-4" /><AlertTitle>This cannot be undone</AlertTitle></Alert>
<DialogFooter className="gap-2 sm:gap-2">
<Button ref={cancelRef} variant="secondary" onClick={() => setOpen(false)} autoFocus>Cancel</Button>
<Button variant="destructive" onClick={handleDelete}>Delete forever</Button>
</DialogFooter>
</DialogContent>
</Dialog>One-line tweak
If a designer asks for a non-blocking sheet instead of a modal (less attention-grabbing, slides from the right), swap `<Dialog>` for `<Sheet side="right">` — Pro Max keeps every other primitive identical.
Mobile-responsive nav with hamburger drawer
A top nav that becomes a hamburger drawer below md, animates in from the left, traps focus while open, and dismisses on link click or ESC.
ForEngineers shipping marketing sites who keep getting the mobile nav wrong on iOS Safari.
The prompt
ui-ux-pro-max: build a top navigation that renders as a horizontal nav above md and as a slide-from-left drawer below md. Hamburger button is a 44 × 44 px touch target, ARIA-controls the drawer, and toggles aria-expanded. Drawer traps focus while open, closes on ESC and on any link click, and animates in 200 ms ease-out. Use shadcn <Sheet> as the underlying primitive. Render the nav with five links (Product, Pricing, Customers, Docs, Login) and a primary CTA. Stack: Next.js + Tailwind.What slides.md looks like
<Sheet open={open} onOpenChange={setOpen}>
<SheetTrigger asChild>
<Button size="icon" variant="ghost" aria-label="Open menu" className="md:hidden h-11 w-11">
<Menu className="h-5 w-5" />
</Button>
</SheetTrigger>
<SheetContent side="left" className="w-72 p-0">
<nav className="flex flex-col">
{links.map((l) => <Link key={l.href} href={l.href} onClick={() => setOpen(false)} className="px-6 py-4 text-base font-medium hover:bg-accent">{l.label}</Link>)}
</nav>
</SheetContent>
</Sheet>One-line tweak
If the drawer flickers on iOS Safari, add `vaul-drawer-wrapper` and the `data-state` transition class — Pro Max already knows the workaround if you append "prevent iOS rubber-band scroll behind the drawer" to the prompt.
Empty state and error state pages
Two stateful pages — empty-list state (no customers yet) and 500-server-error page — with on-brand illustration, helpful CTAs, and zero generic 'oops something went wrong' copy.
ForProduct engineers who keep shipping Stripe-grade pages with zero-state UX from 2014.
The prompt
ui-ux-pro-max: render two state pages for a CRM. (1) Empty state for /customers when the team has zero records: friendly illustration, a clear primary CTA ("Import from CSV"), a secondary ("Add your first manually"), and a microcopy line that names the next action. (2) 500 error page: keep the brand voice, name the failure ("Our database is catching its breath"), offer one CTA ("Try again"), and a quiet link to status.threadhaven.com. NO 'Oops!'. NO 'Something went wrong'. Stack: Next.js + Tailwind + shadcn.What slides.md looks like
// app/customers/empty.tsx
export function EmptyCustomers() {
return (
<div className="mx-auto max-w-md py-24 text-center">
<Illustration className="mx-auto h-32 w-32 text-muted-foreground/30" />
<h2 className="mt-6 text-xl font-semibold">No customers yet</h2>
<p className="mt-2 text-sm text-muted-foreground">Drop a CSV or add your first one — the dashboard fills out from there.</p>
<div className="mt-6 flex justify-center gap-2"><Button>Import from CSV</Button><Button variant="ghost">Add manually</Button></div>
</div>
);
}One-line tweak
Ask for "five empty states for the five most-likely empty surfaces in this app" and Pro Max returns a matrix — list, search, dashboard widget, settings tab, file picker — each with bespoke microcopy.
Data table with sorting, filtering, pagination
A TanStack-Table-backed data table — column sort, multi-select filter, server-side pagination, sticky header — wired to shadcn primitives and accessible by default.
ForB2B engineers who keep rolling their own table component and regressing keyboard navigation.
The prompt
ui-ux-pro-max: build a customers data table. Columns: name, email, plan, MRR, last-active, status. Wire it to TanStack Table v8 with: per-column sort, a multi-select facet filter on plan and status, server-side pagination (10 / 25 / 50 per page), a sticky header that stays pinned on scroll, and row hover states. Include a row-action menu (View, Edit, Delete) on the rightmost column. Keyboard: arrow keys to navigate cells, Enter to open the row. Stack: Next.js + shadcn (Table, DropdownMenu, Select).What slides.md looks like
// components/customers/CustomersTable.tsx (excerpt)
const table = useReactTable({
data,
columns,
state: { sorting, columnFilters, pagination },
onSortingChange: setSorting,
onColumnFiltersChange: setColumnFilters,
getCoreRowModel: getCoreRowModel(),
getSortedRowModel: getSortedRowModel(),
getFilteredRowModel: getFilteredRowModel(),
manualPagination: true,
pageCount: data.totalPages,
});
<Table><TableHeader className="sticky top-0 bg-card"><TableRow>{table.getHeaderGroups()[0].headers.map(h => <TableHead key={h.id} onClick={h.column.getToggleSortingHandler()}>{flexRender(h.column.columnDef.header, h.getContext())}</TableHead>)}</TableRow></TableHeader>{/* ... */}</Table>One-line tweak
Add `--domain chart` and ask for "a sparkline cell for the MRR column showing the last 30 days" — Pro Max picks Recharts and renders an inline 80 × 24 sparkline against the same design tokens.
Multi-step onboarding wizard
A four-step onboarding flow — welcome, workspace setup, integrations, finish — with a progress rail, back / next nav, and per-step validation.
ForPMs and founders bolting an onboarding flow onto an existing app without a designer-engineer handoff.
The prompt
ui-ux-pro-max: build a 4-step onboarding wizard. Steps: (1) Welcome (name, role, team-size), (2) Workspace (workspace name, slug, region), (3) Integrations (Slack, GitHub, Linear toggles with OAuth-stub), (4) Finish (recap of choices + a primary 'Go to dashboard' CTA). Include a horizontal progress rail showing 1/4 → 4/4 with completed-state checkmarks, Back/Next navigation, and per-step Zod validation that disables Next until the form is valid. Persist partial state to localStorage so a refresh does not lose progress. Stack: Next.js + Tailwind + shadcn.What slides.md looks like
// app/onboarding/page.tsx (excerpt)
const steps = [WelcomeStep, WorkspaceStep, IntegrationsStep, FinishStep];
const [step, setStep] = useState(0);
<div className="mx-auto max-w-xl">
<ProgressRail current={step} total={steps.length} />
<Card className="mt-8 p-8">{React.createElement(steps[step], { onNext: () => setStep(s => s + 1) })}</Card>
<div className="mt-6 flex justify-between">
<Button variant="ghost" onClick={() => setStep(s => Math.max(0, s - 1))} disabled={step === 0}>Back</Button>
<Button onClick={() => setStep(s => s + 1)} disabled={!form.formState.isValid}>{step === steps.length - 1 ? "Finish" : "Next"}</Button>
</div>
</div>One-line tweak
Drop the linear nav and ask for "a checklist-style onboarding instead of a wizard" and Pro Max returns the same four steps as a dismissible side-panel checklist — better for self-serve products that do not want to gate the dashboard.
Settings page with tabbed sections
A settings shell — five tabs (Profile, Billing, Team, Integrations, Danger Zone) — with deep-linkable URLs, a destructive section gated behind confirmation, and consistent form patterns reused from use case 4.
ForSolo devs who hate rebuilding the same /settings shell every time they ship a new app.
The prompt
ui-ux-pro-max: build /settings as a tabbed page. Five tabs: Profile, Billing, Team, Integrations, Danger Zone. Tabs deep-link via search params (?tab=billing) so URLs are shareable. Reuse the form pattern from the sign-up page (React Hook Form + Zod + shadcn primitives). The Danger Zone tab requires a confirmation modal (use case 5's pattern) before any destructive action runs. Style: minimalism, locked to the persisted design system. Stack: Next.js + Tailwind + shadcn.What slides.md looks like
// app/settings/page.tsx
export default function Settings({ searchParams }: { searchParams: { tab?: string } }) {
const tab = searchParams.tab ?? "profile";
return (
<div className="mx-auto max-w-4xl py-12">
<h1 className="text-2xl font-semibold">Settings</h1>
<Tabs value={tab} className="mt-8">
<TabsList><TabsTrigger value="profile" asChild><Link href="?tab=profile">Profile</Link></TabsTrigger>{/* ... */}<TabsTrigger value="danger" className="data-[state=active]:bg-destructive/10">Danger Zone</TabsTrigger></TabsList>
<TabsContent value="profile"><ProfileForm /></TabsContent>
{/* ... */}
</Tabs>
</div>
);
}One-line tweak
Append "and emit each tab as its own /settings/<slug> route instead of a query param" — Pro Max regenerates the same shell with parallel routes (`@profile`, `@billing`) and an `<Outlet>` pattern for the layout.
Community signal
Three voices from people putting Pro Max through real workloads. The first is the clearest comparative endorsement; the second is the round-up framing that landed it as default pick; the third is the design-quality essay every Claude UI team eventually has to read.
“This is the most comprehensive design intelligence skill in the current ecosystem.”
Stephen Thoemmes (Snyk) · Blog
Snyk's April 2026 round-up of the top 8 Claude skills for UI/UX engineers — Pro Max landed in the top slot for its searchable design database and persistent design-system feature.
“Where Anthropic's frontend-design skill gives Claude aesthetic taste and Vercel's skills focus on engineering patterns, UI/UX Pro Max gives Claude a searchable design database: 50+ UI styles, 97 color palettes, 57 font pairings, 99 UX guidelines, and 25 chart types across 9 technology stacks.”
Stephen Thoemmes (Snyk) · Blog
The same Snyk piece, framing the trade-off cleanly: Pro Max competes against Anthropic's house frontend-design skill on breadth of style choice, not on aesthetic taste alone.
“If you're using Claude Code for UX/UI design tasks, then you need these Claude skills. … 1️⃣ UI-UX-Pro-Max-Skill — This skill turns Claude Code into a design assistant.”
Nick Babich, UX Planet · Blog
Nick Babich's March 2026 round-up of must-have UX/UI Claude skills, opening with Pro Max as the first recommendation in a hand-picked collection of six.
The contrarian take
Not everyone is keeping the default skill stack. The most precise criticism on the launch threads — aimed at Anthropic’s frontend-design skill, but applicable to any AI design surface that ships with too few presets — is this:
“Every generated app looks identical, right down to the serif font, the blinking status dot, colored accent bars, and what one commenter called 'container soup' of pills and cards.”
r/ClaudeAI community feedback (via The Neuron Daily) · Blog
From The Neuron Daily's roll-up of r/ClaudeAI's reaction to Claude Design's launch in April 2026.
Fair. Fair, and the cookbook leans into this. Pro Max's whole pitch is 50+ named styles, 161 palettes, and a `--persist` flag that locks one across pages — the inverse of falling back to the same teal-on-navy default. Use cases 1, 3, and 7 explicitly steer the skill away from generic. The skill is opinionated about variety — pass --style aurora or --style bento or --style brutalism and the same prompt produces visibly different surfaces. Treat Pro Max’s breadth as the antidote to the default-preset drift, not as a substitute for design taste.
One more alternative worth naming: there is no single canonical UI UX Pro Max MCP server, but several design-adjacent MCP servers in the catalog cover overlapping ground — shadcn/ui MCP, Magic UI MCP, and the Figma MCP for design-import flows. The trade-off is the usual skill-vs-MCP one: the skill is ~150 idle tokens, an MCP’s tool schemas load every turn. Pick the MCP only when multiple AI clients share one component registry — otherwise stick with the ui-ux-pro-max skill in this cookbook. The GSC query “ui ux pro max mcp” lands here precisely because that decision needs spelling out.
Real interfaces shipped with Pro Max
Concrete examples from public reviews and round-ups. None of these are screenshots from this cookbook — they’re here to show the shape of production Pro Max output, so you have a target in mind when you write the prompt.
- Snyk engineering — featured Pro Max as the #1 design-intelligence skill in their April 2026 Top-8 Claude Skills round-up
- Nick Babich (UX Planet) — opened a hand-picked 6-skill collection with Pro Max for everyday UX/UI Claude Code tasks
- Claudetory directory — listed Pro Max in its curated Claude skills catalog with install instructions
- MCP Market — published an installation + walkthrough page for the Pro Max frontend-design skill
- ByteGrad — anchored a 1-hour YouTube tutorial on shadcn UI + Claude Code workflows that composes Pro-Max-style design skills with the shadcn MCP
- x-cmd directory — surfaced ui-ux-pro-max-skill as a featured entry in its Claude Skills index
Gotchas (the four that bite)
Sourced from the Pro Max GitHub repo and the Snyk April 2026 review.
It does not install your stack for you
Pro Max emits TSX / Vue / Svelte / SwiftUI / Flutter — not the dependency tree underneath. You still run pnpm add shadcn-ui (or your stack equivalent), set up your Tailwind config, and wire shadcn's CLI before any output renders. The skill assumes a healthy project; it doesn't bootstrap one.
Without --persist, every prompt rolls a fresh design
The skill defaults to a fresh palette, type scale, and component-primitive choice on each invocation. That's great for prototyping a single page, terrible for a coherent multi-page app. Always pass --persist on the first prompt of a project so the design-system.json gets seeded.
Style names are opinionated — pick deliberately
The skill ships 50+ named styles. 'minimalism' and 'flat design' both default to the AI-slop look the contrarian quote calls out. Reach for 'aurora UI', 'bento grid', 'brutalism', 'claymorphism', 'neumorphism', or 'cyberpunk UI' when you want a deliberately non-default aesthetic.
Accessibility is baked-in, not verified
The rule-priority framework treats 4.5:1 contrast and 44 px touch targets as CRITICAL — but the skill writes the ARIA, it doesn't run the audit. Pair it with the accessibility-compliance or accessibility-auditor skill for production sites, especially around the modal (use case 5), data table (use case 8), and mobile drawer (use case 6).
Pairs well with
Curated to match the cookbook’s actual integrations: the shadcn / Tailwind / dashboard / a11y skills the cookbook reaches for (shadcn-ui, tailwind-design-system, interactive-dashboard-builder, accessibility-compliance, responsive-design) plus the design-import and version-control MCP servers the longer use cases lean on.
Related skills
Related MCP servers
Two posts that compose well with this cookbook: What are Claude Code skills? covers the underlying mechanism, and Claude Code best practices covers the orchestration patterns the longer use cases (8, 9, 10) lean on.
Frequently asked questions
Is there a UI UX Pro Max MCP server I can use instead of the skill?
Not as a single canonical server, but several MCP servers cover overlapping ground — the shadcn/ui MCP (canonical component registry, no hallucinated props), the Magic UI MCP, and the Figma MCP for design-import flows. The trade-off is the usual one: ui-ux-pro-max sits at ~150 idle tokens, while an MCP server's tool schemas load every turn of the conversation. Reach for an MCP only when multiple AI clients (Claude Code, Cursor, an internal agent) need to share a registry — otherwise the skill is the cheaper composition for solo design work, and the GSC query 'ui ux pro max mcp' (51 impressions, 5.88% CTR) is people looking for exactly this clarification.
How does ui-ux-pro-max compare to Anthropic's built-in frontend-design skill?
Different jobs. Anthropic's frontend-design skill is the in-house default that ships with Claude Design — it gives Claude tasteful aesthetic instincts, but a small set of presets, which is why r/ClaudeAI keeps describing the output as 'every app looks the same.' Pro Max plugs in a much bigger vocabulary: 50+ named styles (glassmorphism, brutalism, bento, aurora UI), 161 product-aligned palettes, 57 font pairings, 25 chart types, and an explicit `--persist` mode that locks one combination across multiple pages. Use frontend-design when you trust the house style; use Pro Max when you need a deliberate non-default aesthetic.
Which stacks does the ui-ux-pro-max skill actually support?
React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind, shadcn/ui, and HTML/CSS as bundled stacks; the v2 release added Astro, Nuxt, Jetpack Compose, Angular, and Laravel. The `--stack` flag on the bundled `scripts/search.py` filters output to your target — a Vue + Tailwind project gets <script setup> blocks and Tailwind classes; a SwiftUI project gets Views and modifiers. The skill does not auto-install dependencies, so you still run `pnpm add` or `swift package add` yourself.
Does the skill handle accessibility, or do I still need a separate audit?
The skill bakes accessibility into its rule-priority framework as CRITICAL — 4.5:1 contrast, alt text, keyboard navigation, ARIA labels, 44 × 44 px touch targets, 8 px+ spacing, loading feedback. That gets you to a sane baseline. For production sites you still want the accessibility-compliance or accessibility-auditor skills as a verification layer, especially around focus traps in dialogs (use case 5), aria-grid semantics in data tables (use case 8), and aria-expanded on the mobile drawer (use case 6).
What is the persisted design system, and when should I use --persist?
When you run a Pro Max prompt with `--persist`, the skill writes the chosen palette, type scale, spacing scale, radius scale, and component-primitive choices to `.claude/design-system.json`. Subsequent prompts read that file first, so use case 2 (pricing) automatically reuses the palette and font pairing chosen in use case 1 (hero). Use --persist when you're building a multi-page app and want visual coherence across surfaces; skip it when you're prototyping a single one-off section and want a fresh roll of the dice.
Why is 'ui ux pro max mcp' showing 51 impressions but only 5.88% CTR in search?
Because the query is genuinely ambiguous — readers searching 'ui ux pro max mcp' want to know whether ui-ux-pro-max is delivered as a Claude skill, an MCP server, or both. Today the canonical install is the skill (this cookbook). The closest MCP servers in our catalog are shadcn/ui, Magic UI, and Figma — all useful pairings, none a one-to-one replacement. If you landed here from that query, the FAQ above on 'is there a UI UX Pro Max MCP server' is your answer.
How do I avoid the 'AI slop' look every Claude UI gets accused of?
Three steers, all of which Pro Max supports natively. (1) Pick a non-default style explicitly — `--style brutalism`, `--style aurora`, `--style bento` — instead of letting the skill default to minimalism. (2) Pass `--persist` so palette and typography choices stay locked across pages — drift is what makes AI sites feel cheap. (3) Override the palette with brand hex codes in the prompt (Pro Max respects literal hex strings more reliably than colour names). The contrarian quote in this post is exactly the failure mode these three steers mitigate.
Sources
Primary
- nextlevelbuilder ui-ux-pro-max SKILL.md (the skill manifest)
- nextlevelbuilder/ui-ux-pro-max-skill (GitHub repo + README)
- uupm.cc — UI/UX Pro Max landing page (counts + database breakdown)
- shadcn/ui docs: Skills (canonical primitive registry)
- Tailwind CSS installation (the CSS layer the skill outputs against)
Community
- Stephen Thoemmes (Snyk) — Blog
- Stephen Thoemmes (Snyk) — Blog
- Nick Babich, UX Planet — Blog
- Stephen Thoemmes (Snyk) — Blog
- Nick Babich (@101babich) — X / Twitter
- Xiuer Old — Blog
Critical and contrarian
Internal