# How Many Distinct Visual Diagram Types Does Diagram Design Support?

> Explore Diagram Design's extensive capabilities. Discover the 40 distinct visual diagram types supported, meticulously documented for your convenience.

- Repository: [Cathryn Lavery/diagram-design](https://github.com/cathrynlavery/diagram-design)
- Tags: getting-started
- Published: 2026-09-10

---

**Diagram Design supports exactly 40 distinct visual diagram types, each documented in individual Markdown reference files under the `skills/diagram-design/references/` directory.**

The `cathrynlavery/diagram-design` repository provides a comprehensive CLI tool for generating standardized visual diagrams. According to the source code, the project defines 40 unique diagram types—from `architecture` and `uml-class` to `sankey` and `wardley`—each following a strict visual grammar. These definitions enable consistent, reproducible output for technical documentation and data visualization workflows.

## Complete List of 40 Distinct Visual Diagram Types

All diagram types are enumerated as individual Markdown files in the `skills/diagram-design/references/` directory. The following table lists each supported type by its reference filename:

| # | Diagram Type | Reference File |

|---|--------------|----------------|
| 1 | architecture | [`type-architecture.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-architecture.md) |
| 2 | bar | [`type-bar.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-bar.md) |
| 3 | waterfall | [`type-waterfall.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-waterfall.md) |
| 4 | wardley | [`type-wardley.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-wardley.md) |
| 5 | venn | [`type-venn.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-venn.md) |
| 6 | uml-class | [`type-uml-class.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-uml-class.md) |
| 7 | treemap | [`type-treemap.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-treemap.md) |
| 8 | tree | [`type-tree.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-tree.md) |
| 9 | timeline | [`type-timeline.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-timeline.md) |
| 10 | swimlane | [`type-swimlane.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-swimlane.md) |
| 11 | story-map | [`type-story-map.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-story-map.md) |
| 12 | state | [`type-state.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-state.md) |
| 13 | sequence | [`type-sequence.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-sequence.md) |
| 14 | scatter | [`type-scatter.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-scatter.md) |
| 15 | sankey | [`type-sankey.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-sankey.md) |
| 16 | radar | [`type-radar.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-radar.md) |
| 17 | quadrant | [`type-quadrant.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-quadrant.md) |
| 18 | pyramid | [`type-pyramid.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-pyramid.md) |
| 19 | process | [`type-process.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-process.md) |
| 20 | polar | [`type-polar.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-polar.md) |
| 21 | org-chart | [`type-org-chart.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-org-chart.md) |
| 22 | nested | [`type-nested.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-nested.md) |
| 23 | medallion | [`type-medallion.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-medallion.md) |
| 24 | loop | [`type-loop.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-loop.md) |
| 25 | line | [`type-line.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-line.md) |
| 26 | layers | [`type-layers.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-layers.md) |
| 27 | kanban | [`type-kanban.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-kanban.md) |
| 28 | journey | [`type-journey.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-journey.md) |
| 29 | it-state | [`type-it-state.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-it-state.md) |
| 30 | high-level | [`type-high-level.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-high-level.md) |
| 31 | gantt | [`type-gantt.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-gantt.md) |
| 32 | flowchart | [`type-flowchart.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-flowchart.md) |
| 33 | fishbone | [`type-fishbone.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-fishbone.md) |
| 34 | er | [`type-er.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-er.md) |
| 35 | dp-security-matrix | [`type-dp-security-matrix.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-dp-security-matrix.md) |
| 36 | dp-integration | [`type-dp-integration.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-dp-integration.md) |
| 37 | deployment | [`type-deployment.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-deployment.md) |
| 38 | dependency | [`type-dependency.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-dependency.md) |
| 39 | db-schema | [`type-db-schema.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-db-schema.md) |
| 40 | data-flow | [`type-data-flow.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-data-flow.md) |

## How Diagram Types Are Defined in the Source Code

Each distinct visual diagram type follows a strict visual grammar defined in dedicated reference files. As implemented in `cathrynlavery/diagram-design`, these specifications reside in the **`skills/diagram-design/references/`** directory using the naming convention **`type-{name}.md`**.

For example, [`type-sankey.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-sankey.md) contains the visual grammar for Sankey diagrams, while [`type-uml-class.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-uml-class.md) defines the standards for UML class diagrams. This modular architecture ensures that each of the 40 supported types maintains independent, version-controlled documentation that the CLI uses to validate and render outputs.

## Generating Diagrams via CLI

The `diagram-design` CLI exposes specific commands for instantiating these visual types. The two primary entry points are **`import-mermaid`** (for Mermaid and PlantUML inputs) and **`import-csv`** (for data-driven visualizations).

To generate an architecture diagram from Mermaid syntax:

```bash

# Generate a simple architecture diagram

diagram-design import-mermaid --type architecture <<'EOF'
graph TD
  A[Client] --> B[Load Balancer]
  B --> C[Web Server]
  C --> D[Database]
EOF

```

To create a Sankey diagram from CSV data:

```bash

# Generate a Sankey diagram from CSV data

cat > flow.csv <<'CSV'
source,target,value
A,B,10
B,C,5
A,C,3
CSV

diagram-design import-csv --type sankey flow.csv

```

To render a UML class diagram from PlantUML source:

```bash

# Generate a UML class diagram from PlantUML source

cat > model.puml <<'PUML'
@startuml
class User {
  +String name
  +String email
}
class Order {
  +int id
  +Date date
}
User "1" --> "0..*" Order : places
@enduml
PUML

diagram-design import-mermaid --type uml-class model.puml

```

These commands invoke the respective generator for the selected diagram type and output an SVG (or other configured format) that follows the strict visual grammar defined in the corresponding reference file.

## Summary

- **Diagram Design supports 40 distinct visual diagram types**, ranging from architectural charts to data-flow diagrams.
- Each type is defined in a separate Markdown file within the **`skills/diagram-design/references/`** directory (e.g., [`type-architecture.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-architecture.md), [`type-sankey.md`](https://github.com/cathrynlavery/diagram-design/blob/main/type-sankey.md)).
- The CLI provides **`import-mermaid`** and **`import-csv`** commands to generate diagrams according to these strict specifications.
- Validation scripts in **`scripts/verify-*.py`** ensure all outputs conform to the defined visual grammars.

## Frequently Asked Questions

### How many distinct visual diagram types does Diagram Design support?

**Diagram Design supports exactly 40 distinct visual diagram types.** Each type is documented in a separate Markdown file within the `skills/diagram-design/references/` directory, covering categories from UML modeling to data visualization.

### Where are diagram type definitions stored in the repository?

The definitions are stored in **`skills/diagram-design/references/`** as individual Markdown files named `type-{diagram-name}.md`. This modular approach allows each of the 40 diagram types to maintain its own visual grammar specification, independent of the CLI implementation.

### Which CLI commands support generating these diagram types?

According to the source code, the **`import-mermaid`** and **`import-csv`** commands support diagram generation. The `import-mermaid` command handles structure-based types like `architecture`, `uml-class`, and `flowchart`, while `import-csv` supports data-driven types such as `sankey` and `data-flow`.

### How does Diagram Design validate diagram type compliance?

The repository includes **validation scripts** located in `scripts/verify-*.py` that ensure each generated diagram conforms to the strict visual grammar defined in its corresponding `type-*.md` reference file. This validation layer guarantees that outputs meet the standardized specifications for each of the 40 supported diagram types.