Aller au guide d’utilisation
stitch::extract-static-htmlpar Google Labs

Stitch Extract Static HTML Skill.

Un skill Claude Code et Codex pour le design UI : extrait des snapshots HTML statiques autonomes avec CSS et images intégrés.

  • Web et UI
  • HTML
google-labs-code/stitch-skills · plugins/stitch-design/skills/extract-static-html/SKILL.mdSKILL.md
--- name: stitch::extract-static-html description: - Extract self-contained static HTML from a built web application or React components by inlining CSS and images. Use this skill whenever you need to capture a specific UI state, share a static version of a page, or prepare assets for Stitch upload, even if the user just asks to 'save the HTML' or 'mock the view'. --- ## Which Strategy to Use ## Strategy A: Puppeteer Snapshot (Recommended) ## Strategy B: Browser Subagent Capture ## Appendix: Static Fallback (MockPage.jsx)
Front matter et titres de section lus depuis le fichier source le 14/09/2026 · 10 732 caractères au total

01 Ce qu'il fait

Ce que fait le skill stitch::extract-static-html dans Claude Code et Codex

Résumé, workflow et sorties, tous lus dans le SKILL.md du skill.

D'après le SKILL.mdLu le 14-09-2026 · pas une exécution enregistrée

Dans les termes du Skill

Produit un fichier HTML autonome unique à partir d'une application web en cours d'exécution en lançant Chrome headless via Puppeteer, en capturant le DOM entièrement rendu, en intégrant les règles CSSOM et en convertissant les images en URI de données base64. Il fonctionne avec n'importe quel framework — React/Vite, Next.js, Angular, Vue/Nuxt, Svelte, Storybook — sans MockPage.jsx requis.

Le skill oblige l'agent à demander laquelle des deux stratégies de capture utiliser avant de poursuivre, en recommandant l'instantané Puppeteer, puis à s'arrêter pour confirmation une fois le serveur local démarré. Les flags couvrent le temps d'attente, le viewport, le mode sombre, la suppression des éléments fixes, l'intégration du canvas et un script d'authentification pour les pages protégées par connexion. Une annexe documentée aplatit les composants React en un MockPage.jsx manuel lorsque l'application ne peut pas s'exécuter localement.

Ce qu'il produit

  • Un fichier HTML autonome par route capturée, avec les styles intégrés et les images encodées en base64.
  • Un fichier par route lorsque vous capturez plusieurs vues, par exemple l'accueil, les tarifs et le tableau de bord.
  • Des graphiques sérialisés à partir d'éléments canvas en images base64 lorsque le flag canvas est utilisé.
Voir l'exemple de prompt ↗

Fonctionnement

  1. 01
    Laisser l'utilisateur choisir une stratégie

    Avant toute extraction, l'agent présente la comparaison A/B, recommande la voie Puppeteer et attend un choix explicite.

  2. 02
    Exécuter le script d'instantané par route

    Une commande par URL, écrivant chaque capture dans son propre fichier dans .stitch avec un temps d'attente fixe après l'inactivité du réseau.

  3. 03
    Laisser le script intégrer la page

    Les règles CSSOM, les feuilles de style liées, les images, les sources srcset et les polices d'icônes de même origine sont intégrées dans le fichier afin que rien ne dépende d'un serveur en cours d'exécution.

  4. 04
    Ajuster les flags au framework

    Les temps d'attente et les URL diffèrent selon la stack, par exemple une attente plus longue lorsque le framework hydrate un balisage rendu côté serveur.

  5. 05
    Authentifier les pages protégées

    Un module d'authentification s'exécute dans la session Puppeteer, après quoi le script retourne à l'URL d'origine avec la session en place.

  6. 06
    Se rabattre sur un mock seulement si nécessaire

    Lorsque l'application ne peut pas démarrer du tout, la voie de l'annexe aplatit les composants en un seul fichier JSX au lieu de capturer un rendu réel.

02 Trouvez celui qui vous convient

Quand utiliser le skill stitch::extract-static-html

Utilisez le skill stitch::extract-static-html dans Claude Code ou Codex lorsque le travail concerne ce type de design UI. La portée et les limites ci-dessous sont tirées du fichier propre au skill.

Bon choix

  • Vous devez capturer un état d'interface particulier et remettre à quelqu'un une version statique de la page.
  • Vous préparez des ressources à téléverser dans Stitch.
  • L'application s'exécute localement dans n'importe quel framework et vous préférez ne pas écrire de MockPage.jsx.
  • Vous devez cliquer, remplir ou naviguer avant que la page n'atteigne l'état souhaité.
  • Vous voulez une seule story Storybook plutôt qu'une route d'application entière.

Connaître les limites

  • Les pages volumineuses capturées via le sous-agent du navigateur peuvent être tronquées par la fenêtre de contexte de l'agent.
  • La méthode d'aplatissement manuel est déconseillée dès que l'application peut réellement être démarrée.
  • Les polices externes ne sont pas converties en URI de données, seuls les éléments de même origine et les ressources relatives le sont.
  • Les états d'UI inaccessibles par navigation, comme les écrans d'erreur et les états vides, nécessitent plutôt la route de mock.

Quoi fournir

  • Votre choix de stratégieL'agent ne démarrera pas sans une décision explicite entre l'instantané Puppeteer et le subagent navigateur.
  • L'application exécutée sur localhostUn serveur accessible, par exemple démarré avec le script de développement du projet, car le script récupère les données depuis la page en direct.
  • Un chemin de fichier de sortie--output est requis, il faut donc décider où chaque route capturée aboutit, généralement sous .stitch.
  • Un module d'authentification pour les pages protégéesUn fichier JS/TS dont l'export par défaut est une fonction asynchrone recevant la page Puppeteer, utilisé pour les formulaires de connexion, les jetons ou l'injection de modules.
  • Un environnement Node avec puppeteerLe script d'instantané est exécuté avec npx tsx et nécessite que puppeteer soit résolvable dans cet environnement.

03 Dans le skill

Règles Que le Skill stitch::extract-static-html Donne à Claude Code et Codex

8 instructions concrètes, valeurs par défaut et limites que le SKILL.md fixe pour l'agent — la partie du fichier qui change le résultat.

  1. Ne Jamais Choisir la Stratégie Soi-Même

    L'agent ne doit pas choisir entre Puppeteer et le subagent navigateur à la place de l'utilisateur, ni continuer avant que l'utilisateur ne confirme.

  2. La Stratégie A Est le Défaut Déclaré

    Les options doivent être présentées clairement, avec la Stratégie A recommandée et un court résumé des avantages/inconvénients pour chacune.

  3. Point de Contrôle Avant l'Instantané

    Après avoir démarré le serveur local, l'agent doit s'arrêter et obtenir une confirmation avant d'exécuter le script d'instantané ou de lancer un subagent navigateur.

  4. Arrêter le Serveur de Développement Ensuite

    Un serveur de développement démarré uniquement pour l'extraction doit être arrêté, ou sa tâche en arrière-plan interrompue, une fois la capture terminée.

  5. Attendre 1000 Ms par Défaut

    --wait est de 1000 ms par défaut après l'inactivité réseau et doit être augmenté pour les applications à chargement différé ; --viewport est de 1280x800 par défaut.

  6. Ne Livrer Aucun Script

    La sortie ne comporte aucune balise script ; les blocs de style dev Vite HMR (createHotContext, import.meta.hot) et les overlays de développement sont supprimés.

  7. Les Éléments Fixes Sont Optionnels

    --remove-fixed est à false par défaut et constitue l'option pour retirer les bannières de cookies et les widgets de chat de la capture.

  8. Aplatir Tout pour la Voie du Mock

    Le repli de l'annexe n'est pas une capture en direct : il nécessite d'aplatir manuellement les composants React en un seul fichier JSX.

04 Mettez-le en pratique

Installer stitch::extract-static-html dans Claude Code ou Codex

Une commande npx skills add, puis une première tâche dans votre agent et une checklist pour le résultat.

Ajouter stitch::extract-static-html à Claude Code, Codex ou votre agent

Exécutez-la dans votre projet ; l'installateur demande à quel agent l'ajouter.

Terminal
npx skills add https://github.com/google-labs-code/stitch-skills --skill stitch::extract-static-html

Formulaire CLI générique skills pour plugins/stitch-design/skills/extract-static-html/SKILL.md ; le dépôt peut documenter son propre chemin.

Donnez au skill une première tâche de design UI

Rédigé dans les termes propres du skill ; remplacez les parties entre crochets par votre contenu.

Starter prompt
The app is running at http://localhost:5173. Snapshot the [dashboard] route to .stitch/dashboard.html with --html-class dark and --inline-canvas, and pass --wait 5000 because the ECharts graphs load late. That page sits behind a login guard, so run it with my [auth-myapp.ts] script first.

Source : rédigé à partir du SKILL.md, dans les termes propres du skill.

Vérifiez le premier résultat

Ce que le SKILL.md lui-même présente comme un résultat correct :

  • Arrêtez le serveur de développement et ouvrez le fichier enregistré : si les images sont cassées, l'intégration du srcset n'a pas fonctionné et le repli vers le src intégré compte.
  • Lisez le journal du script pour connaître le nombre d'images intégrées avant de faire confiance au résultat.
  • Si les icônes apparaissent sous forme de texte ou avec une police serif de repli, la capture CSSOM ou l'intégration des @font-face n'a pas eu lieu.
  • Une page claire malgré une demande de mode sombre signifie que le flag html-class était absent de l'exécution.
  • Des graphiques rendus sous forme de boîtes vides signifient que le flag canvas n'a pas été transmis.
  • Sur Next.js, les images optimisées ne s'intègrent que si le serveur de développement est encore actif pendant la capture.

Dans OpenDesign importez stitch::extract-static-html depuis son lien SKILL.md : Plugins → Add → Skill → Import from link, puis sélectionnez-le dans la barre supérieure.

05 Open source, traçable

Source, licence et vérification

D'où proviennent les faits de cette page et quand ils ont été vérifiés pour la dernière fois.

Fichier du skill
plugins/stitch-design/skills/extract-static-html/SKILL.md Somme de contrôle du contenu enregistrée lors de la vérification ; commit 0337446
License
Apache-2.0 D'après LICENSE.
Étoiles du dépôt
8 304 Instantané GitHub pris le 14/09/2026 pour l'ensemble du dépôt google-labs-code/stitch-skills, qui contient 12 skills dans ce catalogue. Il ne s'agit pas d'une note ou d'un compteur d'utilisation pour stitch::extract-static-html.
Vérifié par OpenDesign
2026-09-14 Le fichier source, le chemin, le texte de licence et le nombre d'étoiles ont été vérifiés. Non intégré dans OpenDesign main (vérifié le 2026-08-28) ; aucune exécution en conditions réelles n'a été enregistrée sur cette page.

Dans le SKILL.md

  1. Quelle stratégie utiliserTableau comparatif Puppeteer vs sous-agent navigateur ; l'agent doit obtenir l'approbation de l'utilisateur avant de continuer.
  2. Stratégie A : Snapshot Puppeteer (recommandé)Instantané Chrome headless, HTML autonome, fonctionne avec n'importe quel framework, ne nécessite pas MockPage.jsx.
  3. Flags du scriptValeurs par défaut pour les flags url, output, wait, viewport, html-class, remove-fixed, full-height, title, auth-script et inline-canvas.
  4. Ce qu'il fait automatiquementCapture CSSOM, intégration des feuilles de style et des images, nettoyage du srcset, suppression des scripts et du HMR, résolution des url().
  5. Notes par frameworkTemps d'attente et URL par défaut pour React/Vite, Next.js, Angular, Vue/Nuxt, Svelte, Storybook et SSR.
  6. DépannageTableau symptôme-flag couvrant les images manquantes, les polices d'icônes, le mode sombre, les bannières de cookies, l'authentification et les canvas.
  7. Pages protégées par authentificationÉcriture d'un module d'authentification Puppeteer ; le script renavigue après la connexion vers l'url d'origine.
  8. Stratégie B : capture par sous-agent navigateurLe sous-agent navigue et interagit, puis extrait l'outerHTML ; les grandes pages peuvent être tronquées dans le contexte de l'agent.
  9. Annexe : repli statique (MockPage.jsx)Exécution en dernier recours d'extract_inline_html.ts sur un MockPage.jsx aplati manuellement lorsque l'application ne peut pas s'exécuter.
  10. Règles pour MockPage.jsxInclure la mise en page complète, aplatir les conditions, coder en dur les données, préserver les logos, retirer les éléments flottants.
  11. Post-traitementpost_process.ts intègre les images locales en utilisant le répertoire de l'application comme base-dir.
Description du skill lui-même
« Extraire du HTML statique autonome depuis une application web construite ou des composants React en incorporant le CSS et les images. Utilisez ce skill chaque fois que vous devez capturer un état d'interface spécifique, partager une version statique d'une page ou préparer des ressources pour le téléchargement Stitch, même si l'utilisateur demande simplement de 'sauvegarder le HTML' ou de 'simuler la vue'. »

Description de l'en-tête du SKILL.md. Le fichier complet fait environ 10 732 caractères. Lire le fichier complet sur GitHub.

Stitch Extract Static HTML

Exécuter stitch::extract-static-html sur une tâche de design d'interface réelle.

Téléchargez OpenDesign, importez stitch::extract-static-html depuis son lien SKILL.md, collez le prompt ci-dessus, et lisez le plan avant le résultat.

Terminal
npx skills add https://github.com/google-labs-code/stitch-skills --skill stitch::extract-static-html

OpenDesign Desktop

Un seul design system. Votre marque, cohérente partout

Dans le Vibe Design Workspace complet, appliquez les mêmes règles de marque aux sites, slides, prototypes interactifs, dashboards, images et vidéos HTML. Connectez Codex, Claude Code, Cursor et vos autres agents de code locaux, puis créez gratuitement.

  • Sites, slides, prototypes, dashboards, images et vidéos
  • Plus de 140 design systems et la bibliothèque complète de modèles et skills
  • Codex local et plus de 21 agents de code · Gratuit
Télécharger gratuitement

Disponible sur macOS et Windows