design-guide
Skill0 starsChanged 41 days agoApache-2.0View on GitHub
UI/UX design rules for agents building interfaces — hierarchy before decoration, restraint with cards, borders, backgrounds, icons, badges, radii and shadows, reuse of the project's existing components, tokens and icon library, and no invented features, and prototype-first validation for uncertain layouts, information architecture, interactions, or responsive behavior. Use when designing or reviewing a screen, choosing layout and components, when a design decision is uncertain, or when an interface looks like a generic AI dashboard.
14 other projects use a version of this.
Adopted by
Most recently taken up by
- Hans010101/bitworldtheir own version, first seen Oct 20, 2026
- aronprins/paperclip-desktoptheir own version, first seen Oct 8, 2026
- paperclipai/papercliptheir own version, first seen Oct 8, 2026
- ba0918/claude-skillstheir own version, first seen Jul 9, 2026
- jugol/workcelltheir own version, first seen Jul 4, 2026
- microsoft/amplifier-app-papercliptheir own version, first seen Jun 5, 2026
Other versions14 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 14
- paperclipai/paperclip★ 112ksame name
- aronprins/paperclip-desktop★ 577same name
- tyrchen/claude-skills★ 45same name
- mosif16/codex-Skills★ 18same name
- ancilis/bedlam★ 15same name
- L1l1thLY/AgentCompany★ 11same name
- Variel/skills★ 2same name
- Hans010101/bitworld★ 1same name
- JackJanoian/deal-desk★ 1same name
- jpoindexter/theft-kit★ 1same name
4 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 repository2 other files it gives its agents.
- human-writingSkill
- skill-writerSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
77 rules. 0 are common, 76 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 13 edited versions we read keep these.
76
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Do not add visual elements simply because a page feels empty, unfinished, or insufficiently "modern".
- Distinctive: line 32
Before designing a UI, determine:
- Distinctive: line 43
Do not turn a feature list directly into a collection of UI components.
- Distinctive: line 60
Only use additional visual treatments when these are not sufficient:
- Distinctive: line 96
Do not automatically turn these into cards:
- Distinctive: line 106
Avoid deeply nested containers:
- Distinctive: line 116
If removing the card does not make the information harder to understand, the card may not be necessary.
- Distinctive: line 131
Do not add borders simply because a section "needs more definition".
- Distinctive: line 133
Avoid giving every section its own box.
- Distinctive: line 135
Prefer spacing and alignment when they can establish the same relationship.
- Distinctive: line 141
Do not give every module its own background color.
- Distinctive: line 159
If removing a background does not reduce comprehension, consider removing it.
- Distinctive: line 165
Use icons when they improve:
- Distinctive: line 173
Do not add an icon simply because a feature or section exists.
- Distinctive: line 187
Do not give every heading, button, menu item, and section an icon.
- Distinctive: line 193
When the project already has an icon library, use it.
- Distinctive: line 195
Prefer existing icon systems such as the project's configured library over:
- Distinctive: line 202
Do not use emoji as UI icons.
- Distinctive: line 204
Do not use arbitrary Unicode characters as substitutes for proper icons when an appropriate icon exists.
- Distinctive: line 224
If an appropriate icon already exists in the project's icon library, use it.
- Distinctive: line 226
Do not manually create SVG paths for common icons such as:
- Distinctive: line 259
Do not turn ordinary text into a badge simply for visual variety.
- Distinctive: line 275
Do not automatically make:
- Distinctive: line 284
Avoid excessive nested rounded shapes.
- Distinctive: line 286
Use a consistent radius system appropriate to the product instead of applying large rounded corners everywhere.
- Distinctive: line 301
Do not automatically add shadows to every card.
- Distinctive: line 303
Avoid layered effects such as:
- Distinctive: line 312
If the shadow does not communicate a meaningful spatial relationship, it probably does not need to exist.
- Distinctive: line 318
When every element competes for attention, nothing is actually emphasized.
- Distinctive: line 320
Avoid excessive combinations of:
- Distinctive: line 338
Do not automatically fill empty areas with:
- Distinctive: line 355
Do not try to fill every part of the screen.
- Distinctive: line 382
Use a dashboard layout only when the product actually requires one.
- Distinctive: line 392
Do not reinvent common interactions without a reason.
- Distinctive: line 397
Search should behave like a search interface.
- Distinctive: line 409
Do not use a component simply because the component library provides it.
- Distinctive: line 420
Use this order instead:
- Distinctive: line 442
Before creating a new component, check whether the project already has an equivalent.
- Distinctive: line 455
Do not create another Button, Dialog, Dropdown, Input, or Card system if the project already has one.
- Distinctive: line 463
When a mature component already exists in the project, use it instead of implementing a custom version.
- Distinctive: line 494
Do not add a new UI library for a single component when the project already has a suitable system.
- Distinctive: line 496
Before adding a dependency, check:
- Distinctive: line 503
Avoid mixing multiple unrelated UI systems without a clear reason.
- Distinctive: line 521
If the project already has a visual language, preserve it.
- Distinctive: line 534
Do not create a new visual language for every feature.
- Distinctive: line 542
Do not introduce UI for features that were not requested.
- Distinctive: line 544
Do not automatically add:
- Distinctive: line 578
Do not give everything the same visual weight.
- Distinctive: line 580
If everything is bold, colored, boxed, highlighted, or decorated, there is no hierarchy.
- Distinctive: line 586
Avoid decisions such as:
- Distinctive: line 600
If there is no meaningful answer, do not add it.
- Distinctive: line 619
Do not use this pattern for every feature simply because it looks organized.
- Distinctive: line 628
If the icon is already recognizable, a colored circle behind it may add nothing.
- Distinctive: line 644
Do not put every section inside a bordered box.
- Distinctive: line 648
Do not add icons to every title, button, menu item, setting, and statistic.
- Distinctive: line 652
Do not turn ordinary text into pills.
- Distinctive: line 656
Do not use rounded rectangles as the default solution for every UI element.
- Distinctive: line 660
Do not add a background simply because an area looks empty.
- Distinctive: line 666
When designing a new interface, follow this order.
- Distinctive: line 702
Create a prototype before final implementation if any prototype trigger applies:
- Distinctive: line 715
If none applies and the design follows an established project pattern with no meaningful uncertainty, proceed without a prototype.
- Distinctive: line 719
Create the prototype and make it directly previewable.
- Very specific: line 721
Default to a single self-contained HTML file (for example prototype.html) using HTML, CSS, and minimal JavaScript.
- Distinctive: line 723
Keep it lightweight. Do not build production architecture, introduce new dependencies, or reproduce the entire application.
- Distinctive: line 725
Use realistic content — real labels, numbers, filenames, long text, and the empty or error states — whenever content length or density …
- Distinctive: line 737
If the prototype is a single file the user can open directly, skip the server and give the file path instead.
- Distinctive: line 750
Do not treat showing the prototype as confirmation.
- Distinctive: line 752
If the user identifies a problem, revise the prototype and repeat the review.
- Distinctive: line 754
If the user confirms the design, continue to Step 11.
- Distinctive: line 756
If the user does not respond, do not treat the prototype as approved.
- Distinctive: line 760
After the prototype has been confirmed, implement the final interface.
- Distinctive: line 764
Do not introduce new structural or interaction changes during implementation without validating them first when they materially change the …
- Distinctive: line 776
Do not treat the prototype as a separate product or create unnecessary infrastructure just to reproduce it.
- Distinctive: line 778
After implementation, remove prototype-only files by default.
- Distinctive: line 794
If the earlier steps already solve the problem, the final step may require nothing.
- Distinctive: line 800
After implementing the interface, ask:
- Distinctive: line 826
If yes, remove it.
“Common” is measured: kept by at least 6 in 10 of the 13 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 Guide
Core Goal
Design should solve information, hierarchy, layout, and interaction problems before visual decoration.
Do not add visual elements simply because a page feels empty, unfinished, or insufficiently "modern".
Prefer:
- Layout
- Spacing
- Alignment
- Typography
- Information hierarchy
- Grouping
- Color and contrast
- Borders and backgrounds
- Shadows, icons, and decoration
Do not use decoration as a substitute for design.
1. Understand the Task Before Designing
Before designing a UI, determine:
- What is the user trying to accomplish?
- What information do they need?
- What should they notice first?
- What should they do next?
- Which information needs to be visible at the same time?
- Which information can be hidden or deferred?
- Which elements actually belong together?
- Which elements do not need visual emphasis?
Do not turn a feature list directly into a collection of UI components.
2. Establish Visual Hierarchy First
Build hierarchy primarily through:
- Position
- Spacing
- Alignment
- Typography
- Font size
- Font weight
- Content density
- Contrast
Only use additional visual treatments when these are not sufficient:
- Backgrounds
- Borders
- Shadows
- Icons
- Decorative elements
For example, do not automatically create a card just because two sections need to be visually separated.
Sometimes this is enough:
Account
Name
John Smith
Email
john@example.com
Security
Password
••••••••3. Not Everything Is a Card
Not everything is a card.
A card should represent a meaningful independent object, task, information unit, or decision.
Do not automatically turn these into cards:
- Every section
- Every setting
- Every statistic
- Every paragraph
- Every feature
- Every form area
- Every list item
Avoid deeply nested containers:
Page
└── Card
├── Card
│ └── Card
└── CardIf removing the card does not make the information harder to understand, the card may not be necessary.
4. Use Borders With a Purpose
Borders should communicate an actual visual relationship, such as:
- A clear boundary
- An input field
- A table
- An interactive region
- A meaningful separation
- A distinct content area
Do not add borders simply because a section "needs more definition".
Avoid giving every section its own box.
Prefer spacing and alignment when they can establish the same relationship.
5. Use Backgrounds With a Purpose
Do not give every module its own background color.
Avoid:
- A different background for every card
- Backgrounds behind every icon
- A background for every section
- Decorative gradients used to fill empty space
- Colors added simply to make the UI look richer
Backgrounds should serve a purpose, such as:
- Establishing page hierarchy
- Indicating state
- Improving readability
- Representing interaction state
- Defining a meaningful visual region
If removing a background does not reduce comprehension, consider removing it.
6. Icons Need a Reason to Exist
Use icons when they improve:
- Recognition
- Navigation
- Scanning
- Interaction
- Status communication
Do not add an icon simply because a feature or section exists.
Avoid automatically producing:
🔍 Search
⚙ Settings
📁 Files
🛡 Security
⚡ Performancewhen the text already communicates the meaning clearly.
Do not give every heading, button, menu item, and section an icon.
7. Use Proper Icon Libraries
When the project already has an icon library, use it.
Prefer existing icon systems such as the project's configured library over:
- Emoji
- Arbitrary Unicode characters
- Hand-drawn SVG icons
- Random icon sources
Do not use emoji as UI icons.
Do not use arbitrary Unicode characters as substitutes for proper icons when an appropriate icon exists.
For example, avoid using:
🔍
⚙️
📁
➡
✓as a replacement for a consistent icon system.
Simple typographic symbols such as +, −, or × can still be appropriate when they are genuinely part of the control itself.
8. Do Not Recreate Common Icons
If an appropriate icon already exists in the project's icon library, use it.
Do not manually create SVG paths for common icons such as:
- Search
- Settings
- Menu
- Close
- Chevron
- Trash
- Download
- Upload
- Edit
- Copy
- More
Custom icons are appropriate when they represent a product-specific concept, brand identity, or visual language that existing icons cannot express.
Otherwise:
Reuse before reinventing.
9. Do Not Overuse Badges and Pills
Badges and pills should communicate actual information, such as:
- Status
- Type
- Category
- Permission
- Count
- Special attributes
Do not turn ordinary text into a badge simply for visual variety.
Avoid:
[ Active ] [ Fast ] [ Popular ] [ New ] [ Recommended ]when these labels do not help the user make a decision.
10. Do Not Overuse Rounded Corners
Rounded corners are not synonymous with modern design.
Do not automatically make:
- Cards rounded
- Buttons rounded
- Inputs rounded
- Badges rounded
- Icon backgrounds rounded
- Containers rounded
Avoid excessive nested rounded shapes.
Use a consistent radius system appropriate to the product instead of applying large rounded corners everywhere.
11. Use Shadows Sparingly
Shadows should communicate spatial relationships such as:
- Elevation
- Floating elements
- Dialogs
- Dropdowns
- Popovers
- Draggable objects
Do not automatically add shadows to every card.
Avoid layered effects such as:
Page background
└── Card shadow
└── Inner card
└── Inner shadowIf the shadow does not communicate a meaningful spatial relationship, it probably does not need to exist.
12. Do Not Create Visual Noise
When every element competes for attention, nothing is actually emphasized.
Avoid excessive combinations of:
- Colors
- Icons
- Borders
- Cards
- Badges
- Shadows
- Backgrounds
- Different font sizes
- Different corner radii
More visual elements do not necessarily make information clearer.
13. Empty Space Is Not a Problem
Do not automatically fill empty areas with:
- Cards
- Illustrations
- Icons
- Backgrounds
- Decorative elements
- Extra text
- Statistics
Whitespace can establish:
- Hierarchy
- Rhythm
- Focus
- Readability
Do not try to fill every part of the screen.
14. Do Not Default to Dashboard Design
AI often turns unrelated products into the same generic dashboard:
Sidebar
└── Dashboard
Top bar
┌────────┐ ┌────────┐ ┌────────┐
│ Metric │ │ Metric │ │ Metric │
└────────┘ └────────┘ └────────┘
┌───────────────────────────────┐
│ Chart │
└───────────────────────────────┘
┌────────────┐ ┌────────────┐
│ Card │ │ Card │
└────────────┘ └────────────┘Use a dashboard layout only when the product actually requires one.
A settings page, editor, file manager, reader, utility, or tool window does not need to become a dashboard simply because dashboards are common in modern SaaS products.
Design for the product's workflow, not for a popular template.
15. Prefer Familiar Interaction Patterns
Do not reinvent common interactions without a reason.
Examples:
- Settings should use a familiar settings structure.
- Search should behave like a search interface.
- File browsers should follow familiar file-management conventions.
- Tables should use recognizable table interactions.
- Dialogs should have clear modal hierarchy.
- Navigation should follow platform conventions.
Innovation should solve an actual problem, not make familiar interactions harder to understand.
16. Components Should Serve the Information Structure
Do not use a component simply because the component library provides it.
Do not think:
Card exists → use Card
Tabs exists → use Tabs
Badge exists → use Badge
Tooltip exists → use TooltipUse this order instead:
Requirement
↓
Information structure
↓
Interaction
↓
Layout
↓
Visual hierarchy
↓
ComponentsThe component should follow the design, not determine it.
17. Reuse Existing Components
Before creating a new component, check whether the project already has an equivalent.
Prefer existing:
- Components
- Patterns
- Icons
- Design tokens
- Spacing values
- Typography
- Colors
- Interaction patterns
Do not create another Button, Dialog, Dropdown, Input, or Card system if the project already has one.
Reuse before reinventing.
18. Do Not Reimplement Standard Interactive Components
When a mature component already exists in the project, use it instead of implementing a custom version.
This is especially important for:
- Dialogs
- Modals
- Dropdowns
- Selects
- Tooltips
- Popovers
- Tabs
- Toasts
- Accordions
- Menus
These components often involve more than visual styling:
- Keyboard navigation
- Focus management
- Accessibility
- Screen readers
- Positioning
- Interaction states
- Mobile behavior
A custom implementation that merely looks correct may still be incomplete.
19. Do Not Introduce Unnecessary UI Libraries
Do not add a new UI library for a single component when the project already has a suitable system.
Before adding a dependency, check:
- Whether the project already provides the functionality
- Whether an existing component can be reused
- Whether the framework already provides the feature
- Whether a small local implementation is genuinely appropriate
Avoid mixing multiple unrelated UI systems without a clear reason.
For example, do not turn a project into:
UI Library A
+ UI Library B
+ UI Library C
+ Custom Components
+ Random CSSwithout a deliberate architectural reason.
20. Reuse the Existing Design System
If the project already has a visual language, preserve it.
Reuse:
- Colors
- Typography
- Spacing
- Border radius
- Shadows
- Icons
- Component styles
- Interaction states
Do not create a new visual language for every feature.
A new screen should feel like part of the same product.
21. Do Not Add Features Just to Make the Design Feel Complete
Do not introduce UI for features that were not requested.
Do not automatically add:
- Dashboard
- Analytics
- Onboarding
- Notifications
- Profile systems
- Activity feeds
- Recommendations
- Extra settings
- Decorative statistics
unless they are actually part of the product requirements.
Do not use additional UI to compensate for a lack of design decisions.
22. Prioritize Content
Establish clear levels of importance.
Primary
Information or actions the user needs most.
Secondary
Information supporting the primary task.
Tertiary
Information that can be viewed when needed.
Do not give everything the same visual weight.
If everything is bold, colored, boxed, highlighted, or decorated, there is no hierarchy.
23. Do Not Design to Demonstrate Design Skill
Avoid decisions such as:
This area could use a nice gradient.
This section could have an icon.
This would look better as a card.
This could use a glass effect.
Instead ask:
Why does the user need this?
If there is no meaningful answer, do not add it.
24. AI-Specific Design Anti-Patterns
Pay particular attention to these patterns because they frequently appear in AI-generated interfaces.
Card + Icon + Background
┌─────────────────────┐
│ ◉ │
│ │
│ Feature Name │
│ Description │
└─────────────────────┘Do not use this pattern for every feature simply because it looks organized.
Icon + Colored Circle
◉
blueIf the icon is already recognizable, a colored circle behind it may add nothing.
Everything in a Container
┌─────────────────────────┐
│ ┌─────────────────────┐ │
│ │ ┌─────────────────┐ │ │
│ │ │ Content │ │ │
│ │ └─────────────────┘ │ │
│ └─────────────────────┘ │
└─────────────────────────┘Every Section Has a Border
Do not put every section inside a bordered box.
Everything Has an Icon
Do not add icons to every title, button, menu item, setting, and statistic.
Everything Has a Badge
Do not turn ordinary text into pills.
Everything Has Rounded Corners
Do not use rounded rectangles as the default solution for every UI element.
Everything Has a Background
Do not add a background simply because an area looks empty.
25. Design Decision Process
When designing a new interface, follow this order.
Step 1 — Task
What is the user trying to accomplish?
Step 2 — Content
What does the user need to see?
Step 3 — Hierarchy
What is most important?
Step 4 — Structure
Which elements belong together?
Step 5 — Layout
How should the elements be arranged?
Step 6 — Interaction
How does the user interact with them?
Step 7 — Visual Hierarchy
Can spacing, typography, alignment, and contrast establish the hierarchy?
Step 8 — Components
Which existing components and patterns should be reused?
Step 9 — Decide Whether to Prototype
Create a prototype before final implementation if any prototype trigger applies:
- The information architecture is new.
- The project has no comparable existing interface to follow.
- There are two or more plausible layout approaches.
- The interaction contains multiple states, branches, or transitions.
- Responsive behavior is not yet clear.
- Content density or realistic content length may materially affect the layout.
- The user explicitly asks for a prototype, demo, mockup, or preview.
- The agent is uncertain about a structural or interaction decision that can be tested cheaply.
If any trigger applies, a prototype is required.
If none applies and the design follows an established project pattern with no meaningful uncertainty, proceed without a prototype.
Step 10 — Prototype and Review
Create the prototype and make it directly previewable.
Default to a single self-contained HTML file (for example prototype.html) using HTML, CSS, and minimal JavaScript. Use the project's existing frontend stack only when that materially improves previewing or when the prototype depends on existing application behavior.
Keep it lightweight. Do not build production architecture, introduce new dependencies, or reproduce the entire application.
Use realistic content — real labels, numbers, filenames, long text, and the empty or error states — whenever content length or density affects the layout.
Make the important interactions clickable when interaction is part of the design question.
Cover the smallest surface that can answer the design question. Do not prototype unrelated screens or build a second version of the product.
Serve it locally and report the exact URL:
python -m http.server <port>If the prototype is a single file the user can open directly, skip the server and give the file path instead.
Then ask the user to review:
- Is the overall structure correct?
- Is the information in the right place?
- Is anything missing?
- Is anything unnecessary?
- Is the primary action obvious?
- Does the interaction behave as expected?
- Are important states or edge cases missing?
- Does anything feel harder to understand than the existing interface?
Do not treat showing the prototype as confirmation.
If the user identifies a problem, revise the prototype and repeat the review.
If the user confirms the design, continue to Step 11.
If the user does not respond, do not treat the prototype as approved. Wait for their review. Continue only if the user explicitly said to skip the prototype or to implement it directly; silence and ambiguity are not permission.
Step 11 — Implementation
After the prototype has been confirmed, implement the final interface.
Preserve the structure, information hierarchy, and interaction decisions confirmed during review.
Do not introduce new structural or interaction changes during implementation without validating them first when they materially change the reviewed design.
Reuse the project's existing:
- Components
- Design tokens
- Icons
- Typography
- Spacing
- Interaction patterns
- Accessibility patterns
Do not treat the prototype as a separate product or create unnecessary infrastructure just to reproduce it.
After implementation, remove prototype-only files by default.
Keep the prototype only if the user explicitly asks to keep it or it is intentionally being used as a maintained artifact.
Step 12 — Decoration
Only now consider:
- Borders
- Backgrounds
- Icons
- Shadows
- Gradients
- Illustrations
- Animation
If the earlier steps already solve the problem, the final step may require nothing.
26. Final Review
After implementing the interface, ask:
Remove the border
Is the relationship still clear?
Remove the background
Is the hierarchy still clear?
Remove the icon
Can the user still understand the meaning?
Remove the shadow
Is the spatial relationship still clear?
Remove the card
Is the content still well organized?
Remove half of the decoration
Does the interface become clearer?
If yes, remove it.
Also check:
- Did I reuse existing components?
- Did I reuse the project's icon library?
- Did I introduce a new UI pattern unnecessarily?
- Did I add a dependency without a clear reason?
- Did I create a custom component that already exists?
- Did I use emoji or arbitrary Unicode as an icon?
- Did I add visual elements only because the page felt empty?
- Does the interface still feel like the same product?
- Does the implementation preserve the structure and interaction confirmed during prototype review?
- Did I introduce any new structural or interaction changes that were not validated?
Core Principles
Design the information and interaction before the decoration.
Use spacing, alignment, and typography to establish hierarchy before adding containers.
Not everything is a card.
Not everything needs an icon.
Not everything needs a border, background, shadow, or rounded corners.
Use the project's existing components and icon system before creating new ones.
Reuse before reinventing.
Do not add dependencies or UI systems without a reason.
Design for the product's workflow, not for common AI-generated templates.
When meaningful uncertainty can be tested cheaply, validate the design with a small prototype before implementation.
If a visual element does not communicate information, establish hierarchy, or support interaction, it probably does not need to be there.
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.

