SKILL.md
$27
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
Consulting reports, banking/finance, government projects, RFP proposals
2
Ember Warm
Retail/e-commerce, education platforms, lifestyle brands, cultural institutions
3
Neon Dark
Tech talks, developer conferences, gaming platforms, cybersecurity dashboards
4
Stark Block
Creative studios, education platforms, indie developers, tech blogs
5
Ocean Teal
Travel platforms, logistics/shipping, green tech, weather/ocean projects
6
Dusk Glow
Social media, entertainment platforms, martech, content creation tools
7
Rose Bloom
Fashion/beauty, luxury brands, wedding platforms, premium memberships
8
Sage Forest
Healthcare, agritech, clean energy, sustainability, bioinformatics
9
Frost Clean
Design tools, developer docs, API references, minimalist SaaS
10
Indigo Deep
Brand-consistent systems, enterprise white papers, internal platforms
11
Pastel Mix
SaaS products, startups, general tech architecture, product docs
12
Slate Dark
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
Complex systems with cross-cutting concerns and monitoring sidebars
2
Single Stack
Simple services, microservice detail views, focused documentation
3
Left Sidebar
Systems with operations/monitoring emphasis, DevOps-centric views
4
Right Sidebar
Systems with security/compliance emphasis, governance-focused views
5
Pipeline
Data pipelines, CI/CD flows, ETL processes, horizontal stage-based flows
6
Two-Column Split
Before/after comparisons, dual-system views, migration architecture
7
Dashboard
System overviews with KPIs, monitoring dashboards, executive summaries
8
Grid Catalog
Service catalogs, component libraries, equal-weight microservices
9
Banner + Center
Gateway-centric architectures, user-facing systems with shared infrastructure
10
Nested Containers
Cloud deployments, VPC/network topology, environment isolation
11
Layer Layouts
Per-layer layout patterns: grid, sub-group, product group, KPI, vertical stack, zones, inline pipeline, mixed width
12
Connectors
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">&lt;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.highlightfor key items;.arch-box.techfor smaller tech items
.arch-grid-2to.arch-grid-6— grid column layouts
.arch-sidebar-panel— sidebar panel container
.arch-sidebar-item— sidebar item;.arch-sidebar-item.metricfor highlighted metrics
Best Practices
HTML Usage Guidelines
- Direct embedding only — Always embed HTML directly in Markdown, never use
htmlcode 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
.highlightclass 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