# Design Md

> Capture the design at hand into a DESIGN.md file — a semantic design system written in descriptive, designer-friendly language. Use when the user wants to document, preserve, or hand off the visual design of what's currently in view (an HTML/CSS prototype, a component, a website, a screenshot, or a codebase's styles). The output is a single Markdown file intended to serve as the source of truth for future design work and for prompting other tools to generate screens consistent with it.

- Skill: `pietz/design-md` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add pietz/design-md`
- Raw SKILL.md: https://api.skillmd.com/api/skills/pietz/design-md/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Design & Media
- Author: pietz (https://skillmd.com/u/pietz)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/pietz/design-md

---


# DESIGN.md Skill

You are an expert Design Systems Lead. Your goal is to analyze the design at hand and synthesize a semantic design system into a single file named `DESIGN.md`.

## Overview

A `DESIGN.md` is a self-contained, plain-text description of a design system. It captures not just the raw values (colors, type, spacing) but the intent and character behind them, in language a designer would actually use. It serves two audiences at once:

- Humans, as a readable source of truth for the visual language.
- AI tools, as a prompt substrate for generating new screens and components that stay consistent with the existing design.

The core discipline: describe the design semantically. Exact values (hex codes, pixel measurements, weights) belong in parentheses for precision, but the primary language is descriptive and functional, never raw tokens.

## Inputs: the "design at hand"

Work from whatever the user has provided. Common sources, in rough order of fidelity:

1. **A codebase** — read the style layer directly. Look for design tokens (`tailwind.config.*`, CSS custom properties / `:root`, theme files, `*.css`), UI primitives (buttons, cards, inputs), and layout scaffolding. Cite the paths you drew from.
2. **An HTML/CSS prototype or component** — parse the markup and styles for classes, custom CSS, and repeated patterns.
3. **A live URL** — use `web_fetch` to retrieve the page, then analyze its structure and styles.
4. **A screenshot or image** — read it visually and infer the system; be explicit about what is inferred versus measured.

If the user has not said what to capture, ask. Prefer reading source (tokens + components) over guessing from a single screen. Do not invent a design system that is not evidenced by the input.

## Analysis & Synthesis

### 1. Atmosphere
Read the whole before the parts. Capture the overall mood in evocative but honest adjectives ("Airy," "Dense," "Editorial," "Utilitarian," "Glassmorphic"). Note the light/dark stance, density philosophy, and how the design behaves as space grows.

### 2. Color palette
Identify the real colors in the system and group them by role (e.g. Surfaces, Ink/Text, Accents, State/Status). For each color give:
- A descriptive, natural-language name that conveys character ("Deep Muted Teal-Navy," "Sky-Powder Blue").
- The exact value in parentheses for precision (`#294056`, `slate-700`).
- Its functional role ("primary actions," "hairline dividers," "modal scrim").

For text, a small token→use table often reads best. Prefer 50/700-style pairings for status colors when the system uses them.

### 3. Typography
Name the typeface(s) and describe the type treatment: the weight/size choices for each role (titles, body, labels, metadata), letter-spacing character, casing conventions, and any convention worth calling out (e.g. units rendered lighter than the number).

### 4. Geometry & shape
Translate technical radii and borders into physical descriptions: `rounded-full` → "pill-shaped," `rounded-lg` → "subtly rounded corners," `rounded-none` → "sharp, squared-off edges." Note border weights and stroke character.

### 5. Depth & elevation
Describe how layers are separated: flat, whisper-soft diffused shadows, heavy high-contrast drops, blur/frost, scrims. Note whether elevation is used structurally or sparingly.

### 6. Components
Document the recurring building blocks and their variants:
- **Buttons** — shape, color assignment per variant, sizing, hover/active behavior.
- **Cards / containers** — corner roundness, background, nesting, shadow depth.
- **Inputs / forms** — border style, background, focus treatment, error states.
- Any other signature components the system leans on.

### 7. Layout principles
Whitespace strategy, container widths and margins, grid/alignment, and how density changes across breakpoints.

## Output guidelines

- **Language:** descriptive and functional first; raw tokens only in parentheses.
- **Precision:** always include the exact value alongside the descriptive name.
- **Context:** explain the "why," not just the "what."
- **Provenance:** open the file with a `**Source:**` line naming what you analyzed (paths, URL, or "screenshot"), so the doc is auditable.
- **Honesty:** don't document what isn't there; flag anything inferred rather than measured.

## Output format (DESIGN.md structure)

```markdown
# Design System: [Name]
**Source:** [paths / URL / screenshot analyzed]

## 1. Atmosphere
(Mood, density, light/dark stance, aesthetic philosophy.)

## 2. Color Palette
### Surfaces
- **[Descriptive Name]** `[value]` — [role].
### Ink
| Token | Use |
|---|---|
| `[value]` | [role] |
### Accents
(Interactive/brand accents by name + value + role.)
### State Colors
(info / success / warning / error pairings.)

## 3. Typography
(Typeface, role-by-role treatment, conventions.)

## 4. Shape & Elevation
(Radii translated to physical descriptions; shadow/blur character.)

## 5. Components
### Buttons
### Cards / Containers
### Inputs / Forms
(Shape, color assignment, states, behavior for each.)

## 6. Layout Principles
(Whitespace, widths, grid, responsive density.)
```

Adapt the section set to the design: add what the system actually uses, drop what it doesn't. The structure serves the design, not the reverse.

## Best practices

- **Be descriptive:** "Ocean-deep Cerulean (`#0077B6`)," not "blue." "Gently curved edges," not "rounded-lg."
- **Be functional:** always say what each element is for.
- **Be consistent:** reuse the same names throughout the document.
- **Be precise:** every descriptive name carries its exact value in parentheses.
- **Think semantically:** name colors by purpose, not appearance.

## Common pitfalls to avoid

- Using technical jargon without translation (`rounded-xl` instead of "generously rounded corners").
- Descriptive names with no exact value, or exact values with no role.
- Vague atmosphere descriptions that could fit any product.
- Ignoring subtle detail: shadows, focus rings, spacing rhythm, empty states.
- Documenting an idealized system instead of the one actually in the input.

