design-ui
Skill0 starsChanged 8 days agoMITView on GitHub
Design a UI mockup — a page, screen, flow, component, or whole app — and publish it as a Claude Artifact, working the way a human product designer does: brief first, real content before layout, a deliberate system for type, color, and spacing, every state designed, then a critique pass before it ships. Always loads the ui-ux-pro-max skill (nextlevelbuilder/ui-ux-pro-max-skill) first and follows its priority rules and design-system search. Invoke when the user asks to design, mock up, prototype, wireframe, or redesign a UI, or asks for a design in Claude Design or as an artifact. Skip when they want an existing UI's code fixed or wired up in their own repo with no mockup, or want a chart or dashboard of real data (that is dataviz).
We split this skill into the rules it gives an agent
12 rules. 0 are common, 8 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 10 edited versions we read keep these.
8
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 17
Before the brief, before any layout, get the upstream skill into context.
- Distinctive: line 19
Installed?: Look for it — it may be a plugin or a plain skill:
- Very specific: line 23
If found, read that SKILL.md, and note the directory: its scripts/search.py and references/ live beside it.
- Distinctive: line 39
When the script is available, use it the way its own skill says:
- Very specific: line 42
Add --density 8 for dashboards and admin tools, --density 2-3 for marketing pages.
- Very specific: line 46
If design-system/<slug>/MASTER.md already exists in the project, read it and design inside it.
- Distinctive: line 65
Ask one question, and only when a wrong guess would waste the mockup — usually the primary task or the platform.
- Distinctive: line 74
a. Content before layout: Write the real copy and data first: actual headings, actual product names, plausible numbers, a user named …
- Distinctive: line 78
b. Structure in grey: Place blocks by importance, not by habit.
- Very specific: line 119
Call Artifact with action: "quickstart" and intent: "design" first — it names the artifact type and design systems this account has.
- Distinctive: line 126
When showing states or breakpoints, lay them side by side on the canvas, labelled — "Empty", "Loading", "Error", "Mobile 375" — so the …
- Distinctive: line 154
Anti-generic check: If the screen could belong to any product — centered hero, purple gradient, three identical feature cards — it has not …
“Common” is measured: kept by at least 6 in 10 of the 10 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Design UI
Produce a mockup a designer would sign off on, published as an Artifact. Two sources carry this skill and neither is optional:
- ui-ux-pro-max — the rules and design-system data. Read it before designing anything.
- The human process below — the order a working designer makes decisions in. A mockup that skips steps looks generated, however polished the pixels are.
1. Load ui-ux-pro-max first
Before the brief, before any layout, get the upstream skill into context. In order:
- Installed? Look for it — it may be a plugin or a plain skill:
If found, read thatfind ~/.claude ~/.claude-accounts .claude ~/.codex ~/.agents .agents -path '*ui-ux-pro-max*' -name SKILL.md 2>/dev/null | head -3SKILL.md, and note the directory: itsscripts/search.pyandreferences/live beside it. - Not installed — fetch it and read it in full (with network access approved if a
sandbox blocks it, as Codex's default does):
Without the local data the search script cannot run. Tell the user once, in one line, that the design-system search is unavailable and they can install it withhttps://raw.githubusercontent.com/nextlevelbuilder/ui-ux-pro-max-skill/main/.claude/skills/ui-ux-pro-max/SKILL.md https://raw.githubusercontent.com/nextlevelbuilder/ui-ux-pro-max-skill/main/.claude/skills/ui-ux-pro-max/references/quick-reference.md/plugin marketplace add nextlevelbuilder/ui-ux-pro-max-skillthen/plugin install ui-ux-pro-max@ui-ux-pro-max-skill(in Codex:git clone https://github.com/nextlevelbuilder/ui-ux-pro-max-skill, thencp -rL ui-ux-pro-max-skill/.claude/skills/ui-ux-pro-max ~/.agents/skills/) — then carry on using its priority table and quick-reference rules, and label choices from them as built-in defaults.
When the script is available, use it the way its own skill says:
- New page, screen, or product →
search.py "<product> <industry> <keywords>" --design-system -p "<Name>". Add--density 8for dashboards and admin tools,--density 2-3for marketing pages. - One specific concern (a modal's focus, a form's errors) → one
--domainquery, 2–5 terms. - Retry once on an empty or off-topic result, then fall back and say so. Never present a zero-result search as data.
- If
design-system/<slug>/MASTER.mdalready exists in the project, read it and design inside it. Never--persist --forcewithout the user saying so.
Its search output is a recommendation. The user's request and the project's existing design outrank it.
2. The brief
Designers do not open a canvas until they can say what the screen is for. Pull these out of the request and the project; do not interview the user for what you can read:
| Question | Where it usually comes from |
| Who uses it, and in what context (desk, phone on a commute, a kiosk) | The request; the product's domain |
| The one primary task on this screen | The request — if there are three, the screen has a hierarchy problem |
| Product type and tone (SaaS tool, storefront, portfolio, internal admin) | The request; the repo's README |
| Platform and breakpoints (web, iOS, Android, desktop) | The request; the stack in package.json, pubspec.yaml, etc. |
| An existing brand or design system to honor | Tailwind config, CSS variables, a design-system/ folder, a Figma link |
Ask one question, and only when a wrong guess would waste the mockup — usually the primary task or the platform. Everything else, pick a sensible default and state it in the reply.
3. How a human designs it
Work in this order. Each step constrains the next; doing them out of order is what makes a screen feel assembled rather than designed.
a. Content before layout. Write the real copy and data first: actual headings, actual product names, plausible numbers, a user named something other than John Doe. Lorem ipsum hides every length and hierarchy problem the real content would expose.
b. Structure in grey. Place blocks by importance, not by habit. Put the primary task where the eye lands first — top-left for scanning layouts (F-pattern), center for a single-action page. Headings start with the information-bearing word. Choose the familiar pattern for the job (Jakob's Law): users know how a settings page, a checkout, and a data table work, and novelty there costs them.
c. Hierarchy with as few tools as possible. Importance comes from size, weight, and contrast — try weight and color before reaching for size.
- At most three text sizes per region, and at most two elements that are "large".
- De-emphasize secondary content (lighter grey, smaller, regular weight) instead of
shouting the primary. Labels are a last resort:
12 left in stockbeatsStock: 12, and where a label stays, it is quieter than its value. - One primary action per view. Secondary actions are outlined or text buttons; destructive ones are not red until the moment of confirmation.
d. Spacing and grouping. A spacing scale, not ad-hoc numbers: 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64. Space between groups is clearly larger than space within them — that gap does the grouping, so borders and cards are needed less often than you think. Start with too much whitespace and remove it.
e. The system. Define before styling, as CSS custom properties:
- Type — one family (two at most: display + text). A modular scale, 16px body, line-height ~1.5 for text and ~1.2 for headings, line length 45–75 characters.
- Color — 8–10 greys (no pure black; start from a very dark grey), one primary with a
full 100–900 ramp, and semantic colors (success, warning, danger, info) with their own
tints. Hand-pick the shades; don't generate them with
lighten(). Text meets 4.5:1 contrast (3:1 for large text) in both light and dark themes. - Shape and depth — one radius scale, one shadow scale that means elevation, not decoration.
f. Every state, not just the happy path. A designer hands off the screen in all of its lives. For each data region design: empty (what goes here, and the button that fills it), loading (skeleton that reserves the space), error (what went wrong, why, and what to do — in plain language), partial, and overflow (the 40-character name, the 10,000-row table). For each control: default, hover, focus, active, disabled.
g. Responsive. Design the narrowest breakpoint as a real layout, not a squeezed desktop. Touch targets at least 44×44px with 8px between them. No horizontal page scroll.
4. Build the Artifact
- Call
Artifactwithaction: "quickstart"andintent: "design"first — it names the artifact type and design systems this account has. Follow what it returns; if the user already has a design system there, use it instead of inventing one. - Load
artifact-designwhen the quickstart result tells you to, and follow its page contract (tokens on:root, dark-mode overrides, allowed CDNs, 16px mobile gutter). - Make it clickable where interaction is the point: tabs switch, modals open, the form validates inline. A static picture of an interactive thing hides its hardest decisions.
- When showing states or breakpoints, lay them side by side on the canvas, labelled — "Empty", "Loading", "Error", "Mobile 375" — so the reviewer compares instead of hunts.
- SVG icons from one set (Lucide, Heroicons, Phosphor). Never emoji as icons.
No Artifact tool (Codex, or any agent without it): skip the quickstart and
artifact-design bullets, and build the same page as one self-contained HTML file at
design/<slug>.html in the working directory — inline CSS and JS, tokens on :root with
dark-mode overrides, a 16px mobile gutter, fonts and icons from a public CDN. The
remaining bullets still apply. Keep it out of version control — inside a git repo, if
git check-ignore -q design/ fails, append design/ to .gitignore and mention it in
the reply.
5. Critique before publishing
Designers review their own work before anyone else sees it. Run this pass and fix what fails — do not ship a list of known problems.
- Squint test. Blur your eyes (or imagine a 10px blur): is the primary task still the first thing you see? Are the groups still visible as groups?
- ui-ux-pro-max priorities 1→10 — accessibility, touch, performance, style fit,
responsive, type and color, motion, forms, navigation, charts. With the skill installed,
run through its
references/pro-rules.mdpre-delivery checklist for app UI. - Nielsen's heuristics, the ones mockups fail most: system status visible, an exit from every modal and flow, consistent labels for the same action, errors prevented before they are reported, options shown rather than remembered.
- Copy. Buttons are 2–4 words and start with a verb that names the result
(
Save changes,Delete folder) — neverOKorSubmit. Same action, same word, everywhere. - Anti-generic check. If the screen could belong to any product — centered hero, purple gradient, three identical feature cards — it has not used the brief. Change something that only this product would have.
6. Reply
Publish, then keep the reply short:
- The artifact link, or the HTML file's path when there was no Artifact tool.
- One or two lines on the direction: the style and palette chosen and why for this product, and whether it came from a ui-ux-pro-max design-system match or from its built-in defaults.
- Any assumption you made in the brief that the user may want to change.
- At most one line on what you would design next (the next screen in the flow, a dark theme pass). No summary of what the mockup already shows — they can see it.
Other versions12 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 12
- ThisIsSadeghi/KMPilot★ 56same name
- kdy1/kdy1-scripts★ 33same name
- mae616/ai-template★ 9same name
- melconcoast/code-idea★ 3same name
- shreyas-makes/agent-skills★ 2same name
- blauwtje/exo★ 1same name
- evgenii-studitskikh/Claude-Code-SaaS-Studio★ 1same name
- leolionart/claude-skills★ 1same name
- NachikethReddyY/skills★ 1same name
- ThisIsSadeghi/Loupe★ 1same name
2 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository11 other files it gives its agents.
- add-designpatternSkill
- add-owasptoptenSkill
- add-spring-structureSkill
- askSkill
- checkout-commitSkill
- check-performanceSkill
- check-securitySkill
- discussSkill
- generate-api-docsSkill
- release-versionSkill
- testingSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

