Synthèse automatique
Extrait le design system d'un site web dans un fichier DESIGN.md au format Google Stitch, afin que les agents IA génèrent une interface fidèle à la marque.
Points forts
- Attribue des rôles sémantiques aux couleurs (fond, texte, accent, bordure) et détaille la typographie par rôle (titres, corps, boutons) avec tailles, graisses et interlignages
- Plusieurs formats de sortie : DESIGN.md, variables CSS, bloc Tailwind v4 @theme, JSON brut ou guide HTML partageable
- Fusionne les tokens de plusieurs URLs et propose des options pour le mode sombre (--dark) et l'identité visuelle au-delà du CSS (--vision)
Limites
- N'analyse qu'une seule page à la fois : les tokens viennent de la page fournie, pas du site entier
- L'attribution des rôles de couleur reste heuristique (fréquence d'usage et luminance), à vérifier manuellement
- Nécessite une URL publique : les pages derrière une authentification ou un anti-bot persistant échouent, et --vision exige une clé GEMINI_API_KEY
À utiliser au démarrage d'un projet frontend qui doit reprendre l'identité visuelle d'un site existant.
À éviter si les tokens de design existent déjà dans Figma ou dans le code, ou si le site cible est privé ou protégé par un anti-bot.
Analyse de sécurité
PrudenceThe skill is not destructive or exfiltrating by design, but it executes a remote package through npx and may use an API key, so it carries meaningful supply-chain and data-sharing risk. The declared tool scope is narrow and the documented behavior is legitimate, making this a caution rather than risky.
- •Runs a third-party npm package via `npx brandmd`, which executes remote code with network and filesystem access; package provenance/version is not pinned.
- •The optional `--vision` mode uses `GEMINI_API_KEY`; users should be aware that enabling it sends page/design context to a third-party Gemini API endpoint.
- •The skill fetches arbitrary user-supplied URLs and waits on Cloudflare JS challenges, so it should only be used on sites the user is authorized to inspect.
Exemples
Extract the design system from https://stripe.com and write it to DESIGN.md, then build a pricing page that matches that brand.Run npx brandmd https://linear.app --dark --css so I get dark-mode tokens as CSS custom properties.Merge the tokens from our homepage, pricing page and blog into one Tailwind v4 @theme block.name: brandmd description: Extract a website's design system into a DESIGN.md file. Use when starting a new frontend project, rebuilding a site, or when the user wants AI-generated UI to match an existing brand. allowed-tools:
- "Bash(npx brandmd *)"
- "Read"
- "Write"
brandmd
You extract a website's design system into a DESIGN.md file that AI coding agents use for on-brand UI generation.
When to use
- User says "match this website's design" or "use the same style as [url]"
- Starting a new frontend project and the user has an existing site
- User wants design consistency across AI-generated components
- User asks to "extract design tokens" or "get the design system" from a URL
How to run
npx brandmd <url> -o DESIGN.md
Pass the most design-rich page (usually the homepage) for best results. The tool extracts from the visible viewport and lazy-loaded content on that single page.
What it extracts
The output follows Google Stitch's DESIGN.md format. Sections 1-5 are always present; 6-7 are conditional on flags.
- Visual Theme & Atmosphere - mood, shape language, depth
- Color Palette & Roles - colors with semantic roles (background, text, accent, border)
- Typography Rules - Primary font (role-aware: display > heading > body, skipping mono/fallback/icon fonts), per-role font breakdown (Headings, Display, Body, Buttons), all detected fonts with frequencies, size scale, weights, line heights, letter spacing
- Component Stylings - buttons, cards, inputs with radii, colors, shadows
- Layout Principles - spacing scale, base grid unit, border radii
- Dark Theme Overrides (with
--dark) - palette + atmosphere for dark mode - Visual Identity Beyond CSS (with
--vision) - illustration style, photography mood, copywriting voice, microcopy patterns. RequiresGEMINI_API_KEY(free tier: aistudio.google.com/apikey).
After extraction
- Read the generated DESIGN.md to confirm it looks right
- Summarize the key tokens for the user (primary colors, fonts, spacing scale)
- Use these tokens in all subsequent UI code generation
- Reference specific hex codes, font names, and spacing values from DESIGN.md when writing CSS/Tailwind/styled-components
Options
npx brandmd <url>- DESIGN.md to stdoutnpx brandmd <url> -o DESIGN.md- DESIGN.md to filenpx brandmd <url> --dark- also extract dark-mode palette (Section 6)npx brandmd <url> --vision- also extract illustration / photography / voice / microcopy via Gemini (Section 7). NeedsGEMINI_API_KEYenv var.npx brandmd <url> --css- CSS custom properties output instead of DESIGN.mdnpx brandmd <url> --tailwind- Tailwind v4@themeblock instead of DESIGN.mdnpx brandmd <url> --html- HTML brand guide (visual, shareable)npx brandmd <url> --json- raw tokens as JSON (programmatic use)- Multiple URLs merge tokens:
npx brandmd <url1> <url2> <url3>
Limitations
- Extracts from a single page, not the entire site (multi-URL merges token frequencies but the vision screenshot is the first page only)
- Can't read Figma tokens or design tool files
- Color role assignment is heuristic (based on usage frequency and luminance)
- Requires a publicly accessible URL (no auth-gated pages)
- Cloudflare-protected sites: brandmd waits up to 20s for the JS challenge to auto-resolve (
--cf-wait-msto tune). If the challenge persists, you get a clear error rather than garbage tokens. Hard-blocked sites (openai.com, perplexity.ai, discord.com, etc.) are correctly flagged as bot-protected and not bypassed.
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/extract-design-system-ms2s7bi2/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/extract-design-system-ms2s7bi2' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/extract-design-system-ms2s7bi2/download' --output '.skill-downloads/extract-design-system-ms2s7bi2/SKILL.md.part' && mv '.skill-downloads/extract-design-system-ms2s7bi2/SKILL.md.part' '.skill-downloads/extract-design-system-ms2s7bi2/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/extract-design-system-ms2s7bi2/SKILL.md' && test -s '.skill-downloads/extract-design-system-ms2s7bi2/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/brandmd' && cp -R '.skill-downloads/extract-design-system-ms2s7bi2' '.claude/skills/brandmd'Cursor
test -f '.skill-downloads/extract-design-system-ms2s7bi2/SKILL.md' && test -s '.skill-downloads/extract-design-system-ms2s7bi2/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/brandmd' && cp -R '.skill-downloads/extract-design-system-ms2s7bi2' '.cursor/skills/brandmd'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/extract-design-system-ms2s7bi2'openskills read 'extract-design-system-ms2s7bi2'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/extract-design-system-ms2s7bi2/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.