Communitygithub.com

sukirman1901/polish

Peaufinez les micro-détails qui rendent l'interface plus agréable — alignement optique, nombres tabulaires, habillage du texte, transitions interruptibles, retour de pression, zones de contact, pas de `transition: all`. À utiliser lors de la construction ou de la révision du polish UI, lorsque « l'interface semble bizarre », pour des détails de raffinement, des retours au survol ou à la pression, ou après un anti-slop-design. La disposition structurelle, le langage des coins arrondis et la conformité WCAG relèvent d'autres propriétaires.

Qu'est-ce que polish ?

Cette compétence est dédiée au polissage des micro-détails d'interface utilisateur (UI) pour améliorer la sensation visuelle et interactive. Elle cible des aspects comme l'alignement optique, l'utilisation de nombres tabulaires (`tabular-nums`) pour éviter les sauts de chiffres, l'habillage équilibré du texte (`text-wrap: balance`), les transitions CSS interruptibles (pas de `transition: all`), le retour visuel au clic (`scale(0.96)`), et des zones de contact (hit areas) conformes aux recommandations (44×44 pixels tactile, 40×40 desktop). Elle fournit des recettes heuristiques et une checklist détaillée pour vérifier la géométrie des contrôles, les états (hover, press, focus, loading, disabled), et l'adaptation mobile (CTA pleine largeur, safe-area). Le skill précise clairement quand l'utiliser (après le design structurel et l'anti-slop) et quand passer la main à d'autres compétences (fondations de design, surfaces, typographie, accessibilité, motion, contenu). Il exige une preuve rendue (UI réelle) pour juger des ajustements et priorise la solution la moins coûteuse (suppression de décoration → CSS natif → réutilisation de tokens → abstraction). Il est utile pour les développeurs et designers UI utilisant des plateformes comme Claude Code, Cursor, ou Codex.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/sukirman1901/frontend-expert/tree/HEAD/skills/polish

Demander à votre IA préférée

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

Documentation

Polish (Polissage UI)

Présentation

Après les tokens, la structure et l'anti-slop, appliquez le micro-artisanat pour que l'interface soit agréable dans le rendu final. Les recettes numériques ici sont des heuristiques, sauf si une norme ou un token de projet les définit.

Quand l'utiliser

  • Pour finaliser les constructions /ui (après anti-slop-design)
  • /polish / « raffinage de détail » / « l'interface semble bizarre »
  • Micro-interactions de survol, pression, entrée/sortie, échange d'icônes

Quand l'ignorer

  • Grille structurelle / espacement / hiérarchie → design-foundations
  • Comparaison des directions de rendu / test de tous les états → prototype
  • Langage des coins arrondis / élévation → design-surfaces
  • Rôles typographiques, habillage, troncature → design-typography
  • Conformité (contraste, noms, clavier) → accessibility
  • Systèmes de mouvement / familles nommées → motion
  • Contenu uniquement / « texte IA » / libellés d'état vide → content-design
  • « Raffinage de code » / implémentation générée → anti-slop-code
  • Modifications uniquement back-end sans changement d'interface rendue

OBLIGATOIRE

RègleDétail
Preuve rendueJuger l'habillage, l'alignement, la pression et les coins arrondis à partir de l'interface rendue, pas seulement du code source
Tokens d'abordUtiliser --radius, les tokens d'espacement et de type ; ne pas inventer de valeurs uniques quand un token existe
Classer les recettesÉtiqueter 0.96, le décalage en ms et les nombres similaires comme heuristiques
Correctif valide le moins coûteuxSupprimer la décoration → CSS natif → réutiliser les tokens du projet → puis ajouter une abstraction
Artisanat mobileCTA principal pleine largeur <768 px ; safe-area sur les éléments sticky ; actions accessibles au pouce
Pas de transition: allNommer les propriétés ; éviter la transition nue de Tailwind
Preuve de géométrie des contrôlesRendre la matrice complète des contrôles, y compris les états en attente/chargement et LTR/RTL applicables, avant d'accepter l'alignement optique

Artisanat (points de départ)

ProblèmePoint de départClasseTransfert
Coins arrondis imbriquésExtérieur ≈ intérieur + retrait lorsque les courbes partagent un centreHeuristiquedesign-surfaces
Icône dans un contrôleAjustement optique par rapport au centre géométriqueRecommandation—
Profondeur de sectionLangage de bordure/élévation du projetValeur par défaut du projetdesign-surfaces
Survol/basculementTransitions CSS interruptiblesRecommandationmotion si chorégraphie
Pressionscale(0.96) si un retour de pression est souhaitéHeuristique—
Nombres dynamiquestabular-numsRecommandationdesign-typography
Titres courtstext-wrap: balanceRecommandationdesign-typography
Zone de contact44×44 tactile / ≥40 desktop denseRecommandationaccessibility pour WCAG 2.5.8 (24px)

Exceptions : pilules / cercles, barres d'outils denses (désactiver l'échelle de pression), mouvement réduit, langage de marque non concentrique, images qui n'ont pas besoin de contours.

Géométrie des contrôles

  • Matrice des variantes optiques rendues : texte uniquement, icône en tête, icône en queue, icône uniquement, et en attente/chargement.

Le centrage géométrique (inline-flex / items-center / justify-center) est nécessaire mais ne constitue pas une preuve. Il n'existe pas de décalage universel en pixels : comparez d'abord la matrice rendue, puis appliquez la plus petite compensation dans l'emplacement fixe de l'icône ou du glyphe.

Jugez si le groupe de contenu icône-étiquette combiné et sa masse visuelle perçue sont équilibrés et centrés dans toutes les variantes et tous les états. Évaluez séparément la relation entre la ligne de base / hauteur de capitale de l'étiquette et l'icône ; l'étiquette elle-même n'a pas besoin d'occuper le centre du contrôle dans une variante icône+texte. Vérifiez ensemble le poids visuel de l'icône, l'écart de token, le remplissage symétrique du token, le focus, la zone de contact, l'état désactivé et l'état en attente/chargement, sans décalage involontaire du groupe de contenu ou de la largeur du contrôle. Incluez à la fois LTR et RTL lorsque le produit les prend en charge.

La géométrie stable en attente est la valeur par défaut. Pour une exception explicite de morphisme mesuré (references/component-patterns.md), inspectez les deux points d'arrivée et la lecture cible, confirmez que les actions voisines restent stables et signalez l'exception avec des preuves. Un morphisme délibéré n'excuse pas les décalages accidentels de spinner ou l'absence de noms accessibles.

Flux de travail

  1. Périmètre — nommer la surface ; ignorer le travail structurel ou sur le système de tokens.
  2. Parcourir — rendu 1x/2x, clair/sombre, survol/pression/focus, largeur mobile.
  3. Matrice des contrôles — comparer texte uniquement, icône en tête/queue, icône uniquement, en attente/chargement, et LTR/RTL applicable à la taille rendue.
  4. Corriger — modification valide la moins coûteuse ; mapper les valeurs aux tokens ; maintenir la compensation optique à l'intérieur de l'emplacement de l'icône.
  5. Rapporter — tableaux Avant/Après groupés par principe ; marquer les états non inspectés comme Non vérifié.

Limites

  • Peut décider : ajustements optiques, transitions nommées, tabular-nums, aides à l'habillage du texte, retour de pression lorsque le projet n'en a pas.
  • Ne doit pas : traiter 0.96, le rebond 0 ou les coins arrondis concentriques comme une loi universelle ; polir sur une disposition cassée ; remplacer les polices de la marque.

Liste de vérification

  • Coins arrondis imbriqués vérifiés optiquement (ou transmis à design-surfaces)
  • Icônes centrées optiquement là où elles semblaient décalées
  • Matrice complète des contrôles rendus vérifiée : texte uniquement, icône en tête/queue, icône uniquement, en attente/chargement, et LTR/RTL le cas échéant
  • Groupe icône-étiquette / masse visuelle perçue centré ; relation ligne de base / hauteur de capitale de l'étiquette, poids visuel de l'icône, écart et remplissage de token vérifiés
  • Le focus, la zone de contact, l'état désactivé et le chargement préservent la géométrie sans décalage de l'étiquette ou de la largeur
  • Pas de transition: all ; survol/pression interruptible
  • Les nombres dynamiques utilisent tabular-nums là où ils trembleraient
  • Titres text-balance ; texte court text-pretty là où c'est utile
  • Zones de contact conformes aux directives 44/40 sans chevauchement
  • Artisanat mobile : CTA principal pleine largeur <768, safe-area, zone du pouce
  • Heuristiques étiquetées ; états non testés marqués Non vérifié

Approfondissement

Exemples complets : references/polish.md. Liés : design-surfaces, design-foundations, design-typography, motion, accessibility, references/evidence-policy.md.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Skills associés