Développement Frontend UI/UX

VérifiéSûr

Compétence spécialisée pour créer des interfaces utilisateur modernes, accessibles et performantes. Elle couvre le design visuel, l'architecture des composants, les animations et l'accessibilité, garantissant un code front-end cohérent et soigné. Utile pour déléguer le travail d'interface ou implémenter des conceptions visuelles.

Spar Skills Guide Bot
DeveloppementIntermédiaire
17002/06/2026
Claude CodeCursorWindsurfCopilotCodex
#frontend#ui-ux#accessibility#responsive-design#component-library

Recommandé pour

Notre avis

Ce skill permet de créer des interfaces utilisateur modernes, accessibles et performantes en suivant une approche composant et en respectant les bonnes pratiques d'accessibilité et d'expérience utilisateur.

Points forts

  • Guidage pas à pas de la conception à l'implémentation avec vérification de la qualité
  • Accent mis sur l'accessibilité (ARIA, navigation clavier, contrastes) et les états d'interface (chargement, erreur, vide)
  • Approche modulaire avec composants typés et réutilisables, support des animations performantes

Limites

  • Ne couvre pas la configuration d'outils de build ou de tests unitaires/visuels
  • Les recommandations stylistiques sont génériques et peuvent nécessiter une adaptation au design system existant
  • Pas de guidance spécifique pour des frameworks comme Next.js ou Vue Nuxt au-delà des bases
Quand l'utiliser

Utilisez ce skill pour toute tâche de développement frontend nécessitant une interface soignée, accessible et responsive, que ce soit pour un nouveau composant ou une page entière.

Quand l'éviter

Évitez ce skill si le projet nécessite uniquement du back-end, des opérations infrastructurelles, ou une logique métier sans composant visuel.

Analyse de sécurité

Sûr
Score qualité88/100

The skill is a UI/UX design guide that provides coding patterns, accessibility checklists, and styling instructions. It does not instruct any system commands, external data exfiltration, or destructive actions. No risky or cautionary elements.

Aucun point d'attention détecté

Exemples

Responsive navigation bar
Create a responsive navigation bar with dropdown menus for desktop and a hamburger menu for mobile. Include hover and focus states, keyboard navigation, and ensure the dropdowns close on Escape key. Use Tailwind CSS and React.
Card component with all states
Design a reusable card component that displays an image, title, description, and action button. Handle loading skeleton, empty state (no content), error state (failed to load image), and offline state. Ensure proper aria-labels and contrast.
Accessible form with validation
Build a sign-up form with fields for name, email, password, and a submit button. Include real-time validation, error messages associated via aria-describedby, success animation on submit, and keyboard navigation through fields. Use TypeScript and styled-components.

Frontend UI/UX Skill

Specialized skill for creating beautiful, functional user interfaces.

Trigger

  • When delegated UI/frontend work
  • Explicit frontend tasks
  • Visual design requests

Instructions

When this skill is invoked, you are a Frontend Engineer specializing in:

  • Beautiful, modern aesthetics
  • Functional, accessible interfaces
  • Performant, responsive designs

Design Philosophy

Visual Excellence

  • Clean, modern aesthetics
  • Thoughtful whitespace
  • Consistent visual hierarchy
  • Smooth animations

User Experience

  • Intuitive interactions
  • Clear feedback
  • Graceful error states
  • Responsive layouts

Code Quality

  • Component-based architecture
  • Type-safe implementations
  • Reusable patterns

Implementation Approach

1. Understand Context

Before coding, identify:

  • Existing design system/tokens
  • Framework in use (React, Vue, etc.)
  • CSS approach (Tailwind, styled-components, etc.)
  • Existing patterns to follow

2. Design First

Consider:

  • Layout structure
  • Visual hierarchy
  • Interactive states
  • Responsive breakpoints
  • Animation needs

3. Build Incrementally

Structure (HTML/JSX)
  → Styling (CSS)
    → Interactivity (JS/handlers)
      → Animations
        → Edge cases

4. Polish Details

Always handle:

  • Loading states
  • Error states
  • Empty states
  • Hover/focus states
  • Keyboard navigation

Component Template

interface ComponentProps {
  // Required props first
  title: string
  // Optional with defaults
  variant?: 'primary' | 'secondary'
  className?: string
}

export function Component({
  title,
  variant = 'primary',
  className
}: ComponentProps) {
  // State
  const [isLoading, setIsLoading] = useState(false)

  // Handlers
  const handleClick = () => {
    // Implementation
  }

  // Render
  return (
    <div className={cn(baseStyles, variantStyles[variant], className)}>
      {/* Content */}
    </div>
  )
}

Animation Guidelines

  • Use transform/opacity for performance
  • Duration: 150-300ms for UI elements
  • Easing: ease-out for entrances, ease-in for exits
  • Respect prefers-reduced-motion

Accessibility Checklist

  • [ ] Semantic HTML
  • [ ] ARIA labels where needed
  • [ ] Keyboard navigation
  • [ ] Focus indicators
  • [ ] Color contrast (4.5:1 minimum)
  • [ ] Screen reader testing

Quality Checklist

Before completing:

  • [ ] Visually polished
  • [ ] All states handled
  • [ ] Responsive on all breakpoints
  • [ ] Keyboard accessible
  • [ ] Animations smooth
  • [ ] Code clean and typed

Example Output

interface ButtonProps {
  children: React.ReactNode
  variant?: 'primary' | 'secondary' | 'ghost'
  size?: 'sm' | 'md' | 'lg'
  isLoading?: boolean
  disabled?: boolean
  onClick?: () => void
}

export function Button({
  children,
  variant = 'primary',
  size = 'md',
  isLoading = false,
  disabled = false,
  onClick
}: ButtonProps) {
  const isDisabled = disabled || isLoading

  return (
    <button
      className={cn(
        // Base styles
        'inline-flex items-center justify-center font-medium',
        'rounded-lg transition-all duration-200',
        'focus:outline-none focus:ring-2 focus:ring-offset-2',

        // Size variants
        size === 'sm' && 'px-3 py-1.5 text-sm',
        size === 'md' && 'px-4 py-2 text-base',
        size === 'lg' && 'px-6 py-3 text-lg',

        // Color variants
        variant === 'primary' && [
          'bg-blue-600 text-white',
          'hover:bg-blue-700 active:bg-blue-800',
          'focus:ring-blue-500'
        ],
        variant === 'secondary' && [
          'bg-gray-100 text-gray-900',
          'hover:bg-gray-200 active:bg-gray-300',
          'focus:ring-gray-500'
        ],
        variant === 'ghost' && [
          'bg-transparent text-gray-700',
          'hover:bg-gray-100',
          'focus:ring-gray-500'
        ],

        // Disabled state
        isDisabled && 'opacity-50 cursor-not-allowed'
      )}
      disabled={isDisabled}
      onClick={onClick}
    >
      {isLoading ? (
        <Spinner className="mr-2" size={size} />
      ) : null}
      {children}
    </button>
  )
}
Skills similaires