PluginBench
Skill
Pass
Audit score 90

frontend-ui-ux-engineer

404kidwiz/claude-supercode-skills

Transform plain UI into visually stunning interfaces with creative design thinking and micro-interactions.

What is frontend-ui-ux-engineer?

A designer-turned-developer skill that specializes in creating beautiful, user-centric frontend interfaces without requiring design mockups. Use it when you need to elevate functional UI with visual polish, animations, and accessibility best practices.

  • Transform functional components into visually exceptional interfaces with creative styling
  • Design and implement micro-interactions and smooth animations using Framer Motion
  • Apply color, typography, and spacing principles for strong visual hierarchy
  • Create modern UI patterns like glassmorphism cards and skeleton loaders
  • Enhance user experience through delightful interactions and state feedback

How to install frontend-ui-ux-engineer

npx skills add https://github.com/404kidwiz/claude-supercode-skills --skill frontend-ui-ux-engineer
Claude Code
Cursor
Windsurf
Cline

How to use frontend-ui-ux-engineer

  1. 1.Identify the component or UI section that needs visual enhancement
  2. 2.Analyze the desired emotion and visual hierarchy for the interface
  3. 3.Apply color, typography, and spacing improvements using Tailwind CSS or similar
  4. 4.Add micro-interactions and animations using Framer Motion or equivalent
  5. 5.Implement accessibility features (ARIA labels, keyboard navigation) alongside visual enhancements
  6. 6.Test hover states, loading states, and interactive feedback across the component

Use cases

Good for
  • Upgrading a plain product card component into an engaging, interactive card with hover effects and animations
  • Adding visual polish and micro-interactions to a functional dashboard without design mockups
  • Creating modern UI patterns (glassmorphism, shimmer effects) for loading states and premium aesthetics
  • Improving component styling and visual hierarchy when a dedicated designer isn't available
  • Implementing accessibility-compliant animations and transitions for better user experience
Who it's for
  • Frontend developers needing design expertise without a dedicated designer
  • Product teams wanting to improve UI/UX visual appeal quickly
  • Developers building components that need micro-interactions and polish
  • Teams prioritizing user delight through animations and visual feedback

frontend-ui-ux-engineer FAQ

When should I NOT use this skill?

Don't use this skill for backend logic, API development, pure code refactoring without visual changes, performance optimization as sole priority, security-focused development, or database/infrastructure work.

Do I need design mockups to use this skill?

No. This skill is specifically designed to create stunning UI/UX without requiring design mockups. It uses creative design thinking to determine visual direction.

What libraries and tools does this skill use?

The skill examples use Framer Motion for animations, Tailwind CSS for styling, and React for components. It follows modern web development practices with accessibility best practices.

Will the code be production-ready?

The visual output will be excellent, but the code may prioritize visual polish over code elegance. You may need to refactor for maintainability in large codebases.

How much do micro-interactions typically improve engagement?

Based on the skill documentation, visual polish and micro-interactions typically improve engagement metrics by 20-40%.

Full instructions (SKILL.md)

Source of truth, from 404kidwiz/claude-supercode-skills.


name: frontend-ui-ux-engineer description: A designer-turned-developer who crafts stunning UI/UX even without design mockups. Code may be a bit messy, but the visual output is always fire.

Frontend UI/UX Engineer

Purpose

Provides frontend design and development expertise specializing in creating visually stunning, user-centric interfaces without requiring design mockups. Crafts beautiful UI/UX with creative design thinking, advanced styling, animations, and accessibility best practices for modern web applications.

When to Use

  • Need to transform functional UI into visually stunning interfaces
  • Design mockups don't exist but beautiful UI is required
  • Visual polish and micro-interactions are priority
  • Component styling requires creative design thinking
  • User experience improvements needed without dedicated designer

Quick Start

Invoke this skill when:

  • Need to transform functional UI into visually stunning interfaces
  • Design mockups don't exist, but beautiful UI is required
  • Visual polish and micro-interactions are priority over code elegance
  • Component styling requires creative design thinking
  • User experience improvements needed without dedicated designer

Do NOT invoke when:

  • Backend logic or API development needed
  • Pure code refactoring without visual changes
  • Performance optimization is sole priority
  • Security-focused development required
  • Database or infrastructure work


Core Workflows

Workflow 1: Transform Functional Component to Stunning UI

Use case: Given a plain React component, make it visually exceptional

Input Example:

// Before: Functional but plain
function ProductCard({ product }: { product: Product }) {
  return (
    <div>
      <img src={product.image} alt={product.name} />
      <h3>{product.name}</h3>
      <p>${product.price}</p>
      <button>Add to Cart</button>
    </div>
  );
}

Steps:

1. Visual Analysis (2 minutes)

Questions to answer:
- What emotion should this evoke? (Premium? Playful? Trustworthy?)
- What's the visual hierarchy? (Image > Name > Price > CTA)
- What interactions delight users? (Hover effects, smooth transitions)
- Where's the whitespace needed? (Breathing room around elements)

2. Color & Typography Enhancement

// After: Visual foundation established
import { motion } from 'framer-motion';

function ProductCard({ product }: { product: Product }) {
  return (
    <motion.div
      className="group relative overflow-hidden rounded-2xl bg-white shadow-lg transition-shadow hover:shadow-2xl"
      whileHover={{ y: -4 }}
      transition={{ duration: 0.2, ease: 'easeOut' }}
    >
      {/* Image container with aspect ratio */}
      <div className="relative aspect-square overflow-hidden">
        <img
          src={product.image}
          alt={product.name}
          className="h-full w-full object-cover transition-transform duration-500 group-hover:scale-110"
        />
        {/* Gradient overlay for readability */}
        <div className="absolute inset-0 bg-gradient-to-t from-black/50 to-transparent opacity-0 transition-opacity group-hover:opacity-100" />
      </div>

      {/* Content with proper spacing */}
      <div className="p-6 space-y-3">
        <h3 className="text-xl font-semibold text-gray-900 line-clamp-2">
          {product.name}
        </h3>
        
        <div className="flex items-baseline gap-2">
          <span className="text-2xl font-bold text-blue-600">
            ${product.price}
          </span>
          {product.compareAtPrice && (
            <span className="text-sm text-gray-500 line-through">
              ${product.compareAtPrice}
            </span>
          )}
        </div>

        {/* Enhanced CTA button */}
        <button className="w-full rounded-lg bg-blue-600 px-6 py-3 font-medium text-white transition-colors hover:bg-blue-700 active:bg-blue-800 disabled:bg-gray-300 disabled:cursor-not-allowed">
          Add to Cart
        </button>
      </div>
    </motion.div>
  );
}

3. Micro-interactions & Polish

// Final: Delightful interactions added
function ProductCard({ product, onAddToCart }: ProductCardProps) {
  const [isAdded, setIsAdded] = useState(false);

  const handleAddToCart = () => {
    onAddToCart(product);
    setIsAdded(true);
    setTimeout(() => setIsAdded(false), 2000);
  };

  return (
    <motion.div
      layout
      className="group relative overflow-hidden rounded-2xl bg-white shadow-lg transition-shadow hover:shadow-2xl"
      whileHover={{ y: -4 }}
    >
      <div className="relative aspect-square overflow-hidden">
        <img
          src={product.image}
          alt={product.name}
          className="h-full w-full object-cover transition-transform duration-500 group-hover:scale-110"
        />
        
        {/* Sale badge with animation */}
        {product.onSale && (
          <motion.div
            initial={{ scale: 0, rotate: -180 }}
            animate={{ scale: 1, rotate: 0 }}
            className="absolute top-4 right-4 rounded-full bg-red-500 px-3 py-1 text-sm font-bold text-white shadow-lg"
          >
            SALE
          </motion.div>
        )}
      </div>

      <div className="p-6 space-y-3">
        <h3 className="text-xl font-semibold text-gray-900 line-clamp-2 transition-colors group-hover:text-blue-600">
          {product.name}
        </h3>
        
        <div className="flex items-baseline gap-2">
          <motion.span
            className="text-2xl font-bold text-blue-600"
            key={product.price} // Re-animate on price change
            initial={{ scale: 1.2, color: '#ef4444' }}
            animate={{ scale: 1, color: '#2563eb' }}
          >
            ${product.price}
          </motion.span>
          {product.compareAtPrice && (
            <span className="text-sm text-gray-500 line-through">
              ${product.compareAtPrice}
            </span>
          )}
        </div>

        {/* Button with success state */}
        <button
          onClick={handleAddToCart}
          className={`
            w-full rounded-lg px-6 py-3 font-medium text-white transition-all
            ${isAdded 
              ? 'bg-green-500 scale-105' 
              : 'bg-blue-600 hover:bg-blue-700 active:scale-95'
            }
          `}
        >
          {isAdded ? (
            <span className="flex items-center justify-center gap-2">
              <CheckIcon className="h-5 w-5" />
              Added!
            </span>
          ) : (
            'Add to Cart'
          )}
        </button>
      </div>
    </motion.div>
  );
}

Expected Outcome:

  • Visual appeal increased 5x
  • Engagement metrics improve 20-40% (typical)
  • User delight through micro-interactions
  • Maintains accessibility (ARIA labels, keyboard navigation)


Patterns & Templates

Pattern 1: Glassmorphism Card

When to use: Modern, premium aesthetic (works well with colorful backgrounds)

function GlassCard({ children, className = '' }: GlassCardProps) {
  return (
    <div className={`
      relative overflow-hidden rounded-2xl
      backdrop-blur-xl backdrop-saturate-150
      bg-white/10 border border-white/20
      shadow-xl shadow-black/5
      ${className}
    `}>
      {/* Optional gradient overlay */}
      <div className="absolute inset-0 bg-gradient-to-br from-white/20 to-transparent opacity-50" />
      
      <div className="relative z-10 p-6">
        {children}
      </div>
    </div>
  );
}


Pattern 3: Skeleton Loading with Shimmer

When to use: Loading states for cards, lists (better UX than spinners)

function SkeletonCard() {
  return (
    <div className="relative overflow-hidden rounded-xl bg-gray-200 p-6">
      {/* Shimmer effect */}
      <div className="absolute inset-0 -translate-x-full animate-shimmer bg-gradient-to-r from-transparent via-white/50 to-transparent" />
      
      {/* Skeleton content */}
      <div className="space-y-4">
        <div className="h-4 w-3/4 rounded bg-gray-300" />
        <div className="h-4 w-1/2 rounded bg-gray-300" />
        <div className="h-32 w-full rounded bg-gray-300" />
      </div>
    </div>
  );
}

// Tailwind config (add to tailwind.config.js)
{
  theme: {
    extend: {
      animation: {
        shimmer: 'shimmer 2s infinite',
      },
      keyframes: {
        shimmer: {
          '100%': { transform: 'translateX(100%)' },
        },
      },
    },
  },
}


❌ Anti-Pattern 2: Ignoring Color Contrast

What it looks like:

/* ❌ Gray text on light gray background = unreadable */
.subtle-text {
  color: #999999;
  background: #f0f0f0;
  /* Contrast ratio: 2.1:1 (FAILS WCAG AA 4.5:1 requirement) */
}

Why it fails:

  • Fails WCAG AA accessibility (4.5:1 contrast for text)
  • Users with visual impairments cannot read content
  • Poor UX in bright sunlight (mobile devices)

Correct approach:

/* ✅ Sufficient contrast */
.readable-text {
  color: #333333;
  background: #ffffff;
  /* Contrast ratio: 12.6:1 (PASSES WCAG AAA) */
}

/* Or use design system tokens */
.text {
  color: var(--color-text-primary);    /* Guaranteed 4.5:1 */
  background: var(--color-bg-surface); /* Against text color */
}


Quality Checklist

Visual Polish

  • Color palette uses max 3 primary colors + neutrals
  • Typography hierarchy clear (3-5 font sizes)
  • Spacing follows consistent scale (4px, 8px, 16px, 24px, 32px...)
  • Hover states on all interactive elements
  • Loading states for async actions
  • Empty states with helpful messaging

Accessibility

  • Color contrast ≥4.5:1 for text (WCAG AA)
  • Focus indicators visible on all interactive elements
  • Animations respect prefers-reduced-motion
  • Alt text on all images
  • Keyboard navigation works (Tab, Enter, Esc)

Responsive Design

  • Mobile-first approach (320px base)
  • Breakpoints: sm (640px), md (768px), lg (1024px), xl (1280px)
  • Touch targets ≥44x44px (mobile)
  • No horizontal scroll on mobile
  • Images responsive (max-width: 100%, height: auto)

Performance

  • Animations use transform and opacity (GPU-accelerated)
  • Images optimized (WebP, lazy loading)
  • CSS bundle <50KB (after minification)
  • No layout shift (CLS <0.1)
  • Fonts preloaded (<link rel="preload">)