From pr
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications. Generates creative, polished code that avoids generic AI aesthetics.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pr:frontend-designThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
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.
create-snapshot/template.mdreference/adapt.mdreference/animate.mdreference/audit.mdreference/bolder.mdreference/clarify.mdreference/color-and-contrast.mdreference/colorize.mdreference/critique.mdreference/delight.mdreference/extract.mdreference/harden.mdreference/interaction-design.mdreference/motion-design.mdreference/normalize.mdreference/onboard.mdreference/optimize.mdreference/polish.mdreference/quieter.mdreference/react-rules/REACT-BEST-PRACTICES.mdThis 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.
Commit to a BOLD aesthetic direction:
CRITICAL: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work—the key is intentionality, not intensity.
Then implement working code that is:
→ Consult typography reference for scales, pairing, and loading strategies.
Choose fonts that are beautiful, unique, and interesting. Pair a distinctive display font with a refined body font.
DO: Use a modular type scale with fluid sizing (clamp) DO: Vary font weights and sizes to create clear visual hierarchy DON'T: Use overused fonts—Inter, Roboto, Arial, Open Sans, system defaults DON'T: Use monospace typography as lazy shorthand for "technical/developer" vibes DON'T: Put large icons with rounded corners above every heading—they rarely add value and make sites look templated
→ Consult color reference for OKLCH, palettes, and dark mode.
Commit to a cohesive palette. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
DO: Use modern CSS color functions (oklch, color-mix, light-dark) for perceptually uniform, maintainable palettes DO: Tint your neutrals toward your brand hue—even a subtle hint creates subconscious cohesion DON'T: Use gray text on colored backgrounds—it looks washed out; use a shade of the background color instead DON'T: Use pure black (#000) or pure white (#fff)—always tint; pure black/white never appears in nature DON'T: Use the AI color palette: cyan-on-dark, purple-to-blue gradients, neon accents on dark backgrounds DON'T: Use gradient text for "impact"—especially on metrics or headings; it's decorative rather than meaningful DON'T: Default to dark mode with glowing accents—it looks "cool" without requiring actual design decisions
→ Consult spatial reference for grids, rhythm, and container queries.
Create visual rhythm through varied spacing—not the same padding everywhere. Embrace asymmetry and unexpected compositions. Break the grid intentionally for emphasis.
DO: Create visual rhythm through varied spacing—tight groupings, generous separations DO: Use fluid spacing with clamp() that breathes on larger screens DO: Use asymmetry and unexpected compositions; break the grid intentionally for emphasis DON'T: Wrap everything in cards—not everything needs a container DON'T: Nest cards inside cards—visual noise, flatten the hierarchy DON'T: Use identical card grids—same-sized cards with icon + heading + text, repeated endlessly DON'T: Use the hero metric layout template—big number, small label, supporting stats, gradient accent DON'T: Center everything—left-aligned text with asymmetric layouts feels more designed DON'T: Use the same spacing everywhere—without rhythm, layouts feel monotonous
DO: Use intentional, purposeful decorative elements that reinforce brand DON'T: Use glassmorphism everywhere—blur effects, glass cards, glow borders used decoratively rather than purposefully DON'T: Use rounded elements with thick colored border on one side—a lazy accent that almost never looks intentional DON'T: Use sparklines as decoration—tiny charts that look sophisticated but convey nothing meaningful DON'T: Use rounded rectangles with generic drop shadows—safe, forgettable, could be any AI output DON'T: Use modals unless there's truly no better alternative—modals are lazy
→ Consult motion reference for timing, easing, and reduced motion.
Focus on high-impact moments: one well-orchestrated page load with staggered reveals creates more delight than scattered micro-interactions.
DO: Use motion to convey state changes—entrances, exits, feedback DO: Use exponential easing (ease-out-quart/quint/expo) for natural deceleration DO: For height animations, use grid-template-rows transitions instead of animating height directly DON'T: Animate layout properties (width, height, padding, margin)—use transform and opacity only DON'T: Use bounce or elastic easing—they feel dated and tacky; real objects decelerate smoothly
→ Consult interaction reference for forms, focus, and loading patterns.
Make interactions feel fast. Use optimistic UI—update immediately, sync later.
DO: Use progressive disclosure—start simple, reveal sophistication through interaction (basic options first, advanced behind expandable sections; hover states that reveal secondary actions) DO: Design empty states that teach the interface, not just say "nothing here" DO: Make every interactive surface feel intentional and responsive DON'T: Repeat the same information—redundant headers, intros that restate the heading DON'T: Make every button primary—use ghost buttons, text links, secondary styles; hierarchy matters
→ Consult responsive reference for mobile-first, fluid design, and container queries.
DO: Use container queries (@container) for component-level responsiveness DO: Adapt the interface for different contexts—don't just shrink it DON'T: Hide critical functionality on mobile—adapt the interface, don't amputate it
→ Consult ux-writing reference for labels, errors, and empty states.
DO: Make every word earn its place DON'T: Repeat information users can already see
Critical quality check: If you showed this interface to someone and said "AI made this," would they believe you immediately? If yes, that's the problem.
A distinctive interface should make someone ask "how was this made?" not "which AI made this?"
Review the DON'T guidelines above—they are the fingerprints of AI-generated work from 2024-2025.
For large frontend projects with multiple pages or complex component systems, multi-agent approaches accelerate development and improve quality.
Use subagents (default) for:
Consider agent teams for:
Agent teams are experimental and more expensive. For most frontend tasks — even complex ones — subagents work well because you synthesize their outputs into a cohesive design. Use agent teams only when agents genuinely need to negotiate and coordinate in real-time.
Match implementation complexity to the aesthetic vision. Maximalist designs need elaborate code with extensive animations and effects. Minimalist or refined designs need restraint, precision, and careful attention to spacing, typography, and subtle details.
Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices across generations.
Remember: Claude is capable of extraordinary creative work. Don't hold back—show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
This skill includes extensive reference documentation for specialized tasks. Load references based on what you're doing:
These references provide core design knowledge. Consult them when building any frontend:
| Reference | Purpose |
|---|---|
| typography | Type scales, font pairing, web font loading |
| color-and-contrast | OKLCH, palettes, dark mode, accessibility |
| spatial-design | Grids, rhythm, container queries |
| motion-design | Timing, easing, reduced motion |
| interaction-design | Forms, focus, loading patterns |
| responsive-design | Mobile-first, fluid design |
| ux-writing | Labels, errors, empty states |
| tailwind-design-system | Tailwind CSS design tokens, CVA components, theming, dark mode |
Use these references to evaluate and critique your work:
| Reference | When to Use |
|---|---|
| audit | Run systematic checks across accessibility, performance, theming, and responsive design. Generates a comprehensive report with severity ratings. |
| critique | Conduct a holistic design critique evaluating visual hierarchy, information architecture, and emotional resonance. |
When to apply: After completing a design checkpoint or before final delivery. Use audit for comprehensive technical checks; use critique for UX-focused design review.
Use these references to tune the visual intensity of your designs:
| Reference | When to Use |
|---|---|
| bolder | Amplify designs that are too safe, generic, or underwhelming. |
| quieter | Tone down overly bold or aggressive designs for refinement. |
| colorize | Add strategic color to monochromatic or bland interfaces. |
| simplify | Strip designs to their essence by removing unnecessary complexity. |
When to apply: When the design feels off in terms of visual intensity—too bland, too loud, too gray, or too cluttered.
Use these references for specific enhancement tasks:
| Reference | When to Use |
|---|---|
| animate | Add purposeful animations and micro-interactions. |
| delight | Add moments of joy and personality that make interfaces memorable. |
| clarify | Improve unclear UX copy, error messages, and labels. |
| adapt | Adapt designs for different screen sizes, devices, or platforms. |
| onboard | Design onboarding flows, empty states, and first-time experiences. |
| harden | Improve resilience: error handling, i18n, text overflow, edge cases. |
| normalize | Align designs to match a design system's standards and patterns. |
| extract | Extract reusable components and design tokens into a design system. |
When to apply: When a specific aspect of the design needs focused improvement.
Use these references before shipping:
| Reference | When to Use |
|---|---|
| polish | Final quality pass fixing alignment, spacing, consistency, and details. |
| optimize | Improve performance across loading, rendering, animations, and bundle size. |
When to apply: After the design is functionally complete, before delivery.
| Reference | When to Use |
|---|---|
| teach-impeccable | One-time setup to gather design context for a project and save to CLAUDE.md. |
When building React or Next.js applications, apply these performance optimization patterns. Detailed rules with code examples are in reference/react-rules/.
→ For the complete guide, consult react-rules/REACT-BEST-PRACTICES.md
| Priority | Category | Impact | When to Apply |
|---|---|---|---|
| 1 | Eliminating Waterfalls | CRITICAL | Data fetching, API routes, async operations |
| 2 | Bundle Size Optimization | CRITICAL | Imports, dynamic loading, third-party libraries |
| 3 | Server-Side Performance | HIGH | Server components, caching, serialization |
| 4 | Client-Side Data Fetching | MEDIUM-HIGH | SWR, event listeners, localStorage |
| 5 | Re-render Optimization | MEDIUM | State management, memoization, effects |
| 6 | Rendering Performance | MEDIUM | Hydration, SVGs, content-visibility |
| 7 | JavaScript Performance | LOW-MEDIUM | DOM batching, lookups, iterations |
| 8 | Advanced Patterns | LOW | Refs, initialization, stable callbacks |
Eliminating Waterfalls (CRITICAL):
Promise.all() for independent operationsawait into branches where actually neededBundle Size (CRITICAL):
next/dynamic for heavy componentsRe-renders (MEDIUM):
When to consult detailed rules: When writing new components, implementing data fetching, reviewing code for performance, refactoring existing React/Next.js code, or optimizing bundle size and load times.
These complementary skills extend frontend-design capabilities. Use them when you need specialized functionality beyond core design and implementation.
| Need | Format | Skill |
|---|---|---|
| Photos, textures, backgrounds | Raster (PNG) | generate-image-nb |
| Icons, logos, illustrations, hero graphics | Vector (SVG) | generate-svg |
| Animated web elements | Vector (SVG) | generate-svg |
| Diagrams, flowcharts | Either | generate-image-nb (complex) / generate-svg (simple) |
generate-image-nbGenerate custom images, logos, icons, illustrations, and visual assets using the Nano Banana model (via Gemini CLI).
When to use:
How to invoke: Use the generate-image-nb skill. It provides commands like /generate, /icon, /diagram, /pattern for different image types.
Example scenarios:
/icon/diagramgenerate-svgGenerate production-quality SVG graphics — hero sections, icons, illustrations, logos, and UI components — using Gemini Pro as a text model.
When to use:
How to invoke: Use the generate-svg skill. It supports types: hero, icon, illustration, logo, component.
Example scenarios:
-t hero-t icon-t componentAutomate browser interactions for testing, screenshots, form filling, and visual verification of your frontend work.
When to use:
How to install: Install Playwright via Claude Code by running /install-github-mcp playwright or add the Playwright MCP server to your settings.
Example scenarios:
agentationAdd a visual feedback/annotation toolbar to Next.js projects for development-time design iteration.
When to use:
How to invoke: Use the agentation skill. It adds a floating toolbar component that only loads in development mode.
Example scenarios:
npx claudepluginhub pouriarouzrokh/pr-claude-plugins --plugin prGenerates distinctive, production-grade frontend code with bold aesthetics for web components, pages, or apps. Avoids generic AI designs.
Generates production-grade frontend UIs via design reasoning framework, style selection, anti-pattern avoidance, accessibility, and responsive standards for React/Vue/Svelte/HTML.
Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.