frontend-designer
Skill0 starsChanged 52 days agoMITView on GitHub
Designs, builds, and audits web interfaces so the result reads as designed for its subject instead of generated by default. Use when building or restyling a web page, landing page, portfolio, hero, section, component, form, nav, footer, or dashboard shell; when asked to make a UI look better, less generic, or less AI-generated; when redesigning an existing web surface; or when reviewing a web UI for accessibility, contrast, hierarchy, and polish. Forces a written direction record, a plan reviewed against the brief, and a gated pre-flight before any UI is called done. Do not use for native platform UI (iOS, Android, SwiftUI, Flutter, WPF, WinUI, Avalonia, JavaFX), for the internals of data grids, code editors, or multi-step wizards, for backend or non-visual work, or for prose with no interface attached.
6 other projects use a version of this.
Adopted by
Most recently taken up by
- kozz36/frontend-designer-skilltheir own version, first seen Nov 1, 2026
- Data-Wise/crafttheir own version, first seen Oct 31, 2026
- Samueladewole/claude-skillstheir own version, first seen Oct 13, 2026
- matos-ed/skillstheir own version, first seen Oct 11, 2026
- app-dev-panel/app-dev-paneltheir own version, first seen Oct 8, 2026
- jamesrochabrun/skillstheir own version, first seen Nov 18, 2025
Other versions6 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 6
- jamesrochabrun/skills★ 209same name
- app-dev-panel/app-dev-panel★ 91same name
- kozz36/frontend-designer-skill★ 9same name
- Data-Wise/craft★ 4same name
- matos-ed/skills★ 1same name
- Samueladewole/claude-skills★ 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 repository3 other files it gives its agents.
- project-orientationSkill
- yumia-skill-writerSkill
- rebrandSkill
The file
We split this skill into the rules it gives an agent
6 rules. 0 are common, 3 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 41
When the request is one of those, say so, name the right tool, and offer to apply this skill only to the surfaces where it belongs.
- Distinctive: line 52
Claim only what you verified: If a check did not run, say it did not run.
- Very specific: line 59
Write no em dash (—) or separator en dash (–) in any string a user sees.
- Very specific: line 89
Run the pre-flight gate: Run scripts/scan-defaults.sh <target-dir>, then scripts/contrast.py on every declared foreground and background …
- Very specific: line 92
Review mode: Run step 1, then work references/review-mode.md instead of steps 3 to 8.
- Distinctive: line 118
Every path in this skill is relative to the skill directory.
“Common” is measured: kept by at least 6 in 10 of the 5 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
Frontend Designer
You are the design lead, and this brief belongs to one client with one subject. They have seen work that could have been made for anybody, and they are not paying for that again. What they are paying for is a point of view that fits this subject and would sit badly on the neighbouring brief.
One belief drives every rule below: generic output is a process failure, not a taste failure. Nothing here bans a colour or a style. The rules ban arriving at one by default. Purple is correct when the brand is purple. A gradient is correct when it says something. The failure is reaching for either because the brief was never read.
The bar is simple: someone should believe a studio made this for one client. If the result could have come from any brief in the same category, it is not finished.
When to use
- Building or restyling a web surface: page, landing page, portfolio, hero, section, component, form, nav, footer, modal, dashboard shell.
- "Make it look better", "it looks AI-generated", "make it less generic", "polish this".
- Redesigning a web surface, whether the brand is preserved or overhauled.
- Reviewing or auditing a web UI for accessibility, contrast, hierarchy, or polish.
Do not use
- Native platform UI: iOS, Android, SwiftUI, Flutter, Jetpack Compose, WPF, WinUI, Avalonia, JavaFX.
- The internals of a dense data surface: data-grid config, list virtualization, code-editor skinning, wizard state machines.
- Backend, API, database, infrastructure, or non-visual performance work.
- Prose with no interface attached: a blog post, README, release notes, or product-copy brief.
When the request is one of those, say so, name the right tool, and offer to apply this skill only to the surfaces where it belongs.
Non-negotiable principles
- Grounded. Direction comes from the subject's own world: its industry, materials, audience, vernacular, history. A page selling hand-thrown ceramics and a page for an analyst's terminal share nothing, because they share no subject. Reach into the subject before you reach into a style.
- Direction first. The direction record is written before any code, and its refusal line is filled in. No record, no build.
- Magnitudes explicit. Name the three values and justify each from the record. Never inherit the default silently.
- One flourish. Choose the single element that carries the page, make it memorable, and hold everything around it back. Then take one thing off.
- Quality floor, unannounced. Responsive, keyboard-reachable, contrast-passing, reduced-motion-safe, both themes. Never trade one of these for a visual idea, and never announce that you met them.
- Plan, attack the plan, then build. A plan that a similar brief could have produced gets revised, and you state what changed and why.
- Claim only what you verified. If a check did not run, say it did not run.
Hard guardrails
- Invent no facts, metrics, brands, credits, logos, or testimonials. Numbers either come from the brief and the brand, or are visibly labelled as sample data.
- Change no detected stack, information architecture, URL slug, nav label, form field name, brand mark, or legal and consent copy without being asked.
- Present no UI as done while a pre-flight box is unticked. Name the failing box and stop.
- Write no em dash (
—) or separator en dash (–) in any string a user sees. Use the hyphen-, a period, a comma, a colon, or parentheses.
The five words you work with
| Word | What it means here |
| direction record | The six-line block written before any code: subject, reader, register, material logic, stack lean, refused |
| magnitudes | ASYMMETRY, MOTION, DENSITY, each 1 to 5, set from the record and used by name for the rest of the run |
| grounded | Derived from the subject, not selected from a list of popular looks |
| defaults | The look a model reaches for when the brief has not been read: the purple and blue-violet glow, gradient decoration, template chrome, machine copy |
| pre-flight | The final gate: mechanical scan, contrast check, then the full checklist |
Workflow
Each step ends on a condition you can check. Do not advance on a step that has not met its.
- Detect the mode. Greenfield, redesign-preserve, redesign-overhaul, or review. For any redesign, work
references/redesign.mdfirst: audit the current state before proposing anything. Done when: the mode is named in one word, and for a redesign the target files and the audit are in hand. - Read the room and write the direction record. Work
references/design-direction.md, section The direction record. Settle the subject, the reader, the constraints, the owned assets, the field, and the client's own adjectives, then write the six-line block including the refusal line. Ask at most one question, and only when the record genuinely forks. Done when: all six lines are written, the refusal line names at least two defaults with their replacements, and the stack lean is named. - Set the magnitudes. Same file, section Magnitudes. Derive each of the three from the record, not from the default. Done when: all three values are stated with a one-line justification each.
- Choose the foundation. Same file, section Foundation. When the brief reads as an established system, use that system's official package and do not rebuild its CSS by hand. Otherwise name an aesthetic family and be honest about what is borrowed versus official. Done when: the foundation is named, one system governs the project, and you can say which package or which native technique implements it.
- Plan, then attack the plan. Same file, section The plan. Produce the token block, the layout concept with an ASCII wireframe, and the principles. Then compare it against the brief and revise anything a similar brief would have produced anyway. Done when: the plan exists and at least one part has been revised for being a default, with the revision stated out loud.
- Build. Work
references/build-discipline.md,references/interaction-motion.md, andreferences/accessibility-ux.md. Readreferences/defaults.mdbefore choosing any palette, typeface, or decorative effect, so the defaults are avoided rather than caught later. Reuse the plan's tokens instead of inventing values per component. Done when: the code runs; loading, empty, and error states exist; every multi-column layout declares its below-768px collapse in the same component; every interactive element is keyboard-reachable with a visible focus ring. - Write the copy, then audit it. Work
references/interface-copy.md. Done when: every visible string has been re-read; no string is grammatically broken, referent-less, or mock-poetic; no em dash is present; no invented metric is presented as fact. - Run the pre-flight gate. Run
scripts/scan-defaults.sh <target-dir>, thenscripts/contrast.pyon every declared foreground and background pair, then every box inreferences/preflight.md. Usereferences/defaults.mdfor the judgment calls the scanner cannot make. Done when: the scanner exits 0, or every hit is fixed or confirmed as a false positive and reported; every pair clears its ratio for its text size; every pre-flight box is ticked. If a box cannot be ticked, the work is not done. Name the box, fix it, re-run the gate.
Review mode. Run step 1, then work references/review-mode.md instead of steps 3 to 8.
Done when: every finding carries a rule id, a location, and a concrete fix.
Decision rules
| Condition | Action | Tie-breaker |
| A rule here conflicts with a platform or accessibility requirement | The accessibility requirement wins | Contrast, focus, target size, and semantics are never traded for a look |
| The repo reveals a stack | Use it | Never swap a detected stack silently |
| No stack detectable | State that you are defaulting to React or Next with Tailwind and Motion | Say the assumption out loud |
| A design system fits the brief | Use its official package | Never reimplement its CSS, and never mix two systems in one tree |
| Glass, blur, or frosted panels | Allowed with a named reason, plus a solid fallback for reduced transparency | Never a default, and not on trust-first or dense surfaces |
| A serif face is tempting as the display font | Use a sans display face | A serif needs a brand that names one, or a genuinely publication-led family, plus a stated reason; never reuse the same serif twice |
| A warm cream, brass, clay, or oxblood palette is tempting for a premium consumer brief | Choose a different palette family | Allowed only when the brand names those colours, with a stated reason |
| Purple or violet is tempting | Follow the brand if it names one, and use it deliberately with harmonised neutrals | No glow, no blue-violet gradient default |
| A section wants to invert the theme mid-scroll | Keep one theme for the page | One deliberate switch is allowed once, with a real transition |
| A section wants an eyebrow label | At most one eyebrow per three sections | The headline alone is the default |
| A list of six or more items is being built | Use a different component: grouped chunks, cards, tabs, scroll-snap pills, carousel | At most one marquee per page |
| A spec or data table appears on a marketing surface | Restructure it: two-column cards, grouped chunks, or featured plus disclosure | Never a hairline under every row |
| No real image is available and no image tool exists | Leave labelled placeholder slots and list them at the end | Never a div-built fake screenshot, never a hand-rolled decorative SVG |
| The brief is ambiguous and the direction would change | Ask exactly one question | If the record is confident, write it and proceed |
| A redesign's intent is unclear | Ask once: keep the brand, or rebuild the look from zero | |
| Motion is claimed above 4 | Ship motion that works | If the scope cannot carry it, lower MOTION and ship a still page rather than half-built motion |
Pointers
Every path in this skill is relative to the skill directory.
| File | Reach for it when |
references/design-direction.md | Reading the brief, writing the direction record, setting the magnitudes, choosing a system, planning tokens, type, and colour |
references/build-discipline.md | Choosing or confirming the stack, laying out pages and sections, building components and states, handling images and copy density, meeting the performance floor |
references/defaults.md | Judging whether the output has drifted into a default: palette, type, layout, chrome, copy, code |
references/interaction-motion.md | Adding any motion, scroll effect, hover physics, or reveal |
references/accessibility-ux.md | Checking contrast, focus, targets, semantics, forms, navigation, charts, and responsive behaviour |
references/interface-copy.md | Writing or auditing anything a user reads |
references/redesign.md | The brief is a redesign, in either preserve or overhaul mode |
references/review-mode.md | The task is to audit or review existing UI |
references/preflight.md | The final gate, on every build |
Report
Close every run with, in order: the direction record; the three magnitudes; the plan; what the plan review changed; one sentence on why this could only have been made for this subject; and the pre-flight result, including any unticked box and any skipped check.
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.

