WHAT — Create polished dark-themed architecture diagrams as self-contained HTML+SVG files (inline SVG, CSS styling, PNG/PDF export toolbar). Use when the user asks for system, infrastructure, cloud, security, or network topology diagrams rendered as a shareable visual artifact rather than code.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add ulises-jeremias/agent-toolkit --skill architecture-diagram --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Architecture Diagram?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/ulises-jeremias-architecture-diagram)More formats (shields.io, HTML) on the badges page.
---
name: architecture-diagram
description: >-
WHAT — Create polished dark-themed architecture diagrams as self-contained
HTML+SVG files (inline SVG, CSS styling, PNG/PDF export toolbar). Use when
the user asks for system, infrastructure, cloud, security, or network
topology diagrams rendered as a shareable visual artifact rather than code.
origin:
type: first-party
metadata:
author: ulises-jeremias
version: '1.0.0'
tags:
- architecture
- diagram
- svg
- html
- visualization
- cloud
- security
- topology
domain: architecture
tools:
- claude-code
- cursor
- opencode
- windsurf
- copilot-cli
requires:
- modern browser for rendering/export
produces:
- self-contained architecture-diagram .html file
triggers:
- draw an architecture diagram
- create a system diagram
- infrastructure diagram
- network topology diagram
- cloud architecture diagram
- security architecture diagram
---
# Architecture Diagram — Self-Contained HTML+SVG Diagrams
Create professional technical architecture diagrams as **single self-contained
HTML files** with inline SVG graphics and CSS styling. The output renders
correctly when opened directly in any modern browser — no build step, no
JavaScript framework, no external images.
## When to use
- System, infrastructure, cloud, security, or network-topology diagrams.
- A shareable, presentation-ready visual artifact is the deliverable.
- Dark-theme technical aesthetic is desired.
For methodology (what to draw at each level), pair with `architecture/c4-model`;
for lightweight in-repo text diagrams, use `tooling/mermaid`. This skill covers
the **rendered artifact** case.
## Workflow
1. Copy `resources/template.html` as the starting point.
2. Customize the `<title>`, header text, and footer metadata.
3. Adjust the SVG `viewBox` if needed (default `1000 x 680`).
4. Add/reposition component boxes using the component pattern below.
5. Draw connection arrows early in the SVG (after the background grid) so they
render behind boxes.
6. Update the three summary cards and legend.
7. Deliver one `.html` file.
## Design system
### Semantic color palette
| Component type | Fill (rgba) | Stroke |
|----------------|-------------|--------|
| Frontend | `rgba(8, 51, 68, 0.4)` | `#22d3ee` |
| Backend | `rgba(6, 78, 59, 0.4)` | `#34d399` |
| Database | `rgba(76, 29, 149, 0.4)` | `#a78bfa` |
| AWS/Cloud | `rgba(120, 53, 15, 0.3)` | `#fbbf24` |
| Security | `rgba(136, 19, 55, 0.4)` | `#fb7185` |
| Message bus | `rgba(251, 146, 60, 0.3)` | `#fb923c` |
| External/Generic | `rgba(30, 41, 59, 0.5)` | `#94a3b8` |
### Typography
JetBrains Mono throughout (monospace, technical aesthetic):
```html
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
```
Font sizes: 12px component names, 9px sublabels, 8px annotations, 7px tiny labels.
### Visual elements
**Background:** `#020617` with a subtle grid pattern:
```svg
<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"`), 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:** SVG marker arrowheads:
```svg
<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>
```
Draw arrows before boxes so they layer behind components.
**Masking arrows behind transparent fills:** semi-transparent box fills let
arrows show through. Pre-draw an opaque rect (`fill="#0f172a"`) beneath the
styled rect:
```svg
<!-- 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, rose color (`#fb7185`).
**Message/event buses:** small connectors placed in the vertical gap between
services:
```svg
<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>
```
### Component box pattern
```svg
<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
```html
<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>
```
## Layout rules
### Vertical spacing (critical)
Standard component height is 60px (80–120px for larger blocks); keep a minimum
**40px vertical gap** between stacked components, and place inline connectors
(buses) centered inside that gap — never overlapping either component:
```text
Component A: y=70, height=60 → ends at y=130
Gap: y=130 to y=170 → 40px gap, bus at y=140 (20px tall)
Component B: y=170, height=60 → ends at y=230
```
### Legend placement (critical)
Place legends **outside all boundary boxes** (regions, clusters, security
groups). Compute the lowest boundary end (`y + height`), start the legend at
least 20px below it, and extend the SVG viewBox height accordingly.
### Page structure
1. Header — title with pulsing dot indicator, subtitle, export toolbar.
2. Main SVG diagram — contained in a rounded border card.
3. Summary cards — grid of three cards below the diagram.
4. Footer — minimal metadata line.
## Export toolbar
The template ships a collapsed `⋯` toggle in the header revealing three
export actions — clipboard copy, high-DPI PNG download, and one-page PDF —
all driven by two pinned CDN scripts with Subresource Integrity hashes
(`html2canvas`, `jsPDF`). Keep these intact when customizing:
- Both `<script>` tags in `<head>` (pinned versions, SRI hashes,
`crossorigin="anonymous"`).
- `id="report-container"` on the outermost `.container` div (capture target).
- `.toolbar` markup plus `@media print { .toolbar { display: none !important; } }`.
- The `copyAsImage()`, `downloadPNG()`, `downloadPDF()` functions before
`</body>`.
Caveats: the clipboard API needs a user gesture and a secure context;
`html2canvas` renders plain SVG shapes/text reliably but not
`<foreignObject>`; raise capture `scale` above `2` for higher-resolution output.
## Output contract
Exactly one self-contained `.html` file per diagram:
- Embedded CSS only (external exception: Google Fonts).
- Inline SVG only (no external images).
- Renders correctly opened directly in any modern browser.
## References
- Template: [`resources/template.html`](resources/template.html)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!