quuu-frontend-design

SKILL.md

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.

The user provides frontend requirements: a component, page, application, or interface to build. They may include context about the purpose, audience, or technical constraints.

Design Thinking

Before coding, understand the context and commit to a BOLD aesthetic direction:

  • Purpose: What problem does this interface solve? Who uses it?
  • 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, etc. There are so many flavors to choose from. Use these for inspiration but design one that is true to the aesthetic direction.
  • Constraints: Technical requirements (framework, performance, accessibility).
  • Differentiation: What makes this UNFORGETTABLE? What's the one thing someone will remember?

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:

  • Production-grade and functional
  • Visually striking and memorable
  • Cohesive with a clear aesthetic point-of-view
  • Meticulously refined in every detail

Tech Stack & Architecture

Styling: Tailwind CSS

  • Always use Tailwind CSS utility classes for styling. Do not write raw CSS unless absolutely necessary (e.g., a one-off keyframe animation or a pseudo-element trick with no Tailwind equivalent).
  • Use Tailwind's theme configuration (tailwind.config.js / tailwind.config.ts) to define design tokens: custom colors, fonts, spacing scales, and animation timings. This replaces CSS custom properties as the single source of truth.
  • Leverage Tailwind's built-in support for dark mode (dark: variant), responsive design (sm:, md:, lg:, xl:, 2xl:), state variants (hover:, focus:, group-hover:, peer-*), and animation utilities (animate-, transition-, duration-, ease-).
  • For complex or reusable style patterns, prefer extracting a component over using @apply. Components are the abstraction layer — not CSS classes.
  • Use arbitrary values (bg-[#1a1a2e], text-[clamp(1rem,3vw,2.5rem)]) when the design calls for precision outside the default scale, but prefer extending the theme config for values used more than once.
  • Use the cn() utility (from clsx + tailwind-merge) to conditionally compose class strings cleanly within components.

Composability & Component Architecture

  • Think in composable primitives. Every UI should be decomposed into small, single-responsibility components that compose together. Prefer many small components over few monolithic ones.
  • Follow the compound component pattern for complex UI (e.g., <Card>, <Card.Header>, <Card.Body>, <Card.Footer>) to give consumers flexible control over structure.
  • Use props for variants, not separate components. A single <Button variant="primary" size="lg"> is better than <PrimaryLargeButton>. Use cva (Class Variance Authority) or a similar utility to map variant props to Tailwind class sets.
  • Expose className as a prop on every component to allow consumer-side overrides and composition with Tailwind classes.
  • Use children and render props / slots to keep components open for extension. Avoid hard-coding content inside reusable components.
  • Separate layout components (containers, grids, stacks, spacers) from content components (cards, badges, avatars). Layout should not be baked into content components.
  • For React projects, prefer Server Components by default (Next.js App Router) and mark components "use client" only when they need interactivity, state, or browser APIs.

Responsiveness & Breakpoints

  • Design mobile-first. Write base styles for the smallest viewport, then layer on complexity with sm:, md:, lg:, xl:, and 2xl: breakpoints.
  • Layouts should adapt meaningfully at each breakpoint — not just scale. A single-column stack on mobile might become an asymmetric two-column grid on desktop. Navigation collapses, typography scales, spacing breathes.
  • Use fluid sizing where appropriate: clamp() for type (text-[clamp(1.25rem,3vw,3rem)]), Tailwind's max-w-* and container for content width, and gap-* for flexible spacing that adjusts with the viewport.
  • Test mental models at three breakpoints minimum: mobile (~375px), tablet (~768px), desktop (~1280px). Every component should look intentional at all three.
  • Use Tailwind's grid, flex, gap, and auto-cols/rows utilities to build layouts that reflow naturally rather than relying on fixed widths.

Performance & Snappy Loads

  • Speed is a design choice. A beautiful interface that loads slowly feels broken. Prioritize perceived and actual performance.
  • Use semantic HTML and keep the DOM shallow. Fewer nested wrappers mean faster paint and easier debugging.
  • Lazy-load below-the-fold content: images (loading="lazy"), heavy components (React.lazy / next/dynamic), and non-critical scripts.
  • Optimize images: prefer next/image or <picture> with srcset for responsive sizes. Use modern formats (WebP/AVIF) and explicit width/height to prevent layout shift.
  • Load fonts efficiently: use next/font, font-display: swap, and preload critical font files. Subset fonts when possible to cut payload.
  • Minimize client-side JavaScript. Keep "use client" boundaries tight — wrap only the interactive leaf, not the whole page.
  • Avoid layout shift: set explicit dimensions on images/embeds, use skeleton placeholders, and ensure fonts don't cause reflow on swap.

Motion & Animation

  • Less is more. Animation should feel like punctuation, not prose. A few well-placed transitions create more impact than animating everything.
  • Use Tailwind's transition utilities for interactive feedback: transition-colors duration-150 on hover states, transition-transform on press effects. Keep durations short (150–300ms) so the UI feels responsive, not sluggish.
  • Reserve entrance animations for hero moments — a page load reveal, a modal opening, a key state change. Not every element needs to fade in.
  • Define custom keyframes in tailwind.config when you need branded motion (a signature bounce, a subtle pulse), but keep the library small.
  • For orchestrated sequences in React (staggered lists, layout transitions, exit animations), use Motion (formerly Framer Motion) — but only when CSS alone can't achieve the effect.
  • Respect prefers-reduced-motion. Wrap non-essential animation behind motion-safe: in Tailwind or check the media query in JS.
  • Never let animation delay interactivity. If a user can see a button, they should be able to click it — don't gate interaction behind a 600ms entrance animation.

Fonts & Assets

  • Load distinctive fonts via next/font, @fontsource packages, or Google Fonts <link>. Configure them as fontFamily entries in tailwind.config so they're available as utilities (e.g., font-display, font-body).
  • Avoid generic fonts: no Arial, Inter, Roboto, or system font stacks. Choose characterful, unexpected pairings — a distinctive display font with a refined body font.

Frontend Aesthetics Guidelines

Focus on:

  • Typography: Choose fonts that are beautiful, unique, and interesting. Unexpected, characterful font choices. Pair a distinctive display font with a refined body font. Control type scale with Tailwind's text-* utilities and fluid sizing via clamp() in arbitrary values.
  • Color & Theme: Commit to a cohesive aesthetic. Define a full palette in tailwind.config — dominant colors with sharp accents outperform timid, evenly-distributed palettes. Use semantic color names (primary, surface, accent) for maintainability.
  • Spatial Composition: Unexpected layouts. Asymmetry. Overlap (-mt-12, relative z-10). Diagonal flow. Grid-breaking elements (col-span-2, negative margins, absolute positioning). Generous negative space OR controlled density — both achievable with Tailwind's spacing scale.
  • Backgrounds & Visual Details: Create atmosphere and depth rather than defaulting to solid colors. Gradient meshes (bg-gradient-to-br, radial gradients via arbitrary values), noise textures (tiny base64 SVG overlays), geometric patterns, layered transparencies (bg-black/40), dramatic shadows (shadow-2xl, custom drop-shadow), decorative borders, and grain overlays via mix-blend-mode utilities.

NEVER use generic AI-generated aesthetics like overused font families (Inter, Roboto, Arial, system fonts), clichéd color schemes (particularly purple gradients on white backgrounds), predictable layouts and component patterns, and cookie-cutter design that lacks context-specific character.

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 (Space Grotesk, for example) across generations.

IMPORTANT: 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. Elegance comes from executing the vision well.

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.

Weekly Installs
4
First Seen
Feb 14, 2026
Installed on
opencode4
gemini-cli4
github-copilot4
codex4
kimi-cli4
amp4