generating-infographics
Generating Infographics
Generate branded infographics with custom themes and backgrounds using @antv/infographic.
Prerequisites
- Run
/brand-initto create project structure - Run
/brand-extractto generate brand-philosophy.md - Run
/template-infographicto create an infographic template
No-Brand Safeguard
If brand-philosophy.md is not found OR contains no ## Color Palette section:
- STOP generation — inform user: "No brand colors found. Run
/brand-extractfirst to analyze your brand." - If user insists on proceeding: use deliberately bland neutrals (#1a1a1a, #666, #f5f5f5, system fonts)
- Never fall back to any recognizable brand colors
When to Use
- "Create an infographic"
- "Make a process diagram"
- "Visualize this data"
- "Create a timeline"
- "Show comparison infographic"
- NOT for: Charts/graphs (use charting library), presentations (use visual-content skill)
Commands
| Command | Purpose |
|---|---|
/template-infographic |
Create infographic template |
/infographic |
Generate infographic (guided) |
/infographic-quick |
Generate infographic (fast) |
Template Categories (114 Total)
| Category | Count | Use Cases | Icons | Illustrated |
|---|---|---|---|---|
| Sequence | 43 | Timelines, steps, processes, roadmaps | ✓ (2) | ✓ (5) |
| List | 23 | Features, grids, pyramids, sectors | ✓ (4) | ✓ (1) |
| Hierarchy | 25 | Org charts, tree structures | — | — |
| Compare | 17 | VS, before/after, SWOT | — | — |
| Quadrant | 3 | 2x2 matrices | — | ✓ (1) |
| Relation | 2 | Networks, connections | ✓ (1) | — |
| Chart | 1 | Bar charts | — | — |
Template Asset Types
| Type | Count | Identifier | Data Format |
|---|---|---|---|
| Text-only | 100+ | (default) | { "label": "Cloud", "desc": "Infrastructure" } |
| Icon-based | 8 | icon in name |
{ "label": "icon:rocket", "desc": "Fast" } |
| Illustrated | 9 | -illus suffix |
{ "label": "Step 1", "desc": "Discovery", "illus": "step-1" } |
Recommendation: Start with text-only templates. Illustrated templates require custom image files.
Illustrated Template Workflow
When using -illus templates:
- Content includes
illusfield referencing image filename - Supported formats: SVG (recommended), PNG, JPG
- Options: provide your own images, find icons, or use placeholders
- Images stored with infographic output:
infographics/{date}-{name}/illustrations/ - See
references/illustrations.mdfor detailed workflow
Text Guidelines (Avoiding Overlap)
| Element | Max | Good | Bad |
|---|---|---|---|
| Labels | 1-2 words | "Cloud" | "Cloud Computing Services" |
| Descriptions | 2-4 words | "Infrastructure design" | "Complete infrastructure design and implementation" |
If overlap occurs: shorten text, use wider canvas (1200px+), or use column/grid templates.
Quick Reference
| Task | How |
|---|---|
| Generate infographic | node generate.js --config config.json --data '{...}' --output output.png |
| Set background | --background "spotlight-dots" |
| SVG output | --format svg |
Background Presets
Layered (gradient + pattern):
| Preset | Effect |
|---|---|
spotlight-dots |
Radial spotlight + subtle dots (recommended) |
spotlight-grid |
Radial spotlight + grid lines |
diagonal-crosshatch |
Diagonal fade + crosshatch |
tech-matrix |
Tech gradient + dense grid |
Simple (gradient or pattern only):
| Preset | Effect |
|---|---|
spotlight |
Radial gradient only |
diagonal-fade |
Corner to corner fade |
top-down |
Vertical fade |
subtle-dots |
Light dot pattern |
tech-grid |
Grid lines |
crosshatch |
Diagonal crosshatch |
solid |
Plain solid color |
Workflow
1. Create Template (once)
/template-infographic
Select: category → design → palette → background → style
2. Generate Infographic (repeat)
/infographic-quick
Select template → paste content → name → get PNG
Accessibility & Readability (MANDATORY)
These checks are NON-NEGOTIABLE before generating any infographic.
Contrast Validation (WCAG AA)
| Requirement | Value |
|---|---|
| Minimum contrast ratio | 4.5:1 for all text |
| Large text (title) | 3:1 acceptable |
| Standard | WCAG 2.1 AA |
Key principle: Palette colors are for SHAPES and FILLS, not text. Text needs explicit high-contrast colors.
Text Color Rules by Background
| Background Type | Title Fill | Description Fill | Label Fill |
|---|---|---|---|
| Dark (spotlight-dots, tech-matrix) | White or near-white (WCAG >= 4.5:1) | White at ~85% opacity | White or near-white |
| Light (solid, subtle-dots) | Near-black (WCAG >= 4.5:1) | Dark gray | Near-black |
Never use palette colors for text - they're for decorative shapes only.
Spacing & Balance Rules
| Element | Requirement |
|---|---|
| Item spacing | Minimum 20px between items |
| Edge margins | Never touch canvas edges (min 5% padding) |
| Text truncation | Labels 1-2 words, descriptions 2-4 words |
| Visual balance | Equal spacing between similar elements |
Pre-Generation Checklist
□ All text has 4.5:1 contrast against background
□ Labels are 1-2 words (no overlap risk)
□ Descriptions are 2-4 words
□ Content fits template capacity (check item limits)
□ Dark bg → white text, Light bg → dark text
□ No text touching edges
□ colorBg derived from brand-philosophy.md, not from skill defaults
□ colorPrimary derived from brand-philosophy.md, not from skill defaults
□ Colors traced to brand-philosophy.md (not copied from reference docs or runtime fallbacks)
□ font-family from brand-philosophy.md, not a generic default
□ Text colors WCAG-validated against actual background
If ANY check fails, DO NOT generate. Fix the content or config first.
Config Examples
Dark Backgrounds (spotlight-dots, tech-matrix, etc.)
{
"colorBg": "{brand-bg-dark}",
"colorPrimary": "{brand-primary}",
"title": { "fill": "#FFFFFF" },
"desc": { "fill": "rgba(255,255,255,0.85)" },
"item": {
"label": { "fill": "#FFFFFF" },
"desc": { "fill": "rgba(255,255,255,0.7)" }
}
}
Light Backgrounds (solid, subtle-dots, etc.)
{
"colorBg": "#FFFFFF",
"colorPrimary": "{brand-primary}",
"title": { "fill": "#1A202C" },
"desc": { "fill": "#4A5568" },
"item": {
"label": { "fill": "#1A202C" },
"desc": { "fill": "#4A5568" }
}
}
Common mistake: Using pastel palette colors for text on light backgrounds. Pastels are for decorative shapes only.
See template-infographic.md for complete config examples.
Note: The
/template-infographiccommand generates correct configs from your brand-philosophy.md. Never copy hex values from the examples above — they are illustrative placeholders only.
Data Structure by Type
Sequence/List
{
"title": "Our Process",
"items": [
{ "label": "Step 1", "desc": "Discovery" },
{ "label": "Step 2", "desc": "Design" }
]
}
Compare
{
"title": "Before vs After",
"items": [
{ "label": "Before", "children": [{ "label": "Slow" }] },
{ "label": "After", "children": [{ "label": "Fast" }] }
]
}
Hierarchy
{
"title": "Organization",
"items": [{
"label": "CEO",
"children": [{ "label": "CTO" }, { "label": "CFO" }]
}]
}
Common Mistakes
| Mistake | Fix |
|---|---|
| Text overlapping | Shorten labels (1-2 words), descriptions (2-4 words) |
| Missing illustrations | Check template ends in -illus, provide SVG/PNG/JPG files |
| Icon not showing | Use icon:name syntax, only for icon templates |
| Background not applied | Pass --background flag to generate.js |
| Text invisible on light bg | Add explicit title/desc/item fills with dark colors (#1A202C, #4A5568) |
| Pastel text unreadable | Palette colors are for shapes only; text needs high contrast (~4.5:1) |
References
references/templates.md- Complete 114 template catalog with asset requirementsreferences/theming.md- Theme configuration detailsreferences/backgrounds.md- Background customization guidereferences/icons.md- Available icons for icon-based templatesreferences/illustrations.md- Illustrated template workflow and SVG requirements
Module Structure
lib/
├── renderer.js # Main entry point
├── dom-setup.js # JSDOM environment
├── infographic.js # Infographic creation
├── exporter.js # SVG/PNG export
├── backgrounds.js # Gradient/pattern backgrounds
└── icons.js # Icon utilities
More from camoa/claude-skills
html-generator
Use when generating branded HTML pages and components from a design system. Creates standalone HTML components and composes them into full pages with embedded CSS, responsive design, and brand integration.
43memory-manager
Use after completing any phase activity - updates project_state.md, project registry, ensures files are in correct locations, maintains lean memory
39diagram-generator
Use when visualizing architecture - generates Mermaid diagrams for data flow, service relationships, or entity structures. Trigger: 'draw diagram', 'visualize', 'show relationships', 'mermaid chart'.
31code-quality-audit
Use when checking code quality, running security audits, testing coverage, finding SOLID/DRY violations, or setting up quality tools. Use when user says "audit this code", "check security", "run PHPStan", "code quality", "find violations", "SOLID check", "DRY check", "test coverage", "lint this", "security review", "is this production ready", "check for vulnerabilities", "code review", "grade this code". Supports Drupal (PHPStan, PHPMD, Psalm, Semgrep, Trivy, Gitleaks via DDEV) and Next.js (ESLint, Jest, Semgrep, Trivy, Gitleaks). Use proactively before deployment or after significant code changes.
20requirements-gatherer
Use when gathering project requirements - asks structured questions about project type, scope, integrations, and constraints to populate project_state.md
17paper-test
Use when testing code, skills, commands, or configs through mental execution — trace logic line-by-line with concrete values to find bugs, logic errors, edge cases, contract violations, and AI hallucinations. Use when user says "paper test", "trace this", "find bugs", "check for edge cases", "audit this code", "verify AI code", "test this skill", "validate this implementation", "review this logic", "check dependencies", "check this config". MUST verify external calls — never assume methods exist. Use proactively before deploying changes or after AI generates code.
16