svg-illustrations

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

SVG Illustration System

SVG手绘插图系统

This skill provides guidance for creating consistent, high-quality hand-drawn style SVG illustrations for the DevOps LMS.
本指南为DevOps LMS提供创建风格统一、高质量的手绘风格SVG插图的指导方案。

Overview

概述

The illustration system uses a hybrid approach:
  1. Reusable Vue Components - For common diagram patterns
  2. Design System Composable - Shared constants and utilities
  3. Custom SVG - Only when no component fits (rare)

本插图系统采用混合方案
  1. 可复用Vue Components - 用于常见图表模式
  2. 设计系统组合工具 - 共享常量与实用工具
  3. 自定义SVG - 仅在无合适组件时使用(极少情况)

Available Components

可用组件

1. IllustrationLinearFlow

1. IllustrationLinearFlow

Purpose: Sequential step-by-step processes
Best For:
  • CI/CD Pipelines
  • SDLC Phases
  • Scrum Framework Flow
  • Any A → B → C → D process
Props:
typescript
interface Props {
  steps: Array<{
    label: string      // Main text
    sublabel?: string  // Secondary text
    icon?: string      // Emoji icon
    color: string      // Tailwind color name
  }>
  direction?: 'horizontal' | 'vertical'  // Auto-determined by step count (optional)
  showFeedbackLoop?: boolean             // Show return arrow
  feedbackLabel?: string                 // Label for feedback
  size?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'
}
Auto-Direction (No need to specify direction):
StepsLayoutBehavior
≤5HorizontalSide-by-side flow, full width
6-10VerticalStacked flow, 280px width
>10Vertical + Scroll600px max-height with scrolling
You can still override with
direction: horizontal
or
direction: vertical
if needed.
MDC Usage:
md
::illustration-linear-flow
---
steps:
  - label: Plan
    sublabel: Sprint Planning
    icon: 📋
    color: violet
  - label: Build
    sublabel: Development
    icon: 🔨
    color: blue
  - label: Test
    sublabel: QA
    icon: ✅
    color: emerald
  - label: Deploy
    sublabel: Release
    icon: 🚀
    color: amber
showFeedbackLoop: true
feedbackLabel: Continuous Improvement
---
::

用途: 展示顺序化的分步流程
适用场景:
  • CI/CD流水线
  • SDLC阶段
  • Scrum框架流程
  • 任何A → B → C → D式的流程
属性:
typescript
interface Props {
  steps: Array<{
    label: string      // 主文本
    sublabel?: string  // 次要文本
    icon?: string      // 表情图标
    color: string      // Tailwind颜色名称
  }>
  direction?: 'horizontal' | 'vertical'  // 根据步骤数量自动确定(可选)
  showFeedbackLoop?: boolean             // 是否显示返回箭头
  feedbackLabel?: string                 // 反馈说明文本
  size?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'
}
自动方向(无需指定direction):
步骤数量布局方式行为表现
≤5横向并排布局,占满宽度
6-10纵向堆叠布局,宽度280px
>10纵向+滚动最大高度600px,支持滚动
如有需要,仍可通过
direction: horizontal
direction: vertical
覆盖自动设置。
MDC使用示例:
md
::illustration-linear-flow
---
steps:
  - label: 规划
    sublabel: 冲刺规划
    icon: 📋
    color: violet
  - label: 构建
    sublabel: 开发阶段
    icon: 🔨
    color: blue
  - label: 测试
    sublabel: QA测试
    icon: ✅
    color: emerald
  - label: 部署
    sublabel: 发布上线
    icon: 🚀
    color: amber
showFeedbackLoop: true
feedbackLabel: 持续改进
---
::

2. IllustrationChecklist

2. IllustrationChecklist

Purpose: Checkbox-style lists with hand-drawn aesthetic
Best For:
  • Definition of Done
  • Prerequisites
  • Acceptance Criteria
  • Best Practices lists
  • Requirements checklists
Props:
typescript
interface Props {
  title: string                           // Checklist title
  items: Array<string | {                 // Simple string or object
    text: string
    icon?: string
  }>
  note?: string                           // Optional footnote with 💡
  color?: string                          // Default: emerald
  size?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'  // Default: 2xl
}
MDC Usage:
md
::illustration-checklist
---
title: Definition of Done
items:
  - text: Code reviewed and approved
    icon: 👀
  - text: Unit tests passing
    icon: ✅
  - text: Documentation updated
    icon: 📝
  - text: Deployed to staging
    icon: 🚀
note: All items must be checked before marking complete
color: emerald
---
::

用途: 具有手绘风格的复选框式列表
适用场景:
  • 完成定义(Definition of Done)
  • 前置条件
  • 验收标准
  • 最佳实践列表
  • 需求检查清单
属性:
typescript
interface Props {
  title: string                           // 清单标题
  items: Array<string | {                 // 纯文本或对象格式
    text: string
    icon?: string
  }>
  note?: string                           // 可选脚注(带💡标识)
  color?: string                          // 默认值:emerald
  size?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'  // 默认值:2xl
}
MDC使用示例:
md
::illustration-checklist
---
title: 完成定义
items:
  - text: 代码已评审并获批准
    icon: 👀
  - text: 单元测试全部通过
    icon: ✅
  - text: 文档已更新
    icon: 📝
  - text: 已部署至预发布环境
    icon: 🚀
note: 所有项均需勾选后才可标记完成
color: emerald
---
::

3. IllustrationTeamComposition

3. IllustrationTeamComposition

Purpose: Team roles in a container with responsibilities
Best For:
  • Scrum Team structure
  • DevOps Team roles
  • Any team/role diagram
  • Organizational charts
Props:
typescript
interface Props {
  title: string                           // Team title
  subtitle?: string                       // Optional subtitle
  roles: Array<{
    name: string                          // Role name
    owns: string                          // What they own
    icon: string                          // Emoji icon
    color: string                         // Tailwind color
    responsibilities: string[]            // List of responsibilities
  }>
  footnote?: string                       // Optional footnote
  size?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'  // Default: full
}
MDC Usage:
md
::illustration-team-composition
---
title: Scrum Team
subtitle: Self-organizing, cross-functional
roles:
  - name: Product Owner
    owns: Product Backlog
    icon: 🎯
    color: violet
    responsibilities:
      - Maximizes value
      - Manages backlog
      - Stakeholder liaison
  - name: Scrum Master
    owns: Process
    icon: 🛡️
    color: blue
    responsibilities:
      - Removes impediments
      - Facilitates events
      - Coaches team
  - name: Developers
    owns: Sprint Work
    icon: 👥
    color: emerald
    responsibilities:
      - Build increment
      - Self-organize
      - Cross-functional
footnote: Typical team size: 5-9 people
---
::

用途: 展示容器内的团队角色与职责
适用场景:
  • Scrum团队结构
  • DevOps团队角色
  • 任何团队/角色图表
  • 组织架构图
属性:
typescript
interface Props {
  title: string                           // 团队标题
  subtitle?: string                       // 可选副标题
  roles: Array<{
    name: string                          // 角色名称
    owns: string                          // 负责范围
    icon: string                          // 表情图标
    color: string                         // Tailwind颜色
    responsibilities: string[]            // 职责列表
  }>
  footnote?: string                       // 可选脚注
  size?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'  // 默认值:full
}
MDC使用示例:
md
::illustration-team-composition
---
title: Scrum团队
subtitle: 自组织、跨职能团队
roles:
  - name: 产品负责人
    owns: 产品待办事项
    icon: 🎯
    color: violet
    responsibilities:
      - 最大化产品价值
      - 管理待办事项
      - 对接利益相关方
  - name: Scrum主管
    owns: 流程管理
    icon: 🛡️
    color: blue
    responsibilities:
      - 移除障碍
      - 主持团队活动
      - 指导团队
  - name: 开发人员
    owns: 冲刺工作
    icon: 👥
    color: emerald
    responsibilities:
      - 构建增量交付物
      - 自组织工作
      - 跨职能协作
footnote: 典型团队规模:5-9人
---
::

4. IllustrationComparisonMap

4. IllustrationComparisonMap

Purpose: Side-by-side concept mapping with connectors
Best For:
  • Scrum ↔ DevOps mapping
  • Traditional vs Modern approaches
  • Before/After comparisons
  • Any concept mapping
Props:
typescript
interface Props {
  leftTitle: string                       // Left column title
  rightTitle: string                      // Right column title
  leftColor?: string                      // Default: violet
  rightColor?: string                     // Default: cyan
  connections: Array<{
    left: string                          // Left item text
    right: string                         // Right item text
    icon: string                          // Connector emoji
  }>
  footnote?: string                       // Optional footnote
  size?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'  // Default: full
}
MDC Usage:
md
::illustration-comparison-map
---
leftTitle: Scrum
rightTitle: DevOps
leftColor: violet
rightColor: cyan
connections:
  - left: Sprint
    right: Pipeline
    icon: 🔄
  - left: Backlog
    right: Kanban Board
    icon: 📋
  - left: Retrospective
    right: Post-mortem
    icon: 🔍
footnote: Both emphasize continuous improvement
---
::

用途: 带连接线的并列概念映射图
适用场景:
  • Scrum ↔ DevOps映射
  • 传统与现代方案对比
  • 前后变化对比
  • 任何概念映射场景
属性:
typescript
interface Props {
  leftTitle: string                       // 左列标题
  rightTitle: string                      // 右列标题
  leftColor?: string                      // 默认值:violet
  rightColor?: string                     // 默认值:cyan
  connections: Array<{
    left: string                          // 左侧项文本
    right: string                         // 右侧项文本
    icon: string                          // 连接线表情
  }>
  footnote?: string                       // 可选脚注
  size?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'  // 默认值:full
}
MDC使用示例:
md
::illustration-comparison-map
---
leftTitle: Scrum
rightTitle: DevOps
leftColor: violet
rightColor: cyan
connections:
  - left: 冲刺周期
    right: 流水线
    icon: 🔄
  - left: 待办事项
    right: 看板
    icon: 📋
  - left: 回顾会议
    right: 事后复盘
    icon: 🔍
footnote: 二者均强调持续改进
---
::

5. IllustrationPyramid

5. IllustrationPyramid

Purpose: Pyramid/hierarchy diagrams where size indicates quantity or importance
Best For:
  • Testing Pyramid (Unit → Integration → E2E)
  • Priority hierarchies
  • Layered architectures
  • Any bottom-up structure where base is largest
Props:
typescript
interface Props {
  layers: Array<{
    label: string           // Layer name (displayed inside)
    description?: string    // Text shown to the right
    icon?: string           // Emoji shown to the left
    color: string           // Tailwind color name
  }>  // Order: top (smallest) to bottom (largest)
  title?: string            // Optional title above pyramid
  footnote?: string         // Optional centered footnote below
  size?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'  // Default: xl
}
MDC Usage:
md
::illustration-pyramid
---
layers:
  - label: E2E Tests
    description: Few - slow, fragile
    icon: 🌐
    color: rose
  - label: Integration
    description: Some - moderate speed
    icon: 🔗
    color: amber
  - label: Unit Tests
    description: Many - fast, cheap
    icon: 🧩
    color: emerald
footnote: More tests at the bottom, fewer at the top
size: xl
---
::
Visual Structure:
         /\
        /  \     ← Top layer (few/small) - rose
       /____\
      /      \   ← Middle layer (some/medium) - amber
     /________\
    /          \ ← Bottom layer (many/large) - emerald
   /______________\

用途: 金字塔/层级图,尺寸表示数量或重要性
适用场景:
  • 测试金字塔(单元→集成→端到端)
  • 优先级层级
  • 分层架构
  • 任何自下而上、底层最大的结构
属性:
typescript
interface Props {
  layers: Array<{
    label: string           // 层级名称(显示在内部)
    description?: string    // 显示在右侧的说明文本
    icon?: string           // 显示在左侧的表情
    color: string           // Tailwind颜色名称
  }>  // 顺序:顶部(最小)到底部(最大)
  title?: string            // 金字塔上方的可选标题
  footnote?: string         // 金字塔下方的可选居中脚注
  size?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'  // 默认值:xl
}
MDC使用示例:
md
::illustration-pyramid
---
layers:
  - label: 端到端测试
    description: 数量少 - 速度慢、易失效
    icon: 🌐
    color: rose
  - label: 集成测试
    description: 数量中等 - 速度适中
    icon: 🔗
    color: amber
  - label: 单元测试
    description: 数量多 - 速度快、成本低
    icon: 🧩
    color: emerald
footnote: 底层测试数量多,顶层数量少
size: xl
---
::
视觉结构:
         /\
        /  \     ← 顶层(数量少/尺寸小)- 玫瑰色
       /____\
      /      \   ← 中层(数量中等/尺寸适中)- 琥珀色
     /________\
    /          \ ← 底层(数量多/尺寸大)- 翠绿色
   /______________\

Size Options

尺寸选项

All illustration components support a
size
prop to control the maximum width:
SizeMax WidthBest For
sm
384pxVertical flows, simple diagrams
md
448pxCompact horizontal flows
lg
512pxMedium checklists
xl
576pxStandard illustrations
2xl
672pxChecklists with longer text
3xl
768pxWide comparisons
full
100%Full-width illustrations (default for most)
所有插图组件均支持
size
属性以控制最大宽度:
尺寸最大宽度适用场景
sm
384px纵向流程、简易图表
md
448px紧凑横向流程
lg
512px中等长度清单
xl
576px标准插图
2xl
672px文本较长的清单
3xl
768px宽幅对比图
full
100%全宽插图(多数组件默认值)

Default Sizes by Component

各组件默认尺寸

ComponentDefault SizeReasoning
IllustrationLinearFlow
Auto-sizedDirection and size determined by step count
IllustrationChecklist
2xl
Single-column lists don't need full width
IllustrationTeamComposition
full
Team cards spread horizontally
IllustrationComparisonMap
full
Side-by-side comparisons need space
IllustrationPyramid
xl
Pyramid with side descriptions needs moderate width
组件默认尺寸原因
IllustrationLinearFlow
自动适配方向与尺寸由步骤数量决定
IllustrationChecklist
2xl
单列列表无需全宽
IllustrationTeamComposition
full
团队卡片需横向展开
IllustrationComparisonMap
full
并列对比需要足够空间
IllustrationPyramid
xl
带侧边说明的金字塔需要适中宽度

IllustrationLinearFlow Auto-Sizing

IllustrationLinearFlow自动适配规则

The component automatically determines layout and size:
  • ≤5 steps: Horizontal layout, full width
  • 6-10 steps: Vertical layout, 280px width
  • >10 steps: Vertical layout with 600px max-height scrolling
组件会自动确定布局与尺寸:
  • ≤5步:横向布局,全宽
  • 6-10步:纵向布局,宽度280px
  • >10步:纵向布局,最大高度600px并支持滚动

When to Override Defaults

何时覆盖默认设置

  • Override
    direction
    only when you specifically need horizontal for >5 items or vertical for ≤5 items
  • Use
    size: md
    or
    size: lg
    when you want a more compact look
  • Defaults work well for most cases - only override when needed

  • 仅当您明确需要>5项时用横向布局,或≤5项时用纵向布局,才需覆盖
    direction
  • 如需更紧凑的显示效果,使用
    size: md
    size: lg
  • 默认设置适用于大多数场景,仅在必要时覆盖

Design System Constants

设计系统常量

Located in
app/composables/useIllustrationDesign.ts
位于
app/composables/useIllustrationDesign.ts

Color Palette

调色板

Color NameMain HexLight HexText HexUse For
violet
#8b5cf6#a78bfa#c4b5fdPlanning, Strategy, Product
blue
#3b82f6#60a5fa#93c5fdDevelopment, Build, Process
emerald
#10b981#34d399#6ee7b7Testing, Success, Done
amber
#f59e0b#fbbf24#fcd34dWarnings, Important, Deploy
rose
#f43f5e#fb7185#fda4afCritical, Errors, Blockers
cyan
#06b6d4#22d3ee#67e8f9Information, Links, Ops
gray
#6b7280#9ca3af#d1d5dbNeutral, Disabled, Background
颜色名称主色Hex浅色Hex文本色Hex适用场景
violet
#8b5cf6#a78bfa#c4b5fd规划、策略、产品
blue
#3b82f6#60a5fa#93c5fd开发、构建、流程
emerald
#10b981#34d399#6ee7b7测试、成功、完成
amber
#f59e0b#fbbf24#fcd34d警告、重要事项、部署
rose
#f43f5e#fb7185#fda4af关键、错误、阻塞
cyan
#06b6d4#22d3ee#67e8f9信息、链接、运维
gray
#6b7280#9ca3af#d1d5db中性、禁用、背景

Spacing Constants

间距常量

typescript
SPACING = {
  boxPadding: 20,        // Inside boxes
  itemGap: 35,           // Between list items
  arrowLength: 50,       // Arrow length
  containerPadding: 30,  // Container padding
  boxWidth: 140,         // Standard box
  boxHeight: 70,         // Standard box
  largeBoxWidth: 160,    // Role cards
  largeBoxHeight: 200,   // Role cards
  borderRadius: 12,      // Rounded corners
  iconRadius: 25         // Icon circles
}
typescript
SPACING = {
  boxPadding: 20,        // 盒子内边距
  itemGap: 35,           // 列表项间距
  arrowLength: 50,       // 箭头长度
  containerPadding: 30,  // 容器内边距
  boxWidth: 140,         // 标准盒子宽度
  boxHeight: 70,         // 标准盒子高度
  largeBoxWidth: 160,    // 角色卡片宽度
  largeBoxHeight: 200,   // 角色卡片高度
  borderRadius: 12,      // 圆角半径
  iconRadius: 25         // 图标圆形半径
}

Stroke Styles

描边样式

typescript
STROKES = {
  boxDash: '8,4',           // Box stroke pattern
  arrowDash: '4,3',         // Arrow stroke pattern
  containerDash: '10,5',    // Container stroke pattern
  boxStrokeWidth: 2.5,      // Box stroke width
  arrowStrokeWidth: 2,      // Arrow stroke width
  containerStrokeWidth: 2   // Container stroke width
}
typescript
STROKES = {
  boxDash: '8,4',           // 盒子描边图案
  arrowDash: '4,3',         // 箭头描边图案
  containerDash: '10,5',    // 容器描边图案
  boxStrokeWidth: 2.5,      // 盒子描边宽度
  arrowStrokeWidth: 2,      // 箭头描边宽度
  containerStrokeWidth: 2   // 容器描边宽度
}

Typography

排版规则

typescript
TYPOGRAPHY = {
  fontFamily: "'Segoe UI', system-ui, sans-serif",
  titleSize: 14,      // Titles/headers
  labelSize: 12,      // Main labels
  sublabelSize: 10,   // Secondary text
  smallSize: 9,       // Notes/captions
  iconSize: 20        // Emoji size
}

typescript
TYPOGRAPHY = {
  fontFamily: "'Segoe UI', system-ui, sans-serif",
  titleSize: 14,      // 标题/表头字号
  labelSize: 12,      // 主标签字号
  sublabelSize: 10,   // 次要文本字号
  smallSize: 9,       // 注释/说明文字字号
  iconSize: 20        // 表情图标尺寸
}

When to Use Each Component

各组件适用场景决策树

Decision Tree

What type of diagram do you need?
├── Sequential process? (A → B → C)
│   └── Use: IllustrationLinearFlow
├── Checklist/list with checkboxes?
│   └── Use: IllustrationChecklist
├── Team/roles with responsibilities?
│   └── Use: IllustrationTeamComposition
├── Side-by-side comparison?
│   └── Use: IllustrationComparisonMap
├── Pyramid/hierarchy where size shows quantity?
│   └── Use: IllustrationPyramid
└── None of the above?
    └── Create custom SVG (see below)

您需要哪种类型的图表?
├── 顺序化流程?(A → B → C)
│   └── 使用:IllustrationLinearFlow
├── 带复选框的清单/列表?
│   └── 使用:IllustrationChecklist
├── 展示团队/角色与职责?
│   └── 使用:IllustrationTeamComposition
├── 并列对比?
│   └── 使用:IllustrationComparisonMap
├── 金字塔/层级结构(尺寸表示数量)?
│   └── 使用:IllustrationPyramid
└── 以上都不是?
    └── 创建自定义SVG(见下文)

Creating Custom SVG (Rare Cases)

创建自定义SVG(极少场景)

Only create custom SVG when no component fits. Follow these rules:
仅当无合适组件时才创建自定义SVG,请遵循以下规则:

1. Use Design System Constants

1. 使用设计系统常量

vue
<script setup>
import {
  COLORS,
  SPACING,
  STROKES,
  OPACITY,
  TYPOGRAPHY,
  getColor,
  getHandDrawnRotation
} from '~/composables/useIllustrationDesign'
</script>
vue
<script setup>
import {
  COLORS,
  SPACING,
  STROKES,
  OPACITY,
  TYPOGRAPHY,
  getColor,
  getHandDrawnRotation
} from '~/composables/useIllustrationDesign'
</script>

2. Hand-Drawn Style Rules

2. 手绘风格规则

  • Dashed strokes: Use
    stroke-dasharray
    with design system patterns
  • Slight rotation: Apply
    getHandDrawnRotation(index)
    for variation
  • Semi-transparent fills: Use
    fill-opacity
    from OPACITY constants
  • Rounded corners: Use
    rx
    attribute with SPACING.borderRadius
  • 虚线描边:使用设计系统中定义的
    stroke-dasharray
    图案
  • 轻微旋转:应用
    getHandDrawnRotation(index)
    实现差异化
  • 半透明填充:使用OPACITY常量中的
    fill-opacity
  • 圆角:使用SPACING.borderRadius设置
    rx
    属性

3. Template Structure

3. 模板结构

vue
<template>
  <svg
    :viewBox="`0 0 ${width} ${height}`"
    class="w-full h-auto"
    role="img"
    aria-label="Descriptive label"
  >
    <!-- Elements here -->
  </svg>
</template>
vue
<template>
  <svg
    :viewBox="`0 0 ${width} ${height}`"
    class="w-full h-auto"
    role="img"
    aria-label="描述性标签"
  >
    <!-- 元素内容 -->
  </svg>
</template>

4. Accessibility

4. 无障碍访问

  • Always include
    role="img"
    and
    aria-label
  • Use descriptive labels for screen readers
  • Ensure sufficient color contrast

  • 始终添加
    role="img"
    aria-label
  • 为屏幕阅读器使用描述性标签
  • 确保颜色对比度足够

Integration with Lessons

与课程集成

In Markdown Files (MDC)

在Markdown文件中(MDC语法)

Components are automatically available in markdown via MDC syntax:
md
Here's how the Scrum framework flows:

::illustration-linear-flow
---
steps:
  - label: Sprint Planning
    color: violet
  - label: Daily Scrum
    color: blue
  - label: Sprint Review
    color: emerald
  - label: Retrospective
    color: amber
---
::

As you can see, Scrum is an iterative process...
组件会自动在Markdown中可用,使用MDC语法:
md
以下是Scrum框架的流程:

::illustration-linear-flow
---
steps:
  - label: 冲刺规划
    color: violet
  - label: 每日站会
    color: blue
  - label: 冲刺评审
    color: emerald
  - label: 回顾会议
    color: amber
---
::

如您所见,Scrum是一个迭代式流程...

In Vue Pages

在Vue页面中

Import directly from the components directory:
vue
<script setup>
import { IllustrationLinearFlow } from '~/components/illustrations'
</script>

<template>
  <IllustrationLinearFlow :steps="mySteps" />
</template>

直接从组件目录导入:
vue
<script setup>
import { IllustrationLinearFlow } from '~/components/illustrations'
</script>

<template>
  <IllustrationLinearFlow :steps="mySteps" />
</template>

Common Patterns by Topic

按主题分类的常见模式

SDLC Topics

SDLC主题

  • Flow diagrams: IllustrationLinearFlow
  • Phase comparison: IllustrationComparisonMap
  • Methodology checklist: IllustrationChecklist
  • 流程图:IllustrationLinearFlow
  • 阶段对比:IllustrationComparisonMap
  • 方法论清单:IllustrationChecklist

DevOps Topics

DevOps主题

  • Pipeline visualization: IllustrationLinearFlow (horizontal)
  • Tool comparison: IllustrationComparisonMap
  • Team structure: IllustrationTeamComposition
  • 流水线可视化:IllustrationLinearFlow(横向)
  • 工具对比:IllustrationComparisonMap
  • 团队结构:IllustrationTeamComposition

Agile/Scrum Topics

Agile/Scrum主题

  • Sprint cycle: IllustrationLinearFlow (with feedback loop)
  • Team roles: IllustrationTeamComposition
  • Definition of Done: IllustrationChecklist
  • Scrum vs Kanban: IllustrationComparisonMap
  • 冲刺周期:IllustrationLinearFlow(带反馈循环)
  • 团队角色:IllustrationTeamComposition
  • 完成定义:IllustrationChecklist
  • Scrum vs Kanban:IllustrationComparisonMap

Container Topics

容器主题

  • Deployment flow: IllustrationLinearFlow
  • Architecture comparison: IllustrationComparisonMap

  • 部署流程:IllustrationLinearFlow
  • 架构对比:IllustrationComparisonMap

File Locations

文件位置

app/
├── components/content/           # MDC components (auto-registered for markdown)
│   ├── IllustrationLinearFlow.vue
│   ├── IllustrationChecklist.vue
│   ├── IllustrationTeamComposition.vue
│   ├── IllustrationComparisonMap.vue
│   └── IllustrationPyramid.vue
└── composables/
    └── useIllustrationDesign.ts
Important: Components must be in
components/content/
for MDC syntax to work in markdown files.

app/
├── components/content/           // MDC组件(自动注册以支持Markdown)
│   ├── IllustrationLinearFlow.vue
│   ├── IllustrationChecklist.vue
│   ├── IllustrationTeamComposition.vue
│   ├── IllustrationComparisonMap.vue
│   └── IllustrationPyramid.vue
└── composables/
    └── useIllustrationDesign.ts
注意: 组件必须放在
components/content/
目录下,才能在Markdown文件中使用MDC语法。

Quality Checklist

质量检查清单

Before completing any illustration:
  • Uses appropriate component (or justified custom SVG)
  • Colors match topic semantics (e.g., emerald for success)
  • Text is readable and not overlapping
  • Has accessible aria-label
  • Renders correctly in dark mode
  • Responsive (uses w-full h-auto)
  • Integrates naturally with lesson content

完成任何插图前,请检查:
  • 使用了合适的组件(或有充分理由使用自定义SVG)
  • 颜色符合主题语义(例如:翠绿色表示成功)
  • 文本可读且无重叠
  • 包含无障碍访问的aria-label
  • 在深色模式下渲染正常
  • 响应式设计(使用w-full h-auto)
  • 与课程内容自然集成

Future Components (Planned)

规划中的未来组件

When these patterns are needed frequently, new components will be added:
  • IllustrationTimeline - Events on a timeline
  • IllustrationCycle - Circular/cyclic processes
  • IllustrationHierarchy - Tree structures (parent-child relationships)
  • IllustrationPillars - Supporting pillars diagram
Note: IllustrationPyramid was added to support testing pyramids and layered hierarchies.
当以下模式频繁需求时,将添加新组件:
  • IllustrationTimeline - 时间轴事件图
  • IllustrationCycle - 圆形/循环流程
  • IllustrationHierarchy - 树形结构(父子关系)
  • IllustrationPillars - 支撑柱图
注:IllustrationPyramid已添加,用于支持测试金字塔与分层架构。