◉GEMINI LABJP
●ARGON — gemini-4-argon is generally available as of 10/13, aimed at complex coding, agents, math and science●DEEP RES — deep-research-pro-preview-12-2025 shuts down 10/23, 6 days left. Move to deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 is GA (10/06). gemini-3.1-flash-image is deprecated with no shutdown date yet●MCP — One write-up cut an 85,000-token tool result to 310 tokens by wrapping it in an ADK FunctionTool●FLASH — gemini-3.7-flash and 3.5-flash now route automatically to newer Flash models (10/08)●NEW — Stop Re-Reading Every Crash Report: Gre…●ARGON — gemini-4-argon is generally available as of 10/13, aimed at complex coding, agents, math and science●DEEP RES — deep-research-pro-preview-12-2025 shuts down 10/23, 6 days left. Move to deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 is GA (10/06). gemini-3.1-flash-image is deprecated with no shutdown date yet●MCP — One write-up cut an 85,000-token tool result to 310 tokens by wrapping it in an ADK FunctionTool●FLASH — gemini-3.7-flash and 3.5-flash now route automatically to newer Flash models (10/08)●NEW — Stop Re-Reading Every Crash Report: Gre…
Articles/Dev Tools
⟐ Dev Tools/2026-04-28Beginner

Google's Stitch DESIGN.md Format Goes Open Source — A New Way to Share Design Systems with AI

Google Labs just open-sourced Stitch's DESIGN.md format—a machine-readable specification for design systems. Learn how to use it and why it matters for AI-powered design tools.

StitchDESIGN.mdDesign SystemsOpen SourceGoogle Labs

Last month, Google Labs released DESIGN.md—an open-source format for describing design systems in a way AI can understand. Until now, communicating design intent to AI was fragmented: screenshots lived in Figma, color specs in code, and typography guidelines in Notion. Consistency was almost impossible to maintain at scale.

DESIGN.md fixes this.

What is DESIGN.md?

DESIGN.md is a Markdown-based specification for design systems. A single file in your project root describes colors, typography, spacing, and component design in a machine-readable format that both humans and AI can parse.

Google Labs' Stitch team uses it to generate UI automatically from text prompts. Instead of describing a button ten times (once for humans, once for AI, once in CSS), you describe it once—and both people and algorithms read the same spec.

The Structure

Here's the basic anatomy:

# Design System
 
## Design Tokens
 
### Colors
```yaml
primary: "#0066FF"
secondary: "#666666"
success: "#00AA44"
warning: "#FF9900"
error: "#CC0000"
neutral-50: "#FAFAFA"
neutral-900: "#111111"

Typography

heading-1:
  font-family: "Roboto"
  font-size: 32px
  font-weight: 700
  line-height: 1.2
 
body:
  font-family: "Roboto"
  font-size: 16px
  font-weight: 400
  line-height: 1.5

Spacing

xs: 4px
sm: 8px
md: 16px
lg: 24px
xl: 32px

Component Specs

Button

Design Intent: Primary entry point for user actions. Visual hierarchy expresses priority.

Variants:

  • Primary: background primary, text white
  • Secondary: background neutral-100, text neutral-900
  • Danger: background error, text white

Properties:

  • Padding: md (vertical), lg (horizontal)
  • Border-radius: 4px
  • Transition: all properties 200ms

Input

Design Intent: Prompt text entry. Clear feedback on focus.

States:

  • Default: border neutral-300
  • Focused: border primary, box-shadow active
  • Error: border error, helper text red

The clever part: **DESIGN.md blends YAML and Markdown**. Design tokens (colors, fonts) are YAML, structured and unambiguous. Component intent and philosophy are natural Markdown, readable and human-friendly.

## The Tooling

Google Labs simultaneously released CLI tools for working with DESIGN.md:

```bash
# Validate the file for structural correctness
design-cli validate ./DESIGN.md

# Export to Tailwind config
design-cli export --format tailwind ./DESIGN.md > tailwind.config.js

# Export to W3C DTCG (Design Tokens Community Group) JSON
design-cli export --format w3c ./DESIGN.md > tokens.json

# Diff two versions for code review
design-cli diff ./DESIGN_old.md ./DESIGN_new.md

This ecosystem eliminates the classic gap between "what the designer intended" and "what the engineer built." Version control via Git is natural.

License and Maturity

DESIGN.md is Apache 2.0 licensed and currently at version 0.9.0 (alpha). It's already deployed internally at Google Labs, so breaking changes are unlikely—but minor updates may come. If you adopt it, pin your version explicitly.

Getting Started: A Minimal Template

To adopt DESIGN.md in your project, start here:

# Our Design System
 
## Design Tokens
 
### Colors
```yaml
primary: "#3B82F6"
secondary: "#8B5CF6"
success: "#10B981"
warning: "#F59E0B"
error: "#EF4444"

Typography

heading-large:
  font-family: "Inter"
  font-size: 24px
  font-weight: 700
 
body:
  font-family: "Inter"
  font-size: 14px
  font-weight: 400

Spacing

xs: 4px
sm: 8px
md: 16px
lg: 24px

Components

Card

Purpose: Group related content, provide visual separation

Appearance:

  • Background: white
  • Border: 1px solid border-color
  • Border-radius: 8px
  • Padding: md
  • Box-shadow: 0 1px 3px rgba(0,0,0,0.1)

Expand from here with your own components. The key: **always capture both intent and implementation**. When an AI reads "Purpose: Group related content," it makes better decisions about where cards belong in a layout.

## Integrating with Gemini and other AI

DESIGN.md shines when paired with generative AI. Here's a Python example using Gemini:

```python
from anthropic import Anthropic

# Read the design system
with open("DESIGN.md", "r") as f:
    design_system = f.read()

client = Anthropic()

# Ask Gemini to generate UI following the design system
message = client.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=2048,
    messages=[
        {
            "role": "user",
            "content": f"""
Generate an HTML user profile editor that follows this design system exactly.

DESIGN.md:
{design_system}

Requirements:
- Fields: name, email, profile photo
- Buttons: Save (Primary), Cancel (Secondary)
- Responsive layout

Return only HTML and CSS.
"""
        }
    ]
)

print(message.content[0].text)

By feeding DESIGN.md to the AI upfront, generated UI automatically respects your brand. No hand-tweaking, no "close enough" compromises.

Why This Matters

Before DESIGN.md, AI-generated UI had two problems:

  1. Lost Brand Identity: AI generated generic, blank-slate interfaces that didn't feel like your product.
  2. Document Fragmentation: Designers, engineers, and AI consulted different sources. Inconsistencies multiplied.

DESIGN.md creates a single source of truth. Every stakeholder—human and algorithmic—reads the same spec.

Moreover, when Gemini or Grok understands your design system before generating, quality jumps dramatically. The AI doesn't guess; it follows.

Next Steps

To try DESIGN.md, check out the official repository on GitHub. The format isn't tied to any single AI platform—Claude, Gemini, local models, all benefit equally.

The age of design systems that AI can read is here. If your team is tired of manually adjusting AI-generated UI, now's the time to standardize.

Share

Thank You for Reading

Gemini Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • ✦Copy-paste ready implementation code
  • ✦New advanced guides published daily
  • ✦$5/mo or $10 for lifetime access
View Membership →

If you found this article helpful, a small tip ($1.50) would mean a lot to us. Your support helps keep this site ad-free and covers server and hosting costs.

Related Articles

⟐ Dev Tools2026-10-17
Hung Jobs Fail Quietly — Wrapping a Scheduled Gemini Call With a Timeout, an Empty-Output Check, and a Lock
An outer shell script that protects a cron-driven `gemini -p` call from three quiet failures: hanging on a response, exiting 0 with empty output, and overlapping with the previous run. Includes exit codes and timings measured with stand-in commands, and how far `timeout` reaches into child processes.
⟐ Dev Tools2026-10-14
Stop Re-Reading Every Crash Report: Grep a Known-Bug Table First and Keep Only an Index in GEMINI.md
A routine for investigating app crash reports without making the model read every past bug in full: a one-line-per-bug lookup table, what belongs in GEMINI.md, and a grep helper you can paste in.
⟐ Dev Tools2026-10-06
Three Veo 3.1 previews stop on Oct 22. I started with an inventory of every call site
Three Veo 3.1 preview models shut down on Oct 22, with gemini-omni-1.1-flash as the listed replacement. Before swapping model names, here is a search script that finds every call site in a repo, and a config pattern that stops loudly after the deadline instead of drifting to another model.