Communitygithub.com

Rendre les interfaces plus agréables

Appliquez des détails concrets de conception et d'ingénierie qui rendent les interfaces plus soignées. À utiliser lors de la révision ou de l'amélioration de l'espacement, de la typographie, des bordures, des ombres, des animations, des zones de clic, des icônes, du retour à la ligne et des états d'interaction.

Qu'est-ce que Rendre les interfaces plus agréables ?

Cette compétence fournit un ensemble structuré de principes de conception et d'ingénierie pour améliorer la qualité perçue des interfaces utilisateur. Elle couvre des domaines clés tels que le rayon concentrique pour les surfaces arrondies imbriquées, l'alignement optique des icônes et éléments asymétriques, l'utilisation appropriée des ombres et bordures, le contrôle du retour à la ligne du texte avec `text-wrap`, le lissage de police sur macOS, le contour des images, les animations CSS avec des transitions performantes et sans `transition: all`, ainsi que des zones de clic minimales de 40x40 pixels. Utilisez-la lors de la revue de composants UI (cartes, listes, formulaires, navigation) ou lorsque l'utilisateur trouve l'interface « pas naturelle », « plate » ou « saccadée ». La compétence s'applique à tout projet frontend (HTML/CSS) et peut être utilisée avec des outils comme Claude Code, Cursor ou Codex pour produire des recommandations avant/après concrètes et localisées.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/ECC/tree/main/skills/make-interfaces-feel-better

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait Rendre les interfaces plus agréables ?

Utilisez cette compétence pour les petits détails d'ingénierie de conception qui, combinés, donnent une interface plus soignée.

Source : récupéré de la PR communautaire #1659 par linus707.

Quand l'utiliser

  • L'utilisateur dit que l'UI semble bizarre, plate, générique, serrée, saccadée ou inachevée.
  • Vous construisez des contrôles, cartes, listes, tableaux de bord, navigation, formulaires ou barres d'outils.
  • Un composant nécessite des états de survol, actif, focus, entrée, sortie, chargement ou vide.
  • Une revue frontend a besoin de recommandations avant/après spécifiques.

Principes fondamentaux

Rayon concentrique

Pour les surfaces arrondies imbriquées proches :

rayon extérieur = rayon intérieur + padding

Si le padding est grand, traitez les couches comme des surfaces séparées au lieu de forcer le calcul. L'objectif est la cohérence optique, pas un culte de la formule.

Alignement optique

Le centrage géométrique n'est pas toujours le centrage visuel. Les boutons d'icône, les triangles de lecture, les flèches, les étoiles et les icônes asymétriques nécessitent souvent un léger décalage. Corrigez le SVG quand c'est possible ; sinon ajustez avec une marge ou un padding au niveau du pixel.

Ombres et bordures

Utilisez les bordures pour la séparation et les anneaux de focus. Utilisez des ombres superposées quand une carte, un bouton, un menu déroulant ou un popover a besoin de profondeur. Les ombres doivent être transparentes et suffisamment subtiles pour fonctionner sur tous les arrière-plans.

Retour à la ligne

  • Utilisez text-wrap: balance sur les titres et les textes courts.
  • Utilisez text-wrap: pretty pour les corps de texte courts à moyens, légendes, descriptions et éléments de liste.
  • Évitez les deux sur les longs textes, le code et le contenu préformaté.
  • Utilisez font-variant-numeric: tabular-nums pour les compteurs, minuteries, prix, tableaux et autres nombres dynamiques.

Lissage de police

Sous macOS, appliquez un lissage de police antialiasé à la racine du layout si le projet ne le fait pas déjà :

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

Contours des images

Les images ont souvent besoin d'un contour subtil intérieur pour que leurs bords ne se fondent pas dans la surface.

img {
  outline: 1px solid rgba(0, 0, 0, 0.1);
  outline-offset: -1px;
}

@media (prefers-color-scheme: dark) {
  img {
    outline-color: rgba(255, 255, 255, 0.1);
  }
}

Utilisez des contours alpha noirs ou blancs neutres. Ne teintez pas les contours d'image avec la palette de la marque.

Animations

Utilisez les transitions CSS pour les changements d'état interactifs car elles peuvent recibler lorsque l'utilisateur change d'intention en cours d'animation. Réservez les keyframes pour les entrées uniques scénarisées ou les séquences de chargement.

Bonnes valeurs par défaut pour les animations :

  • Entrée : combinez opacité, petit translateY, et éventuellement un flou.
  • Sortie : plus courte et plus discrète que l'entrée, généralement 150 ms.
  • Appui : scale(0.96) pour les boutons tactiles, avec un moyen de le désactiver quand le mouvement distrait.
  • Changement d'icône : fondu enchaîné avec opacité, échelle et flou au lieu de bascules de visibilité instantanées.

Portée des transitions

N'utilisez jamais transition: all. Spécifiez les propriétés modifiées :

.button {
  transition-property: transform, background-color, box-shadow;
  transition-duration: 150ms;
  transition-timing-function: ease-out;
}

Utilisez will-change uniquement pour le bégaiement de première image sur les propriétés compatibles avec le compositeur telles que transform, opacity et filter. N'utilisez jamais will-change: all.

Zones de clic

Les contrôles interactifs doivent avoir une zone de clic d'au moins 40x40 px, idéalement 44x44 px là où le layout le permet. Étendez avec un pseudo-élément lorsque l'icône visible est plus petite, mais ne laissez pas les zones de clic étendues se chevaucher.

Résultat de la revue

Quand vous examinez une passe de polissage UI, rapportez les modifications concrètes dans des lignes avant/après :

PrincipeAvantAprès
Rayon concentriqueMême rayon sur parent et enfantLe rayon parent tient compte du padding
Nombres tabulairesLe compteur bouge quand les chiffres changentLe compteur utilise tabular-nums
Portée des transitionstransition: allPropriétés de transition explicites

Incluez les chemins de fichiers et les propriétés quand ils ne sont pas évidents d'après les extraits. Ommettez les principes que vous avez vérifiés mais sans changement.

Liste de vérification

  • Les éléments arrondis imbriqués sont optiquement cohérents.
  • Les icônes sont visuellement centrées.
  • Les boutons, cartes et popovers utilisent des bordures ou des ombres pour la bonne raison.
  • Les titres et les textes courts évitent les retours à la ligne gênants.
  • Les nombres dynamiques utilisent des chiffres tabulaires.
  • Les images ont des contours neutres si nécessaire.
  • Les animations d'entrée et de sortie sont séparées, subtiles et interruptibles si approprié.
  • Les boutons ont des états actifs tactiles sans mouvement exagéré.
  • transition: all et will-change: all sont absents.
  • Les petits contrôles ont toujours des zones de clic utilisables.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

affaan-m/ECC

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

affaan-m/fal-ai-media

Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.

affaan-m/manim-video

日本語翻訳:このファイルは manim-video 用の日本語翻訳が必要です

affaan-m/remotion-video-creation

Remotion のベストプラクティス - React で動画を作成する。3D、アニメーション、音声、字幕、チャート、トランジションなどをカバーするドメイン固有の29のルール。

affaan-m/video-editing

AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

agent-self-evaluation

Use after completing any non-trivial task. The agent self-rates its output on 5 axes — accuracy, completeness, clarity, actionability, conciseness — with concrete evidence per criterion. Produces a structured 1-5 scorecard with specific improvement suggestions.

agent-sort

Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

ai-regression-testing

Regression testing strategies for AI-assisted development. Sandbox-mode API testing without database dependencies, automated bug-check workflows, and patterns to catch AI blind spots where the same model writes and reviews code. Use when adding regression coverage to AI-assisted code, or when the same model both wrote and reviewed a change.

android-clean-architecture

Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns. Use when structuring modules, layers, or data flow in an Android or KMP project.

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.

Skills associés