Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use this skill when building UI components, designing frontend architecture, implementing styling systems, optimizing performance, ensuring accessibility, or creating production-grade interfaces. Trigger on keywords: frontend, component, UI, styling, React, Next.js, Angular, Tailwind, CSS, responsive, accessibility, performance, animation, design system.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 53% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 34% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 62% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 43% | 0% |
Avoid distributional convergence — the tendency for AI to default to generic purple gradients, Inter font, and rounded-corner cards. Every interface should have a deliberate aesthetic based on its purpose and audience.
Before writing a single line of CSS, define:
Atoms → Button, Input, Label, Icon
Molecules → SearchBar (Input + Button), FormField (Label + Input + Error)
Organisms → Header, ProductCard, UserProfile
Templates → PageLayout, DashboardLayout
Pages → Specific instances with real datatsx// Extract repeated patterns into components, not custom CSS // BAD: Duplicating classes everywhere <div className="flex items-center gap-2 px-4 py-2 bg-blue-600 text-white rounded-lg"> // GOOD: Extract to a component <Button variant="primary">Click me</Button>
css:root { --color-primary: #your-brand-color; --color-surface: #f8f9fa; --spacing-unit: 4px; --radius-default: 8px; --font-heading: 'Your Chosen Font', sans-serif; }
| Metric | Target | What It Measures | |---|---|---| | LCP | < 2.5s | Largest Contentful Paint — loading | | FID/INP | < 100ms | Interaction responsiveness | | CLS | < 0.1 | Layout stability |
next/image or native lazy loading, modern formats (WebP/AVIF)font-display: swap, preload critical fontsalt="" for decorative)tsx// BAD: div soup <div onClick={...} className="button">Click</div> // GOOD: semantic HTML <button type="button" onClick={...}>Click</button>
| Need | Solution | |---|---| | Local UI state | useState | | Shared local state | useContext or prop drilling | | Server state / caching | TanStack Query / SWR | | Complex client state | Zustand (lightweight) or Redux Toolkit | | Form state | React Hook Form | | URL state | useSearchParams / nuqs |
Rule: Start with the simplest option. Reach for complexity only when you feel the pain.
prefers-reduced-motion — always provide a no-animation fallbackcss@media (prefers-reduced-motion: reduce) { * { animation-duration: 0.01ms !important; } }
'use client' as low in the tree as possibleroute.ts) for custom API endpointsOther measured skills in the registry, with their headline benchmark lift.