Ultimate Frontend Skill
Every output must feel intentionally crafted — never generic, never "AI slop."
1. Design Before Code
Before writing ANY code, decide:
Aesthetic direction (pick ONE, match it to the product's audience):
Brutally minimal · Maximalist editorial · Retro-futuristic · Organic/natural · Luxury/refined · Playful · Brutalist · Art deco · Dark/moody · Lo-fi/zine · Handcrafted · Swiss/international · Neo-glassmorphic · Industrial · Soft/pastel
One unforgettable element: a scroll animation, a bold typographic moment, a micro-interaction — something memorable.
Then commit fully. Half-hearted design = generic output.
2. The AI Slop Blacklist
These instantly mark output as AI-generated. Never:
- Purple/blue gradient on white cards
- Every element with identical
rounded-xl
- Perfectly centered, symmetrical layouts with no visual tension
text-gray-600 on everything
- Cards in a perfect 3-column grid with identical heights
- Rainbow or evenly-distributed color schemes
- Generic hero with stock illustration placeholder
Instead, always:
- Load distinctive Google Fonts (Instrument Serif, DM Sans, Clash Display, Bricolage Grotesque, Syne, Fraunces, Cabinet Grotesk, Satoshi, Young Serif, Outfit)
- One dominant color doing 80% of the work + one sharp accent
- Asymmetric layouts, grid-breaking elements, dramatic scale jumps
- Atmosphere via gradient meshes, noise textures, glassmorphism, or depth layers
- Generous negative space as a design element
- Negative
letter-spacing on large headings, text-wrap: balance on headlines
- Body text
max-width: 65ch, line-height: 1.5–1.7
3. Color & Theming — Do It Right
Define colors as CSS custom properties with semantic names. Never hardcode hex in components.
[data-theme="light"] {
--bg-primary: #fafafa; --bg-secondary: #ffffff;
--text-primary: #18181b; --text-secondary: #52525b;
--accent: #2563eb; --border: #e4e4e7;
}
[data-theme="dark"] {
--bg-primary: #09090b; --bg-secondary: #18181b;
--text-primary: #fafafa; --text-secondary: #a1a1aa;
--accent: #3b82f6; --border: #27272a;
}
Dark mode rules: higher elevation = lighter surface, desaturate accents ~15%, use borders not shadows for hierarchy, offer Light/Dark/System toggle, persist in localStorage and apply before paint.
4. SEO — Claude Forgets This
Every page needs:
<title>Page Title — Brand</title>
<meta name="description" content="150-160 chars">
<link rel="canonical" href="https://example.com/page">
<meta property="og:title/description/image/url" ...>
<meta name="twitter:card" content="summary_large_image">
Also: JSON-LD structured data, sitemap.ts + robots.ts, one h1 per page, no skipped heading levels, descriptive alt text, clean lowercase hyphenated URLs, hreflang for i18n.
In Next.js: use metadata export with metadataBase, openGraph, twitter, alternates.canonical.
5. Quick Reminders
- Motion: Stagger entrances, hover states on all interactives,
0.2s ease micro-interactions, always respect prefers-reduced-motion
- Mobile: Mobile-first,
clamp() for fluid type/spacing, dvh not vh, 44×44px touch targets
- A11y: Semantic HTML,
<button> for actions / <a> for links, aria-label on icon buttons, 4.5:1 contrast, full keyboard nav
- Perf:
font-display: swap, lazy load images with dimensions, content-visibility: auto, LCP<2.5s
- Forms: Visible labels always, validate on blur, helpful error messages, correct
input type + autocomplete
- Errors: Error boundaries per section, custom 404/500, toast for feedback (auto-dismiss success, persist errors)
- Security: CSP headers, never unsanitized
dangerouslySetInnerHTML, validate URLs in href, httpOnly cookies for auth, server-side validation
1---2name: frontend-prime3description: Build distinctive, production-grade frontend interfaces. Use when creating any web UI — sites, apps, dashboards, components. Focuses on design quality and avoiding generic AI aesthetics. Composable with other skills (docx, pdf, xlsx).4---56# Ultimate Frontend Skill78Every output must feel intentionally crafted — never generic, never "AI slop."910---1112## 1. Design Before Code1314Before writing ANY code, decide:15161. **Aesthetic direction** (pick ONE, match it to the product's audience):17 Brutally minimal · Maximalist editorial · Retro-futuristic · Organic/natural · Luxury/refined · Playful · Brutalist · Art deco · Dark/moody · Lo-fi/zine · Handcrafted · Swiss/international · Neo-glassmorphic · Industrial · Soft/pastel18192. **One unforgettable element**: a scroll animation, a bold typographic moment, a micro-interaction — something memorable.20213. **Then commit fully.** Half-hearted design = generic output.2223---2425## 2. The AI Slop Blacklist2627These instantly mark output as AI-generated. **Never:**2829- Purple/blue gradient on white cards30- Every element with identical `rounded-xl`31- Perfectly centered, symmetrical layouts with no visual tension32- `text-gray-600` on everything33- Cards in a perfect 3-column grid with identical heights34- Rainbow or evenly-distributed color schemes35- Generic hero with stock illustration placeholder3637**Instead, always:**3839- Load distinctive Google Fonts (Instrument Serif, DM Sans, Clash Display, Bricolage Grotesque, Syne, Fraunces, Cabinet Grotesk, Satoshi, Young Serif, Outfit)40- One dominant color doing 80% of the work + one sharp accent41- Asymmetric layouts, grid-breaking elements, dramatic scale jumps42- Atmosphere via gradient meshes, noise textures, glassmorphism, or depth layers43- Generous negative space as a design element44- Negative `letter-spacing` on large headings, `text-wrap: balance` on headlines45- Body text `max-width: 65ch`, `line-height: 1.5–1.7`4647---4849## 3. Color & Theming — Do It Right5051Define colors as CSS custom properties with semantic names. Never hardcode hex in components.5253```css54[data-theme="light"] {55 --bg-primary: #fafafa; --bg-secondary: #ffffff;56 --text-primary: #18181b; --text-secondary: #52525b;57 --accent: #2563eb; --border: #e4e4e7;58}59[data-theme="dark"] {60 --bg-primary: #09090b; --bg-secondary: #18181b;61 --text-primary: #fafafa; --text-secondary: #a1a1aa;62 --accent: #3b82f6; --border: #27272a;63}64```6566Dark mode rules: higher elevation = lighter surface, desaturate accents ~15%, use borders not shadows for hierarchy, offer Light/Dark/System toggle, persist in localStorage and apply before paint.6768---6970## 4. SEO — Claude Forgets This7172Every page needs:7374```html75<title>Page Title — Brand</title>76<meta name="description" content="150-160 chars">77<link rel="canonical" href="https://example.com/page">78<meta property="og:title/description/image/url" ...>79<meta name="twitter:card" content="summary_large_image">80```8182Also: JSON-LD structured data, `sitemap.ts` + `robots.ts`, one `h1` per page, no skipped heading levels, descriptive `alt` text, clean lowercase hyphenated URLs, `hreflang` for i18n.8384In Next.js: use `metadata` export with `metadataBase`, `openGraph`, `twitter`, `alternates.canonical`.8586---8788## 5. Quick Reminders8990- **Motion**: Stagger entrances, hover states on all interactives, `0.2s ease` micro-interactions, always respect `prefers-reduced-motion`91- **Mobile**: Mobile-first, `clamp()` for fluid type/spacing, `dvh` not `vh`, 44×44px touch targets92- **A11y**: Semantic HTML, `<button>` for actions / `<a>` for links, `aria-label` on icon buttons, 4.5:1 contrast, full keyboard nav93- **Perf**: `font-display: swap`, lazy load images with dimensions, `content-visibility: auto`, LCP<2.5s94- **Forms**: Visible labels always, validate on blur, helpful error messages, correct `input type` + `autocomplete`95- **Errors**: Error boundaries per section, custom 404/500, toast for feedback (auto-dismiss success, persist errors)96- **Security**: CSP headers, never unsanitized `dangerouslySetInnerHTML`, validate URLs in `href`, httpOnly cookies for auth, server-side validation