Aller au contenu principal
MCP

Designer avec Claude Code et Playwright MCP : workflow

Workflow pas à pas pour valider un composant Claude Code avec Playwright MCP : screenshots multi-viewport, critique, itération et contrôle a11y.

  • Tutoriel
  • Outils
Publié le

TL;DR actionnable

  • Le pivot : aucun skill design ne livre du visuel correct à 100 %. Playwright MCP ferme la boucle en montrant le rendu réel à Claude.
  • Le minimum : browser_navigate sur ta preview locale, puis browser_take_screenshot. Claude critique, tu itères.
  • Le complet : ajoute le multi-viewport (browser_resize), un contrôle a11y via browser_evaluate, et un screenshot avant/après pour la PR.
  • Setup : Playwright MCP est dans le profil "dev" standard. Vérifie avec /mcp dans Claude Code.
  • À combiner avec : Impeccable, Taste Skill ou UI UX Pro Max pour la génération.

Pourquoi Playwright dans la boucle design

Un skill design habille un composant, mais il travaille à l'aveugle : il ne voit jamais ce que le navigateur rend vraiment. Playwright MCP, c'est le miroir que tu tends à Claude après qu'il a habillé un composant. Sans miroir, Claude devine. Avec, il voit exactement ce que le navigateur affiche sur mobile et sur desktop, et corrige avant que tu ouvres la page toi-même.

Le pipeline tient en quelques étapes répétées en boucle :

Brief

Décrire le composant voulu

Génération

Le skill design produit le code

Capture

Playwright screenshot multi-viewport

Critique

Claude lit le rendu et repère les défauts

Itération

Re-génération ciblée

Validé

Prêt pour la PR

Setup

Playwright MCP est livré dans le profil "dev" standard de Claude Code. Pour vérifier qu'il répond, tape /mcp dans Claude Code : tu dois voir playwright dans la liste des serveurs actifs.

Si tu pars d'un poste vierge, la voie ad hoc :

npx @playwright/mcp@latest

Côté skill design, installe celui qui correspond à ton besoin avant de commencer :

npx skills add pbakaus/impeccable

Le workflow, deux niveaux

Le workflow complet fait neuf étapes, mais tu n'en as pas toujours besoin. La version rapide suffit pour un contrôle visuel en 10 minutes. La version complète ajoute le multi-viewport, l'a11y et le commit, pour un composant destiné à la production.

Version rapide (10 min)

1

Générer le composant

Brief design court, puis génération via ton skill : /impeccable craft "carte produit minimaliste avec hover". Claude écrit le composant dans ton projet.

2

Lancer la preview et naviguer

Démarre le serveur (npm run dev), puis demande à Claude d'ouvrir la page avec l'outil browser_navigate sur l'URL locale (par exemple http://localhost:3000/preview).

3

Capturer et critiquer

Claude prend un screenshot avec browser_take_screenshot, le lit, et liste les défauts visibles (contraste, alignement, hiérarchie). Tu itères en relançant une commande du skill (/polish par exemple). Deux passes suffisent souvent.

Version complète (9 étapes)

1

Vérifier le MCP

/mcp dans Claude Code : confirme que playwright est actif. Installe le skill design choisi si ce n'est pas déjà fait.

2

Écrire le brief

Décris le composant, ses contraintes, et une référence visuelle si tu en as une (image locale lue via l'outil filesystem du MCP).

3

Générer

Invoque le skill : /impeccable craft "..." ou l'équivalent Taste / UI UX Pro Max. Claude produit le composant.

4

Capturer en multi-viewport

Serveur lancé, Claude utilise browser_navigate sur la route, puis browser_resize en 375x800 (mobile) et browser_take_screenshot, puis browser_resize en 1440x900 (desktop) et un second screenshot.

5

Critique visuelle

Claude lit les deux captures et identifie les défauts : contraste insuffisant, alignement cassé sur mobile, hiérarchie typo faible, espacement irrégulier.

6

Itérer

/impeccable polish ou /taste critique avec le diff identifié. Claude régénère le composant. Reviens à l'étape 4. Deux à quatre boucles sont typiques.

7

Contrôle d'accessibilité

Claude exécute axe-core dans la page via browser_evaluate (injection puis axe.run()), et vérifie zéro violation WCAG 2.1 AA sur le composant.

8

Capture avant/après

Garde le premier screenshot et le dernier. Le diff visuel sert de preuve dans la PR.

9

Commit

Composant prêt pour PR, avec les captures avant/après en commentaire.

Les outils MCP utilisés

Tous ces outils viennent du serveur @playwright/mcp. Claude les appelle pour toi ; tu décris l'intention, lui exécute.

OutilRôle dans la boucle
browser_navigateOuvrir la route de preview locale
browser_resizeRégler le viewport (mobile, tablette, desktop)
browser_take_screenshotCapturer le rendu pour critique
browser_snapshotRécupérer l'arbre d'accessibilité (alternative texte au screenshot)
browser_evaluateExécuter du JS dans la page, dont axe-core pour l'a11y
browser_console_messagesLire les erreurs console qui faussent le rendu

Pour le détail de chaque MCP et leur configuration, voir la section MCP et créer son premier workflow MCP.

Cas d'usage avancés

Multi-viewport systématique. Une carte qui passe bien en desktop déborde souvent en 375px. Capture toujours les deux. Le mobile révèle les hiérarchies typographiques trop serrées et les paddings qui ne respirent plus.

Contrôle a11y au runtime. Le screenshot ne dit pas tout : un contraste limite passe à l'œil mais échoue à axe-core. Lancer axe.run() via browser_evaluate attrape ces violations avant la PR. C'est un complément, pas un remplacement de la critique visuelle.

Captures de régression. Sur le projet The Claude Codex, les captures Playwright alimentent aussi la régression visuelle (seuil de tolérance bas). Le même outil sert donc à designer et à verrouiller le rendu dans le temps.

Limitations

  • Le screenshot n'est pas le navigateur de l'utilisateur. Polices système, échelle d'affichage, extensions : Playwright capture un environnement contrôlé, pas le poste réel d'un visiteur.
  • L'a11y automatique attrape une partie des problèmes seulement. axe-core ne juge ni la pertinence d'un texte alternatif, ni la logique de navigation au clavier. La critique humaine reste nécessaire.
  • Surface d'attaque MCP. Donner à un agent un navigateur pilotable a des implications de sécurité. Avant de l'utiliser sur des pages sensibles ou authentifiées, lis la sécurité des MCP.
  • Versions qui bougent. L'API du MCP évolue vite (v0.0.75 au 2026-06-03). Un nom d'outil peut changer entre deux versions ; vérifie la liste à jour sur le repo officiel.

Prochaines étapes