skills/frontend-design/SKILL.md
Create distinctive, production-grade frontend interfaces with exceptional design quality. Build web components, pages, dashboards, landing pages, and full applications with bold aesthetics that avoid generic AI-generated looks. Covers design systems, animations, responsive layouts, accessibility, and creative direction. Use when building any web UI.
npx skillsauth add RaheesAhmed/SajiCode frontend-designInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Before writing ANY code, commit to a bold aesthetic direction:
CRITICAL: Choose a clear conceptual direction and execute with precision. No generic designs.
:root {
/* Typography scale (modular scale ratio 1.25) */
--font-display: 'Cabinet Grotesk', sans-serif;
--font-body: 'Satoshi', sans-serif;
--font-mono: 'JetBrains Mono', monospace;
--text-xs: clamp(0.64rem, 0.59rem + 0.29vw, 0.8rem);
--text-sm: clamp(0.8rem, 0.73rem + 0.36vw, 1rem);
--text-base: clamp(1rem, 0.91rem + 0.45vw, 1.25rem);
--text-lg: clamp(1.25rem, 1.14rem + 0.57vw, 1.56rem);
--text-xl: clamp(1.56rem, 1.42rem + 0.71vw, 1.95rem);
--text-2xl: clamp(1.95rem, 1.78rem + 0.89vw, 2.44rem);
--text-3xl: clamp(2.44rem, 2.22rem + 1.11vw, 3.05rem);
/* Spacing scale */
--space-1: 0.25rem;
--space-2: 0.5rem;
--space-3: 0.75rem;
--space-4: 1rem;
--space-6: 1.5rem;
--space-8: 2rem;
--space-12: 3rem;
--space-16: 4rem;
--space-24: 6rem;
/* Radius */
--radius-sm: 0.375rem;
--radius-md: 0.75rem;
--radius-lg: 1rem;
--radius-xl: 1.5rem;
--radius-full: 9999px;
/* Transitions */
--ease-out: cubic-bezier(0.16, 1, 0.3, 1);
--ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
--duration-fast: 150ms;
--duration-normal: 300ms;
--duration-slow: 500ms;
}
:root {
--hue-primary: 262;
--primary: hsl(var(--hue-primary) 83% 58%);
--primary-light: hsl(var(--hue-primary) 83% 72%);
--primary-dark: hsl(var(--hue-primary) 83% 44%);
--primary-ghost: hsl(var(--hue-primary) 83% 58% / 0.08);
--surface-0: hsl(240 10% 3.9%); /* Deepest background */
--surface-1: hsl(240 10% 5.9%); /* Cards */
--surface-2: hsl(240 10% 9%); /* Elevated cards */
--surface-3: hsl(240 10% 13%); /* Hover states */
--text-primary: hsl(0 0% 98%);
--text-secondary: hsl(240 5% 65%);
--text-tertiary: hsl(240 5% 45%);
--border: hsl(240 4% 16%);
--border-subtle: hsl(240 4% 12%);
}
function Card({ children, variant = "default", interactive = false, className, ...props }) {
return (
<div
className={cn(
"rounded-xl border transition-all duration-300",
variant === "default" && "bg-surface-1 border-border",
variant === "ghost" && "bg-transparent border-transparent",
variant === "elevated" && "bg-surface-2 border-border shadow-lg",
interactive && "cursor-pointer hover:border-primary/50 hover:shadow-primary/5 hover:shadow-lg",
className
)}
{...props}
>
{children}
</div>
);
}
.reveal-item {
opacity: 0;
transform: translateY(20px);
animation: revealUp 0.6s var(--ease-out) forwards;
}
.reveal-item:nth-child(1) { animation-delay: 0ms; }
.reveal-item:nth-child(2) { animation-delay: 80ms; }
.reveal-item:nth-child(3) { animation-delay: 160ms; }
.reveal-item:nth-child(4) { animation-delay: 240ms; }
@keyframes revealUp {
to { opacity: 1; transform: translateY(0); }
}
.interactive-card {
transition: transform var(--duration-normal) var(--ease-spring),
box-shadow var(--duration-normal) var(--ease-out);
}
.interactive-card:hover {
transform: translateY(-4px) scale(1.01);
box-shadow: 0 20px 40px -12px rgb(0 0 0 / 0.3);
}
.gradient-text {
background: linear-gradient(135deg, var(--primary-light), var(--primary), #ec4899);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
/* Mobile-first breakpoints */
/* sm: 640px md: 768px lg: 1024px xl: 1280px 2xl: 1536px */
.grid-responsive {
display: grid;
grid-template-columns: 1fr;
gap: var(--space-4);
}
@media (min-width: 768px) {
.grid-responsive { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
.grid-responsive { grid-template-columns: repeat(3, 1fr); }
}
alt attributesprefers-reduced-motion media query for all animations<nav>, <main>, <article>, <section>NEVER use these generic choices:
ALWAYS make unexpected, intentional choices that serve the context.
development
Deep web research and data extraction skill. Systematically research ANY topic by fetching URLs, reading documentation, crawling API docs, evaluating npm/pypi packages, comparing technologies, and synthesizing findings into actionable recommendations. Use when researching libraries, frameworks, APIs, solutions, or any topic requiring web investigation.
development
Design and implement comprehensive test suites. Covers unit testing, integration testing, E2E testing with Playwright, API testing, mocking strategies, test data factories, TDD workflow, snapshot testing, coverage targets, and CI integration. Use when writing tests, designing test architecture, or debugging test failures.
development
Core engineering workflow that activates on EVERY task. Enforces systematic plan-before-code methodology, multi-file refactoring safety, dependency-aware changes, pre-flight verification, and zero-placeholder quality standards. Use PROACTIVELY on all coding tasks.
tools
Implement production styling systems with Tailwind CSS, vanilla CSS, or CSS-in-JS. Covers CSS architecture (BEM, utility-first, modules), design tokens, responsive patterns, animation systems, dark mode, container queries, print styles, and performance optimization. Use when implementing designs or building CSS architectures.