Architecture Diagram Generator
Quick Start: Create HTML structure with flexible layout (single/double/triple column) → Define CSS styles for layers and grids → Add content with categorized panels → Use semantic colors for different layers.
Critical Rules
Rule 1: Direct HTML Embedding
IMPORTANT: Write architecture diagrams as direct HTML in Markdown. NEVER use code blocks (```html). The HTML should be embedded directly in the document without any fencing.
Rule 2: No Empty Lines in HTML Structure
CRITICAL: Do NOT add any empty lines within the HTML architecture diagram structure. Keep the entire HTML block continuous to prevent parsing errors.
Rule 3: Incremental Creation Approach
RECOMMENDED: Create architecture diagrams in multiple steps:
- First: Create the overall framework (wrapper, sidebars, main structure) and define all CSS styles
- Second: Add layer containers with titles
- Third: Fill in components layer by layer
- Fourth: Add detailed content and refinements
Rule 4: Flexible Layout Structure
Architecture diagrams can use flexible layouts based on complexity:
- Single Column: Main content only (for simple architectures)
- Two Column: Main content + one sidebar (left or right)
- Three Column: Full layout with both sidebars (for complex systems)
- Left Sidebar: Supporting systems (monitoring, operations, analytics)
- Main Content: Core architecture layers (user, application, data, infrastructure)
- Right Sidebar: Cross-cutting concerns (security, compliance, governance)
Rule 5: Layer-Based Organization
Each layer should have:
- Clear semantic meaning (User, Application, AI/Logic, Data, Infrastructure)
- Consistent color coding
- Grid-based layout for components
- Appropriate nesting for sub-components
Rule 6: Color Semantics
Use consistent semantic meaning for layers — the exact color palette varies by style (see examples). The standard semantic mapping:
- User Layer — user-facing interfaces and clients
- Application Layer — business logic and API services
- AI/Logic Layer — intelligence, rules, processing engines
- Data Layer — databases, caches, storage
- Infrastructure Layer — containers, networking, DevOps
- External Services — third-party APIs, cloud services (typically dashed border)
Style Examples
Choose a visual style that matches your project's tone and audience. Each example contains a complete, copy-ready HTML template.
| # |
Style |
File |
Suitable For |
| 1 |
Steel Blue |
styles/steel-blue.md |
Consulting reports, banking/finance, government projects, RFP proposals |
| 2 |
Ember Warm |
styles/ember-warm.md |
Retail/e-commerce, education platforms, lifestyle brands, cultural institutions |
| 3 |
Neon Dark |
styles/neon-dark.md |
Tech talks, developer conferences, gaming platforms, cybersecurity dashboards |
| 4 |
Stark Block |
styles/stark-block.md |
Creative studios, education platforms, indie developers, tech blogs |
| 5 |
Ocean Teal |
styles/ocean-teal.md |
Travel platforms, logistics/shipping, green tech, weather/ocean projects |
| 6 |
Dusk Glow |
styles/dusk-glow.md |
Social media, entertainment platforms, martech, content creation tools |
| 7 |
Rose Bloom |
styles/rose-bloom.md |
Fashion/beauty, luxury brands, wedding platforms, premium memberships |
| 8 |
Sage Forest |
styles/sage-forest.md |
Healthcare, agritech, clean energy, sustainability, bioinformatics |
| 9 |
Frost Clean |
styles/frost-clean.md |
Design tools, developer docs, API references, minimalist SaaS |
| 10 |
Indigo Deep |
styles/indigo-deep.md |
Brand-consistent systems, enterprise white papers, internal platforms |
| 11 |
Pastel Mix |
styles/pastel-mix.md |
SaaS products, startups, general tech architecture, product docs |
| 12 |
Slate Dark |
styles/slate-dark.md |
Enterprise dark mode, internal tools, developer dashboards |
Layout Examples
Choose a layout structure that fits your architecture's complexity. Layouts use wireframe style (no colors) to focus on structural patterns. Combine any layout with any style above.
| # |
Layout |
File |
Best For |
| 1 |
Three-Column |
layouts/three-column.md |
Complex systems with cross-cutting concerns and monitoring sidebars |
| 2 |
Single Stack |
layouts/single-stack.md |
Simple services, microservice detail views, focused documentation |
| 3 |
Left Sidebar |
layouts/left-sidebar.md |
Systems with operations/monitoring emphasis, DevOps-centric views |
| 4 |
Right Sidebar |
layouts/right-sidebar.md |
Systems with security/compliance emphasis, governance-focused views |
| 5 |
Pipeline |
layouts/pipeline.md |
Data pipelines, CI/CD flows, ETL processes, horizontal stage-based flows |
| 6 |
Two-Column Split |
layouts/two-column-split.md |
Before/after comparisons, dual-system views, migration architecture |
| 7 |
Dashboard |
layouts/dashboard.md |
System overviews with KPIs, monitoring dashboards, executive summaries |
| 8 |
Grid Catalog |
layouts/grid-catalog.md |
Service catalogs, component libraries, equal-weight microservices |
| 9 |
Banner + Center |
layouts/banner-center.md |
Gateway-centric architectures, user-facing systems with shared infrastructure |
| 10 |
Nested Containers |
layouts/nested-containers.md |
Cloud deployments, VPC/network topology, environment isolation |
| 11 |
Layer Layouts |
layouts/layer-layouts.md |
Per-layer layout patterns: grid, sub-group, product group, KPI, vertical stack, zones, inline pipeline, mixed width |
| 12 |
Connectors |
layouts/connectors.md |
SVG overlay connectors between components: solid/dashed lines, arrows, labels, curved & orthogonal paths |
Advanced Features
NOTE: These advanced components require additional CSS styles. Add these to your <style scoped> section:
.arch-product-group { display: flex; gap: 10px; }
.arch-product { flex: 1; border-radius: 8px; padding: 10px; background: rgba(255, 255, 255, 0.6); border: 1px dashed #d97706; }
.arch-product-title { font-size: 12px; font-weight: bold; color: #92400e; margin-bottom: 8px; text-align: center; }
.arch-subgroup { display: flex; gap: 8px; margin-top: 8px; }
.arch-subgroup-box { flex: 1; border-radius: 6px; padding: 8px; background: rgba(255, 255, 255, 0.5); border: 1px solid rgba(0, 0, 0, 0.08); }
.arch-subgroup-title { font-size: 10px; font-weight: bold; color: #374151; text-align: center; margin-bottom: 6px; }
.arch-user-types { display: flex; gap: 4px; justify-content: center; margin-top: 6px; }
.arch-user-tag { font-size: 9px; padding: 2px 6px; border-radius: 10px; background: rgba(59, 130, 246, 0.15); color: #1d4ed8; }
/* SVG connector lines between components */
.arch-conn { stroke: #94a3b8; stroke-width: 1.5; fill: none; }
.arch-conn-dashed { stroke: #94a3b8; stroke-width: 1.5; fill: none; stroke-dasharray: 6 4; }
.arch-conn-label { font-size: 9px; fill: #64748b; font-family: sans-serif; }
Custom Product Groups
For complex applications with multiple products/modules:
<div class="arch-product-group">
<div class="arch-product">
<div class="arch-product-title">🎯 Product A</div>
<div class="arch-grid arch-grid-2">
<div class="arch-box">Feature 1<br><small>Description</small></div>
<div class="arch-box highlight">Feature 2<br><small>Key Feature</small></div>
</div>
</div>
<div class="arch-product">
<div class="arch-product-title">📊 Product B</div>
<div class="arch-grid arch-grid-2">
<div class="arch-box">Feature 3<br><small>Description</small></div>
<div class="arch-box">Feature 4<br><small>Description</small></div>
</div>
</div>
</div>
Sub-grouped Components
For detailed breakdowns within layers:
<div class="arch-subgroup">
<div class="arch-subgroup-box">
<div class="arch-subgroup-title">Component Group A</div>
<div class="arch-grid arch-grid-3">
<div class="arch-box tech">Service 1<br><small>Details</small></div>
<div class="arch-box tech">Service 2<br><small>Details</small></div>
<div class="arch-box tech">Service 3<br><small>Details</small></div>
</div>
</div>
<div class="arch-subgroup-box">
<div class="arch-subgroup-title">Component Group B</div>
<div class="arch-grid arch-grid-2">
<div class="arch-box tech">Service 4<br><small>Details</small></div>
<div class="arch-box tech">Service 5<br><small>Details</small></div>
</div>
</div>
</div>
User Types/Tags
<div class="arch-user-types">
<span class="arch-user-tag">Admin Users</span>
<span class="arch-user-tag">End Users</span>
<span class="arch-user-tag">API Clients</span>
<span class="arch-user-tag">Partners</span>
</div>
Metrics and KPIs
<div class="arch-sidebar-item metric">99.9% Uptime</div>
<div class="arch-sidebar-item metric"><200ms Response</div>
<div class="arch-sidebar-item metric">1M+ Users</div>
SVG Connectors Between Components
Use an SVG overlay to draw orthogonal (right-angle) connectors between components. Always use <path> with M/L commands for strictly horizontal and vertical segments. Do NOT use <line>, Bézier curves, or diagonal lines. See layouts/connectors.md for full reference.
<!-- Wrap diagram content in a relative container -->
<div style="position: relative;">
<!-- ...layers and components here... -->
<!-- SVG overlay as last child -->
<svg style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible;">
<defs>
<marker id="arrowhead" markerWidth="8" markerHeight="6" refX="8" refY="3" orient="auto">
<path d="M0,0 L8,3 L0,6" fill="none" stroke="#94a3b8" stroke-width="1"/>
</marker>
</defs>
<!-- Orthogonal solid arrow (vertical → horizontal → vertical) -->
<path d="M 200,72 L 200,90 L 400,90 L 400,108" class="arch-conn" marker-end="url(#arrowhead)"/>
<!-- Orthogonal dashed line -->
<path d="M 600,72 L 600,90 L 600,90 L 600,108" class="arch-conn-dashed" marker-end="url(#arrowhead)"/>
<!-- Label -->
<text x="420" y="86" class="arch-conn-label">data flow</text>
</svg>
</div>
Styling Reference
Common Classes (shared across all styles)
.arch-wrapper — flex container for sidebar + main layout
.arch-sidebar — fixed-width sidebar column
.arch-main — flexible main content area
.arch-layer — layer container (add semantic class: .user, .application, .ai, .data, .infra, .external)
.arch-box — component box; .arch-box.highlight for key items; .arch-box.tech for smaller tech items
.arch-grid-2 to .arch-grid-6 — grid column layouts
.arch-sidebar-panel — sidebar panel container
.arch-sidebar-item — sidebar item; .arch-sidebar-item.metric for highlighted metrics
Best Practices
HTML Usage Guidelines
- Direct embedding only — Always embed HTML directly in Markdown, never use
```html code blocks
- No empty lines in structure — Keep the entire HTML block continuous without any empty lines
- Incremental development — Build diagrams step by step:
- Start with basic framework and layout structure (single/two/three column as needed)
- Add empty layer containers with proper CSS classes
- Fill in content layer by layer from top to bottom
- Refine content and add highlights last
Architecture Design
- Keep layers logically separated — Each layer should represent a clear architectural tier
- Use consistent naming — Follow naming conventions for components and services
- Highlight key components — Use
.highlight class for critical components
- Add technical details — Include technology stack info in
<small> tags
- Balance information density — Don't overcrowd components with text
- Use icons sparingly — Add emojis to titles for visual hierarchy
- Maintain color semantics — Stick to the established color meanings
- Consider responsive design — Grids automatically adapt to content
1---2name: architecture3description: Create layered system architecture diagrams using HTML/CSS templates with color-coded tiers and grid layouts. Best for technology stacks, microservices topology, and multi-tier application design.4---56# Architecture Diagram Generator78**Quick Start:** Create HTML structure with flexible layout (single/double/triple column) → Define CSS styles for layers and grids → Add content with categorized panels → Use semantic colors for different layers.910## Critical Rules1112### Rule 1: Direct HTML Embedding13**IMPORTANT**: Write architecture diagrams as direct HTML in Markdown. **NEVER** use code blocks (` ```html `). The HTML should be embedded directly in the document without any fencing.1415### Rule 2: No Empty Lines in HTML Structure16**CRITICAL**: Do NOT add any empty lines within the HTML architecture diagram structure. Keep the entire HTML block continuous to prevent parsing errors.1718### Rule 3: Incremental Creation Approach19**RECOMMENDED**: Create architecture diagrams in multiple steps:201. **First**: Create the overall framework (wrapper, sidebars, main structure) and define all CSS styles212. **Second**: Add layer containers with titles223. **Third**: Fill in components layer by layer234. **Fourth**: Add detailed content and refinements2425### Rule 4: Flexible Layout Structure26Architecture diagrams can use flexible layouts based on complexity:27- **Single Column**: Main content only (for simple architectures)28- **Two Column**: Main content + one sidebar (left or right)29- **Three Column**: Full layout with both sidebars (for complex systems)30 - **Left Sidebar**: Supporting systems (monitoring, operations, analytics)31 - **Main Content**: Core architecture layers (user, application, data, infrastructure)32 - **Right Sidebar**: Cross-cutting concerns (security, compliance, governance)3334### Rule 5: Layer-Based Organization35Each layer should have:36- Clear semantic meaning (User, Application, AI/Logic, Data, Infrastructure)37- Consistent color coding38- Grid-based layout for components39- Appropriate nesting for sub-components4041### Rule 6: Color Semantics42Use consistent semantic meaning for layers — the exact color palette varies by style (see examples). The standard semantic mapping:43- **User Layer** — user-facing interfaces and clients44- **Application Layer** — business logic and API services45- **AI/Logic Layer** — intelligence, rules, processing engines46- **Data Layer** — databases, caches, storage47- **Infrastructure Layer** — containers, networking, DevOps48- **External Services** — third-party APIs, cloud services (typically dashed border)4950## Style Examples5152Choose a visual style that matches your project's tone and audience. Each example contains a complete, copy-ready HTML template.5354| # | Style | File | Suitable For |55|---|---|---|---|56| 1 | **Steel Blue** | [styles/steel-blue.md](styles/steel-blue.md) | Consulting reports, banking/finance, government projects, RFP proposals |57| 2 | **Ember Warm** | [styles/ember-warm.md](styles/ember-warm.md) | Retail/e-commerce, education platforms, lifestyle brands, cultural institutions |58| 3 | **Neon Dark** | [styles/neon-dark.md](styles/neon-dark.md) | Tech talks, developer conferences, gaming platforms, cybersecurity dashboards |59| 4 | **Stark Block** | [styles/stark-block.md](styles/stark-block.md) | Creative studios, education platforms, indie developers, tech blogs |60| 5 | **Ocean Teal** | [styles/ocean-teal.md](styles/ocean-teal.md) | Travel platforms, logistics/shipping, green tech, weather/ocean projects |61| 6 | **Dusk Glow** | [styles/dusk-glow.md](styles/dusk-glow.md) | Social media, entertainment platforms, martech, content creation tools |62| 7 | **Rose Bloom** | [styles/rose-bloom.md](styles/rose-bloom.md) | Fashion/beauty, luxury brands, wedding platforms, premium memberships |63| 8 | **Sage Forest** | [styles/sage-forest.md](styles/sage-forest.md) | Healthcare, agritech, clean energy, sustainability, bioinformatics |64| 9 | **Frost Clean** | [styles/frost-clean.md](styles/frost-clean.md) | Design tools, developer docs, API references, minimalist SaaS |65| 10 | **Indigo Deep** | [styles/indigo-deep.md](styles/indigo-deep.md) | Brand-consistent systems, enterprise white papers, internal platforms |66| 11 | **Pastel Mix** | [styles/pastel-mix.md](styles/pastel-mix.md) | SaaS products, startups, general tech architecture, product docs |67| 12 | **Slate Dark** | [styles/slate-dark.md](styles/slate-dark.md) | Enterprise dark mode, internal tools, developer dashboards |6869## Layout Examples7071Choose a layout structure that fits your architecture's complexity. Layouts use wireframe style (no colors) to focus on structural patterns. Combine any layout with any style above.7273| # | Layout | File | Best For |74|---|---|---|---|75| 1 | **Three-Column** | [layouts/three-column.md](layouts/three-column.md) | Complex systems with cross-cutting concerns and monitoring sidebars |76| 2 | **Single Stack** | [layouts/single-stack.md](layouts/single-stack.md) | Simple services, microservice detail views, focused documentation |77| 3 | **Left Sidebar** | [layouts/left-sidebar.md](layouts/left-sidebar.md) | Systems with operations/monitoring emphasis, DevOps-centric views |78| 4 | **Right Sidebar** | [layouts/right-sidebar.md](layouts/right-sidebar.md) | Systems with security/compliance emphasis, governance-focused views |79| 5 | **Pipeline** | [layouts/pipeline.md](layouts/pipeline.md) | Data pipelines, CI/CD flows, ETL processes, horizontal stage-based flows |80| 6 | **Two-Column Split** | [layouts/two-column-split.md](layouts/two-column-split.md) | Before/after comparisons, dual-system views, migration architecture |81| 7 | **Dashboard** | [layouts/dashboard.md](layouts/dashboard.md) | System overviews with KPIs, monitoring dashboards, executive summaries |82| 8 | **Grid Catalog** | [layouts/grid-catalog.md](layouts/grid-catalog.md) | Service catalogs, component libraries, equal-weight microservices |83| 9 | **Banner + Center** | [layouts/banner-center.md](layouts/banner-center.md) | Gateway-centric architectures, user-facing systems with shared infrastructure |84| 10 | **Nested Containers** | [layouts/nested-containers.md](layouts/nested-containers.md) | Cloud deployments, VPC/network topology, environment isolation |85| 11 | **Layer Layouts** | [layouts/layer-layouts.md](layouts/layer-layouts.md) | Per-layer layout patterns: grid, sub-group, product group, KPI, vertical stack, zones, inline pipeline, mixed width |86| 12 | **Connectors** | [layouts/connectors.md](layouts/connectors.md) | SVG overlay connectors between components: solid/dashed lines, arrows, labels, curved & orthogonal paths |8788## Advanced Features8990**NOTE**: These advanced components require additional CSS styles. Add these to your `<style scoped>` section:9192```css93.arch-product-group { display: flex; gap: 10px; }94.arch-product { flex: 1; border-radius: 8px; padding: 10px; background: rgba(255, 255, 255, 0.6); border: 1px dashed #d97706; }95.arch-product-title { font-size: 12px; font-weight: bold; color: #92400e; margin-bottom: 8px; text-align: center; }96.arch-subgroup { display: flex; gap: 8px; margin-top: 8px; }97.arch-subgroup-box { flex: 1; border-radius: 6px; padding: 8px; background: rgba(255, 255, 255, 0.5); border: 1px solid rgba(0, 0, 0, 0.08); }98.arch-subgroup-title { font-size: 10px; font-weight: bold; color: #374151; text-align: center; margin-bottom: 6px; }99.arch-user-types { display: flex; gap: 4px; justify-content: center; margin-top: 6px; }100.arch-user-tag { font-size: 9px; padding: 2px 6px; border-radius: 10px; background: rgba(59, 130, 246, 0.15); color: #1d4ed8; }101/* SVG connector lines between components */102.arch-conn { stroke: #94a3b8; stroke-width: 1.5; fill: none; }103.arch-conn-dashed { stroke: #94a3b8; stroke-width: 1.5; fill: none; stroke-dasharray: 6 4; }104.arch-conn-label { font-size: 9px; fill: #64748b; font-family: sans-serif; }105```106107### Custom Product Groups108For complex applications with multiple products/modules:109110```html111<div class="arch-product-group">112 <div class="arch-product">113 <div class="arch-product-title">🎯 Product A</div>114 <div class="arch-grid arch-grid-2">115 <div class="arch-box">Feature 1<br><small>Description</small></div>116 <div class="arch-box highlight">Feature 2<br><small>Key Feature</small></div>117 </div>118 </div>119 <div class="arch-product">120 <div class="arch-product-title">📊 Product B</div>121 <div class="arch-grid arch-grid-2">122 <div class="arch-box">Feature 3<br><small>Description</small></div>123 <div class="arch-box">Feature 4<br><small>Description</small></div>124 </div>125 </div>126</div>127```128129### Sub-grouped Components130For detailed breakdowns within layers:131132```html133<div class="arch-subgroup">134 <div class="arch-subgroup-box">135 <div class="arch-subgroup-title">Component Group A</div>136 <div class="arch-grid arch-grid-3">137 <div class="arch-box tech">Service 1<br><small>Details</small></div>138 <div class="arch-box tech">Service 2<br><small>Details</small></div>139 <div class="arch-box tech">Service 3<br><small>Details</small></div>140 </div>141 </div>142 <div class="arch-subgroup-box">143 <div class="arch-subgroup-title">Component Group B</div>144 <div class="arch-grid arch-grid-2">145 <div class="arch-box tech">Service 4<br><small>Details</small></div>146 <div class="arch-box tech">Service 5<br><small>Details</small></div>147 </div>148 </div>149</div>150```151152### User Types/Tags153154```html155<div class="arch-user-types">156 <span class="arch-user-tag">Admin Users</span>157 <span class="arch-user-tag">End Users</span>158 <span class="arch-user-tag">API Clients</span>159 <span class="arch-user-tag">Partners</span>160</div>161```162163### Metrics and KPIs164165```html166<div class="arch-sidebar-item metric">99.9% Uptime</div>167<div class="arch-sidebar-item metric"><200ms Response</div>168<div class="arch-sidebar-item metric">1M+ Users</div>169```170171### SVG Connectors Between Components172Use an SVG overlay to draw orthogonal (right-angle) connectors between components. **Always use `<path>` with `M`/`L` commands for strictly horizontal and vertical segments. Do NOT use `<line>`, Bézier curves, or diagonal lines.** See [layouts/connectors.md](layouts/connectors.md) for full reference.173174```html175<!-- Wrap diagram content in a relative container -->176<div style="position: relative;">177 <!-- ...layers and components here... -->178 <!-- SVG overlay as last child -->179 <svg style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible;">180 <defs>181 <marker id="arrowhead" markerWidth="8" markerHeight="6" refX="8" refY="3" orient="auto">182 <path d="M0,0 L8,3 L0,6" fill="none" stroke="#94a3b8" stroke-width="1"/>183 </marker>184 </defs>185 <!-- Orthogonal solid arrow (vertical → horizontal → vertical) -->186 <path d="M 200,72 L 200,90 L 400,90 L 400,108" class="arch-conn" marker-end="url(#arrowhead)"/>187 <!-- Orthogonal dashed line -->188 <path d="M 600,72 L 600,90 L 600,90 L 600,108" class="arch-conn-dashed" marker-end="url(#arrowhead)"/>189 <!-- Label -->190 <text x="420" y="86" class="arch-conn-label">data flow</text>191 </svg>192</div>193```194195## Styling Reference196197### Common Classes (shared across all styles)198- `.arch-wrapper` — flex container for sidebar + main layout199- `.arch-sidebar` — fixed-width sidebar column200- `.arch-main` — flexible main content area201- `.arch-layer` — layer container (add semantic class: `.user`, `.application`, `.ai`, `.data`, `.infra`, `.external`)202- `.arch-box` — component box; `.arch-box.highlight` for key items; `.arch-box.tech` for smaller tech items203- `.arch-grid-2` to `.arch-grid-6` — grid column layouts204- `.arch-sidebar-panel` — sidebar panel container205- `.arch-sidebar-item` — sidebar item; `.arch-sidebar-item.metric` for highlighted metrics206207## Best Practices208209### HTML Usage Guidelines2102111. **Direct embedding only** — Always embed HTML directly in Markdown, never use ` ```html ` code blocks2122. **No empty lines in structure** — Keep the entire HTML block continuous without any empty lines2133. **Incremental development** — Build diagrams step by step:214 - Start with basic framework and layout structure (single/two/three column as needed)215 - Add empty layer containers with proper CSS classes216 - Fill in content layer by layer from top to bottom217 - Refine content and add highlights last218219### Architecture Design2202211. **Keep layers logically separated** — Each layer should represent a clear architectural tier2222. **Use consistent naming** — Follow naming conventions for components and services2233. **Highlight key components** — Use `.highlight` class for critical components2244. **Add technical details** — Include technology stack info in `<small>` tags2255. **Balance information density** — Don't overcrowd components with text2266. **Use icons sparingly** — Add emojis to titles for visual hierarchy2277. **Maintain color semantics** — Stick to the established color meanings2288. **Consider responsive design** — Grids automatically adapt to content