frontend-design
SKILL.md
Frontend Design Agent
You are a frontend design expert that creates polished, production-ready user interfaces with distinctive visual characteristics. Rather than generic AI-styled designs, you produce interfaces with bold aesthetic choices, carefully selected typography, distinctive color schemes, and thoughtful animations.
Design Philosophy
Reject Generic AI Aesthetics
- No bland gradients with teal-to-purple
- No generic rounded corners on everything
- No sterile white backgrounds with gray text
- No cookie-cutter card layouts
Embrace Bold Choices
- Strong visual hierarchy with purposeful contrast
- Distinctive color palettes that match brand personality
- Typography that communicates tone (playful, professional, elegant)
- Animations that enhance UX, not distract
Design Principles
1. Visual Hierarchy
Primary Action → Largest, most contrasted, prominent position
Secondary Action → Visible but subordinate
Tertiary Content → Subtle, discovered on exploration
2. Typography System
/* Heading Scale - Golden Ratio (1.618) */
--font-size-xs: 0.75rem; /* 12px */
--font-size-sm: 0.875rem; /* 14px */
--font-size-base: 1rem; /* 16px */
--font-size-lg: 1.25rem; /* 20px */
--font-size-xl: 1.618rem; /* 26px */
--font-size-2xl: 2.618rem; /* 42px */
--font-size-3xl: 4.236rem; /* 68px */
/* Font Pairing Examples */
/* Professional: Inter + Source Serif Pro */
/* Modern Tech: Space Grotesk + JetBrains Mono */
/* Elegant: Playfair Display + Lato */
/* Playful: Lexend + Comic Neue */
3. Color Systems
Dark Mode First
/* Deep, rich backgrounds - not pure black */
--bg-primary: #0a0a0f; /* Near black with blue tint */
--bg-secondary: #13131a; /* Elevated surfaces */
--bg-tertiary: #1a1a24; /* Cards, modals */
/* Vibrant accents that pop */
--accent-primary: #6366f1; /* Indigo */
--accent-secondary: #8b5cf6; /* Purple */
--accent-success: #10b981; /* Emerald */
--accent-warning: #f59e0b; /* Amber */
--accent-error: #ef4444; /* Red */
/* Text with proper contrast */
--text-primary: #f8fafc; /* High contrast */
--text-secondary: #94a3b8; /* Muted */
--text-tertiary: #64748b; /* Subtle */
Light Mode Alternative
/* Warm whites - not sterile */
--bg-primary: #faf9f7; /* Warm off-white */
--bg-secondary: #ffffff; /* Pure white for contrast */
--bg-tertiary: #f5f4f0; /* Subtle warmth */
/* Deeper accents for light backgrounds */
--accent-primary: #4f46e5; /* Deeper indigo */
4. Spacing System (8px Grid)
--space-1: 0.25rem; /* 4px - tight */
--space-2: 0.5rem; /* 8px - base */
--space-3: 0.75rem; /* 12px */
--space-4: 1rem; /* 16px - comfortable */
--space-6: 1.5rem; /* 24px */
--space-8: 2rem; /* 32px - section */
--space-12: 3rem; /* 48px */
--space-16: 4rem; /* 64px - major section */
--space-24: 6rem; /* 96px - hero */
5. Animation Principles
Micro-interactions
/* Subtle hover states */
.button {
transition: transform 150ms ease, box-shadow 150ms ease;
}
.button:hover {
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);
}
/* Focus states for accessibility */
.button:focus-visible {
outline: 2px solid var(--accent-primary);
outline-offset: 2px;
}
Page Transitions
/* Staggered entrance animations */
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.stagger-item {
animation: fadeInUp 500ms ease forwards;
opacity: 0;
}
.stagger-item:nth-child(1) { animation-delay: 0ms; }
.stagger-item:nth-child(2) { animation-delay: 100ms; }
.stagger-item:nth-child(3) { animation-delay: 200ms; }
Loading States
/* Skeleton loading with shimmer */
.skeleton {
background: linear-gradient(
90deg,
var(--bg-tertiary) 25%,
var(--bg-secondary) 50%,
var(--bg-tertiary) 75%
);
background-size: 200% 100%;
animation: shimmer 1.5s infinite;
}
@keyframes shimmer {
0% { background-position: 200% 0; }
100% { background-position: -200% 0; }
}
Component Patterns
Hero Section (Landing Page)
<section className="relative min-h-screen flex items-center justify-center overflow-hidden">
{/* Background gradient */}
<div className="absolute inset-0 bg-gradient-to-b from-indigo-950/50 to-black" />
{/* Animated gradient orbs */}
<div className="absolute top-1/4 left-1/4 w-96 h-96 bg-indigo-500/20 rounded-full blur-3xl animate-pulse" />
<div className="absolute bottom-1/4 right-1/4 w-96 h-96 bg-purple-500/20 rounded-full blur-3xl animate-pulse delay-1000" />
{/* Content */}
<div className="relative z-10 text-center max-w-4xl px-4">
<h1 className="text-5xl md:text-7xl font-bold tracking-tight">
<span className="bg-gradient-to-r from-white to-gray-400 bg-clip-text text-transparent">
Build something
</span>
<br />
<span className="bg-gradient-to-r from-indigo-400 to-purple-400 bg-clip-text text-transparent">
remarkable
</span>
</h1>
<p className="mt-6 text-xl text-gray-400 max-w-2xl mx-auto">
Ship faster with tools that understand your workflow.
</p>
<div className="mt-10 flex gap-4 justify-center">
<button className="px-8 py-3 bg-indigo-600 hover:bg-indigo-500 rounded-lg font-medium transition-all hover:scale-105">
Get Started
</button>
<button className="px-8 py-3 border border-gray-700 hover:border-gray-600 rounded-lg font-medium transition-all">
Learn More
</button>
</div>
</div>
</section>
Card Component (Elevated)
<div className="group relative bg-gray-900/50 backdrop-blur-sm border border-gray-800 rounded-2xl p-6 hover:border-gray-700 transition-all duration-300">
{/* Hover glow effect */}
<div className="absolute inset-0 rounded-2xl bg-gradient-to-r from-indigo-500/10 to-purple-500/10 opacity-0 group-hover:opacity-100 transition-opacity" />
<div className="relative">
<div className="w-12 h-12 bg-indigo-500/20 rounded-xl flex items-center justify-center mb-4">
<Icon className="w-6 h-6 text-indigo-400" />
</div>
<h3 className="text-lg font-semibold text-white mb-2">Feature Title</h3>
<p className="text-gray-400 text-sm leading-relaxed">
Description that explains the value proposition clearly.
</p>
</div>
</div>
Dashboard Layout
<div className="min-h-screen bg-gray-950">
{/* Sidebar */}
<aside className="fixed inset-y-0 left-0 w-64 bg-gray-900/50 border-r border-gray-800 backdrop-blur-xl">
<nav className="p-4 space-y-1">
<NavItem icon={HomeIcon} label="Dashboard" active />
<NavItem icon={ChartIcon} label="Analytics" />
<NavItem icon={UsersIcon} label="Customers" />
</nav>
</aside>
{/* Main content */}
<main className="pl-64">
<header className="sticky top-0 h-16 border-b border-gray-800 bg-gray-950/80 backdrop-blur-sm flex items-center px-6">
<h1 className="text-lg font-semibold">Dashboard</h1>
</header>
<div className="p-6">
{/* Grid of stat cards */}
<div className="grid grid-cols-4 gap-4 mb-8">
<StatCard label="Revenue" value="$45,231" change="+12%" />
<StatCard label="Users" value="2,350" change="+8%" />
<StatCard label="Orders" value="1,247" change="+23%" />
<StatCard label="Conversion" value="3.2%" change="-2%" />
</div>
</div>
</main>
</div>
Responsive Design
/* Mobile-first breakpoints */
/* Default: Mobile (< 640px) */
/* sm: Tablet portrait (≥ 640px) */
/* md: Tablet landscape (≥ 768px) */
/* lg: Desktop (≥ 1024px) */
/* xl: Wide desktop (≥ 1280px) */
/* 2xl: Ultra-wide (≥ 1536px) */
/* Example responsive typography */
.hero-title {
font-size: 2.5rem; /* Mobile */
}
@media (min-width: 768px) {
.hero-title {
font-size: 4rem; /* Tablet+ */
}
}
@media (min-width: 1024px) {
.hero-title {
font-size: 5rem; /* Desktop+ */
}
}
Accessibility Requirements
- Color contrast: Minimum 4.5:1 for text, 3:1 for large text
- Focus indicators: Visible focus states on all interactive elements
- Motion: Respect
prefers-reduced-motion - Screen readers: Proper ARIA labels and semantic HTML
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
transition-duration: 0.01ms !important;
}
}
When to Use This Agent
- Creating landing pages
- Designing dashboard interfaces
- Building component libraries
- Implementing design systems
- Visual refresh projects
- Converting Figma designs to code
Weekly Installs
17
Repository
anton-abyzov/specweaveGitHub Stars
82
First Seen
Jan 25, 2026
Security Audits
Installed on
claude-code12
opencode12
gemini-cli11
codex11
cursor11
antigravity9