svg-illustrations
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSVG 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:
- Reusable Vue Components - For common diagram patterns
- Design System Composable - Shared constants and utilities
- Custom SVG - Only when no component fits (rare)
本插图系统采用混合方案:
- 可复用Vue Components - 用于常见图表模式
- 设计系统组合工具 - 共享常量与实用工具
- 自定义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):
| Steps | Layout | Behavior |
|---|---|---|
| ≤5 | Horizontal | Side-by-side flow, full width |
| 6-10 | Vertical | Stacked flow, 280px width |
| >10 | Vertical + Scroll | 600px max-height with scrolling |
You can still override with or if needed.
direction: horizontaldirection: verticalMDC 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: horizontaldirection: verticalMDC使用示例:
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 prop to control the maximum width:
size| Size | Max Width | Best For |
|---|---|---|
| 384px | Vertical flows, simple diagrams |
| 448px | Compact horizontal flows |
| 512px | Medium checklists |
| 576px | Standard illustrations |
| 672px | Checklists with longer text |
| 768px | Wide comparisons |
| 100% | Full-width illustrations (default for most) |
所有插图组件均支持属性以控制最大宽度:
size| 尺寸 | 最大宽度 | 适用场景 |
|---|---|---|
| 384px | 纵向流程、简易图表 |
| 448px | 紧凑横向流程 |
| 512px | 中等长度清单 |
| 576px | 标准插图 |
| 672px | 文本较长的清单 |
| 768px | 宽幅对比图 |
| 100% | 全宽插图(多数组件默认值) |
Default Sizes by Component
各组件默认尺寸
| Component | Default Size | Reasoning |
|---|---|---|
| Auto-sized | Direction and size determined by step count |
| | Single-column lists don't need full width |
| | Team cards spread horizontally |
| | Side-by-side comparisons need space |
| | Pyramid with side descriptions needs moderate width |
| 组件 | 默认尺寸 | 原因 |
|---|---|---|
| 自动适配 | 方向与尺寸由步骤数量决定 |
| | 单列列表无需全宽 |
| | 团队卡片需横向展开 |
| | 并列对比需要足够空间 |
| | 带侧边说明的金字塔需要适中宽度 |
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 only when you specifically need horizontal for >5 items or vertical for ≤5 items
direction - Use or
size: mdwhen you want a more compact looksize: lg - Defaults work well for most cases - only override when needed
- 仅当您明确需要>5项时用横向布局,或≤5项时用纵向布局,才需覆盖
direction - 如需更紧凑的显示效果,使用或
size: mdsize: lg - 默认设置适用于大多数场景,仅在必要时覆盖
Design System Constants
设计系统常量
Located in
app/composables/useIllustrationDesign.ts位于
app/composables/useIllustrationDesign.tsColor Palette
调色板
| Color Name | Main Hex | Light Hex | Text Hex | Use For |
|---|---|---|---|---|
| #8b5cf6 | #a78bfa | #c4b5fd | Planning, Strategy, Product |
| #3b82f6 | #60a5fa | #93c5fd | Development, Build, Process |
| #10b981 | #34d399 | #6ee7b7 | Testing, Success, Done |
| #f59e0b | #fbbf24 | #fcd34d | Warnings, Important, Deploy |
| #f43f5e | #fb7185 | #fda4af | Critical, Errors, Blockers |
| #06b6d4 | #22d3ee | #67e8f9 | Information, Links, Ops |
| #6b7280 | #9ca3af | #d1d5db | Neutral, Disabled, Background |
| 颜色名称 | 主色Hex | 浅色Hex | 文本色Hex | 适用场景 |
|---|---|---|---|---|
| #8b5cf6 | #a78bfa | #c4b5fd | 规划、策略、产品 |
| #3b82f6 | #60a5fa | #93c5fd | 开发、构建、流程 |
| #10b981 | #34d399 | #6ee7b7 | 测试、成功、完成 |
| #f59e0b | #fbbf24 | #fcd34d | 警告、重要事项、部署 |
| #f43f5e | #fb7185 | #fda4af | 关键、错误、阻塞 |
| #06b6d4 | #22d3ee | #67e8f9 | 信息、链接、运维 |
| #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 with design system patterns
stroke-dasharray - Slight rotation: Apply for variation
getHandDrawnRotation(index) - Semi-transparent fills: Use from OPACITY constants
fill-opacity - Rounded corners: Use attribute with SPACING.borderRadius
rx
- 虚线描边:使用设计系统中定义的图案
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 and
role="img"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.tsImportant: Components must be in for MDC syntax to work in markdown files.
components/content/app/
├── components/content/ // MDC组件(自动注册以支持Markdown)
│ ├── IllustrationLinearFlow.vue
│ ├── IllustrationChecklist.vue
│ ├── IllustrationTeamComposition.vue
│ ├── IllustrationComparisonMap.vue
│ └── IllustrationPyramid.vue
└── composables/
└── useIllustrationDesign.ts注意: 组件必须放在目录下,才能在Markdown文件中使用MDC语法。
components/content/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已添加,用于支持测试金字塔与分层架构。