{"slug":"frontend-design","title":"frontend-design","tags":["site-building","frontend","frontend","design"],"agent_summary":"This skill guides creation of distinctive, production-grade frontend interfaces that avoid generic \"AI slop\" aesthetics","trigger_phrases":["frontend-design","frontend guide","design guide","build ui","landing page","dashboard","web component","frontend design"],"runnable":true,"markdown":"**Trigger:** Use when \"build UI\", \"landing page\", \"dashboard\", \"web component\", \"frontend design\". Production-grade frontend interfaces with distinctive design.\n\nThis skill guides creation of distinctive, production-grade frontend interfaces that avoid generic \"AI slop\" aesthetics. Implement real working code with exceptional attention to aesthetic details and creative choices.\n\n### Design Thinking\n\nBefore coding, understand the context and commit to a BOLD aesthetic direction:\n- **Purpose**: What problem does this interface solve? Who uses it?\n- **Tone**: Pick an extreme: brutally minimal, maximalist chaos, retro-futuristic, organic/natural, luxury/refined, playful/toy-like, editorial/magazine, brutalist/raw, art deco/geometric, soft/pastel, industrial/utilitarian.\n- **Constraints**: Technical requirements (framework, performance, accessibility).\n- **Differentiation**: What makes this UNFORGETTABLE?\n\nCRITICAL: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work — the key is intentionality, not intensity.\n\nThen implement working code (HTML/CSS/JS, React, Vue, etc.) that is:\n- Production-grade and functional\n- Visually striking and memorable\n- Cohesive with a clear aesthetic point-of-view\n- Meticulously refined in every detail\n\n### Frontend Aesthetics Guidelines\n\n- **Typography**: Choose fonts that are beautiful, unique, and interesting. Avoid generic fonts like Arial and Inter. Pair a distinctive display font with a refined body font.\n- **Color & Theme**: Commit to a cohesive aesthetic. Use CSS variables for consistency. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.\n- **Motion**: Use animations for effects and micro-interactions. Prioritize CSS-only solutions for HTML. Use Motion library for React when available. Focus on high-impact moments: one well-orchestrated page load with staggered reveals.\n- **Spatial Composition**: Unexpected layouts. Asymmetry. Overlap. Diagonal flow. Grid-breaking elements. Generous negative space OR controlled density.\n- **Backgrounds & Visual Details**: Create atmosphere and depth. Apply gradient meshes, noise textures, geometric patterns, layered transparencies, dramatic shadows, decorative borders, custom cursors, and grain overlays.\n\nNEVER use: overused font families (Inter, Roboto, Arial, system fonts), cliched color schemes (purple gradients on white backgrounds), predictable layouts, cookie-cutter design.\n\n### Mike's Design Standard — Non-Negotiable Rules\n\nEvery website built with this skill must be professional, beautiful, elegant, and built to convert. The benchmark: if a Fortune 500 brand or elite boutique agency built it, it belongs.\n\n**Permanently Banned Aesthetics:**\n- Glassmorphism — frosted glass effects, backdrop-blur cards on gradient backgrounds\n- Neon/Cyber — neon colors, grid lines, glitch effects, monospace-everything\n- Playful/Bouncy — emoji-heavy layouts, confetti blobs, spring-bounce animations\n- Earthy Generic — terracotta + sage + cream \"wellness\" starter kit look\n- Basic SaaS Clone — purple gradient hero, Inter font, three feature cards\n\n**Required in Every Build:**\n1. Clear typographic hierarchy — H1 dominant, H2 supporting, body readable\n2. Conversion anchor above the fold — phone number, primary CTA, or lead form visible without scrolling\n3. Trust signal within 2 sections of hero — reviews, ratings, credentials, or years in business\n4. Real copy — no lorem ipsum, no placeholder text. Write real content.\n5. Mobile-first layout — every section must look good at 375px before desktop\n6. Intentional color palette — max 2-3 colors (primary, dark, accent) + neutral base. No rainbow.\n\n### Niche Design Defaults\n\n**Local Home Services (roofing, HVAC, plumbing, electrical):**\n- Dominant, authoritative — this business owns the market\n- Phone number top-right + sticky header always\n- Above-fold CTA: call or form — never just \"learn more\"\n- Trust signals: licensed, insured, years in business, review count\n- Color: dark authority (charcoal, navy, or deep green) + bold accent (orange, red, or gold)\n- Photography placeholders: crew, trucks, completed jobs — NOT stock handshake photos\n\n**Professional Services (law, finance, consulting, accounting):**\n- Formal, credible, trust-first — the most reliable firm in the room\n- Credentials and awards visible above fold\n- No urgency tactics — gravitas over hype\n- Color: navy, charcoal, burgundy, or forest green + white + minimal accent\n- Headlines: outcome-focused, not feature-focused (\"We Win Cases\" not \"Experienced Lawyers\")\n\n**Health / Med Spa / Cosmetic / Wellness (premium):**\n- Aspirational and clinical simultaneously\n- Before/after results prominent\n- Consultation CTA (not \"buy now\")\n- Color: soft neutrals (off-white, warm gray) + one refined accent (dusty rose, sage, slate)\n- Headlines: transformation language, not clinical jargon\n\n**SaaS / Tech / Digital Products:**\n- Product-led — show the thing, let it speak\n- Social proof: logos, user count, review aggregate\n- Single clear value prop, above fold\n- Color: dark or light depending on product — never random\n- Headlines: outcome + speed (\"Get X in Y time\")\n\n### Design System with CSS Variables\n\nDefine ALL brand values as CSS custom properties in `globals.css`:\n\n```css\n:root {\n  --color-primary: #1B4D3E;\n  --color-primary-light: #2A6B56;\n  --color-accent: #D4A853;\n  --color-bg: #FAFAF8;\n  --color-bg-alt: #F0EDE6;\n  --color-text: #1A1A1A;\n  --color-text-muted: #6B7280;\n  --font-display: 'Playfair Display', Georgia, serif;\n  --font-body: 'Inter', system-ui, sans-serif;\n  --radius-sm: 0.5rem;\n  --radius-md: 1rem;\n  --shadow-card: 0 4px 24px rgba(0,0,0,0.06);\n  --shadow-elevated: 0 8px 40px rgba(0,0,0,0.12);\n  --max-width: 1200px;\n}\n```\n\nReference via Tailwind arbitrary values: `bg-[var(--color-primary)]` or direct CSS `color: var(--color-text)`.\n\n### Font Loading\n\nAlways use `next/font/google` for Google Fonts. Never use `<link>` tags or external CDN:\n\n```tsx\nimport { Playfair_Display, Inter } from 'next/font/google';\n\nconst playfair = Playfair_Display({\n  subsets: ['latin'],\n  variable: '--font-display',\n  display: 'swap',\n});\n```\n\nApply font variables on `<html>`: className with both variables.\n\n### Image Handling\n\nALL images use `next/image`. Never use `<img>` tags.\n- Above-fold hero: use priority prop\n- Below-fold: default lazy loading\n- Image sources: Always local (/images/site/). Never use Unsplash, Pexels, or any stock photo CDN.\n- Use CSS bg-gradient placeholders during development, not stock photo URLs.\n\n### Component Architecture for Local SEO Sites\n\n**Shared components** (used on every page):\n- `Header.tsx` - Sticky, phone number + CTA always visible, mobile hamburger\n- `Footer.tsx` - Comprehensive links: services, areas, blog, utility pages\n- `TrustBar.tsx` - Licensed, insured, review count, guarantee\n- `CTASection.tsx` - Reusable full-width CTA with phone + button + neighborhoods\n- `SchemaMarkup.tsx` - JSON-LD injection via script tag with type application/ld+json\n\n**Page-specific components:**\n- `ServiceCard.tsx` - Image + title + brief + link\n- `AreaCard.tsx` - Area name + brief + link\n- `TestimonialCard.tsx` - Quote, name, neighborhood, star rating\n- `BeforeAfterSlider.tsx` - Interactive drag slider for before/after image pairs\n- `PricingTable.tsx` - Service rows with prices and features\n\n### Conversion-Focused Layout\n\nEvery page follows this vertical rhythm:\n1. Hero with CTA (above fold)\n2. Trust bar (immediately below hero)\n3. Primary content sections\n4. Mid-page CTA (after ~2 scroll depths)\n5. More content\n6. Testimonials / social proof\n7. Full-width CTA section (bottom)\n\nPhone number visible at ALL times via sticky header.\n\n### Premium Component Sources\n\n- **21st.dev** — Animated backgrounds, shaders, particle effects, mouse-highlight cursors, text effects\n- **shadcn/ui** — Functional UI components: forms, dialogs, dropdowns, tables, toasts, command palettes\n- **Aceternity UI** — Wow-factor hero sections: spotlight effects, 3D card tilts, moving borders\n- **Magic UI** — Animated counters, shimmer buttons, meteor shower effects, border beam animations\n- **Framer Motion** — Page transitions, scroll-triggered reveals, gesture interactions\n- **GSAP (GreenSock)** — Pro-level scroll animations, complex timelines, SVG animation, pin sections\n- **Lenis** — Smooth scroll — replaces native browser scroll with buttery-smooth interpolated scrolling\n- **Animate.css** — Simple, no-JS entrance animations — fade in, bounce, slide in\n\n### Component Selection Guide\n\n| Need | Use |\n|------|-----|\n| Functional form/dialog/table | shadcn/ui |\n| Animated hero background | 21st.dev or Aceternity |\n| Scroll-triggered reveals | Framer Motion or GSAP |\n| Number counters / shimmer effects | Magic UI |\n| Complex scroll storytelling | GSAP + Lenis |\n| Quick entrance animations | Animate.css |\n| Custom interactive animations | Framer Motion |\n| SVG animation / complex timelines | GSAP |\n| Smooth scroll experience | Lenis |\n\n### Animation Screenshot Rule\n\nNever run visual-qa-loop on animated components. When framer-motion, gsap, animate__ classes, @keyframes, or transition: are detected — skip the screenshot loop for that element. Tell the user: \"This component uses animation — screenshots won't capture it accurately. Please review it in the browser.\"\n\n---\n","html":"<p><strong>Trigger:</strong> Use when \"build UI\", \"landing page\", \"dashboard\", \"web component\", \"frontend design\". Production-grade frontend interfaces with distinctive design.</p>\n<p>This skill guides creation of distinctive, production-grade frontend interfaces that avoid generic \"AI slop\" aesthetics. Implement real working code with exceptional attention to aesthetic details and creative choices.</p>\n<h3>Design Thinking</h3>\n<p>Before coding, understand the context and commit to a BOLD aesthetic direction:</p>\n<ul>\n<li><strong>Purpose</strong>: What problem does this interface solve? Who uses it?</li>\n<li><strong>Tone</strong>: Pick an extreme: brutally minimal, maximalist chaos, retro-futuristic, organic/natural, luxury/refined, playful/toy-like, editorial/magazine, brutalist/raw, art deco/geometric, soft/pastel, industrial/utilitarian.</li>\n<li><strong>Constraints</strong>: Technical requirements (framework, performance, accessibility).</li>\n<li><strong>Differentiation</strong>: What makes this UNFORGETTABLE?</li>\n</ul>\n<p>CRITICAL: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work — the key is intentionality, not intensity.</p>\n<p>Then implement working code (HTML/CSS/JS, React, Vue, etc.) that is:</p>\n<ul>\n<li>Production-grade and functional</li>\n<li>Visually striking and memorable</li>\n<li>Cohesive with a clear aesthetic point-of-view</li>\n<li>Meticulously refined in every detail</li>\n</ul>\n<h3>Frontend Aesthetics Guidelines</h3>\n<ul>\n<li><strong>Typography</strong>: Choose fonts that are beautiful, unique, and interesting. Avoid generic fonts like Arial and Inter. Pair a distinctive display font with a refined body font.</li>\n<li><strong>Color &#x26; Theme</strong>: Commit to a cohesive aesthetic. Use CSS variables for consistency. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.</li>\n<li><strong>Motion</strong>: Use animations for effects and micro-interactions. Prioritize CSS-only solutions for HTML. Use Motion library for React when available. Focus on high-impact moments: one well-orchestrated page load with staggered reveals.</li>\n<li><strong>Spatial Composition</strong>: Unexpected layouts. Asymmetry. Overlap. Diagonal flow. Grid-breaking elements. Generous negative space OR controlled density.</li>\n<li><strong>Backgrounds &#x26; Visual Details</strong>: Create atmosphere and depth. Apply gradient meshes, noise textures, geometric patterns, layered transparencies, dramatic shadows, decorative borders, custom cursors, and grain overlays.</li>\n</ul>\n<p>NEVER use: overused font families (Inter, Roboto, Arial, system fonts), cliched color schemes (purple gradients on white backgrounds), predictable layouts, cookie-cutter design.</p>\n<h3>Mike's Design Standard — Non-Negotiable Rules</h3>\n<p>Every website built with this skill must be professional, beautiful, elegant, and built to convert. The benchmark: if a Fortune 500 brand or elite boutique agency built it, it belongs.</p>\n<p><strong>Permanently Banned Aesthetics:</strong></p>\n<ul>\n<li>Glassmorphism — frosted glass effects, backdrop-blur cards on gradient backgrounds</li>\n<li>Neon/Cyber — neon colors, grid lines, glitch effects, monospace-everything</li>\n<li>Playful/Bouncy — emoji-heavy layouts, confetti blobs, spring-bounce animations</li>\n<li>Earthy Generic — terracotta + sage + cream \"wellness\" starter kit look</li>\n<li>Basic SaaS Clone — purple gradient hero, Inter font, three feature cards</li>\n</ul>\n<p><strong>Required in Every Build:</strong></p>\n<ol>\n<li>Clear typographic hierarchy — H1 dominant, H2 supporting, body readable</li>\n<li>Conversion anchor above the fold — phone number, primary CTA, or lead form visible without scrolling</li>\n<li>Trust signal within 2 sections of hero — reviews, ratings, credentials, or years in business</li>\n<li>Real copy — no lorem ipsum, no placeholder text. Write real content.</li>\n<li>Mobile-first layout — every section must look good at 375px before desktop</li>\n<li>Intentional color palette — max 2-3 colors (primary, dark, accent) + neutral base. No rainbow.</li>\n</ol>\n<h3>Niche Design Defaults</h3>\n<p><strong>Local Home Services (roofing, HVAC, plumbing, electrical):</strong></p>\n<ul>\n<li>Dominant, authoritative — this business owns the market</li>\n<li>Phone number top-right + sticky header always</li>\n<li>Above-fold CTA: call or form — never just \"learn more\"</li>\n<li>Trust signals: licensed, insured, years in business, review count</li>\n<li>Color: dark authority (charcoal, navy, or deep green) + bold accent (orange, red, or gold)</li>\n<li>Photography placeholders: crew, trucks, completed jobs — NOT stock handshake photos</li>\n</ul>\n<p><strong>Professional Services (law, finance, consulting, accounting):</strong></p>\n<ul>\n<li>Formal, credible, trust-first — the most reliable firm in the room</li>\n<li>Credentials and awards visible above fold</li>\n<li>No urgency tactics — gravitas over hype</li>\n<li>Color: navy, charcoal, burgundy, or forest green + white + minimal accent</li>\n<li>Headlines: outcome-focused, not feature-focused (\"We Win Cases\" not \"Experienced Lawyers\")</li>\n</ul>\n<p><strong>Health / Med Spa / Cosmetic / Wellness (premium):</strong></p>\n<ul>\n<li>Aspirational and clinical simultaneously</li>\n<li>Before/after results prominent</li>\n<li>Consultation CTA (not \"buy now\")</li>\n<li>Color: soft neutrals (off-white, warm gray) + one refined accent (dusty rose, sage, slate)</li>\n<li>Headlines: transformation language, not clinical jargon</li>\n</ul>\n<p><strong>SaaS / Tech / Digital Products:</strong></p>\n<ul>\n<li>Product-led — show the thing, let it speak</li>\n<li>Social proof: logos, user count, review aggregate</li>\n<li>Single clear value prop, above fold</li>\n<li>Color: dark or light depending on product — never random</li>\n<li>Headlines: outcome + speed (\"Get X in Y time\")</li>\n</ul>\n<h3>Design System with CSS Variables</h3>\n<p>Define ALL brand values as CSS custom properties in <code>globals.css</code>:</p>\n<pre><code class=\"language-css\">:root {\n  --color-primary: #1B4D3E;\n  --color-primary-light: #2A6B56;\n  --color-accent: #D4A853;\n  --color-bg: #FAFAF8;\n  --color-bg-alt: #F0EDE6;\n  --color-text: #1A1A1A;\n  --color-text-muted: #6B7280;\n  --font-display: 'Playfair Display', Georgia, serif;\n  --font-body: 'Inter', system-ui, sans-serif;\n  --radius-sm: 0.5rem;\n  --radius-md: 1rem;\n  --shadow-card: 0 4px 24px rgba(0,0,0,0.06);\n  --shadow-elevated: 0 8px 40px rgba(0,0,0,0.12);\n  --max-width: 1200px;\n}\n</code></pre>\n<p>Reference via Tailwind arbitrary values: <code>bg-[var(--color-primary)]</code> or direct CSS <code>color: var(--color-text)</code>.</p>\n<h3>Font Loading</h3>\n<p>Always use <code>next/font/google</code> for Google Fonts. Never use <code>&#x3C;link></code> tags or external CDN:</p>\n<pre><code class=\"language-tsx\">import { Playfair_Display, Inter } from 'next/font/google';\n\nconst playfair = Playfair_Display({\n  subsets: ['latin'],\n  variable: '--font-display',\n  display: 'swap',\n});\n</code></pre>\n<p>Apply font variables on <code>&#x3C;html></code>: className with both variables.</p>\n<h3>Image Handling</h3>\n<p>ALL images use <code>next/image</code>. Never use <code>&#x3C;img></code> tags.</p>\n<ul>\n<li>Above-fold hero: use priority prop</li>\n<li>Below-fold: default lazy loading</li>\n<li>Image sources: Always local (/images/site/). Never use Unsplash, Pexels, or any stock photo CDN.</li>\n<li>Use CSS bg-gradient placeholders during development, not stock photo URLs.</li>\n</ul>\n<h3>Component Architecture for Local SEO Sites</h3>\n<p><strong>Shared components</strong> (used on every page):</p>\n<ul>\n<li><code>Header.tsx</code> - Sticky, phone number + CTA always visible, mobile hamburger</li>\n<li><code>Footer.tsx</code> - Comprehensive links: services, areas, blog, utility pages</li>\n<li><code>TrustBar.tsx</code> - Licensed, insured, review count, guarantee</li>\n<li><code>CTASection.tsx</code> - Reusable full-width CTA with phone + button + neighborhoods</li>\n<li><code>SchemaMarkup.tsx</code> - JSON-LD injection via script tag with type application/ld+json</li>\n</ul>\n<p><strong>Page-specific components:</strong></p>\n<ul>\n<li><code>ServiceCard.tsx</code> - Image + title + brief + link</li>\n<li><code>AreaCard.tsx</code> - Area name + brief + link</li>\n<li><code>TestimonialCard.tsx</code> - Quote, name, neighborhood, star rating</li>\n<li><code>BeforeAfterSlider.tsx</code> - Interactive drag slider for before/after image pairs</li>\n<li><code>PricingTable.tsx</code> - Service rows with prices and features</li>\n</ul>\n<h3>Conversion-Focused Layout</h3>\n<p>Every page follows this vertical rhythm:</p>\n<ol>\n<li>Hero with CTA (above fold)</li>\n<li>Trust bar (immediately below hero)</li>\n<li>Primary content sections</li>\n<li>Mid-page CTA (after ~2 scroll depths)</li>\n<li>More content</li>\n<li>Testimonials / social proof</li>\n<li>Full-width CTA section (bottom)</li>\n</ol>\n<p>Phone number visible at ALL times via sticky header.</p>\n<h3>Premium Component Sources</h3>\n<ul>\n<li><strong>21st.dev</strong> — Animated backgrounds, shaders, particle effects, mouse-highlight cursors, text effects</li>\n<li><strong>shadcn/ui</strong> — Functional UI components: forms, dialogs, dropdowns, tables, toasts, command palettes</li>\n<li><strong>Aceternity UI</strong> — Wow-factor hero sections: spotlight effects, 3D card tilts, moving borders</li>\n<li><strong>Magic UI</strong> — Animated counters, shimmer buttons, meteor shower effects, border beam animations</li>\n<li><strong>Framer Motion</strong> — Page transitions, scroll-triggered reveals, gesture interactions</li>\n<li><strong>GSAP (GreenSock)</strong> — Pro-level scroll animations, complex timelines, SVG animation, pin sections</li>\n<li><strong>Lenis</strong> — Smooth scroll — replaces native browser scroll with buttery-smooth interpolated scrolling</li>\n<li><strong>Animate.css</strong> — Simple, no-JS entrance animations — fade in, bounce, slide in</li>\n</ul>\n<h3>Component Selection Guide</h3>\n<p>| Need | Use |\n|------|-----|\n| Functional form/dialog/table | shadcn/ui |\n| Animated hero background | 21st.dev or Aceternity |\n| Scroll-triggered reveals | Framer Motion or GSAP |\n| Number counters / shimmer effects | Magic UI |\n| Complex scroll storytelling | GSAP + Lenis |\n| Quick entrance animations | Animate.css |\n| Custom interactive animations | Framer Motion |\n| SVG animation / complex timelines | GSAP |\n| Smooth scroll experience | Lenis |</p>\n<h3>Animation Screenshot Rule</h3>\n<p>Never run visual-qa-loop on animated components. When framer-motion, gsap, animate__ classes, @keyframes, or transition: are detected — skip the screenshot loop for that element. Tell the user: \"This component uses animation — screenshots won't capture it accurately. Please review it in the browser.\"</p>\n<hr>\n"}