Skills architecture

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.

install
source · Clone the upstream repo
git clone https://github.com/markdown-viewer/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/markdown-viewer/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/architecture" ~/.claude/skills/markdown-viewer-skills-architecture && rm -rf "$T"
manifest: architecture/SKILL.md
source content

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:

  1. First: Create the overall framework (wrapper, sidebars, main structure) and define all CSS styles
  2. Second: Add layer containers with titles
  3. Third: Fill in components layer by layer
  4. 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.

#StyleFileSuitable For
1Steel Bluestyles/steel-blue.mdConsulting reports, banking/finance, government projects, RFP proposals
2Ember Warmstyles/ember-warm.mdRetail/e-commerce, education platforms, lifestyle brands, cultural institutions
3Neon Darkstyles/neon-dark.mdTech talks, developer conferences, gaming platforms, cybersecurity dashboards
4Stark Blockstyles/stark-block.mdCreative studios, education platforms, indie developers, tech blogs
5Ocean Tealstyles/ocean-teal.mdTravel platforms, logistics/shipping, green tech, weather/ocean projects
6Dusk Glowstyles/dusk-glow.mdSocial media, entertainment platforms, martech, content creation tools
7Rose Bloomstyles/rose-bloom.mdFashion/beauty, luxury brands, wedding platforms, premium memberships
8Sage Foreststyles/sage-forest.mdHealthcare, agritech, clean energy, sustainability, bioinformatics
9Frost Cleanstyles/frost-clean.mdDesign tools, developer docs, API references, minimalist SaaS
10Indigo Deepstyles/indigo-deep.mdBrand-consistent systems, enterprise white papers, internal platforms
11Pastel Mixstyles/pastel-mix.mdSaaS products, startups, general tech architecture, product docs
12Slate Darkstyles/slate-dark.mdEnterprise 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.

#LayoutFileBest For
1Three-Columnlayouts/three-column.mdComplex systems with cross-cutting concerns and monitoring sidebars
2Single Stacklayouts/single-stack.mdSimple services, microservice detail views, focused documentation
3Left Sidebarlayouts/left-sidebar.mdSystems with operations/monitoring emphasis, DevOps-centric views
4Right Sidebarlayouts/right-sidebar.mdSystems with security/compliance emphasis, governance-focused views
5Pipelinelayouts/pipeline.mdData pipelines, CI/CD flows, ETL processes, horizontal stage-based flows
6Two-Column Splitlayouts/two-column-split.mdBefore/after comparisons, dual-system views, migration architecture
7Dashboardlayouts/dashboard.mdSystem overviews with KPIs, monitoring dashboards, executive summaries
8Grid Cataloglayouts/grid-catalog.mdService catalogs, component libraries, equal-weight microservices
9Banner + Centerlayouts/banner-center.mdGateway-centric architectures, user-facing systems with shared infrastructure
10Nested Containerslayouts/nested-containers.mdCloud deployments, VPC/network topology, environment isolation
11Layer Layoutslayouts/layer-layouts.mdPer-layer layout patterns: grid, sub-group, product group, KPI, vertical stack, zones, inline pipeline, mixed width
12Connectorslayouts/connectors.mdSVG 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.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

  1. Direct embedding only — Always embed HTML directly in Markdown, never use
    ```html
    code blocks
  2. No empty lines in structure — Keep the entire HTML block continuous without any empty lines
  3. 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

  1. Keep layers logically separated — Each layer should represent a clear architectural tier
  2. Use consistent naming — Follow naming conventions for components and services
  3. Highlight key components — Use
    .highlight
    class for critical components
  4. Add technical details — Include technology stack info in
    <small>
    tags
  5. Balance information density — Don't overcrowd components with text
  6. Use icons sparingly — Add emojis to titles for visual hierarchy
  7. Maintain color semantics — Stick to the established color meanings
  8. Consider responsive design — Grids automatically adapt to content