frontend-design
Skill1 starsChanged 3 months agoMITView on GitHub
Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Covers aesthetic direction, typography, anti-patterns, premium component architecture, motion choreography, and performance guardrails. Makes choices that don't read as templated defaults.
187 other projects use a version of this, 28 of them edited.
Adopted by
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
- maxtrigify/Ottotheir 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
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 · 0
None found.
Edited · 28
- anthropics/skills★ 189k50% same
- anthropics/claude-plugins-official★ 46k50% same
- markmead/hyperui★ 12k99% same
- mengxi-ream/read-frog★ 10k50% same
- ArcReel/ArcReel★ 6.3k50% same
- talebook/talebook★ 5.9k99% same
- raphaelmansuy/edgequake★ 2.3k50% same
- edenfunf/reelmimic★ 1.8k50% same
- moeru-ai/xsai★ 66750% same
- argos-ci/argos★ 65799% same
18 more not listed
Wrote their own version · 159
- bytedance/deer-flow★ 85ksame name
- novuhq/novu★ 40ksame name
- Dokploy/dokploy★ 38ksame name
- 1weiho/open-slide★ 9.7ksame name
- open-slide/open-slide★ 9.7ksame name
- basketikun/infinite-canvas★ 9.5ksame name
- databasus/databasus★ 9.3ksame name
- RostislavDugin/postgresus★ 9.3ksame name
- mfts/papermark★ 9.2ksame name
- papermark/papermark★ 9.2ksame name
149 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 repository28 other files it gives its agents.
- AGENTS.mdAGENTS.md
- skills/vercel-react-best-practices/AGENTS.mdAGENTS.md
- ai-sdkSkill
- anti-slopSkill
- architecture-auditSkill
- browseSkill
- cavemanSkill
- context-budgetSkill
- design-mdSkill
- e2e-testingSkill
- error-handlingSkill
- find-skillsSkill
- fresh-context-reviewSkill
- graph-memorySkill
- grill-meSkill
- listenSkill
- manual-qa-planSkill
- next-best-practicesSkill
- nextjs-app-router-patternsSkill
- prd-to-issuesSkill
- project-feedbackSkill
- project-memorialSkill
- scrollcraftSkill
- sequential-afk-runnerSkill
- shadcnSkill
- tddSkill
- vercel-react-best-practicesSkill
- write-prdSkill
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 5 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 181 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 27
Consider written content carefully.
- Distinctive: line 55
Keep the register conversational and tuned: plain verbs, sentence case, no filler, with tone matched to the brand and the audience.
- Distinctive: line 59
If your generated code includes ANY of the following, the design instantly fails:
- Distinctive: line 69
Before writing code, silently "roll the dice" and select ONE combination from the following archetypes based on the prompt's context to …
- Distinctive: line 89
Never place a premium card flatly on the background.
- Very specific: line 97
If a button has an arrow (↗), it NEVER sits naked next to the text.
- Very specific: line 106
Never use default transitions.
- Very specific: line 117
Use the group utility. On hover, scale the button down slightly (active:scale-[0.98]) to simulate physical pressing.
- Very specific: line 127
GPU-Safe Animation: Never animate top, left, width, or height.
- Very specific: line 130
Z-Index Discipline: Do not use arbitrary z-50 or z-[9999].
“Common” is measured: kept by at least 6 in 10 of the 181 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 Design
Approach this as the design lead at a small studio known for giving every client a visual identity that could not be mistaken for anyone else's. This client has already rejected proposals that felt templated, and is paying for a distinctive point of view: make deliberate, opinionated choices about palette, typography, and layout that are specific to this brief, and take one real aesthetic risk you can justify.
Ground it in the subject
If the brief does not pin down what the product or subject is, pin it yourself before designing: name one concrete subject, its audience, and the page's single job, and state your choice. If there's any information in your memory about the human's preferences, context about what they're building, or designs you've made before – use that as a hint. The subject's own world, its materials, instruments, artifacts, and vernacular, is where distinctive choices come from. Build with the brief's real content and subject matter throughout.
Design principles
For web designs, the hero is a thesis. Open with the most characteristic thing in the subject's world, in whatever form makes sense for it: a headline, an image, an animation, a live demo, an interactive moment. Be deliberate with your choice: a big number with a small label, supporting stats, and a gradient accent is the template answer, only use if that's truly the best option.
Typography carries the personality of the page. Pair the display and body faces deliberately, not the same families you would reach for on any other project, and set a clear type scale with intentional weights, widths, and spacing. Make the type treatment itself a memorable part of the design, not a neutral delivery vehicle for the content.
Structure is information. Structural devices, numbering, eyebrows, dividers, labels, should encode something true about the content, not decorate it. Many generic designs use numbered markers (01 / 02 / 03), but that's only appropriate if the content actually is a sequence - like a real process or a typed timeline where order carries information the reader needs. Question if choices like numbered markers actually make sense before incorporating them.
Leverage motion deliberately. Think about where and if animation can serve the subject: a page-load sequence, a scroll-triggered reveal, hover micro-interactions, ambient atmosphere. An orchestrated moment usually lands harder than scattered effects; choose what the direction calls for. However, sometimes less is more, and extra animation contributes to the feeling that the design is AI-generated.
Match complexity to the vision. Maximalist directions need elaborate execution; minimal directions need precision in spacing, type, and detail. Elegance is executing the chosen vision well.
Consider written content carefully. Often a design brief may not contain real content, and it's up to you to come up with copy. Copy can make a design feel as templated as the design itself. See the below section on writing for more guidance.
Process: brainstorm, explore, plan, critique, build, critique again
For calibration: AI-generated design right now clusters around three looks: (1) a warm cream background (near #F4F1EA) with a high-contrast serif display and a terracotta accent; (2) a near-black background with a single bright acid-green or vermilion accent; (3) a broadsheet-style layout with hairline rules, zero border-radius, and dense newspaper-like columns. All three are legitimate for some briefs, but they are defaults rather than choices, and they appear regardless of subject. Where the brief pins down a visual direction, follow it exactly — the brief's own words always win, including when it asks for one of these looks. Where it leaves an axis free, don't spend that freedom on one of these defaults. Just like a human designer who's hired, there's often a careful balance between doing what you're good at and taking each project as a chance to experiment and learn.
Work in two passes. First, brainstorm a short design plan based on the human's design brief: create a compact token system with color, type, layout, and signature. Color: describe the palette as 4–6 named hex values. Type: the typefaces for 2+ roles (a characterful display face that's used with restraint, a complementary body face, and a utility face for captions or data if needed). Layout: a layout concept, using one-sentence prose descriptions and ASCII wireframes to ideate and compare. Signature: the single unique element this page will be remembered by that embodies the brief in an appropriate way.
Then review that plan against the brief before building: if any part of it reads like the generic default you would produce for any similar page (work through a similar prompt to see if you arrive somewhere similar) rather than a choice made for this specific brief — revise that part, say what you changed and why. Only after you've confirmed the relative uniqueness of your design plan should you start to write the code, following the revised plan exactly and deriving every color and type decision from it.
When writing the code, be careful of structuring your CSS selector specificities. It's easy to generate CSS classes that cancel each other out (especially with a type-based selector like .section and a element-based selector like .cta). This can happen often with paddings/margins between sections.
Try to do a lot of this planning and iteration in your thinking, and only show ideas to the user when you have higher confidence it'll delight them.
Restraint and self-critique
Spend your boldness in one place. Let the signature element be the one memorable thing, keep everything around it quiet and disciplined, and cut any decoration that does not serve the brief. Not taking a risk can be a risk itself! Build to a quality floor without announcing it: responsive down to mobile, visible keyboard focus, reduced motion respected. Critique your own work as you build, taking screenshots if your environment supports it – a picture is worth 1000 tokens. Consider Chanel's advice: before leaving the house, take a look in the mirror and remove one accessory. Human creators have memory and always try to do something new, so if you have a space to quickly jot down notes about what you've tried, it can help you in future passes.
More on writing in design
Words appear in a design for one reason: to make it easier to understand, and therefore easier to use. They are design material, not decoration. Bring the same intentionality to copy that you would bring to spacing and color. Before writing anything, ask what the design needs to say, and how it can best be said to help the person navigate the experience.
Write from the end user's side of the screen. Name things by what people control and recognize, never by how the system is built. A person manages notifications, not webhook config. Describe what something does in plain terms rather than selling it. Being specific is always better than being clever.
Use active voice as default. A control should say exactly what happens when it's used: "Save changes," not "Submit." An action keeps the same name through the whole flow, so the button that says "Publish" produces a toast that says "Published." The vocabulary of an interface is the signposting for someone navigating the product. Cohesion and consistency are how people learn their way around.
Treat failure and emptiness as moments for direction, not mood. Explain what went wrong and how to fix it, in the interface's voice rather than a person's. Errors don't apologize, and they are never vague about what happened. An empty screen is an invitation to act.
Keep the register conversational and tuned: plain verbs, sentence case, no filler, with tone matched to the brand and the audience. Let each element do exactly one job. A label labels, an example demonstrates, and nothing quietly does double duty.
Anti-patterns (Absolute Zero)
If your generated code includes ANY of the following, the design instantly fails:
- Banned Fonts: Inter, Roboto, Arial, Open Sans, Helvetica. Use premium fonts like Geist, Clash Display, PP Editorial New, or Plus Jakarta Sans.
- Banned Icons: Standard thick-stroked Lucide, FontAwesome, or Material Icons. Use only ultra-light, precise lines (e.g., Phosphor Light, Remix Line).
- Banned Borders & Shadows: Generic 1px solid gray borders. Harsh, dark drop shadows (
shadow-md,rgba(0,0,0,0.3)). - Banned Layouts: Edge-to-edge sticky navbars glued to the top. Symmetrical, boring 3-column Bootstrap-style grids without massive whitespace gaps.
- Banned Motion: Standard
linearorease-in-outtransitions. Instant state changes without interpolation.
Creative Variance Engine
Before writing code, silently "roll the dice" and select ONE combination from the following archetypes based on the prompt's context to ensure the output is uniquely tailored but always premium.
Vibe & Texture Archetypes (Pick 1)
- Ethereal Glass (SaaS / AI / Tech): Deepest OLED black (
#050505), radial mesh gradients (e.g., subtle glowing purple/emerald orbs) in the background. Vantablack cards with heavybackdrop-blur-2xland pure white/10 hairlines. Wide geometric Grotesk typography. - Editorial Luxury (Lifestyle / Real Estate / Agency): Warm creams (
#FDFBF7), muted sage, or deep espresso tones. High-contrast Variable Serif fonts for massive headings. Subtle CSS noise/film-grain overlay (opacity-[0.03]) for a physical paper feel. - Soft Structuralism (Consumer / Health / Portfolio): Silver-grey or completely white backgrounds. Massive bold Grotesk typography. Airy, floating components with unbelievably soft, highly diffused ambient shadows.
Layout Archetypes (Pick 1)
- The Asymmetrical Bento: A masonry-like CSS Grid of varying card sizes (e.g.,
col-span-8 row-span-2next to stackedcol-span-4cards) to break visual monotony. Mobile: falls back to single-column stack (grid-cols-1) with generous vertical gaps (gap-6). - The Z-Axis Cascade: Elements stacked like physical cards, slightly overlapping with varying depths of field, some with subtle
-2degor3degrotation. Mobile: remove all rotations and overlaps below768px. Stack vertically with standard spacing. - The Editorial Split: Massive typography on the left half (
w-1/2), with interactive, scrollable horizontal image pills or staggered cards on the right. Mobile: converts to full-width vertical stack (w-full).
Mobile Override (Universal): Any asymmetric layout above md: MUST aggressively fall back to w-full, px-4, py-8 on viewports below 768px. Never use h-screen — always use min-h-[100dvh] to prevent iOS Safari viewport jumping.
Haptic Micro-Aesthetics
Double-Bezel (Nested Architecture)
Never place a premium card flatly on the background. Use nested enclosures:
- Outer Shell: A wrapper
divwith subtle background (bg-black/5orbg-white/5), hairline outer border (ring-1 ring-black/5), specific padding (p-1.5orp-2), large outer radius (rounded-[2rem]). - Inner Core: The actual content container with its own background, inner highlight (
shadow-[inset_0_1px_1px_rgba(255,255,255,0.15)]), and mathematically smaller radius (rounded-[calc(2rem-0.375rem)]).
Nested CTA & Island Button Architecture
- Primary interactive buttons must be fully rounded pills (
rounded-full) with generous padding (px-6 py-3). - If a button has an arrow (
↗), it NEVER sits naked next to the text. It must be nested inside its own circular wrapper (e.g.,w-8 h-8 rounded-full bg-black/5 flex items-center justify-center) flush with the main button's right inner padding.
Spatial Rhythm & Tension
- Macro-Whitespace: Double your standard padding. Use
py-24topy-40for sections. Allow the design to breathe heavily. - Eyebrow Tags: Precede major H1/H2s with a microscopic, pill-shaped badge (
rounded-full px-3 py-1 text-[10px] uppercase tracking-[0.2em] font-medium).
Motion Choreography
Never use default transitions. All motion must simulate real-world mass and spring physics. Use custom cubic-beziers (e.g., transition-all duration-700 ease-[cubic-bezier(0.32,0.72,0,1)]).
Fluid Island Nav & Hamburger Reveal
- Closed State: Navbar is a floating glass pill detached from the top (
mt-6,mx-auto,w-max,rounded-full). - Hamburger Morph: On click, lines fluidly rotate and translate to form a perfect 'X' (
rotate-45and-rotate-45with absolute positioning). - Modal Expansion: Menu opens as a massive, screen-filling overlay with heavy glass effect (
backdrop-blur-3xl bg-black/80). - Staggered Mask Reveal: Nav links fade in and slide up from invisible (
translate-y-12 opacity-0totranslate-y-0 opacity-100) with staggered delay (delay-100,delay-150,delay-200).
Magnetic Button Hover Physics
- Use the
grouputility. On hover, scale the button down slightly (active:scale-[0.98]) to simulate physical pressing. - The nested inner icon circle translates diagonally (
group-hover:translate-x-1 group-hover:-translate-y-[1px]) and scales up slightly (scale-105).
Scroll Interpolation (Entry Animations)
- Elements execute a gentle, heavy fade-up (
translate-y-16 blur-md opacity-0resolving totranslate-y-0 blur-0 opacity-100over 800ms+). - For JS-driven scroll reveals, use
IntersectionObserveror Framer Motion'swhileInView. Never usewindow.addEventListener('scroll').
Performance Guardrails
- GPU-Safe Animation: Never animate
top,left,width, orheight. Animate exclusively viatransformandopacity. Usewill-change: transformsparingly. - Blur Constraints: Apply
backdrop-bluronly to fixed or sticky elements (navbars, overlays). Never apply to scrolling containers or large content areas. - Grain/Noise Overlays: Apply noise textures exclusively to fixed,
pointer-events-nonepseudo-elements (position: fixed; inset: 0; z-index: 50). - Z-Index Discipline: Do not use arbitrary
z-50orz-[9999]. Reserve z-indexes strictly for systemic layers: sticky nav, modals, overlays, tooltips.
Pre-Output Checklist
- No banned fonts, icons, borders, shadows, layouts, or motion patterns present
- A Vibe Archetype and Layout Archetype were consciously selected and applied
- All major cards use the Double-Bezel nested architecture (outer shell + inner core)
- CTA buttons use the Button-in-Button trailing icon pattern where applicable
- Section padding is at minimum
py-24 - All transitions use custom cubic-bezier curves — no
linearorease-in-out - Scroll entry animations are present — no element appears statically
- Layout collapses gracefully below
768pxto single-column withw-fullandpx-4 - All animations use only
transformandopacity backdrop-bluris only applied to fixed/sticky elements
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.

