svg-illustrations

SVG Illustration System

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "svg-illustrations" with this command: npx skills add fawzymohamed/devops/fawzymohamed-devops-svg-illustrations

SVG Illustration System

This skill provides guidance for creating consistent, high-quality hand-drawn style SVG illustrations for the DevOps LMS.

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)

Available Components

  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:

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 direction: horizontal or direction: vertical if needed.

MDC Usage:

::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

::

  1. IllustrationChecklist

Purpose: Checkbox-style lists with hand-drawn aesthetic

Best For:

  • Definition of Done

  • Prerequisites

  • Acceptance Criteria

  • Best Practices lists

  • Requirements checklists

Props:

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:

::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

::

  1. IllustrationTeamComposition

Purpose: Team roles in a container with responsibilities

Best For:

  • Scrum Team structure

  • DevOps Team roles

  • Any team/role diagram

  • Organizational charts

Props:

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:

::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

::

  1. 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:

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:

::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

::

  1. 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:

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:

::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

/______________\

Size Options

All illustration components support a size prop to control the maximum width:

Size Max Width Best For

sm

384px Vertical flows, simple diagrams

md

448px Compact horizontal flows

lg

512px Medium checklists

xl

576px Standard illustrations

2xl

672px Checklists with longer text

3xl

768px Wide comparisons

full

100% Full-width illustrations (default for most)

Default Sizes by Component

Component Default Size Reasoning

IllustrationLinearFlow

Auto-sized Direction 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 Auto-Sizing

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

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

Design System Constants

Located in app/composables/useIllustrationDesign.ts

Color Palette

Color Name Main Hex Light Hex Text Hex Use For

violet

#8b5cf6 #a78bfa #c4b5fd Planning, Strategy, Product

blue

#3b82f6 #60a5fa #93c5fd Development, Build, Process

emerald

#10b981 #34d399 #6ee7b7 Testing, Success, Done

amber

#f59e0b #fbbf24 #fcd34d Warnings, Important, Deploy

rose

#f43f5e #fb7185 #fda4af Critical, Errors, Blockers

cyan

#06b6d4 #22d3ee #67e8f9 Information, Links, Ops

gray

#6b7280 #9ca3af #d1d5db Neutral, Disabled, Background

Spacing Constants

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 }

Stroke Styles

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 }

Typography

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 }

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)

Creating Custom SVG (Rare Cases)

Only create custom SVG when no component fits. Follow these rules:

  1. Use Design System Constants

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

  1. Hand-Drawn Style Rules
  • 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

  1. Template Structure

<template> <svg :viewBox="0 0 ${width} ${height}" class="w-full h-auto" role="img" aria-label="Descriptive label"

&#x3C;!-- Elements here -->

</svg> </template>

  1. Accessibility
  • Always include role="img" and aria-label

  • Use descriptive labels for screen readers

  • Ensure sufficient color contrast

Integration with Lessons

In Markdown Files (MDC)

Components are automatically available in markdown via MDC syntax:

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...

In Vue Pages

Import directly from the components directory:

<script setup> import { IllustrationLinearFlow } from '~/components/illustrations' </script>

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

Common Patterns by Topic

SDLC Topics

  • Flow diagrams: IllustrationLinearFlow

  • Phase comparison: IllustrationComparisonMap

  • Methodology checklist: IllustrationChecklist

DevOps Topics

  • Pipeline visualization: IllustrationLinearFlow (horizontal)

  • Tool comparison: IllustrationComparisonMap

  • Team structure: IllustrationTeamComposition

Agile/Scrum Topics

  • Sprint cycle: IllustrationLinearFlow (with feedback loop)

  • Team roles: IllustrationTeamComposition

  • Definition of Done: IllustrationChecklist

  • Scrum vs Kanban: IllustrationComparisonMap

Container Topics

  • Deployment flow: IllustrationLinearFlow

  • Architecture comparison: 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.

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

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.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

nuxt-ui

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

ui-ux-design

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

OpenClaw Mobile Gateway Installer

Installs and manages OpenClaw mobile gateway as a system service. Invoke when users need one-command deploy, start, stop, upgrade, or uninstall.

Registry SourceRecently Updated
210Profile unavailable
Coding

Test Publish Check

项目发布前检查工具。代码质量检查、API测试、部署检查清单、版本管理、上线前审查、回归测试。Pre-publish quality checker for code, API, deployment, versioning, launch review, regression testing. 发布检查、上线审查...

Registry SourceRecently Updated
2050Profile unavailable