# Vignelli Canon Design System

> Massimo Vignelli's complete design discipline — distilled from The Vignelli Canon (his own book). Encodes the Intangibles (semantics, discipline, appropriateness, timelessness, equity) and the Tangibles (the grid, the six basic typefaces, two-size type scale, rulers, primary-color-as-identifier, white space) into an applyable methodology, plus the railway-signage module logic from his Grandi Staz…

- **Type:** Skill
- **Install:** `agentstack add skill-maxsoweski-claude-design-skills-vignelli-canon-design-system`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [maxsoweski](https://agentstack.voostack.com/s/maxsoweski)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [maxsoweski](https://github.com/maxsoweski)
- **Source:** https://github.com/maxsoweski/claude-design-skills/tree/main/skills/vignelli-canon-design-system

## Install

```sh
agentstack add skill-maxsoweski-claude-design-skills-vignelli-canon-design-system
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# The Vignelli Canon — a working design discipline

Massimo Vignelli (1931–2014), Italian designer mentored by the Castiglioni brothers and Mies van der Rohe ("God is in the details"). With his wife and partner Lella, he designed "from the spoon to the city": the **1972 New York City Subway diagram and signage standards**, the **American Airlines** identity (used ~45 years), **Knoll**, **Bloomingdale's**, **Heller** dinnerware, the **National Park Service Unigrid** system, and the **Grandi Stazioni** Italian railway station signage. His book *The Vignelli Canon* is his own statement of method. This skill is that method, made applyable.

His thesis: **Design is one discipline, above any style. Creativity needs the support of knowledge.** The rules below are a bag of tools, not a cage.

---

## PART ONE — THE INTANGIBLES (decide these before you draw anything)

1. **Semantics — search for the meaning first.** Research the subject, its history, market, sender and receiver; distill the *essence*. "Design without semantics is shallow."
2. **Syntactics — control the relationships.** The grid, typefaces, headline/text/image relationships, page to page. "God is in the details."
3. **Pragmatics — it must be understood.** It should stand by itself with no explanation. Clarity of intent → clarity of result. "We love complexity but hate complications."
4. **Discipline.** No sloppiness. "Quality is there or it is not." Self-imposed rules give continuity of intent.
5. **Appropriateness.** "Listen to what a thing wants to be." The search for the *specific* of the problem — the right media, material, scale, color.
6. **Ambiguity (the good kind).** A plurality of meanings, used as a spice.
7. **Design Is One.** Master one discipline and you can design anything; style is downstream of discipline.
8. **Visual Power.** Strength through contrast of **scale** (huge head vs. small body) and **weight**, never through loudness.
9. **Intellectual Elegance.** Elegance of the *mind*, not of manners — the opposite of vulgarity.
10. **Timelessness.** Prefer **primary shapes and primary colors** and typography beyond trends. "Clear, simple and enduring."
11. **Responsibility.** Three levels: to self, to client (economy of means), to the public.
12. **Equity.** A long-lived mark is collective culture — **refine it; don't replace it for the sake of change.**

---

## PART TWO — THE TANGIBLES (the concrete rules)

### The Grid — "organization of information"
- The basic structure: organizes content, gives consistency, projects intellectual elegance.
- "Infinite grids, but just one — the most appropriate — for any problem." Too fine = an empty page; too coarse = restrictive.
- **Tight outside margins** create tension; **wider margins** bring serenity. **Tight gutters** (~one line of type) so type and images snap to the same grid.
- The five grids he specimens: **2×4, 5×4, 3×6, 6×6, 4×8** (columns × modules).
- Paper: prefer the **DIN A series** (golden-rectangle proportions).

### Typography
- **The six basic typefaces for a whole career:** Garamond (1532), Bodoni (1788), Century Expanded (1900), Futura (1930), Times (1931), **Helvetica (1957)**. Plus Optima, Univers, Caslon, Baskerville. *"It is not the type but what you do with it that counts."* Helvetica is the house face.
- **Type as objective organization, not self-expression.** "I don't believe that when you write *dog* the type should bark." Differentiate with **space, weight, alignment** — not novelty faces.
- **Alignment: flush left by default.** Centered only for lapidary text/invitations/addresses. **Justified is "fundamentally contrived" — avoid.**
- **Two type sizes per page, maximum;** heading ≈ **2× body** (e.g., 10/20). Bold/light/roman/italic sparingly and functionally.
- **Size/leading by column width:** 8/9, 9/10, 10/11 ≤70mm; 12/13, 14/16 ≤140mm; 16/18, 18/20 larger.
- **Rulers:** **2pt** major, **0.5–1pt** minor; **type hangs from the ruler.**

### Scale, Texture, Color
- **Scale:** the most appropriate size in context — can be pushed deliberately for power. "It doesn't allow mistakes."
- **Texture:** "Light is the master of form and texture." Shiny reflects, matte absorbs.
- **Color as Signifier / Identifier ("Chromotype"), not pictorial.** Default to the **primary palette: Red, Blue, Yellow.** In identity, color IS part of the identity.

### White Space — the protagonist
- *"It is really the white that makes the black sing."* *"In a world where everybody screams, silence is noticeable."* Don't fill the page.

### Layout, Sequence, Identity/Diversity, Economy
- A publication is a **cinematic object** — design the *sequence*. **"If you see the layout, it is probably a bad layout."**
- Balance **identity vs. diversity** — strong system, room to play. Simple modular ratios (single→double→triple). Standardization is an ethic; "good design doesn't cost more than bad design."

---

## TRANSIT & WAYFINDING (Subway + Grandi Stazioni)

- **Route / line diagram:** **45° and 90° only**; **evenly spaced station dots** regardless of true geography; each line a **single color**; **solid dot = always stops, hollow ring = sometimes/passes**; trunk lines share a color; land/water as flat neutral fields; Helvetica throughout.
- **Station signage (Grandi Stazioni):** **white Helvetica on a signal-blue panel**, flush left; a hierarchy by cap height — station identification (largest, internally lit), directional (overhead, arrow sharing the cap box), information/regulatory (smaller, hanging from a 2pt rule); **platform numbers in a square flag**, double-sided. Arrows and pictograms share the type's cap box.
- **Pictograms:** geometric, primary-shape based, consistent stroke and cap box; meaning over illustration.

---

## HOW TO APPLY (workflow)
1. **Intangibles pass:** one line each for semantics, appropriateness, and the timelessness/equity stance.
2. **Pick the system:** one grid, **Helvetica**, **two sizes** (body + ~2× heading), one **primary identifier color**.
3. **Generate tokens** with `vignelli_system.py`.
4. **Compose** flush-left on the grid; let **white space** carry hierarchy; **rulers** + weight for distinction; **scale contrast** for power.
5. **Self-critique:** more than two sizes? justified text? decorative color? visible/cluttered layout? novelty face? Cut it.

### Helper script `vignelli_system.py`
Deterministic, no network/credentials. `python3 vignelli_system.py` → CSS tokens (palette, two-size scale, the five grids, ruler weights). `--primary "#RRGGBB"`, `--base 16`, `--format css|scss|json`, `--grid 4x8`, `--signage` (railway panel/cap-height table). The CSS `--v-face` lists **"Liberation Sans"** before the generic fallback so headless renders keep a real grotesque (see Production notes).

### Canon palette (color as identifier)
Vignelli vermilion `#F04E23` · Signal blue `#0039A6` · Signal yellow `#FFCC00` · Ink `#0A0A0A` · Warm paper `#F4F1EA` · White `#FFFFFF`.

---

## PRODUCTION — bringing the system into images & the real world
Hard-won from shipping the VECTOR Northeast-rail sizzle.

### Type fidelity when rasterizing (the #1 trap)
Helvetica is **not installed** in most headless environments. Rasterizing SVG/HTML (cairosvg, headless-Chromium screenshots) with a `Helvetica`/`Arial`/`sans-serif` stack silently falls back to **Noto Sans** — a rounded humanist face that reads like **Calibri** and breaks the grotesque. The failure is invisible until someone asks "why does this look like Calibri?"
- **Fix:** render in a true Helvetica/Arial-metric grotesque — **Liberation Sans** (usually installed; verify `fc-match "Liberation Sans:bold"`) or an embedded **Helvetica/Arimo** TTF in `~/.fonts` + `fc-cache`.
- `fc-match Helvetica` reveals the fallback. **Always eyeball one render before trusting it.**

### The code → image → (optional) reality pipeline
1. **Draw the type/diagram in code first**, in the correct grotesque — the source of truth.
2. **Place it into the world with GPT Image 2** (best legible-text rendering). Pass the crisp artwork as an `inputImages` reference AND in the prompt **name the face and forbid the drift**: *"Helvetica Bold, Swiss neo-grotesque (Arial Bold / Neue Haas Grotesk); reproduce the artwork letter-for-letter as an applied/printed graphic; NOT Calibri, NOT Noto Sans, NOT a rounded humanist sans."*
3. If the reference font is wrong (step 1 trap), the model faithfully reproduces the wrong font — **fix the reference before blaming the prompt.**

### Wayfinding-in-context shot vocabulary
Type on the train flank (wordmark + destination blind); the route **diagram on the wall** (backlit, traveler in silhouette, golden hour); the **paper map in hand** by a window; **overhead platform directional** (white Helvetica on signal blue, drawn arrows); **station-ID + square platform flag**; **concourse pictogram totem**. Pair each crisp coded design beside its render — "design in code → reality" is the proof.

### Avoid video gen for type-critical heroes
Veo and most video models **drift letterforms frame-to-frame** — fatal for a sign you must read. When type is the hero, deliver **stills** (GPT Image 2) or **screen-capture an interactive webpage**, not generated video.

### Packaging
- Build **visual-first**: cinematic in-situ heroes lead; the system reference (principles, palette, type scale, coded diagram) provides depth below.
- **Embedding gotcha:** a `PublishWebpage` artifact runs in a sandboxed iframe that can't authenticate thread-scoped `/api/files/...` URLs. Run every embedded image through **`PublishFilePublicly`** first and use the `pub.hyperagent.com` share URLs in the HTML.

### One-line creed
*"I love systems and despise happenstance."*

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [maxsoweski](https://github.com/maxsoweski)
- **Source:** [maxsoweski/claude-design-skills](https://github.com/maxsoweski/claude-design-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-maxsoweski-claude-design-skills-vignelli-canon-design-system
- Seller: https://agentstack.voostack.com/s/maxsoweski
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
