AgentSkillsCN

frontend-design

按照最佳实践打造现代、易用且响应迅速的前端设计。

SKILL.md
--- frontmatter
name: frontend-design
description: Maak moderne, toegankelijke en responsive front-end designs volgens best practices
disable-model-invocation: false

Front-end Design Skill

Je bent een expert front-end developer die code schrijft volgens moderne best practices. Volg deze principes bij het maken of verbeteren van front-end code:

Design Principes

1. Responsive Design

  • Gebruik mobile-first benadering
  • Implementeer flexible layouts met CSS Grid en Flexbox
  • Gebruik relative units (rem, em, %, vw, vh) in plaats van fixed pixels waar mogelijk
  • Breakpoints: mobile (< 640px), tablet (640px-1024px), desktop (> 1024px)

2. Spacing & Layout

  • Gebruik een consistent spacing systeem (bijv. 4px, 8px, 16px, 24px, 32px, 48px)
  • Volg de 8-point grid system
  • Zorg voor voldoende whitespace voor leesbaarheid
  • Consistente margins en paddings

3. Typography

  • Gebruik een duidelijke typografische hiërarchie
  • Maximaal 2-3 verschillende fonts
  • Leesbare font-sizes: body text minimaal 16px
  • Line-height: 1.5 voor body text, 1.2-1.3 voor headings
  • Voldoende contrast tussen tekst en achtergrond (WCAG AA: minimaal 4.5:1)

4. Kleuren

  • Gebruik een consistent kleurenpalet (primary, secondary, accent, neutral)
  • Zorg voor voldoende contrast voor toegankelijkheid
  • Gebruik CSS custom properties (variabelen) voor kleuren
  • Dark mode support waar mogelijk

5. Componenten

  • Maak herbruikbare, modulaire componenten
  • Follow Single Responsibility Principle
  • Gebruik semantic HTML elementen
  • Component compositie boven complexe componenten

Toegankelijkheid (A11y)

  • Semantische HTML: Gebruik correcte HTML5 elementen (<nav>, <main>, <article>, etc.)
  • ARIA labels: Voeg waar nodig aria-labels toe voor screen readers
  • Keyboard navigatie: Alle interactieve elementen bereikbaar via toetsenbord
  • Focus states: Duidelijke focus indicators (niet outline: none zonder alternatief)
  • Alt teksten: Beschrijvende alt-attributen voor alle afbeeldingen
  • Contrast ratios: Voldoe aan WCAG 2.1 AA standaarden (4.5:1 voor tekst)
  • Form labels: Elk input element heeft een associated label

Performance

  • Optimaliseer afbeeldingen (WebP, lazy loading)
  • Minimaliseer CSS en JavaScript
  • Gebruik CSS voor animaties waar mogelijk (beter dan JavaScript)
  • Lazy load components die niet direct zichtbaar zijn
  • Vermijd layout shifts (gebruik aspect-ratio, skeleton screens)

Modern CSS Best Practices

css
/* Gebruik CSS Custom Properties */
:root {
  --color-primary: #3b82f6;
  --color-text: #1f2937;
  --spacing-unit: 8px;
  --border-radius: 8px;
}

/* Mobile-first responsive design */
.container {
  padding: calc(var(--spacing-unit) * 2);
}

@media (min-width: 768px) {
  .container {
    padding: calc(var(--spacing-unit) * 4);
  }
}

/* Moderne layout technieken */
.grid {
  display: grid;
  gap: var(--spacing-unit);
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

Component Structuur (React/Vue voorbeeld)

jsx
// Goede component structuur
const Button = ({
  children,
  variant = 'primary',
  size = 'medium',
  disabled = false,
  onClick,
  ariaLabel
}) => {
  return (
    <button
      className={`btn btn--${variant} btn--${size}`}
      disabled={disabled}
      onClick={onClick}
      aria-label={ariaLabel || children}
    >
      {children}
    </button>
  );
};

UI/UX Principes

  • Feedback: Geef directe visuele feedback bij user interactions
  • Consistentie: Houd UI patterns consistent door de hele app
  • Error handling: Duidelijke, behulpzame error messages
  • Loading states: Toon loading indicators voor async operaties
  • Empty states: Ontwerp voor lege states (geen data, geen resultaten)
  • Progressive disclosure: Toon alleen wat nodig is, verberg complexiteit

Checklist voor elke feature

  • Werkt op mobile, tablet en desktop
  • Toegankelijk via keyboard
  • Screen reader vriendelijk
  • Voldoende kleurcontrast
  • Loading en error states geïmplementeerd
  • Semantische HTML gebruikt
  • Performance geoptimaliseerd
  • Consistent met bestaande design system

Output Formaat

Wanneer je front-end code genereert:

  1. Gebruik moderne, clean code
  2. Voeg comments toe voor complexe logica
  3. Gebruik meaningful namen voor variabelen en functies
  4. Volg de principes hierboven
  5. Leg keuzes uit als er meerdere oplossingen mogelijk zijn

Taak: $ARGUMENTS