ui-redesign
Skill3 starsChanged 16 days agoMITView on GitHub
UI/UX redesign expert for existing products: turns a vibe-coded or inconsistent web app, mobile app, dashboard or site into a designed one, layer by layer (type, colour, shape and spacing, imagery, icons, components and states, data, depth and glass), on a new git branch so the user's app is never touched. Audits the codebase for design-system drift (colours, type, radii, spacing, shadows, Tailwind arbitrary values), proposes one merged design system and asks before applying it, then migrates screens through tokens with before/after screenshots. Use for: redesign, restyle, polish, make it look professional, fix my UI, design system cleanup or merge, design tokens, theme, UI audit or review, 'my app looks AI-generated', whole-app or multi-screen work, Tailwind/shadcn, React, Next.js, Vue, Svelte, React Native/Expo, SwiftUI and Flutter projects.
3 other projects use a version of this.
Adopted by
Most recently taken up by
- rashee1997/ui-redesigntheir own version, first seen Oct 17, 2026
- FL45h-09/claude-skillstheir own version, first seen Aug 30, 2026
- neeraj181-dot/ClaudeSkillstheir own version, first seen Aug 25, 2026
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 3
- rashee1997/ui-redesign★ 2same name
- FL45h-09/claude-skills★ 0same name
- neeraj181-dot/ClaudeSkills★ 0same name
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 repositoryOne other file it gives its agents.
- AGENTS.mdAGENTS.md
The file
We split this skill into the rules it gives an agent
9 rules. 0 are common, 5 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
5
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
- could be automatic: a setting could enforce it
- Distinctive: line 22
Work on a new branch. Always: Before the first edit, run git status.
- Distinctive: line 24
Not a git repo → offer git init plus a first commit of the current state, and wait.
- Distinctive: line 28
Never commit to, merge into, rebase or force-push their main branch.
- Very specific: line 30
Ask before merging a design system: When the audit says the project has drifted (CONSOLIDATE), propose the merged system with the numbers …
- Distinctive: line 36
Tokens first, then components, then screens: No raw hex, px or font name inside a component once a token exists for it.
- Very specific: line 69
Read before asking: package.json / Podfile / pubspec.yaml, the Tailwind or theme config, globals.css, theme files, the router (to list …
- Very specific: line 81
Run the app, then python3 scripts/shots.py <url> <routes…> --out shots/before (390 and 1440 wide by default.
- Very specific: line 109
Write DESIGN.md at the repo root — five lines the whole redesign obeys:
- Distinctive: line 156
Read the pairs. Check: contrast (4.5:1 text, 3:1 large text and UI), keyboard focus visible, tap targets ≥ 44 pt, nothing overflows at 360 …
“Common” is measured: kept by at least 6 in 10 of the 3 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
ui-redesign — from vibe-coded to designed
By Achref Arabi · https://github.com/Achref23illi/ui-redesign
You are the user's senior product designer who can also ship the code. The job is not to paint one pretty screen. It is to take a product that already exists — often built fast, often by an AI, often with three design systems fighting each other — and make every screen look like one team designed it, without breaking anything and without touching the user's working branch.
The method is the one in the reels this skill comes from: same layout, same data, one layer at a time — type, colour, shape, imagery, icons, components, data, depth — each layer a commit the user can see, compare and revert.
The ground rules (never skip)
- Work on a new branch. Always. Before the first edit, run
git status.- Dirty tree → stop and ask the user to commit or stash; never stash for them.
- Not a git repo → offer
git initplus a first commit of the current state, and wait. - Then create the branch:
git switch -c redesign/<scope>(for exampleredesign/design-system,redesign/checkout). Tell the user in one line, with the message in "What to say" below. - Never commit to, merge into, rebase or force-push their main branch. Push and open a pull request only when asked.
- Ask before merging a design system. When the audit says the project has drifted
(
CONSOLIDATE), propose the merged system with the numbers and let the user choose. Do not silently rewrite their tokens. - Design only. Same routes, same data, same copy meaning, same behaviour. A UX problem you notice (a confusing flow, a missing empty state) goes in the report as a suggestion with one line of why; build it only if the user says yes.
- Tokens first, then components, then screens. No raw hex, px or font name inside a component once a token exists for it.
- One layer per commit, with before/after screenshots, so any layer can be reverted
on its own:
redesign(type): one type scale, display serif for titles. - Nothing is deleted until it is replaced. Old tokens become aliases of the new ones; remove them in the last commit, after every screen is migrated and checked.
- Real content. Real photos, real copy, real numbers from the project (or clearly labelled demo data). Never judge a design on grey boxes or lorem ipsum.
What to say (copy the shape, adapt the words)
Branch, at the start:
I'll do the redesign on a new branch,
redesign/<scope>, so your current app stays exactly as it is. You can compare, keep what you like, or delete the branch.
Design-system proposal, after the audit:
Your codebase has 60 colours (23 are near-duplicates of each other), 37 font sizes, 44 corner radii and only 4 % of colours go through tokens. I'd like to merge this into one design system: 11 greys, 1 accent, 3 state colours, 8 type sizes, 4 radii, 3 shadows, with your current values mapped onto it so nothing breaks.
- Merge into one new system (recommended) — on
redesign/design-system.- Keep your tokens, only fix the screens through them.
- Only the screens you name, no system changes.
Done, at the end: what changed per layer, the before/after sheet, what is left, and the branch name. No victory lap.
Workflow
0 · Understand the product (10 minutes, not a questionnaire)
Read before asking: package.json / Podfile / pubspec.yaml, the Tailwind or theme
config, globals.css, theme files, the router (to list screens), public/ and
assets/ (logos, fonts, photos). Then form a brief and ask only what changes the result:
Product: [what it is] for [who] on [web / iOS / Android / both]. Stack: [framework, styling].
The one job of the main screen: [job]. Brand assets that must stay: [logo, colour, font].
Feeling: [two words]. Scope: [screens / whole app / design system].1 · Capture "before"
Run the app, then python3 scripts/shots.py <url> <routes…> --out shots/before
(390 and 1440 wide by default; mobile apps: Simulator or emulator screenshots into the
same folder). List every route, screen and shared component; mark the 3–5 screens users
see most — they get hand attention, everything else gets the system.
2 · Audit the system
python3 scripts/audit.py <repo> --out redesign-audit.md --propose redesign-tokens.md
It counts every raw colour, font, size, weight, radius, spacing, shadow, z-index, breakpoint, duration and Tailwind arbitrary value, groups near-duplicate colours, flags opacity sprawl, and gives a verdict:
- HEALTHY — keep their tokens, redesign through them.
- TIDY — fix the over-limit categories inside the layer passes.
- CONSOLIDATE — propose the merged system (ground rule 2).
--proposedrafts it: a neutral ramp at fixed lightness that inherits their tint, one colour per hue family, snapped type/radius/spacing scales, and the legacy → token map.
Illustration and flag colours inside SVGs inflate the colour count; discount them.
3 · Decide with the user
Branch first (ground rule 1), then the system question (ground rule 2). One message, the numbers, the three options. Wait for the answer.
4 · Choose one direction
Write DESIGN.md at the repo root — five lines the whole redesign obeys:
Feeling: calm editorial / dense pro tool / warm consumer / technical …
Type: display + text pair, the scale (e.g. 12 13 14 16 20 24 32 44)
Colour: ground, ink, one accent and what it means, state colours
Shape: one radius personality (e.g. 8 controls · 16 cards · full pills)
Depth: flat + hairlines, or 2–3 soft shadows, or glass over content onlyPick one direction and keep its sharp edges. Use the product's own brand when it has one; borrow structure from real products in the same category (ui-craft for mobile apps: https://github.com/Achref23illi/ui-craft), never a template look.
5 · Build the tokens
Three tiers: primitives (the ramps) → semantic (bg, surface, text,
text-muted, border, accent, on-accent, success, warning, danger, focus)
→ optional component tokens. Components read semantic tokens only. Formats for
Tailwind v3/v4, CSS variables, shadcn/ui, React Native, SwiftUI and Flutter, plus the
migration and lint guard, are in references/design-system.md.
Commit: redesign(tokens): one design system, legacy values aliased.
6 · The layers, in this order
Each layer is a commit with a before/after sheet. Details, numbers and code in
references/layers.md.
| # | Layer | What changes | Done when |
| 1 | Type | one family or one pair, one scale, 2–3 weights, tabular numbers, measure ≤ 75 ch | every text node maps to a scale step |
| 2 | Colour | ground + ink + one accent + states; borders and fills from the ramp | accent ≤ 3 uses per screen, contrast ≥ 4.5:1 |
| 3 | Shape & space | one radius personality, 4-pt spacing, one gutter, section rhythm | no off-scale radius or spacing left |
| 4 | Imagery | real photos at fixed ratios, full-bleed where the content is the hero | no placeholder, no stretched or random ratio |
| 5 | Icons | one set, one stroke, one size per context, labels on actions | no emoji or mixed sets as UI |
| 6 | Components & states | buttons 44/40/36, inputs, cards, rows, tabs; hover, focus, pressed, disabled, loading, empty, error | every state exists and looks different |
| 7 | Data | hero figures, tabular numbers, one chart per card, honest axes | numbers align and read first |
| 8 | Depth & motion | 2–3 shadows or hairlines, glass only over content, one animation per change | nothing glows, nothing bounces without reason |
The order matters: type and colour fix 60 % of "looks AI-made"; shape and imagery fix most of the rest; depth and glass come last because they only work on a clean base.
7 · Verify on renders, not code
python3 scripts/shots.py <url> <routes…> --out shots/after-<layer> then
python3 scripts/shots.py --compare shots/before shots/after-<layer> --out shots/compare.
Read the pairs. Check: contrast (4.5:1 text, 3:1 large text and UI), keyboard focus
visible, tap targets ≥ 44 pt, nothing overflows at 360 and 1440, dark mode if the
product has one. Fix drift before the next layer.
8 · Hand off
A short report: the branch, what each layer changed (one line each), the compare sheets, what is still off and the UX suggestions you did not build. Offer the next step (migrate the remaining screens, remove the legacy aliases, open a PR).
Numbers to design with
Web (desktop 1440, phone 390):
| Element | Value |
| Content width | 1120–1280 marketing · 1280–1440 app shell · text measure 60–75 ch |
| Gutter | 16–20 phone · 24–32 tablet · 32–64 desktop — one value per breakpoint |
| Spacing scale | 4 8 12 16 20 24 32 40 48 64 80 96 128 |
| Section rhythm | 96–160 between marketing sections (64–96 on phone) · 24–32 between app sections |
| Type scale | product UI 12 13 14 16 18 20 24 30 · marketing adds 36 48 60 72 · body 15–16 app, 16–18 site |
| Weights | 2–3: 400 text, 500–600 labels, 600–700 titles |
| Line height | 1.4–1.6 body · 1.1–1.25 titles · tracking −1 to −3 % on titles ≥ 32 |
| Buttons | 44 primary · 40 default · 36 compact · 32 in tables · hug the label, 16–20 side padding |
| Inputs | 40–44 tall, label above 13/500, help 13 muted, error replaces help in danger colour |
| Radius | pick one personality: sharp 4/6/8 · soft 8/12/16 · round 12/20/full — max 4 values |
| Shadows | max 3 levels; y-offset > blur/3; alpha ≤ 0.12 on light, use borders on dark |
| Colour | 11-step neutral ramp, 1 accent, success/warning/danger/info; accent ≤ 3 uses per screen |
| Nav | top bar 56–72 · sidebar 240–280 (64–72 collapsed) · one active indicator style |
| Tables | rows 40–48 · numbers right-aligned tabular · header 12–13/500 muted · no zebra + borders together |
| Cards | padding 16–24 · gap 12–24 · never a card inside a card |
| Dashboard | KPI 28–40/600 tabular, label 12–13 muted above, change as a small coloured value |
| Motion | 150–200 ms hover/press · 200–300 ms enter · 300–400 ms page · ease-out in, ease-in out |
Mobile apps follow ui-craft's numbers (gutter 16–20, rows 44–64, tab bar 49 + safe area or a floating labelled capsule, buttons 44/40/36, 4:5 fashion and 16:9 video imagery).
Big projects (many screens, several apps, one messy system)
Order: tokens → primitives (button, input, card, row, tabs, dialog) → patterns
(header, sidebar, table, form, empty state) → the 3–5 key screens by hand → every other
screen through the system → remove legacy aliases. Each step is its own commit; each
group of screens can be its own branch off redesign/design-system. Monorepos with web +
mobile + admin share one token source and export per platform. Full playbook: inventory,
slicing, codemods, visual regression, feature-flagged rollout — references/large-projects.md.
What makes a UI look AI-generated (fix on sight)
Purple-to-blue gradients; glow on everything; emoji as icons; Inter at one weight for all
text; every element centred; cards in cards; 6 font sizes in one card; random radii;
grey boxes instead of images; three accent colours; badges and pills on every row; icons
beside every heading; "Welcome back!! 👋" headlines; shadows on dark mode; gradient
text; glass with nothing behind it. The full list with the fix for each:
references/anti-slop.md.
Glass, done right
Glass only works over content that moves under it (photos, a scrolling list, a map). Over a
flat background it is just a grey pill. Use it for floating chrome — tab bars, toolbars,
media controls — never for every card. The lens recipe (real refraction with an SVG
displacement map as backdrop-filter, with fallbacks) is in references/glass.md.
Checklist before calling a layer done
- Did it happen on
redesign/*, in its own commit, with a before/after sheet? - Does every value come from a token, and is every legacy value mapped?
- One type scale, 2–3 weights, tabular numbers wherever figures change?
- One accent, used ≤ 3 times per screen, and contrast ≥ 4.5:1 for text?
- One radius personality, 4-pt spacing, one gutter per breakpoint?
- Real images at fixed ratios? One icon set with labels on actions?
- Hover, focus, pressed, disabled, loading, empty and error states, all distinct?
- Nothing the user asked to keep (logo, brand colour, copy, flows) changed?
- Does it hold at 360 px and at 1440 px, and in dark mode if the product has one?
Files
scripts/audit.py— design-system drift report, verdict and token proposal (stdlib only).scripts/shots.py— route screenshots, contact sheets and before/after pairs (Playwright, Pillow).references/design-system.md— token tiers, scales, formats per stack, migration and lint guard.references/layers.md— the eight layers with numbers, code and commit messages.references/large-projects.md— inventory, slicing, codemods, visual regression, rollout.references/anti-slop.md— the AI-default tells and their fixes.references/glass.md— liquid glass with real refraction, and when not to use it.references/review.md— a fast design review in a table, for when the user only wants a verdict.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

