New to Claude Skills? Learn how to install them →

cocoon-ai on GitHub

Architecture Diagram Generator

Free

Create polished architecture diagrams in HTML+SVG.

Get this skill

Free · Opens the source repo

What Architecture Diagram Generator does

The Architecture Diagram Generator skill enables users to create professional-grade architecture diagrams that are visually appealing and technically accurate. This skill produces self-contained HTML files that incorporate inline SVG graphics and CSS styling, making it easy to generate and share diagrams without needing additional software. The diagrams are designed with a dark theme, which enhances readability and gives a modern look suitable for technical presentations.

The skill is particularly useful for developers and designers who need to visualize complex systems, including infrastructure setups, cloud architectures, security frameworks, and network topologies. By using predefined color palettes and typography guidelines, users can maintain consistency across their diagrams, ensuring that different components are easily distinguishable. The skill also provides specific spacing and layout rules to prevent overlaps and maintain clarity in the visual representation of systems.

Additionally, the generator includes an export toolbar that allows users to easily save their diagrams in multiple formats, including high-DPI PNG and PDF. This feature is particularly beneficial for sharing diagrams in documentation or presentations without losing quality. The self-contained nature of the generated HTML files means that users can host these diagrams on any web server or share them directly with colleagues, making collaboration straightforward.

In summary, the Architecture Diagram Generator skill is an essential tool for anyone involved in system design or architecture, providing a streamlined way to create, export, and share high-quality diagrams that effectively communicate technical information.

When to use it

Use this skill when you need to create clear, professional architecture diagrams for technical documentation or presentations.

When not to use it

This skill may not be suitable for users looking for extensive customization options beyond the provided templates and styles.

What you can build with it

Creating Cloud Architecture Diagrams

Use the skill to visualize cloud infrastructure setups, making it easier to communicate designs with your team.

Documenting Security Frameworks

Generate diagrams that outline security flows and component interactions for compliance and auditing purposes.

Visualizing Network Topologies

Create clear network topology diagrams to aid in troubleshooting and planning network upgrades.

How to install Architecture Diagram Generator

View source

1. Install with the skills CLI

npx skills add cocoon-ai/architecture-diagram-generator/architecture-diagram --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by cocoon-ai

Architecture Diagram Skill

Create professional technical architecture diagrams as self-contained HTML files with inline SVG graphics and CSS styling.

Version 1.1 · MIT License · Authored by Cocoon AI

Design System

Color Palette

Use these semantic colors for component types:

Component TypeFill (rgba)Stroke
Frontendrgba(8, 51, 68, 0.4)#22d3ee (cyan-400)
Backendrgba(6, 78, 59, 0.4)#34d399 (emerald-400)
Databasergba(76, 29, 149, 0.4)#a78bfa (violet-400)
AWS/Cloudrgba(120, 53, 15, 0.3)#fbbf24 (amber-400)
Securityrgba(136, 19, 55, 0.4)#fb7185 (rose-400)
Message Busrgba(251, 146, 60, 0.3)#fb923c (orange-400)
External/Genericrgba(30, 41, 59, 0.5)#94a3b8 (slate-400)

Typography

Use JetBrains Mono for all text (monospace, technical aesthetic):

<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">

Font sizes: 12px for component names, 9px for sublabels, 8px for annotations, 7px for tiny labels.

Visual Elements

Background: #020617 (slate-950) with subtle grid pattern:

<pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse">
  <path d="M 40 0 L 0 0 0 40" fill="none" stroke="#1e293b" stroke-width="0.5"/>
</pattern>

Component boxes: Rounded rectangles (rx="6") with 1.5px stroke, semi-transparent fills.

Security groups: Dashed stroke (stroke-dasharray="4,4"), transparent fill, rose color.

Region boundaries: Larger dashed stroke (stroke-dasharray="8,4"), amber color, rx="12".

Arrows: Use SVG marker for arrowheads:

<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
  <polygon points="0 0, 10 3.5, 0 7" fill="#64748b" />
</marker>

Arrow z-order: Draw connection arrows early in the SVG (after the background grid) so they render behind component boxes. SVG elements are painted in document order, so arrows drawn first will appear behind shapes drawn later.

Masking arrows behind transparent fills: Since component boxes use semi-transparent fills (rgba(..., 0.4)), arrows behind them will show through. To fully mask arrows, draw an opaque background rect (e.g., fill="#0f172a") at the same position before drawing the semi-transparent styled rect on top:

<!-- Opaque background to mask arrows -->
<rect x="X" y="Y" width="W" height="H" rx="6" fill="#0f172a"/>
<!-- Styled component on top -->
<rect x="X" y="Y" width="W" height="H" rx="6" fill="rgba(76, 29, 149, 0.4)" stroke="#a78bfa" stroke-width="1.5"/>

Auth/security flows: Dashed lines in rose color (#fb7185).

Message buses / Event buses: Small connector elements between services. Use orange color (#fb923c stroke, rgba(251, 146, 60, 0.3) fill):

<rect x="X" y="Y" width="120" height="20" rx="4" fill="rgba(251, 146, 60, 0.3)" stroke="#fb923c" stroke-width="1"/>
<text x="CENTER_X" y="Y+14" fill="#fb923c" font-size="7" text-anchor="middle">Kafka / RabbitMQ</text>

Spacing Rules

CRITICAL: When stacking components vertically, ensure proper spacing to avoid overlaps:

  • Standard component height: 60px for services, 80-120px for larger components
  • Minimum vertical gap between components: 40px
  • Inline connectors (message buses): Place IN the gap between components, not overlapping

Example vertical layout:

Component A: y=70,  height=60  → ends at y=130
Gap:         y=130 to y=170   → 40px gap, place bus at y=140 (20px tall)
Component B: y=170, height=60  → ends at y=230

Wrong: Placing a message bus at y=160 when Component B starts at y=170 (causes overlap) Right: Placing a message bus at y=140, centered in the 40px gap (y=130 to y=170)

Legend Placement

CRITICAL: Place legends OUTSIDE all boundary boxes (region boundaries, cluster boundaries, security groups).

  • Calculate where all boundaries end (y position + height)
  • Place legend at least 20px below the lowest boundary
  • Expand SVG viewBox height if needed to accommodate

Example:

Kubernetes Cluster: y=30, height=460 → ends at y=490
Legend should start at: y=510 or below
SVG viewBox height: at least 560 to fit legend

Wrong: Legend at y=470 inside a cluster boundary that ends at y=490 Right: Legend at y=510, below the cluster boundary, with viewBox height extended

Layout Structure

  1. Header - Title with pulsing dot indicator, subtitle, and export toolbar
  2. Main SVG diagram - Contained in rounded border card
  3. Summary cards - Grid of 3 cards below diagram with key details
  4. Footer - Minimal metadata line

Export Toolbar (built-in)

Every diagram ships with a single unobtrusive toggle in the header. Click it to reveal three buttons — 📋 Copy (high-DPI PNG to clipboard, scale: 2), 🖼️ PNG (high-DPI PNG download), 📄 PDF (PNG embedded in a one-page PDF via jsPDF). The toolbar collapses back to the icon by default so it doesn't clutter the diagram. All three formats use the same html2canvas capture (with the toolbar excluded and 32px padding around the content), so PDF preserves the dark theme without going through the browser's print dialog.

When generating a new diagram, keep these intact in the template:

  • The two CDN scripts in <head> (pinned versions, with Subresource Integrity hashes and crossorigin="anonymous"):
    • https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.jsintegrity="sha384-ZZ1pncU3bQe8y31yfZdMFdSpttDoPmOZg2wguVK9almUodir1PghgT0eY7Mrty8H"
    • https://cdn.jsdelivr.net/npm/jspdf@2.5.2/dist/jspdf.umd.min.jsintegrity="sha384-en/ztfPSRkGfME4KIm05joYXynqzUgbsG5nMrj/xEFAHXkeZfO3yMK8QQ+mP7p1/"
    • SRI ensures generated diagrams are tamper-resistant against CDN compromise. Do not modify the hashes; if the version is bumped, the new hash must be computed fresh.
  • id="report-container" on the outermost .container div (this is what gets captured)
  • .toolbar markup with .toolbar-actions (collapsed by default) and .toolbar-toggle (the button)
  • .toolbar CSS + @media print { .toolbar { display: none !important; } }
  • copyAsImage(), downloadPNG(), and downloadPDF() script before </body>, all using getBoundingClientRect() + html2canvas(document.body, { x, y, width, height, ignoreElements }) to capture a precise rect with breathing room and no toolbar

Caveats: clipboard API needs a user gesture and a secure context (https/file/localhost). SVG <foreignObject> renders inconsistently in html2canvas — stick to plain <svg> shapes and <text>. Bump scale: 2 to 3 or 4 for higher-res output.

Component Box Pattern

<rect x="X" y="Y" width="W" height="H" rx="6" fill="FILL_COLOR" stroke="STROKE_COLOR" stroke-width="1.5"/>
<text x="CENTER_X" y="Y+20" fill="white" font-size="11" font-weight="600" text-anchor="middle">LABEL</text>
<text x="CENTER_X" y="Y+36" fill="#94a3b8" font-size="9" text-anchor="middle">sublabel</text>

Info Card Pattern

<div class="card">
  <div class="card-header">
    <div class="card-dot COLOR"></div>
    <h3>Title</h3>
  </div>
  <ul>
    <li>• Item one</li>
    <li>• Item two</li>
  </ul>
</div>

Template

Copy and customize the template at resources/template.html. Key customization points:

  1. Update the <title> and header text
  2. Modify SVG viewBox dimensions if needed (default: 1000 x 680)
  3. Add/remove/reposition component boxes
  4. Draw connection arrows between components
  5. Update the three summary cards
  6. Update footer metadata

Output

Always produce a single self-contained .html file with:

  • Embedded CSS (no external stylesheets except Google Fonts)
  • Inline SVG (no external images)
  • No JavaScript required (pure CSS animations)

The file should render correctly when opened directly in any modern browser. The export toolbar uses two CDN scripts (html2canvas and jsPDF) — no other JavaScript dependencies.

Frequently asked questions about Architecture Diagram Generator

Similar skills