GEMINI LABJP
ROBOTICS — The ER 1.6 preview that shut down on August 31 does have a successor. Gemini Robotics ER 2 is in public preview, in both standard and streaming variantsVIDEO — ER 2 judges success and failure from live video rather than still snapshots, which is what lets it catch spills, slips, and misalignments while a task is still runningDEADLINE — Next up is September 30, when gemini-omni-flash-preview is retired. The target is gemini-omni-1.1-flash, GA since August 27, and there are now under four weeks leftAPIKEY — Every remaining standard API key, restricted ones included, stops working during September. The replacement is an auth key bound to a Google Cloud service accountPRICE — Gemini 3.7 Flash keeps its introductory $0.75/$3.75 per 1M through December 31, then moves to $1.50/$7.50 on January 1, 2027. Any estimate crossing the year needs both figuresAUDIO — Gemini 3.5 Transcribe handles language detection across 85+ languages, speaker diarization, word-level timestamps, and custom vocabulary biasing of up to 1,000 termsROBOTICS — The ER 1.6 preview that shut down on August 31 does have a successor. Gemini Robotics ER 2 is in public preview, in both standard and streaming variantsVIDEO — ER 2 judges success and failure from live video rather than still snapshots, which is what lets it catch spills, slips, and misalignments while a task is still runningDEADLINE — Next up is September 30, when gemini-omni-flash-preview is retired. The target is gemini-omni-1.1-flash, GA since August 27, and there are now under four weeks leftAPIKEY — Every remaining standard API key, restricted ones included, stops working during September. The replacement is an auth key bound to a Google Cloud service accountPRICE — Gemini 3.7 Flash keeps its introductory $0.75/$3.75 per 1M through December 31, then moves to $1.50/$7.50 on January 1, 2027. Any estimate crossing the year needs both figuresAUDIO — Gemini 3.5 Transcribe handles language detection across 85+ languages, speaker diarization, word-level timestamps, and custom vocabulary biasing of up to 1,000 terms
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.

Stitch2DESIGN.mdDesign Systems2Open 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 $15 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-09-02
An agreement-rate gate approves the model swap, then your category shares move
Swapping the model behind an image classification batch can pass a golden-set agreement gate while category shares quietly shift. I measured the sample sizes each check really needs and rebuilt the gate as a paired comparison.
Dev Tools2026-08-30
Why Shipped Clients Deserve a Refusal, Not a Silent Model Substitution
A model can retire, but the apps already on people's phones cannot. This is how I built a sunset ledger keyed on output contracts, and how I now back-date my own deadline from the version residue curve.
Dev Tools2026-08-28
A twice-daily batch that only ran once — reconstructing run counts from artifacts
One half of a scheduled job silently never fired, and throughput sat at half of plan for over a week without a single error in the logs. Here is how I reconstructed actual run counts from artifacts and backlog, with working code.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →