This generates layered architecture diagrams as direct HTML/CSS embedded in Markdown, no external tools needed. You get 12 visual styles (Steel Blue for enterprise, Neon Dark for dev conferences, Rose Bloom for luxury brands) and 12 structural layouts (three-column for complex systems, pipeline for data flows, nested containers for cloud topology). The incremental creation approach is smart: build the framework first, add layers second, fill components third. It handles everything from simple microservice views to full enterprise architectures with monitoring sidebars and cross-cutting concerns. The color semantics are consistent across styles, so user layers always mean user-facing stuff regardless of palette. Beats diagramming tools when you want version-controlled diagrams that live in your docs.
npx -y skills add markdown-viewer/skills --skill architecture --agent claude-codeInstalls into .claude/skills of the current project.
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.
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.
CRITICAL: Do NOT add any empty lines within the HTML architecture diagram structure. Keep the entire HTML block continuous to prevent parsing errors.
RECOMMENDED: Create architecture diagrams in multiple steps:
Architecture diagrams can use flexible layouts based on complexity:
Each layer should have:
Use consistent semantic meaning for layers — the exact color palette varies by style (see examples). The standard semantic mapping:
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 |
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 |
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; }
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>
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>
<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>
<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>
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>
.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```html code blocks.highlight class for critical components<small> tagscursor/plugins
metabase/metabase
metabase/metabase
telagod/code-abyss
github/awesome-copilot
DietrichGebert/ponytail