Anti Vibe Code UI Skill
Audit and fix common AI-generated UI anti-patterns. Use this skill when reviewing or building frontend components to ensure the app looks intentionally designed, not AI-generated.
Best use case
Anti Vibe Code UI Skill is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Audit and fix common AI-generated UI anti-patterns. Use this skill when reviewing or building frontend components to ensure the app looks intentionally designed, not AI-generated.
Teams using Anti Vibe Code UI Skill should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/anti-vibe-code/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How Anti Vibe Code UI Skill Compares
| Feature / Agent | Anti Vibe Code UI Skill | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Audit and fix common AI-generated UI anti-patterns. Use this skill when reviewing or building frontend components to ensure the app looks intentionally designed, not AI-generated.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Anti Vibe Code UI Skill
Audit and fix common AI-generated UI anti-patterns. Use this skill when reviewing or building frontend components to ensure the app looks intentionally designed, not AI-generated.
## When to use
- Building new pages or components
- Reviewing existing UI for vibe-coded patterns
- Redesigning landing pages
- Before deploying frontend changes
## The checklist
Run through every item. If a component fails any check, fix it before shipping.
### 1. Icon containers
**Pattern to find:**
```
rounded-lg bg-*/20 flex items-center justify-center
```
with an icon inside.
**Fix:** Remove the container div. Let the icon sit inline with text.
```tsx
// BAD: icon in colored rounded box
<div className="w-8 h-8 rounded-lg bg-mono-green/20 flex items-center justify-center">
<Code size={16} className="text-mono-green" />
</div>
// GOOD: icon inline with text
<Code size={16} weight="bold" className="text-mono-green" />
```
### 2. Glassmorphism on static elements
**Pattern to find:**
```
backdrop-blur-xl
```
on anything that is NOT a modal overlay or dropdown.
**Fix:** Replace with solid background.
```tsx
// BAD: glassmorphism on persistent sidebar
<div className="bg-mono-panel/50 backdrop-blur-xl">
// GOOD: solid background
<div className="bg-mono-panel">
```
`backdrop-blur-sm` on modal backdrops (`bg-black/60 backdrop-blur-sm`) is acceptable.
### 3. Hover scale on icons
**Pattern to find:**
```
group-hover:scale-110 transition-transform
```
on icon containers or static elements.
**Fix:** Remove the scale transform entirely. If the parent card has a hover state (border color change), that is enough.
### 4. Hero glow blobs
**Pattern to find:**
```
bg-*/[0.08] blur-[120px] animate-hero-glow
```
**Fix:** Remove ambient glow divs entirely. Clean dark background reads as intentional. Blurred color blobs read as AI-generated.
### 5. Unnecessary shadows on buttons
**Pattern to find:** Buttons with `shadow-lg` or shadow backdrops.
**Fix:** Buttons get solid backgrounds. No shadows.
### 6. Nested cards
**Pattern to find:** A bordered card that contains another bordered card inside it.
**Fix:** Flatten. Use spacing, font weight, and color to separate content within a single card.
### 7. Same-hue color stacking
**Pattern to find:** An icon, its container, and its parent all using the same color at different opacities (green icon in green/20 box on green/10 background).
**Fix:** Use neutral backgrounds. Let the icon color be the only accent.
### 8. Serif in hero
**Pattern to find:** `font-serif`, Instrument Serif, DM Serif, Playfair Display in hero headings.
**Fix:** Use the project's sans-serif font (Inter). Save serif for intentional editorial contexts.
### 9. Green left border
**Pattern to find:** `border-l-2 border-green` combined with `rounded-*`.
**Fix:** Either remove the left border or remove the border-radius.
### 10. Entrance animations on visible content
**Pattern to find:** `animate-fade-up`, `animate-slide-right` on elements that are above the fold.
**Fix:** Remove. Content that is immediately visible should not animate in.
## Audit command
To run a quick grep audit on your codebase:
```bash
# Icon in colored box pattern
rg "rounded-lg bg-.*\/\d+ flex items-center justify-center" components/
# Glassmorphism on non-modals
rg "backdrop-blur-xl" components/
# Hover scale on icons
rg "group-hover:scale" components/
# Hero glow blobs
rg "animate-hero-glow" components/ app/
# Emoji as visual assets
rg "[\x{1F600}-\x{1F64F}\x{1F300}-\x{1F5FF}\x{1F680}-\x{1F6FF}]" components/
```
## Reference
Based on Yuwen Lu's analysis of common bad patterns in AI-generated website design. The core insight: when UI can be generated for free, we see an abundance of flashy design that is not tastefully put together. Clear messages beat noise. Intention beats carelessness.
Good reference sites for intentional design: Cursor, Linear, Vercel, Raycast.Related Skills
workos-convex-debug
Debug and troubleshoot WorkOS AuthKit authentication issues with Convex. Use when authentication fails, JWT validation errors occur, user identity returns null, email claims are missing, admin access checks fail, or sign in button does not work. Supports Netlify deployment.
workos-convex-auth
Set up and configure WorkOS AuthKit authentication with Convex backend. Use when integrating AuthKit, configuring JWT providers, setting up environment variables, or implementing sign in and sign out flows with React and Vite. Supports Netlify deployment.
convex-scale-optimization
Patterns for scaling read-heavy Convex apps to millions of users. Use when optimizing bandwidth, reducing query costs, fixing slow queries, creating digest tables, replacing reactive subscriptions with one-shot fetches, adding compound indexes, debouncing writes, rate-controlling backfills, or running npx convex insights. Trigger when users mention "scale", "bandwidth", "performance", "optimize", "slow queries", "expensive queries", "digest table", "denormalize", or "thundering herd" in the context of Convex.
convex-design-system
Convex UI component patterns from the live Storybook preview. Use when building React components, forms, modals, navigation, feedback states, or app layouts that should match the current Convex design system. Applies to both shared primitives and dashboard style product UI.
Update project docs
Sync project tracking files after completing work, then provide a ready to use git commit message.
typeset
Improves typography by fixing font choices, hierarchy, sizing, weight, and readability so text feels intentional. Use when the user mentions fonts, type, readability, text hierarchy, sizing looks off, or wants more polished, intentional typography.
teach-impeccable
One-time setup that gathers design context for your project and saves it to your AI config file. Run once to establish persistent design guidelines.
robel-auth
Integrate and maintain Robelest Convex Auth in apps by always checking upstream before implementation. Use when adding auth setup, updating auth wiring, migrating between upstream patterns, or troubleshooting @robelest/convex-auth behavior across projects.
quieter
Tones down visually aggressive or overstimulating designs, reducing intensity while preserving quality. Use when the user mentions too bold, too loud, overwhelming, aggressive, garish, or wants a calmer, more refined aesthetic.
polish
Performs a final quality pass fixing alignment, spacing, consistency, and micro-detail issues before shipping. Use when the user mentions polish, finishing touches, pre-launch review, something looks off, or wants to go from good to great.
overdrive
Pushes interfaces past conventional limits with technically ambitious implementations — shaders, spring physics, scroll-driven reveals, 60fps animations. Use when the user wants to wow, impress, go all-out, or make something that feels extraordinary.
optimize
Diagnoses and fixes UI performance across loading speed, rendering, animations, images, and bundle size. Use when the user mentions slow, laggy, janky, performance, bundle size, load time, or wants a faster, smoother experience.