Analyzes a Stitch project's screens and synthesizes a natural-language DESIGN.md — visual atmosphere, color palette with hex values, typography rules, and Stitch-ready prompt snippets. Use this before stitch-loop or any multi-page build to establish design consistency.
Scanned 5/27/2026
Install via CLI
openskills install gabelul/stitch-kit---
name: stitch-design-md
description: Analyzes a Stitch project's screens and synthesizes a natural-language DESIGN.md — visual atmosphere, color palette with hex values, typography rules, and Stitch-ready prompt snippets. Use this before stitch-loop or any multi-page build to establish design consistency.
allowed-tools:
- "stitch*:*"
- "Read"
- "Write"
---
# Stitch → DESIGN.md
**Constraint:** Only use this skill when the user explicitly mentions "Stitch" or when preparing design system documentation for Stitch generation.
You are an expert **Design Systems Lead**. Your job is to analyze Stitch project assets and synthesize a **Semantic Design System** into a file named `DESIGN.md` — written in natural language, not CSS.
## When to use this vs. stitch-design-system
| Skill | What it produces | Use it for |
|-------|-----------------|-----------|
| `stitch-design-md` | Natural-language `DESIGN.md` | Feeding back into Stitch prompts; multi-page visual consistency; design docs |
| `stitch-design-system` | `design-tokens.css`, `tailwind-theme.css`, `DESIGN.md` | Code-level theming for Next.js, Svelte, React, HTML output |
Use `stitch-design-md` first if you're building more Stitch screens. Use `stitch-design-system` when you're converting to code.
## Prerequisites
- Stitch MCP Server configured
- A Stitch project with at least one designed screen
---
## Step 1: Retrieve the design
### If the user provides a Stitch URL
If the user pastes a Stitch design URL like `https://stitch.withgoogle.com/projects/3492931393329678076?node-id=375b1aadc9cb45209bee8ad4f69af450`:
1. Parse the URL:
- `projectId` = segment after `/projects/` and before `?` (e.g. `3492931393329678076`)
- `screenId` = query param `node-id` (e.g. `375b1aadc9cb45209bee8ad4f69af450`)
2. Call `[prefix]:get_screen` with those IDs
3. Skip ahead to Step 2
### If project/screen IDs are unknown
1. Run `list_tools` → find the Stitch MCP prefix
2. Call `[prefix]:list_projects` with `filter: "view=owned"` → select project by title → extract numeric ID
3. Call `[prefix]:list_screens` with `projects/[projectId]` → pick the representative screen
4. Call `[prefix]:get_screen` with numeric `projectId` and `screenId`
5. Call `[prefix]:get_project` with `projects/[projectId]` → get full `designTheme` including:
- Core: `colorMode`, `customColor`, `colorVariant`, `roundness`, `spacingScale`
- Fonts: `headlineFont`, `bodyFont`, `labelFont`
- Colors: `namedColors` (40+ semantic tokens), override colors
- Documentation: `designMd` (auto-generated design system — if present, use as foundation for DESIGN.md)
- Backgrounds: `backgroundLight`, `backgroundDark`
### Download the assets
```bash
# Download the HTML for color and Tailwind class analysis
bash scripts/fetch-stitch.sh "[htmlCode.downloadUrl]" "temp/source.html"
```
Parse the HTML for:
- Tailwind utility classes (colors, typography, spacing, shadows)
- Inline `tailwind.config` block (custom tokens)
- CSS variables
---
## Step 2: Analyze the design
Work through these layers systematically:
### 2.1 Project identity
- Project title and numeric ID (from `name` field)
- `deviceType` (MOBILE / DESKTOP / TABLET / AGNOSTIC)
- `designTheme.headlineFont`, `designTheme.bodyFont`, `designTheme.labelFont` (font roles)
- `designTheme.roundness`, `designTheme.colorMode`, `designTheme.colorVariant`
- `designTheme.spacingScale` (0=minimal, 1=compact, 2=normal, 3=spacious)
### 2.2 Visual atmosphere
If `designTheme.description` exists, use it as the starting point. If `designTheme.designMd` exists, it contains a full design system document — extract the creative direction, do's/don'ts, and component philosophy from it.
Then describe the aesthetic in 2–3 sentences. Go beyond generic adjectives — what does it feel like? What editorial or product category does it evoke?
Examples:
- "Sophisticated minimalist sanctuary — gallery-like spaciousness, photography-first, Scandinavian calm"
- "High-density productivity tool — information-first, sharp edges, focused contrast"
- "Warm artisanal brand — handcrafted feel, organic textures, generous breathing room"
### 2.3 Color palette
**If `namedColors` is available from `get_project`:** Use it as the authoritative color source. It provides 40+ semantic tokens (primary, secondary, tertiary, surface hierarchy, error states, inverse variants). Map these directly to palette documentation instead of guessing from HTML.
**If `backgroundLight`/`backgroundDark` are available:** Use them as the canonical background colors for light/dark modes.
For each key color, write:
```
[Descriptive name] ([hex]) — [functional role]
```
Example:
```
Deep Muted Teal-Navy (#294056) — Primary actions, links, active states
Warm Barely-There Cream (#FCFAFA) — Page background
Charcoal Near-Black (#2C2C2C) — Headlines and product names
Soft Warm Gray (#6B6B6B) — Body copy and metadata
```
Aim for 4–6 colors. Include light AND dark mode backgrounds if both present.
### 2.4 Typography
- Font family name (from `designTheme.font` or Tailwind class)
- Weight scale (what's used for display, section headers, body, labels)
- Any notable letter-spacing, line-height, or size conventions
### 2.5 Shape and geometry
Translate Tailwind classes to descriptive language:
- `rounded-full` → "Pill-shaped"
- `rounded-lg` (12px) → "Gently rounded corners"
- `rounded-md` (8px) → "Subtly rounded corners"
- `rounded-none` → "Sharp, squared-off edges"
### 2.6 Depth and elevation
Describe shadow presence and style:
- `shadow-none` → "Flat, no shadow"
- `shadow-sm` → "Whisper-soft diffused shadow"
- `shadow-lg` → "Prominent floating elevation"
### 2.7 Layout principles
- Max content width, grid columns, breakpoint behavior
- Base spacing unit (4px / 8px system)
- Section margins and padding patterns
- Touch target sizes (if mobile)
---
## Step 3: Write DESIGN.md
Use this exact structure:
```markdown
# Design System: [Project Title]
**Project ID:** [numeric ID]
**Device:** [MOBILE / DESKTOP / TABLET / AGNOSTIC]
## 1. Visual Theme & Atmosphere
[2–3 sentences describing the overall aesthetic and mood]
## 2. Color Palette & Roles
- **[Descriptive Name]** ([#hex]) — [Functional role]
- **[Descriptive Name]** ([#hex]) — [Functional role]
[...4–6 colors total]
## 3. Typography Rules
**Primary Font:** [Name] — [One-line character description]
- **Display (H1):** [weight], [size range]
- **Section (H2):** [weight], [size range]
- **Body:** [weight], line-height [value], [size]
- **Labels/Captions:** [weight], [size]
## 4. Component Stylings
- **Buttons:** [shape (Xpx radius)], [color], [padding]; hover [behavior]
- **Cards/Containers:** [roundness (Xpx)], [background], [shadow]; hover [behavior]
- **Inputs/Forms:** [border style], [background], [roundness], [focus behavior]
## 5. Layout Principles
- Max content width: [value]; [grid description]; [column behavior at breakpoints]
- Base spacing unit: [4px/8px]; section margins [range]; touch targets [size]
## 6. Design System Notes for Stitch Generation
[This section is copy-paste ready for new Stitch prompts]
When creating new screens:
- **Atmosphere:** "[Quote the atmosphere description from Section 1]"
- **Colors:** Always use descriptive name + hex (e.g. "[Name] ([#hex])")
- **Shape:** "[Describe buttons and cards using the language from Section 4]"
- **Spacing:** "[Describe the whitespace/density philosophy]"
- **Font:** [Font name] — [one-line descriptor]
```
---
## Step 4: Integration
Tell the user what to do with it:
```
## DESIGN.md created
Saved to: ./DESIGN.md
**How to use it:**
1. **More Stitch screens:** Copy Section 6 into the DESIGN SYSTEM block of your next Stitch prompt.
This keeps every new screen visually consistent with your existing design.
2. **Multi-page build with stitch-loop:** Include Section 6 in every `next-prompt.md` baton file.
3. **Code conversion:** Hand off to `stitch-design-system` when you're ready to generate
`design-tokens.css` and `tailwind-theme.css` for your framework.
```
---
## Best practices
- **Descriptive over technical:** "Ocean-deep Cerulean (#0077B6)" not just "blue"
- **Functional roles matter:** Don't just name the color — say what it does
- **Section 6 is the payoff:** This is the copy-paste block that makes every future screen consistent
- **Be precise:** Exact hex codes always. Vague approximations ("kind of warm beige") are useless
## Common pitfalls
- Leaving `rounded-xl` in the doc instead of translating to "generously rounded corners (12px)"
- Listing colors without functional roles
- Skipping the font weight scale (just saying "Manrope" doesn't tell you when to use 400 vs 600)
- Writing Section 6 without the actual hex codes — useless for Stitch
---
## References
- `examples/usage.md` — Worked examples
- `examples/DESIGN.md` — Complete sample output for a furniture e-commerce site
- `docs/color-prompt-guide.md` — 8 ready-to-use color palettes for inspiration
- `scripts/fetch-stitch.sh` — Reliable HTML downloader for GCS URLs
No comments yet. Be the first to comment!