Stitch Design Taste — Semantic Design System Skill
Overview
This skill generates DESIGN.md files optimized for Google Stitch screen generation. It translates battle-tested anti-slop frontend engineering directives into Stitch's native semantic design language — descriptive, natural-language rules paired with precise values that Stitch's AI agent can interpret to produce premium, non-generic interfaces.
The generated DESIGN.md serves as the single source of truth for prompting Stitch to generate new screens that align with a curated, high-agency design language. Stitch interprets design through "Visual Descriptions" supported by specific color values, typography specs, and component behaviors.
Prerequisites
- Access to Google Stitch via labs.google.com/stitch
- Optionally: Stitch MCP Server for programmatic integration with Cursor or Gemini CLI
Mode A: Analyze Existing Stitch Project
To analyze a Stitch project, retrieve screen metadata using the Stitch MCP Server tools:
- Namespace discovery: Run
list_tools to find the Stitch MCP prefix (e.g., mcp_stitch:)
- Project lookup: Call
[prefix]:list_projects with filter: "view=owned" → extract Project ID from name field
- Screen lookup: Call
[prefix]:list_screens with projectId → review screen titles, extract Screen IDs
- Metadata fetch: Call
[prefix]:get_screen with both projectId and screenId
- Returns:
screenshot.downloadUrl, htmlCode.downloadUrl, width, height, deviceType, designTheme
- Asset download: Use
web_fetch to download the HTML code from htmlCode.downloadUrl
- Project metadata: Call
[prefix]:get_project with the full path (projects/{id}) → get designTheme
Then synthesize the extracted design language into a DESIGN.md following the output format below.
Mode B: Generate From Scratch
When no Stitch project exists, generate a DESIGN.md based on:
- User's description of the product, audience, and tone
- Apply the taste rules and anti-patterns below
The Goal
Generate a DESIGN.md file that encodes:
- Visual atmosphere — the mood, density, and design philosophy
- Color calibration — neutrals, accents, and banned patterns with hex codes
- Typographic architecture — font stacks, scale hierarchy, and anti-patterns
- Component behaviors — buttons, cards, inputs with interaction states
- Layout principles — grid systems, spacing philosophy, responsive strategy
- Motion philosophy — animation engine specs, spring physics, perpetual micro-interactions
- Anti-patterns — explicit list of banned AI design clichés
Analysis & Synthesis Instructions
1. Define the Atmosphere
Evaluate the target project's intent. Use evocative adjectives from the taste spectrum:
- Density: "Art Gallery Airy" (1–3) → "Daily App Balanced" (4–7) → "Cockpit Dense" (8–10)
- Variance: "Predictable Symmetric" (1–3) → "Offset Asymmetric" (4–7) → "Artsy Chaotic" (8–10)
- Motion: "Static Restrained" (1–3) → "Fluid CSS" (4–7) → "Cinematic Choreography" (8–10)
Default baseline: Variance 8, Motion 6, Density 4. Adapt dynamically based on user's vibe description.
2. Map the Color Palette
For each color provide: Descriptive Name + Hex Code + Functional Role.
Mandatory constraints:
- Maximum 1 accent color. Saturation below 80%
- The "AI Purple/Blue Neon" aesthetic is strictly BANNED — no purple button glows, no neon gradients
- Use absolute neutral bases (Zinc/Slate) with high-contrast singular accents
- Stick to one palette for the entire output — no warm/cool gray fluctuation
- Never use pure black (
#000000) — use Off-Black, Zinc-950, or Charcoal
3. Establish Typography Rules
- Display/Headlines: Track-tight, controlled scale. Not screaming. Hierarchy through weight and color, not just massive size
- Body: Relaxed leading, max 65 characters per line
- Font Selection:
Inter is BANNED for premium/creative contexts. Force unique character: Geist, Outfit, Cabinet Grotesk, or Satoshi
- Serif Ban: Generic serif fonts (
Times New Roman, Georgia, Garamond, Palatino) are BANNED. If serif is needed, use only distinctive modern serifs: Fraunces, Gambarino, Editorial New, or Instrument Serif. Serif is always BANNED in dashboards or software UIs
- Dashboard Constraint: Use Sans-Serif pairings exclusively (
Geist + Geist Mono or Satoshi + JetBrains Mono)
- High-Density Override: When density exceeds 7, all numbers must use Monospace
4. Define the Hero Section
- Inline Image Typography: Embed small, contextual photos directly between words or letters in the headline. Images sit inline at type-height, rounded, acting as visual punctuation.
- No Overlapping: Text must never overlap images or other text. Every element occupies its own clean spatial zone.
- No Filler Text: "Scroll to explore", "Swipe down", scroll arrow icons, bouncing chevrons are BANNED.
- Asymmetric Structure: Centered Hero layouts BANNED when variance exceeds 4
- CTA Restraint: Maximum one primary CTA. No secondary "Learn more" links
5. Describe Component Stylings
- Buttons: Tactile push feedback on active state. No neon outer glows. No custom mouse cursors
- Cards: Use ONLY when elevation communicates hierarchy. Tint shadows to background hue. For high-density layouts, replace cards with border-top dividers or negative space
- Inputs/Forms: Label above input, helper text optional, error text below. Standard gap spacing
- Loading States: Skeletal loaders matching layout dimensions — no generic circular spinners
- Empty States: Composed compositions indicating how to populate data
- Error States: Clear, inline error reporting
6. Define Layout Principles
- No overlapping elements — every element occupies its own clear spatial zone
- Centered Hero sections are BANNED when variance exceeds 4 — force Split Screen, Left-Aligned, or Asymmetric Whitespace
- The generic "3 equal cards horizontally" feature row is BANNED — use 2-column Zig-Zag, asymmetric grid, or horizontal scroll
- CSS Grid over Flexbox math — never use
calc() percentage hacks
- Contain layouts using max-width constraints (e.g., 1400px centered)
- Full-height sections must use
min-h-[100dvh] — never h-screen (iOS Safari catastrophic jump)
7. Define Responsive Rules
- Mobile-First Collapse (< 768px): All multi-column layouts collapse to single column. No exceptions
- No Horizontal Scroll: Horizontal overflow on mobile is a critical failure
- Typography Scaling: Headlines scale via
clamp(). Body text minimum 1rem/14px
- Touch Targets: All interactive elements minimum
44px tap target
- Image Behavior: Inline typography images stack below headline on mobile
- Navigation: Desktop horizontal nav collapses to clean mobile menu
- Spacing: Vertical section gaps reduce proportionally (
clamp(3rem, 8vw, 6rem))
8. Encode Motion Philosophy
- Spring Physics default:
stiffness: 100, damping: 20 — premium, weighty feel. No linear easing
- Perpetual Micro-Interactions: Every active component should have an infinite loop state (Pulse, Typewriter, Float, Shimmer)
- Staggered Orchestration: Never mount lists instantly — use cascade delays for waterfall reveals
- Performance: Animate exclusively via
transform and opacity. Never animate top, left, width, height. Grain/noise filters on fixed pseudo-elements only
9. List Anti-Patterns (AI Tells)
Encode these as explicit "NEVER DO" rules in the DESIGN.md:
- No emojis anywhere
- No
Inter font
- No generic serif fonts (
Times New Roman, Georgia, Garamond) — distinctive modern serifs only if needed
- No pure black (
#000000)
- No neon/outer glow shadows
- No oversaturated accents
- No excessive gradient text on large headers
- No custom mouse cursors
- No overlapping elements — clean spatial separation always
- No 3-column equal card layouts
- No generic names ("John Doe", "Acme", "Nexus")
- No fake round numbers (
99.99%, 50%)
- No AI copywriting clichés ("Elevate", "Seamless", "Unleash", "Next-Gen")
- No filler UI text: "Scroll to explore", "Swipe down", scroll arrows, bouncing chevrons
- No broken Unsplash links — use
picsum.photos or SVG avatars
- No centered Hero sections (for high-variance projects)
Output Format (DESIGN.md Structure)
# Design System: [Project Title]
## 1. Visual Theme & Atmosphere
(Evocative description of the mood, density, variance, and motion intensity.
Example: "A restrained, gallery-airy interface with confident asymmetric layouts
and fluid spring-physics motion. The atmosphere is clinical yet warm — like a
well-lit architecture studio.")
## 2. Color Palette & Roles
- **Canvas White** (#F9FAFB) — Primary background surface
- **Pure Surface** (#FFFFFF) — Card and container fill
- **Charcoal Ink** (#18181B) — Primary text, Zinc-950 depth
- **Muted Steel** (#71717A) — Secondary text, descriptions, metadata
- **Whisper Border** (rgba(226,232,240,0.5)) — Card borders, 1px structural lines
- **[Accent Name]** (#XXXXXX) — Single accent for CTAs, active states, focus rings
(Max 1 accent. Saturation < 80%. No purple/neon.)
## 3. Typography Rules
- **Display:** [Font Name] — Track-tight, controlled scale, weight-driven hierarchy
- **Body:** [Font Name] — Relaxed leading, 65ch max-width, neutral secondary color
- **Mono:** [Font Name] — For code, metadata, timestamps, high-density numbers
- **Banned:** Inter, generic system fonts for premium contexts. Serif fonts banned in dashboards.
## 4. Component Stylings
* **Buttons:** Flat, no outer glow. Tactile -1px translate on active. Accent fill for primary, ghost/outline for secondary.
* **Cards:** Generously rounded corners (2.5rem). Diffused whisper shadow. Used only when elevation serves hierarchy. High-density: replace with border-top dividers.
* **Inputs:** Label above, error below. Focus ring in accent color. No floating labels.
* **Loaders:** Skeletal shimmer matching exact layout dimensions. No circular spinners.
* **Empty States:** Composed, illustrated compositions — not just "No data" text.
## 5. Layout Principles
(Grid-first responsive architecture. Asymmetric splits for Hero sections.
Strict single-column collapse below 768px. Max-width containment.
No flexbox percentage math. Generous internal padding.)
## 6. Motion & Interaction
(Spring physics for all interactive elements. Staggered cascade reveals.
Perpetual micro-loops on active dashboard components. Hardware-accelerated
transforms only. Isolated Client Components for CPU-heavy animations.)
## 7. Anti-Patterns (Banned)
(Explicit list of forbidden patterns: no emojis, no Inter, no pure black,
no neon glows, no 3-column equal grids, no AI copywriting clichés,
no generic placeholder names, no broken image links.)
Best Practices
- Be Descriptive: "Deep Charcoal Ink (#18181B)" — not just "dark text"
- Be Functional: Explain what each element is used for
- Be Consistent: Same terminology throughout the document
- Be Precise: Include exact hex codes, rem values, pixel values in parentheses
- Be Opinionated: This is not a neutral template — it enforces a specific, premium aesthetic
Common Pitfalls to Avoid
- Using technical jargon without translation ("rounded-xl" instead of "generously rounded corners")
- Omitting hex codes or using only descriptive names
- Forgetting functional roles of design elements
- Being too vague in atmosphere descriptions
- Ignoring the anti-pattern list — these are what make the output premium
- Defaulting to generic "safe" designs instead of enforcing the curated aesthetic
1---2name: design-md3description: Analyze Stitch projects and synthesize a semantic design system into DESIGN.md files. Also generates premium taste-rule-enforced DESIGN.md files from scratch for any project. Triggers on "create DESIGN.md", "generate design system", "stitch design file", "design tokens", "design rules for stitch".4---56# Stitch Design Taste — Semantic Design System Skill78## Overview9This skill generates `DESIGN.md` files optimized for Google Stitch screen generation. It translates battle-tested anti-slop frontend engineering directives into Stitch's native semantic design language — descriptive, natural-language rules paired with precise values that Stitch's AI agent can interpret to produce premium, non-generic interfaces.1011The generated `DESIGN.md` serves as the **single source of truth** for prompting Stitch to generate new screens that align with a curated, high-agency design language. Stitch interprets design through **"Visual Descriptions"** supported by specific color values, typography specs, and component behaviors.1213## Prerequisites14- Access to Google Stitch via [labs.google.com/stitch](https://labs.google.com/stitch)15- Optionally: Stitch MCP Server for programmatic integration with Cursor or Gemini CLI1617## Mode A: Analyze Existing Stitch Project1819To analyze a Stitch project, retrieve screen metadata using the Stitch MCP Server tools:20211. **Namespace discovery**: Run `list_tools` to find the Stitch MCP prefix (e.g., `mcp_stitch:`)222. **Project lookup**: Call `[prefix]:list_projects` with `filter: "view=owned"` → extract Project ID from `name` field233. **Screen lookup**: Call `[prefix]:list_screens` with `projectId` → review screen titles, extract Screen IDs244. **Metadata fetch**: Call `[prefix]:get_screen` with both `projectId` and `screenId`25 - Returns: `screenshot.downloadUrl`, `htmlCode.downloadUrl`, `width`, `height`, `deviceType`, `designTheme`265. **Asset download**: Use `web_fetch` to download the HTML code from `htmlCode.downloadUrl`276. **Project metadata**: Call `[prefix]:get_project` with the full path (`projects/{id}`) → get `designTheme`2829Then synthesize the extracted design language into a `DESIGN.md` following the output format below.3031## Mode B: Generate From Scratch3233When no Stitch project exists, generate a `DESIGN.md` based on:34- User's description of the product, audience, and tone35- Apply the taste rules and anti-patterns below3637## The Goal38Generate a `DESIGN.md` file that encodes:391. **Visual atmosphere** — the mood, density, and design philosophy402. **Color calibration** — neutrals, accents, and banned patterns with hex codes413. **Typographic architecture** — font stacks, scale hierarchy, and anti-patterns424. **Component behaviors** — buttons, cards, inputs with interaction states435. **Layout principles** — grid systems, spacing philosophy, responsive strategy446. **Motion philosophy** — animation engine specs, spring physics, perpetual micro-interactions457. **Anti-patterns** — explicit list of banned AI design clichés4647## Analysis & Synthesis Instructions4849### 1. Define the Atmosphere50Evaluate the target project's intent. Use evocative adjectives from the taste spectrum:51- **Density:** "Art Gallery Airy" (1–3) → "Daily App Balanced" (4–7) → "Cockpit Dense" (8–10)52- **Variance:** "Predictable Symmetric" (1–3) → "Offset Asymmetric" (4–7) → "Artsy Chaotic" (8–10)53- **Motion:** "Static Restrained" (1–3) → "Fluid CSS" (4–7) → "Cinematic Choreography" (8–10)5455Default baseline: Variance 8, Motion 6, Density 4. Adapt dynamically based on user's vibe description.5657### 2. Map the Color Palette58For each color provide: **Descriptive Name** + **Hex Code** + **Functional Role**.5960**Mandatory constraints:**61- Maximum 1 accent color. Saturation below 80%62- The "AI Purple/Blue Neon" aesthetic is strictly BANNED — no purple button glows, no neon gradients63- Use absolute neutral bases (Zinc/Slate) with high-contrast singular accents64- Stick to one palette for the entire output — no warm/cool gray fluctuation65- Never use pure black (`#000000`) — use Off-Black, Zinc-950, or Charcoal6667### 3. Establish Typography Rules68- **Display/Headlines:** Track-tight, controlled scale. Not screaming. Hierarchy through weight and color, not just massive size69- **Body:** Relaxed leading, max 65 characters per line70- **Font Selection:** `Inter` is BANNED for premium/creative contexts. Force unique character: `Geist`, `Outfit`, `Cabinet Grotesk`, or `Satoshi`71- **Serif Ban:** Generic serif fonts (`Times New Roman`, `Georgia`, `Garamond`, `Palatino`) are BANNED. If serif is needed, use only distinctive modern serifs: `Fraunces`, `Gambarino`, `Editorial New`, or `Instrument Serif`. Serif is always BANNED in dashboards or software UIs72- **Dashboard Constraint:** Use Sans-Serif pairings exclusively (`Geist` + `Geist Mono` or `Satoshi` + `JetBrains Mono`)73- **High-Density Override:** When density exceeds 7, all numbers must use Monospace7475### 4. Define the Hero Section76- **Inline Image Typography:** Embed small, contextual photos directly between words or letters in the headline. Images sit inline at type-height, rounded, acting as visual punctuation.77- **No Overlapping:** Text must never overlap images or other text. Every element occupies its own clean spatial zone.78- **No Filler Text:** "Scroll to explore", "Swipe down", scroll arrow icons, bouncing chevrons are BANNED.79- **Asymmetric Structure:** Centered Hero layouts BANNED when variance exceeds 480- **CTA Restraint:** Maximum one primary CTA. No secondary "Learn more" links8182### 5. Describe Component Stylings83- **Buttons:** Tactile push feedback on active state. No neon outer glows. No custom mouse cursors84- **Cards:** Use ONLY when elevation communicates hierarchy. Tint shadows to background hue. For high-density layouts, replace cards with border-top dividers or negative space85- **Inputs/Forms:** Label above input, helper text optional, error text below. Standard gap spacing86- **Loading States:** Skeletal loaders matching layout dimensions — no generic circular spinners87- **Empty States:** Composed compositions indicating how to populate data88- **Error States:** Clear, inline error reporting8990### 6. Define Layout Principles91- No overlapping elements — every element occupies its own clear spatial zone92- Centered Hero sections are BANNED when variance exceeds 4 — force Split Screen, Left-Aligned, or Asymmetric Whitespace93- The generic "3 equal cards horizontally" feature row is BANNED — use 2-column Zig-Zag, asymmetric grid, or horizontal scroll94- CSS Grid over Flexbox math — never use `calc()` percentage hacks95- Contain layouts using max-width constraints (e.g., 1400px centered)96- Full-height sections must use `min-h-[100dvh]` — never `h-screen` (iOS Safari catastrophic jump)9798### 7. Define Responsive Rules99- **Mobile-First Collapse (< 768px):** All multi-column layouts collapse to single column. No exceptions100- **No Horizontal Scroll:** Horizontal overflow on mobile is a critical failure101- **Typography Scaling:** Headlines scale via `clamp()`. Body text minimum `1rem`/`14px`102- **Touch Targets:** All interactive elements minimum `44px` tap target103- **Image Behavior:** Inline typography images stack below headline on mobile104- **Navigation:** Desktop horizontal nav collapses to clean mobile menu105- **Spacing:** Vertical section gaps reduce proportionally (`clamp(3rem, 8vw, 6rem)`)106107### 8. Encode Motion Philosophy108- **Spring Physics default:** `stiffness: 100, damping: 20` — premium, weighty feel. No linear easing109- **Perpetual Micro-Interactions:** Every active component should have an infinite loop state (Pulse, Typewriter, Float, Shimmer)110- **Staggered Orchestration:** Never mount lists instantly — use cascade delays for waterfall reveals111- **Performance:** Animate exclusively via `transform` and `opacity`. Never animate `top`, `left`, `width`, `height`. Grain/noise filters on fixed pseudo-elements only112113### 9. List Anti-Patterns (AI Tells)114Encode these as explicit "NEVER DO" rules in the DESIGN.md:115- No emojis anywhere116- No `Inter` font117- No generic serif fonts (`Times New Roman`, `Georgia`, `Garamond`) — distinctive modern serifs only if needed118- No pure black (`#000000`)119- No neon/outer glow shadows120- No oversaturated accents121- No excessive gradient text on large headers122- No custom mouse cursors123- No overlapping elements — clean spatial separation always124- No 3-column equal card layouts125- No generic names ("John Doe", "Acme", "Nexus")126- No fake round numbers (`99.99%`, `50%`)127- No AI copywriting clichés ("Elevate", "Seamless", "Unleash", "Next-Gen")128- No filler UI text: "Scroll to explore", "Swipe down", scroll arrows, bouncing chevrons129- No broken Unsplash links — use `picsum.photos` or SVG avatars130- No centered Hero sections (for high-variance projects)131132## Output Format (DESIGN.md Structure)133134```markdown135# Design System: [Project Title]136137## 1. Visual Theme & Atmosphere138(Evocative description of the mood, density, variance, and motion intensity.139Example: "A restrained, gallery-airy interface with confident asymmetric layouts140and fluid spring-physics motion. The atmosphere is clinical yet warm — like a141well-lit architecture studio.")142143## 2. Color Palette & Roles144- **Canvas White** (#F9FAFB) — Primary background surface145- **Pure Surface** (#FFFFFF) — Card and container fill146- **Charcoal Ink** (#18181B) — Primary text, Zinc-950 depth147- **Muted Steel** (#71717A) — Secondary text, descriptions, metadata148- **Whisper Border** (rgba(226,232,240,0.5)) — Card borders, 1px structural lines149- **[Accent Name]** (#XXXXXX) — Single accent for CTAs, active states, focus rings150(Max 1 accent. Saturation < 80%. No purple/neon.)151152## 3. Typography Rules153- **Display:** [Font Name] — Track-tight, controlled scale, weight-driven hierarchy154- **Body:** [Font Name] — Relaxed leading, 65ch max-width, neutral secondary color155- **Mono:** [Font Name] — For code, metadata, timestamps, high-density numbers156- **Banned:** Inter, generic system fonts for premium contexts. Serif fonts banned in dashboards.157158## 4. Component Stylings159* **Buttons:** Flat, no outer glow. Tactile -1px translate on active. Accent fill for primary, ghost/outline for secondary.160* **Cards:** Generously rounded corners (2.5rem). Diffused whisper shadow. Used only when elevation serves hierarchy. High-density: replace with border-top dividers.161* **Inputs:** Label above, error below. Focus ring in accent color. No floating labels.162* **Loaders:** Skeletal shimmer matching exact layout dimensions. No circular spinners.163* **Empty States:** Composed, illustrated compositions — not just "No data" text.164165## 5. Layout Principles166(Grid-first responsive architecture. Asymmetric splits for Hero sections.167Strict single-column collapse below 768px. Max-width containment.168No flexbox percentage math. Generous internal padding.)169170## 6. Motion & Interaction171(Spring physics for all interactive elements. Staggered cascade reveals.172Perpetual micro-loops on active dashboard components. Hardware-accelerated173transforms only. Isolated Client Components for CPU-heavy animations.)174175## 7. Anti-Patterns (Banned)176(Explicit list of forbidden patterns: no emojis, no Inter, no pure black,177no neon glows, no 3-column equal grids, no AI copywriting clichés,178no generic placeholder names, no broken image links.)179```180181## Best Practices182- **Be Descriptive:** "Deep Charcoal Ink (#18181B)" — not just "dark text"183- **Be Functional:** Explain what each element is used for184- **Be Consistent:** Same terminology throughout the document185- **Be Precise:** Include exact hex codes, rem values, pixel values in parentheses186- **Be Opinionated:** This is not a neutral template — it enforces a specific, premium aesthetic187188## Common Pitfalls to Avoid189- Using technical jargon without translation ("rounded-xl" instead of "generously rounded corners")190- Omitting hex codes or using only descriptive names191- Forgetting functional roles of design elements192- Being too vague in atmosphere descriptions193- Ignoring the anti-pattern list — these are what make the output premium194- Defaulting to generic "safe" designs instead of enforcing the curated aesthetic195