pietz/skills · Archived

design-md

Capture the design at hand into a DESIGN.md file — a semantic design system written in descriptive, designer-friendly language.

First seen Jul 1, 2026

Installation

$ npx skills add pietz/skills --skill design-md

Summary

  • 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.

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from pietz/skills · top by installs.

npx skills add pietz/skills

Browse all from pietz/skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Default branch main
Open issues 0
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

Allowed toolsRead, Write, Glob, Grep, Bash, web_fetch

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 6,736 B
  • docs SUMMARY.md 509 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 2 installs

SKILL.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)

# 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.