# Process Infographic

> This skill should be used when the user asks to "create an infographic", "generate a process flow", "make a step-by-step diagram", "design a timeline", "create a workflow diagram", "visualize a pipeline", "make a numbered sequence", "show the steps as an image", "create a lifecycle diagram", "make a flow diagram", or mentions numbered steps, process stages, deployment pipelines, CI/CD flows, or sequential procedures. Do NOT trigger for cover images or system architecture diagrams.

- Skill: `widnyana/process-infographic` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add widnyana/process-infographic`
- Raw SKILL.md: https://api.skillmd.com/api/skills/widnyana/process-infographic/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: widnyana (https://skillmd.com/u/widnyana)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/widnyana/process-infographic

---


# Process Infographic Generator

Generate step-by-step process infographics as PNG by writing HTML+CSS and
rendering through Chrome headless. Each infographic is a self-contained HTML
file with numbered steps, titles, and descriptions arranged in a vertical
timeline, horizontal phases, or grid layout.

The output is a static PNG suitable for blog posts, documentation, and
presentations. No external images, no JavaScript, no server-side rendering.

## Overview

Process infographics turn multi-step procedures into scannable visual flows.
Use this skill when the content has a clear sequence: deployment pipelines,
onboarding steps, request lifecycles, data transformation stages, or any
numbered process.

**What this skill produces:**
- A PNG image at 1200x630 to 1200x1500px (height scales with step count)
- Numbered steps with titles and one-line descriptions
- Connected by a timeline thread or grouped into phases
- Light or dark theme matching the content tone

**When to use this skill:**
- Blog posts explain a multi-step process
- Documentation needs a visual procedure flow
- A series of steps needs to be presented as a single image
- A deployment pipeline, CI/CD flow, or lifecycle diagram is needed

## Detailed Workflow

### Step 1: Identify the Steps

Extract process steps from the source content. Each step needs:
- A short title (2-5 words)
- A one-line description (under 15 words)
- An optional phase or group label

If the source content has headings or numbered items, use those directly.
If the content is prose, distill it into discrete stages.

### Step 2: Select Dimensions

Choose canvas height based on step count:

| Steps | Width | Height | Layout |
|-------|-------|--------|--------|
| 3-4 | 1200 | 630 | Grid (2x2) or vertical |
| 5-6 | 1200 | 900 | Vertical timeline |
| 7-9 | 1200 | 1200 | Vertical with phases |
| 10+ | 1200 | 1500 | Vertical with phases, compact type |

General formula: `height = 630 + (steps_above_4 * 135)`, capped at 1500.

### Step 3: Choose Layout Pattern

**Vertical timeline** (default): Steps flow top-to-bottom with a left-aligned
connecting line and numbered markers. Best for sequential processes.

**Horizontal phases**: Steps grouped into 3-5 horizontal columns. Each column
is a phase with sub-steps. Best for parallel or categorized stages.

**Grid**: Equal-sized cards in 2 or 3 columns. Best for 4-8 steps with short
descriptions where sequence matters less than completeness.

See `references/infographic-patterns.md` for complete CSS patterns.

### Step 4: Write the HTML+CSS

Create a self-contained HTML file. Start from this boilerplate and adapt:

```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
  @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
  * { margin: 0; padding: 0; box-sizing: border-box; }
  body {
    width: 1200px;
    height: 900px;
    overflow: hidden;
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    background: #ffffff;
    color: #1a1a2e;
  }
  .container { padding: 48px 80px; }
  .title { font-size: 22px; font-weight: 700; margin-bottom: 4px; }
  .subtitle { font-size: 13px; color: #666; margin-bottom: 32px; }
  .timeline {
    position: relative;
    margin-left: 18px;
    padding-left: 32px;
    border-left: 2px solid #d1d5db;
  }
  .step {
    position: relative;
    margin-bottom: 32px;
  }
  .step-marker {
    position: absolute;
    left: -49px;
    top: 4px;
    width: 36px; height: 36px;
    border-radius: 50%;
    background: #2d8659;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 14px;
  }
  .step-title { font-size: 16px; font-weight: 700; margin-bottom: 4px; }
  .step-desc { font-size: 12px; color: #555; line-height: 1.5; }
</style>
</head>
<body>
  <div class="container">
    <div class="title">Process Title</div>
    <div class="subtitle">Brief description of the flow</div>
    <div class="timeline">
      <div class="step">
        <div class="step-marker">1</div>
        <div class="step-title">Step Title</div>
        <div class="step-desc">One-line description of what happens.</div>
      </div>
    </div>
  </div>
</body>
</html>
```

Key constraints:
- Set exact pixel dimensions on `body` (`width` + `height` + `overflow: hidden`)
- Use Google Fonts loaded via `@import`
- No external images, no JavaScript
- All styles inlined in `<style>` tag

### Step 5: Write to Temp File

Save the HTML to `tmp/` in the current project directory. Use a descriptive
filename: `tmp/deployment-pipeline.html`, `tmp/auth-flow.html`, etc.

### Step 6: Capture the Screenshot

Run the screenshot script with the correct dimensions:

```bash
bash scripts/screenshot.sh tmp/infographic.html output/path/infographic.png 1200 900
```

Pass the height as the 4th argument when using a taller canvas:
```bash
bash scripts/screenshot.sh tmp/infographic.html static/images/flow.png 1200 1200
```

### Step 7: Verify the Output

Read the generated PNG file to check:
- All steps are visible and not clipped
- Text is readable at the rendered size
- Step numbers are correctly ordered
- No overflow or scrollbar artifacts
- Spacing between steps is consistent

### Step 8: Clean Up

Remove the temp HTML file after confirming the PNG is correct.

## Theme Variations

### Light Theme (Default)

White background, dark text, green step markers:
- Background: `#ffffff`
- Primary text: `#1a1a2e`
- Secondary text: `#555555`
- Step markers: `#2d8659` (green)
- Timeline line: `#d1d5db`

### Dark Theme

Dark slate background, light text, cyan accents:
- Background: `#0f172a`
- Primary text: `#f1f5f9`
- Secondary text: `#94a3b8`
- Step markers: `#06b6d4` (cyan)
- Timeline line: `#334155`

Match the theme to the content tone. Technical infrastructure and devops
topics suit dark themes. General tutorials and user-facing processes suit
light themes.

## Phase Grouping

For multi-stage processes, wrap steps under labeled phase headers:

```html
<div class="phase-group">
  <div class="phase-group-label">Phase 1: Setup</div>
  <div class="step">...</div>
  <div class="step">...</div>
</div>
```

Phase headers use green underline and uppercase text:
```css
.phase-group-label {
  font-size: 11px;
  font-weight: 700;
  color: #2d8659;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 16px;
  padding-bottom: 6px;
  border-bottom: 2px solid #2d8659;
  display: inline-block;
}
```

## Troubleshooting

| Problem | Likely Cause | Fix |
|---------|-------------|-----|
| Steps clipped at bottom | Canvas height too small | Increase `body` height or reduce step count |
| Text too small to read | Font size under 11px | Raise minimum font size to 12px |
| Step markers misaligned | `position: absolute` offset wrong | Adjust `left` on `.step-marker` (should be `-49px` with timeline padding) |
| Chrome not found | No browser in PATH | Install `google-chrome` or `chromium` |
| Blank white PNG | `@import` font failed, blocking render | Move `@import` to first line of `<style>` block |
| Scrollbar visible | Content overflows canvas | Increase height or reduce padding |
| Timeline line missing | `border-left` color too light | Use `#d1d5db` or darker |

## Quick Reference

| Item | Value |
|------|-------|
| Canvas width | 1200px (fixed) |
| Canvas height | 630/900/1200/1500px (step-dependent) |
| Font | Inter, 400/700 |
| Step marker | 36px circle, `#2d8659` fill |
| Step title | 16px bold |
| Step desc | 12px regular, `#555` |
| Output format | PNG via Chrome headless |

## Additional Resources

### Reference Files

- **`references/infographic-patterns.md`** - Complete CSS patterns for vertical timeline, horizontal phases, grid layout, phase grouping, dark theme, and typography scale

### Scripts

- **`scripts/screenshot.sh`** - Chrome headless capture utility with custom dimensions support

