v0.1

Configuration

YAML spec format, themes, and customization options for diagrams.


YAML Spec Format

Every diagram starts with a YAML spec file. The top-level fields are:

type: flow          # flow | gantt | timeline | quadrant
title: My Diagram   # Optional title displayed on the diagram
theme: default      # Optional theme override

Flow Diagrams

Flow diagrams have nodes and edges:

type: flow
title: Deployment Pipeline
nodes:
  - id: build
    label: Build
    shape: rectangle    # rectangle, circle, diamond, hexagon
    color: "#22d3ee"    # Optional custom color
    icon: docker        # Optional brand icon
  - id: test
    label: Test Suite
    icon: github-actions
  - id: deploy
    label: Production
    icon: aws
edges:
  - from: build
    to: test
    label: "on success"
  - from: test
    to: deploy
    label: "all pass"
    style: dashed       # solid, dashed, dotted

Node Properties

Property Type Description
id string Unique identifier (required)
label string Display text (required)
shape string Node shape: rectangle, circle, diamond, hexagon
color string Hex color for the node
icon string Brand icon name

Edge Properties

Property Type Description
from string Source node ID (required)
to string Target node ID (required)
label string Edge label text
style string Line style: solid, dashed, dotted

Gantt Charts

type: gantt
title: Q1 Roadmap
tasks:
  - id: design
    label: Design Phase
    start: 2025-01-01
    end: 2025-01-15
  - id: build
    label: Build Phase
    start: 2025-01-16
    end: 2025-02-15
    depends: design
  - id: launch
    label: Launch
    start: 2025-02-16
    end: 2025-02-16
    milestone: true

Timeline

type: timeline
title: Product History
events:
  - date: "2024-01"
    title: v0.1 Released
    description: Initial release with flow diagrams
  - date: "2024-06"
    title: v0.2 Released
    description: Added Gantt charts and themes
  - date: "2025-01"
    title: v0.3 Released
    description: Timeline and quadrant support

Quadrant Charts

type: quadrant
title: Technology Radar
x_axis: Effort
y_axis: Impact
quadrants:
  - label: Quick Wins
  - label: Big Bets
  - label: Fill-Ins
  - label: Money Pit
items:
  - label: Caching
    x: 0.2
    y: 0.8
  - label: Rewrite
    x: 0.9
    y: 0.9
  - label: Lint Rules
    x: 0.1
    y: 0.2

Themes

Use --list-themes to see all available themes. Some popular ones:

Theme Description
default Clean, minimal dark theme
light Light background with dark nodes
neon Bright colors on dark background
pastel Soft, muted colors
monochrome Grayscale only
ocean Blue-toned palette
forest Green-toned palette
sunset Warm orange/red palette

Apply a theme:

diagrams render spec.yaml --theme neon -o output.svg

Icons

diagrams supports multiple icon libraries with over 600 icons total. Use --list-icons to see all available icons.

Icon Types

Prefix Library Count Description
(none) Simple Icons 100+ Brand and technology logos by name
geist: Geist Icons 541 Clean, minimal icons from Vercel's design system
aws: AWS Icons varies Amazon Web Services service icons
gcp: GCP Icons varies Google Cloud Platform service icons
favicon: Favicons any Auto-fetched favicons from any domain
(emoji) Emoji any Any emoji character

Simple Icons (Brand Logos)

Reference brand icons directly by name. Common icons include:

aws, gcp, azure, kubernetes, docker, github, gitlab, react, vue, angular, nodejs, python, rust, go, postgresql, redis, mongodb, kafka, nginx, cloudflare

nodes:
  - id: api
    label: API Gateway
    icon: aws
  - id: db
    label: Database
    icon: postgresql

Geist Icons

541 icons from the Vercel Geist design system. These are clean, minimal line icons that work well for technical and business diagrams. Use the geist: prefix:

nodes:
  - id: auth
    label: Auth Service
    icon: geist:shield
  - id: users
    label: User DB
    icon: geist:database
  - id: api
    label: API Server
    icon: geist:terminal
  - id: notify
    label: Notifications
    icon: geist:bell

Common Geist icons include:

geist:user, geist:database, geist:terminal, geist:settings, geist:shield, geist:globe, geist:mail, geist:bell, geist:search, geist:file, geist:folder, geist:cloud, geist:server, geist:lock, geist:key, geist:zap, geist:layers, geist:git-branch, geist:code, geist:cpu

Cloud Provider Icons

Use prefixed names for AWS and GCP service icons:

nodes:
  - id: lambda
    label: Lambda Function
    icon: aws:lambda
  - id: storage
    label: Cloud Storage
    icon: gcp:cloud-storage

Favicons

Fetch any website's favicon automatically:

nodes:
  - id: docs
    label: Documentation
    icon: favicon:docs.example.com

Emoji Icons

Use any emoji character directly:

nodes:
  - id: start
    label: Begin
    icon: "\U0001F680"