frontend-design
Skill126 starsChanged 10 days agoApache-2.0View on GitHub
Craft doctrine for building distinctive, polished frontend interfaces. Use when building or reviewing web UI — components, pages, layouts, styling, animation. Covers design direction, typography, surfaces, and motion. Defers to the repo's DESIGN.md for all project-specific choices.
187 other projects use a version of this; 1 new project in the last 4 weeks, against 0 the 4 before.
Adopted by
Surging: 1 new project took it in the last 4 weeks, none the 4 weeks before.thin data
Most recently taken up by
- RostislavDugin/postgresustheir own version, first seen Nov 8, 2026
- databasus/databasustheir own version, first seen Nov 8, 2026
- ceilf6/FrontAgenttheir own version, first seen Nov 8, 2026
- rvdbreemen/OTGW-firmwaretheir own version, first seen Nov 8, 2026
- open-slide/open-slidetheir own version, first seen Nov 8, 2026
- REPOZY/superpowers-optimizedtheir own version, first seen Nov 8, 2026
Used with
Projects with it also use instantly-campaign, albert-dm and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
yawningwhaleAISkillinstantly-campaign
Create a new Instantly cold-email campaign in the proven 5-email structure of the user's top-performing campaign (~16% reply rate). Use when the user wants to launch a new outbound campaign, write a cold email sequence, create an Instantly campaign, draft outreach for a new service or niche, or set up a sales sequence.
Also in 6 projects that use this
yawningwhaleAISkillalbert-dm
Reply to DMs and messages the way Albert would. Use when the user asks "how would Albert reply to this", pastes a conversation and wants an Albert-style response, or asks you to draft/write a DM in Albert's voice. Albert sells AI voice agents / automations to local service businesses (Go High Level, lead follow-up, bookings).
Also in 5 projects that use this
naman10parikhSkillecosystem-reference
Quick-access directory of Claude Code ecosystem repos, skills, plugins, MCPs, and patterns. Use when improving the harness.
Also in 5 projects that use this
naman10parikhSkillfractal-delegation
Also in 5 projects that use this
julianoczkowskiSkillbrief-to-tasks
Break a design brief into an ordered checklist of independently buildable tasks using vertical slices. Saves as a markdown checklist. Use when user wants to break down work, create tasks from a brief, plan implementation order, or mentions "tasks" or "breakdown".
Also in 7 projects that use this
SeifBenayedSkillfile-reading
Use this skill when a file has been uploaded but its content is NOT in your context — only its path at /mnt/user-data/uploads/ is listed in an uploaded_files block. This skill is a router: it tells you which tool to use for each file type (pdf, docx, xlsx, csv, json, images, archives, ebooks) so you read the right amount the right way instead of blindly running cat on a binary. Triggers: any mention of /mnt/user-data/uploads/, an uploaded_files section, a file_path tag, or a user asking about an uploaded file you have not yet read. Do NOT use this skill if the file content is already visible in your context inside a documents block — you already have it.
Also in 6 projects that use this
- +6 more from naman10parikh
Other versions187 projects use a version of this.
Word for word · 1
- nolly-studio/cult-ui★ 6.9k100% same
Edited · 0
None found.
Wrote their own version · 186
- anthropics/skills★ 189ksame name
- bytedance/deer-flow★ 85ksame name
- anthropics/claude-plugins-official★ 46ksame name
- novuhq/novu★ 40ksame name
- Dokploy/dokploy★ 38ksame name
- markmead/hyperui★ 12ksame name
- mengxi-ream/read-frog★ 10ksame name
- 1weiho/open-slide★ 9.7ksame name
- open-slide/open-slide★ 9.7ksame name
- basketikun/infinite-canvas★ 9.5ksame name
176 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 repository5 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .agents/skills/components-build/AGENTS.mdAGENTS.md
- components-buildSkill
- otto-designSkill
- superdesignSkill
The file
We split this skill into the rules it gives an agent
4 rules. 0 are common, 1 is distinctive, and 3 are very specific to this project.
0
Common
Most of the 180 edited versions we read keep these.
1
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
- Very specific: line 33
Concentric radius: When nesting rounded elements: outer = inner + padding.
- Distinctive: line 42
Optical alignment: When geometric centering looks off (icon+text buttons, play triangles), nudge until it *looks* centered.
- Very specific: line 48
Split and stagger enters: Don't animate one container — break content into semantic chunks with ~60–100ms stagger, combining opacity, small …
- Very specific: line 64
Name transition properties: Never transition: all — list exact properties.
“Common” is measured: kept by at least 6 in 10 of the 180 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
<!-- generated by design-md v1.1.0 -->Great interfaces are a collection of small, intentional details that compound. Apply this doctrine when building or reviewing any UI.
DESIGN.md wins. If this repo has a DESIGN.md, its fonts, tokens, budgets, and recipes override everything below — this skill covers the craft layer underneath any design language. Express every change in the styling system the project already uses (Tailwind, CSS Modules, styled-components, plain CSS); never introduce a second one for a fix.
Direction
Before coding a new surface, commit to a clear aesthetic point of view — the repo's DESIGN.md if one exists, otherwise a deliberate choice for the context. Intentionality matters more than intensity: refined minimalism and bold maximalism both work; timid, evenly-distributed defaults do not. Never ship generic AI aesthetics: stock font stacks chosen by habit, purple-gradient-on-white, cookie-cutter card grids with no context-specific character. Match implementation effort to the vision — maximalist designs need elaborate effects, minimal ones need precision in spacing and type.
Typography
Good typography is mostly restraint: a sensible scale, comfortable spacing, enough contrast.
- Few fonts, few weights. Rarely more than two or three families. Pair for contrast (display vs body), not similarity. Hierarchy comes from size and weight used sparingly.
- Scale, not one-offs. Sizes come from the project's type scale. Heading sizes descend with level — pick the tag from the document outline, control size with CSS, never skip levels.
- Line-height by role. Headings ~
1.1, body1.5–1.6, always unitless. - Letter-spacing by size. Slightly negative on large headings, slightly positive on small uppercase labels, neither on body.
- Cap the measure. Long-form text at 60–75 characters per line (
max-w-2xlat 16px body, or65ch). - Wrap deliberately.
text-wrap: balanceon headings,text-wrap: prettyon descriptions; neither in long-form text. - Tabular numbers on anything that changes.
tabular-numson timers, counters, prices, table columns. - Natural case in copy. Store text in sentence case; uppercase via
text-transformonly where the design language sanctions it. - Mechanics.
.woff2for web fonts. CSS properties over raw tags (font-weight: 650,font-variant-numeric: tabular-nums— notfont-variation-settings/font-feature-settings).font-synthesis: noneso missing weights fail visibly.antialiasedonce on the root layout. Inputs ≥16pxon mobile (text-base sm:text-sm) or iOS zooms. Body ≥16px; contrast ≥4.5:1(3:1for large text).
Surfaces
- Concentric radius. When nesting rounded elements:
outer = inner + padding. Matching radii on parent and child is the most common thing that makes UI feel subtly off. Derive radii from the project's radius token where one exists. - Shadows over borders. Layered transparent
box-shadow(1px ring + tight lift + soft ambient) adapts to any background and animates smoothly; flat borders do neither. Use the project's shadow utility if it has one; otherwise:
shadow-[0px_0px_0px_1px_rgba(0,0,0,0.06),0px_1px_2px_-1px_rgba(0,0,0,0.06),0px_2px_4px_0px_rgba(0,0,0,0.04)] dark:shadow-[0px_0px_0px_1px_rgba(255,255,255,0.06),0px_1px_2px_-1px_rgba(255,255,255,0.03),0px_2px_4px_0px_rgba(0,0,0,0.2)]Strengthen the same layers for hover/selected. Extract a shared component after the third repetition, with transition-shadow duration-200.
- Image outlines. Inset
1pxoutline on images/media for separation: pure black at 10% in light mode, pure white at 10% in dark — never a tinted neutral, which reads as dirt on the edge.[outline:1px_solid_rgba(0,0,0,0.1)] [outline-offset:-1px]. - Optical alignment. When geometric centering looks off (icon+text buttons, play triangles), nudge until it looks centered; the best fix is the SVG viewBox itself.
- Hit areas. ≥ 44×44px for touch, ≥ 40×40px on desktop. Extend with a pseudo-element if the visible control is smaller; never overlap two hit areas.
Motion
- Interruptible by default. CSS transitions and springs retarget mid-flight; keyframes don't. Transitions/springs for interactive states (hover, toggle, dismiss), keyframes only for one-shot sequences (page load). With a motion library, prefer
type: "spring", bounce: 0. - Split and stagger enters. Don't animate one container — break content into semantic chunks with ~60–100ms stagger, combining
opacity, smalltranslateY, andblur:
@keyframes enter {
from { opacity: 0; transform: translateY(8px); filter: blur(4px); }
}
.animate-enter {
animation: enter 600ms cubic-bezier(0.2, 0, 0, 1) both;
animation-delay: calc(80ms * var(--stagger, 0));
}- Exits subtler than enters. Small fixed
translateY(~-12px) + blur + fade — never a full reversal of the enter path, never zero motion. - Icon swaps. Cross-fade in place with opacity/scale/blur (scale
0.25→1, blur4px→0);AnimatePresence mode="popLayout"with a spring, or an absolute-positioned CSS cross-fade without a library. - Press feedback.
active:scale-[0.96]on buttons — never below0.95. - No animation on first paint for default-state elements:
initial={false}onAnimatePresence. - Name transition properties. Never
transition: all— list exact properties.will-changeonly fortransform/opacity/filter, only after observing first-frame stutter. - Respect
prefers-reduced-motionon every entrance and press effect.
Review checklist
- Fonts, tokens, and budgets match
DESIGN.md(if present) - Sizes from the type scale; headings descend with level; line-height unitless by role
balanceon headings,prettyon descriptions, measure capped on long-formtabular-numson changing numbers;antialiasedon root; inputs ≥ 16px on mobile- Concentric radii on nested surfaces
- Layered shadows (or the project's shadow utility) instead of flat borders
- Images have the 1px untinted outline
- Icon+text pairs optically aligned; hit areas ≥ 40/44px
- Enters split and staggered; exits subtler; interactive motion interruptible
active:scale-[0.96]on primary press targets; reduced-motion honored- No
transition: all;will-changerare and specific
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.

