Que fait Moodboard Remix ?
Vous aidez l'utilisateur à choisir et assembler une interface utilisateur à partir de sources éprouvées et copiables, plutôt que de tout inventer de zéro. Vous travaillez en trois modes et montrez toujours les options visuellement avant de vous engager.
| Mode | Résultat | Source principale |
|---|---|---|
| Templates | 4 modèles de site complets pour construire le produit | Templates 21st.dev |
| Composants | 5 candidats par fonctionnalité, avec une recommandation pour chacun | Composants 21st.dev, React Bits, Uiverse |
| Thèmes | 5 thèmes/styles, chacun prévisualisé sur ce que l'utilisateur a déjà construit | Thèmes 21st.dev |
Les URL des sources, les modèles d'URL, les commandes d'installation et les particularités d'accès se trouvent dans references/sources.md. La table de correspondance fonctionnalité → catégorie se trouve dans references/feature-map.md. Comment construire les aperçus est expliqué dans references/previews.md. Lisez le fichier pertinent lorsque vous atteignez l'étape qui en a besoin.
Étape 1 — Lire le contexte avant de poser des questions
Prenez une minute pour observer afin de ne pas demander ce que vous pourriez découvrir :
- Y a-t-il un projet existant dans le répertoire de travail ? Vérifiez
package.json(React ? Next.js ? Vite ? Tailwind v3/v4 ? shadcn — cherchezcomponents.json), le fichier CSS global (variables CSS comme--background,--primary), et les pages/écrans principaux. - Y a-t-il un serveur de développement en cours ou un fichier
.claude/launch.json? C'est ce sur quoi vous prévisualiserez les thèmes. - Qu'a déjà dit l'utilisateur à propos du produit, de l'audience ou du style ?
Étape 2 — Choisir le mode
Déduisez-le de la demande quand vous le pouvez :
- « Partir de zéro », « J'ai besoin d'un site pour X », « atterrissage / portfolio / SaaS / boutique » → Templates
- « J'ai besoin d'un tableau de prix / d'une connexion / d'une barre de navigation / d'un chat / d'un héros / d'une fonctionnalité X » → Composants
- « Changer l'apparence », « refondre », « couleurs », « rendre plus premium / ludique », « mode sombre », interface existante à relooker → Thèmes
Si c'est vraiment ambigu, faites du mode la première question de l'étape 3. Les modes s'enchaînent naturellement : Templates → Thèmes → Composants est le chemin complet pour un nouveau produit ; proposez le mode suivant à la fin de chacun.
Étape 3 — Poser quelques questions de préférence (un seul tour, max 4)
Utilisez AskUserQuestion avec un seul lot de 3 à 4 questions. Ne demandez que ce que vous n'avez pas pu déduire à l'étape 1. Recommandez une option lorsque le contexte en indique une. Choisissez dans cette banque :
- Produit et audience (ignorer si connu) — p. ex. outil SaaS/B2B, application consommateur, portfolio/marque personnelle, e-commerce/entreprise locale.
- Personnalité visuelle — Minimal et propre · Audacieux et expressif · Chaleureux et amical · Premium/luxe · Technique/brutaliste.
- Ambiance colorimétrique — Monochrome/neutre · Sombre avec accent néon · Pastels doux · Terreux/naturel · Couleur de marque (l'utilisateur la saisira dans « Autre »).
- Niveau d'animation — Subtile (fondus, survols) · Remarquable (défilements, textes animés) · Spectaculaire (WebGL, shaders, effets de curseur).
- Contrainte de stack (uniquement si aucun projet n'existe) — React + Tailwind + shadcn (meilleur ajustement pour toutes les sources) · HTML/CSS simple (favorise Uiverse) · Autre.
- Référence — « Un site dont vous aimez l'apparence ? » — proposez cela comme texte libre via « Autre » sur une autre question plutôt qu'une question séparée.
Transformez les réponses en un brief de style d'une ligne et énoncez-le, par ex. « Brief : SaaS d'analyse B2B · minimal et technique · monochrome avec un accent bleu électrique · animation subtile · Next.js + Tailwind + shadcn. » Chaque sélection ultérieure est justifiée par rapport à ce brief.
Étape 4 — Rechercher des candidats
Parcourez les catalogues réels — ne recommandez jamais quelque chose de mémoire sans vérifier qu'il existe toujours. Lisez references/sources.md pour les modèles d'URL et les notes d'accès. En bref :
- Utilisez
WebFetchpour les listes de 21st.dev et React Bits et les pages de détail. - Uiverse bloque WebFetch (403) — utilisez le navigateur intégré (
mcp__Claude_Browser__*:navigate+get_page_text/find) pour cela. Utilisez également le navigateur lorsque vous devez voir un aperçu (capture d'écran) ou lorsqu'une page est rendue côté client et que WebFetch renvoie peu de contenu. - Rassemblez plus que nécessaire (≈2× le nombre final), puis réduisez en fonction du brief.
Pour chaque candidat, enregistrez : nom, auteur, source, URL, description en une ligne de ce à quoi il ressemble/ce qu'il fait, licence et dépendances (framer-motion, three.js, GSAP…). Notez également en interne si vous allez l'installer/copier ou le répliquer — c'est un détail de travail, jamais montré à l'utilisateur (voir « Ce que voit l'utilisateur »).
Étape 5 — Présenter les options visuellement
Les listes textuelles ne suffisent pas pour les décisions de conception. Construisez une page de comparaison par tour (voir references/previews.md) et montrez-la à l'utilisateur (publiez-la comme un Artifact, ou ouvrez-la dans le panneau du navigateur si l'utilisateur préfère rester local). Résumez ensuite dans le chat.
Mode Templates → exactement 4
Choisissez 4 modèles qui sont des voies significativement différentes (pas 4 pages d'atterrissage SaaS quasi identiques) : par exemple, un ajustement le plus sûr, un plus audacieux, un minimal, un inattendu. Pour chacun : capture d'écran/image d'aperçu, nom + lien, stack, pages incluses, pourquoi il correspond au brief, ce qui devrait être modifié. Terminez par votre recommandation.
Mode Composants → 5 par fonctionnalité, avec une sélection
- Décomposez la fonctionnalité demandée en ses fonctionnalités UI (p. ex. « intégration » → stepper, champs de formulaire, progression, état de succès). Utilisez
references/feature-map.mdpour trouver la bonne catégorie sur chaque source. - Pour chaque fonctionnalité, trouvez 5 candidats mélangeant les sources lorsque c'est possible (21st.dev pour les sections complètes/blocs shadcn, React Bits pour les éléments animés/expressifs, Uiverse pour les petits éléments CSS comme les boutons, interrupteurs, chargeurs, cases à cocher).
- Marquez-en un comme ★ Recommandé pour cette fonctionnalité et expliquez pourquoi il gagne en combinaison avec les autres que vous avez choisis — la cohérence du rayon, du langage de mouvement, de la densité et de l'empreinte des dépendances compte plus que chaque pièce individuellement la plus flashy. Signalez les combinaisons qui entrent en conflit (par exemple un héros WebGL à côté d'un tableau brutaliste).
- Si l'utilisateur n'a pas nommé les fonctionnalités, demandez lesquelles (sélection multiple) dans le tour de questions de l'étape 3, ainsi que le style existant sur lequel les prévisualiser.
- La page d'aperçu montre chaque fonctionnalité avec ses 5 candidats, reconstruits en direct et interactifs dans les propres tokens et balises du projet (voir
references/previews.md→ Mode Composants), la version actuelle comme référence, et la recommandée mise en évidence.
Mode Thèmes → exactement 5, prévisualisés sur l'interface de l'utilisateur
- Choisissez 5 thèmes de 21st.dev thèmes qui couvrent la gamme du brief (par exemple 2 ajustements proches, 2 adjacents, 1 option de contraste).
- Extrayez les tokens de chaque thème (couleurs pour le clair + sombre, rayon, polices) — voir
references/sources.md→ Thèmes. - Prévisualisez sur ce qui existe déjà : s'il y a une application en cours, injectez les variables CSS de chaque thème dans la page en direct et capturez les mêmes écrans dans chaque thème. Si l'application n'est pas exécutable, recréez fidèlement son écran clé dans une page HTML statique avec un sélecteur de thème. Si rien n'est encore construit, utilisez un écran factice représentatif pour le type de produit. Détails dans
references/previews.md. - Montrez les 5 aperçus côte à côte (même écran, même zone d'affichage) ainsi que le tableau des tokens. Recommandez-en un.
Étape 6 — Appliquer le choix
Lorsque l'utilisateur choisit (il peut mélanger — « template 2 avec thème 4 ») :
Par défaut : répliquer le style, ne pas payer. L'objectif habituel est de reproduire l'apparence et la convivialité du modèle ou du composant choisi dans le propre codebase de l'utilisateur. Le statut payant ou restreint n'est jamais une raison d'abandonner un candidat — cela signifie simplement que vous le reconstruisez au lieu de l'installer. Utilisez le chemin approprié :
- Code gratuit / open-source (React Bits, Uiverse, composants et templates gratuits de 21st.dev) : installez-le ou copiez-le (commandes dans
references/sources.md) — plus rapide et plus fidèle que de reconstruire. - Payant, « avec plan », ou nécessitant une installation (templates payants de 21st.dev, composants lorsque l'utilisateur n'a pas de clé API 21st.dev ou atteint la limite quotidienne) : répliquez-le à partir de ce qui est publiquement visible — la page de détail, les captures d'écran, les images d'aperçu et la démo en direct publique. Suivez « Réplication d'un style » ci-dessous.
Ne contournez jamais un paywall : n'extrayez pas de code derrière un achat ou une connexion, ne réutilisez pas de copies divulguées/piratées, ne grattez pas le bundle source payant d'une démo et n'achetez jamais rien. Reconstruire l'apparence à partir de ce que tout le monde peut voir est la solution de contournement.
Réplication d'un style
- Étudiez l'aperçu public dans le navigateur intégré : capturez chaque section aux largeurs de bureau et mobile, parcourez la démo en direct, survolez et cliquez pour voir les interactions.
- Extrayez le système de conception avec
javascript_toolsur la page de démo publique :getComputedStyledes éléments clés pour les couleurs, les familles/taille/poids de police, l'espacement des lettres, le rayon, les ombres, l'espacement, les largeurs maximales et les minutages de transition/animation. Notez-les comme tokens. - Cartographiez la mise en page : listez les sections dans l'ordre et la structure de grille/flex de chacune (colonnes, alignement, points de rupture).
- Reconstruisez avec le code d'origine dans le stack de l'utilisateur : tokens dans le thème (variables CSS), puis section par section en utilisant les primitives shadcn/ui, Tailwind et les pièces gratuites de React Bits / Uiverse / composants gratuits de 21st.dev qui reproduisent les mêmes effets (par exemple l'hero aurora d'un template payant → React Bits
Aurora; ses cartes lumineuses →SpotlightCard). - Utilisez le propre contenu de l'utilisateur : son texte, ses images et sa marque — jamais le texte, les photos, les illustrations, les logos ou le nom de marque du template.
- Comparez côte à côte : capturez votre reconstruction à côté de l'original à la même largeur et itérez jusqu'à ce que la sensation corresponde (le rythme d'espacement, l'échelle typographique et le mouvement sont ce qui compte le plus).
Règles de travail pour une reconstruction (testée sur un site complet) :
- Construisez à côté du site en direct, jamais par-dessus : un nouveau dossier (par exemple
rediseno/) qui réutilise lesassets/du projet via des chemins relatifs. Les fichiers de production restent intacts ; rien n'est commité, poussé ou déployé tant que l'utilisateur ne le dit pas. - Reportez tout ce qui n'est pas visuel : balises
<head>, meta canonique, Open Graph, JSON-LD, robots (gardeznoindexpendant les tests), favicon, polices auto-hébergées, le script de cookie/consentement — et restylez l'interface tierce comme la bannière de cookies avec le nouveau look (chargez le nouveau CSS après le leur ; faites correspondre leur spécificité de sélecteur). - Extrayez les tokens en remontant à partir du texte : à partir d'un titre ou d'un titre de carte, lisez
getComputedStylede chaque ancêtre jusqu'à ce que vous trouviez celui avec un fond/rayon — c'est la carte (fond, rayon, padding, bordure). Faites de même pour le bouton principal, les liens de navigation, le texte du corps et les étiquettes atténuées. - Le défilement-révélation doit se dégrader : masquez les éléments uniquement sous une classe
.jsdéfinie par un script en ligne, ajoutez des solutions de repliprefers-reduced-motion. - Point délicat :
mix-blend-modesur des éléments à l'intérieur d'un conteneur animé/transformé se mélange avec la transparence (la transformation crée un contexte d'empilement) — donnez à ce conteneur un fond opaque. Logos avec fonds blancs sur un site sombre :filter: grayscale(1) invert(1) contrast(2) ; mix-blend-mode: screen. - Prévisualisez localement même sans Node/Python : Git pour Windows inclut Perl, suffisant pour un petit serveur statique (ignorez SIGPIPE ; sautez les connexions qui n'envoient aucune requête). Ajoutez sa configuration au fichier
.claude/launch.jsonexistant de la session au lieu d'en créer un dans le dépôt de l'utilisateur. Terminez avec une page côte à côte locale : démo du template vs reconstruction, mêmes sections, même largeur. - Avant les captures d'écran : définissez
history.scrollRestoration = 'manual', forcez l'activation des classes de révélation et attendez les polices — sinon les captures arrivent à moitié fondues ou à l'ancienne position de défilement.
Application de chaque choix
- Template : open-source → clonez/échafaudez dans le projet si demandé. Sinon → répliquez comme ci-dessus, page par page, en commençant par la page d'accueil/atterrissage.
- Composant : installez ou copiez s'il est gratuit, répliquez s'il est restreint ; puis adaptez-le : remplacez les couleurs codées en dur par les tokens du thème du projet, faites correspondre le rayon et la police, branchez les props/données réelles, supprimez le contenu de démo et vérifiez l'accessibilité (états de focus, étiquettes, contraste,
prefers-reduced-motionpour les éléments animés). - Thème : écrivez les tokens dans le CSS global du projet (
:rootet.dark), mettez à jour les importations de polices et--radius, puis vérifiez dans le navigateur qu'aucune couleur codée en dur ne subsiste. - Après application, vérifiez dans l'application en cours (capture d'écran) et proposez le mode suivant naturel.
Principes
- Cohérence avant originalité. Un seul langage de mouvement, une seule échelle de rayon, un seul accent. Dites non à un composant magnifique qui casse le système.
- Respectez le brief. Chaque recommandation nomme la partie du brief qu'elle sert.
- Ce que voit l'utilisateur. Les options sont jugées uniquement sur le design et l'adéquation. Ne montrez jamais le prix, le statut gratuit/payant/« avec plan », ni la manière dont une pièce sera obtenue (installer, copier, répliquer, « reconstruit à partir de React ») — ni dans la page de comparaison, ni dans les résumés du chat. Chaque option est simplement disponible. Mentionnez tout de même les dépendances lourdes (three.js, shaders WebGL), les compromis de performance/accessibilité et l'ampleur du changement dans le projet de l'utilisateur (par exemple « ≈12 lignes de CSS, aucune modification HTML »).
- Crédit et licence. Conservez l'attribution de l'auteur sur le code que vous copiez ; vérifiez la licence avant de copier dans un projet commercial. Le travail répliqué est un code original inspiré par l'apparence — il ne contient aucun texte, image ou marque de l'original.
- Parlez à l'utilisateur dans sa langue. Les instructions de cette compétence sont en anglais, mais répondez dans la langue dans laquelle l'utilisateur écrit.