agentleFS
reymerekar7reymerekar7/rm-skills/skills/infographic-generator/SKILL.md

infographic-generator

Skill37 starsChanged 4 months agoMITView on GitHub

End-to-end workflow for creating infographic image assets. Research a topic, design a multi-section HTML layout, and export to PNG via Playwright. Bring your own brand book and/or reference images to match your style — or use the built-in default design system. Use this skill whenever the user asks to: create an infographic, turn a topic into a visual asset, build a carousel slide, design an explainer image, or export a layout as PNG. Also trigger on phrases like "make an infographic about X", "turn this into a visual", "build a 4-section layout", or "export this as a PNG". Works for any platform: LinkedIn, blog, newsletter, slides, or print.

  • Installs packages

10 other projects use a version of this, 1 of them edited.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

4 rules. 0 are common, 3 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 9 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If given a topic but not the specific points, research before building.

    line 48
  2. Distinctive:

    No filler words: avoid "leveraging," "seamlessly," "powerful," "game-changing," "robust," "revolutionizing"

    line 183
  3. Very specific:

    Prompt/example boxes: write real, usable content — not [your task here] placeholders

    line 185
  4. Distinctive:

    Section count: default is 4. Use 3 if content is sparse.

    line 187

“Common” is measured: kept by at least 6 in 10 of the 9 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Infographic Generator

End-to-end workflow: research → layout → HTML → PNG. Bring your own brand book and inspiration images, or use the built-in default design system.


Inputs

Collect before starting:

InputRequiredNotes
Topic / titleYesWhat the infographic is about
Content pointsNoKey points per section. If not provided, run Step 0 first.
Brand bookNoBrand context — paste it inline, drop a file, or describe it. Claude extracts colors, fonts, logo, tone from whatever is provided.
Inspiration imageNoA reference infographic to match the layout structure
DimensionsNoportrait (default) or square
Output pathNoDefaults to ./output/infographic-[topic].png

Canvas Dimensions

FormatDimensionsRatioBest for
Portrait (default)1080 × 1350px4:5Mobile-first, 4-section layouts
Square1200 × 1200px1:1Feed visibility, simpler 2–3 section layouts

Step 0 — Research (when content isn't provided)

If given a topic but not the specific points, research before building.

  • tavily_extract — if a URL is provided
  • tavily_search "[topic] 2024" — for general topics
  • tavily_research — for technical deep dives

Synthesize into 4 section angles before writing any HTML.


Step 1 — Style Resolution

Determine the design approach before writing any code:

Priority order:

  1. Brand book provided → Extract from whatever context was given (pasted text, dropped file, or description): primary/accent colors, font family, logo/monogram, tone. Apply these instead of the built-in defaults. Keep the layout structure from Step 2.
  2. Inspiration image provided → Analyze the image first: identify layout structure, column arrangement, visual hierarchy, section count, card patterns, header/footer treatment. Build HTML to match that structure. Keep brand colors from the brand book (or defaults if none provided).
  3. Both provided → Brand book sets colors + fonts. Inspiration image sets layout.
  4. Neither provided → Use the built-in default design system (described in Step 2).

When analyzing an inspiration image, extract:

  • Number of sections and how they're divided
  • Column layout per section (1-col, 2-col, 3-col, grid)
  • Header and footer treatment
  • Card/box shapes (rounded, sharp, with icons, with tags)
  • Typography hierarchy (large title, section headers, body text)
  • Visual accents (circles, arrows, flow diagrams, comparison tables)

Step 2 — Build HTML (Built-in Default Design System)

This is the default style. Skip or override based on Step 1 output.

Canvas CSS

/* Portrait */
width: 1080px; height: 1350px; background: #EFF4F0;

/* Square */
width: 1200px; height: 1200px; background: #EFF4F0;

display: flex; flex-direction: column; overflow: hidden;

Structure (top to bottom)

ElementCSSNotes
Headerflex-shrink: 0; border-bottom: 2px solid rgba(26,39,68,0.1)Title + subtitle
Mechanism stripbackground: #1A2744; flex-shrink: 0Optional one-liner. Use when there's a core mechanism to name.
Sections 1–4flex: 1; display: flex; flex-direction: columnEqual height. Sections 1–3 get border-bottom: 1.5px solid rgba(26,39,68,0.08). Section 4: border-bottom: none.
Footerflex-shrink: 0; height: 58px; background: #1A2744Always present

Brand Colors

RoleHex
Canvas bg#EFF4F0
Dark navy#1A2744
Light blue#6BA3D6
Mid blue#4A7FB5
Body text#4A4A5A
Secondary text#7C7C8A
Card — blue#D6E8F5
Card — navy#D0D8E8
Card — mint#D6EDE0
Card — peach#F0E6D6
Card — cream#F5F0EB
Card — lilac#E4DCF0

Typography

Load from Google Fonts: Inter (400/500/600/700/800) + Playfair Display (700 italic)

ElementSpec
Header titleInter 800, 38–40px, #1A2744, letter-spacing -0.02em
Header subtitleInter 400, 14px, #7C7C8A
Section titleInter 800, 16px, #1A2744
Card titleInter 700, 12.5px, #1A2744
Card bodyInter 400, 11.5–12px, #4A4A5A, line-height 1.58
Example box textInter 400 italic, 11px, #7C7C8A
Footer markPlayfair Display italic 700, 15px, white

Section Numbered Circles

.s1 { background: #6BA3D6; }  /* blue */
.s2 { background: #1A2744; }  /* navy */
.s3 { background: #4A7FB5; }  /* mid blue */
.s4 { background: #6BA3D6; }  /* blue */

Size: 28×28px, border-radius 50%, Inter 800 12px white.

Section Content Patterns

SectionLayoutBest for
12-col card gridTwo core concepts, two input types
22-col or 3-col card gridFeature breakdown, use cases
31 card + flow diagram, OR 3-colProcess steps, loops
4Before/After comparison tableContrast, results, with/without

Card anatomy:

  • card-icon — 20×20px white square with box-shadow, emoji or symbol
  • card-title — Inter 700 12.5px, with optional .card-tag pill (right-aligned)
  • card-body — descriptive text
  • card-example (optional) — dashed border box, label "PROMPT" or "EXAMPLE" in 9px uppercase blue, italic gray text

Flow steps: white boxes, centered, flow-step-num (22px blue circle), flow-step-title, flow-step-body. Connect with → arrows.

Comparison table: 2-col grid. bad header (rgba(200,100,80,0.12)) vs good header (rgba(107,163,214,0.2)). Row items: colored dots dot-bad rgba(200,100,80,0.5) · dot-good #6BA3D6.

Footer

Customize the footer with your own name/logo. Default placeholder:

<div class="footer">
  <div class="logo-mark"><span>A</span></div>
  <div class="footer-name">Your Name</div>
</div>

Logo mark CSS: background #6BA3D6, 5px border-radius, Playfair Display italic white letter.

To customize: replace "A" with your initial and "Your Name" with your name. If the user has provided a brand book with a name/logo, use that.


Step 3 — Copy Rules

  • No filler words: avoid "leveraging," "seamlessly," "powerful," "game-changing," "robust," "revolutionizing"
  • Titles: sharp and specific — "4 Habits That Actually Move the Needle" not "Your Complete Guide to High Performance"
  • Prompt/example boxes: write real, usable content — not [your task here] placeholders
  • Tags (DAILY / WEEKLY / ALWAYS etc.): only use when accurate and specific
  • Section count: default is 4. Use 3 if content is sparse; never go above 4 in portrait.

Step 4 — Export to PNG

Save HTML to: ./output/infographic-[topic].html (relative to project root)

Screenshot with Playwright — use shell variables so the script works from any project:

# Install Playwright if not already present (one-time)
cd /tmp && npm install playwright

# Set paths (run from your project root)
HTML_FILE="$(pwd)/output/infographic-[topic].html"
PNG_FILE="$(pwd)/output/infographic-[topic].png"

# Create output dir if needed
mkdir -p "$(pwd)/output"

# Export the canvas element to PNG
# Paths are passed as arguments (not interpolated into the script string) to avoid shell injection
cd /tmp && node -e "
const { chromium } = require('playwright');
const htmlFile = process.argv[1];
const pngFile = process.argv[2];
(async () => {
  const browser = await chromium.launch();
  const page = await browser.newPage();
  await page.setViewportSize({ width: 1200, height: 1500 });
  await page.goto('file://' + htmlFile);
  await page.waitForTimeout(1000);
  const canvas = await page.\$('.canvas');
  await canvas.screenshot({ path: pngFile, type: 'png' });
  await browser.close();
  console.log('Done: ' + pngFile);
})();
" -- "$HTML_FILE" "$PNG_FILE"

Verify: ls -lh ./output/infographic-[topic].png — expect 150K–300K.

Image pipeline: HTML → Playwright → PNG only. Do not use image generation APIs for infographics.


Customization Reference

Thing to changeWhere
Brand colorsReplace hex values in Step 2 color table
FontsSwap Google Fonts import + update font-family references
Footer name/initialEdit the logo-mark span and footer-name div
Output directoryChange ./output/ to any path you prefer
Canvas sizeUpdate canvas CSS width/height + Playwright viewport
Number of sectionsRemove or add section blocks in HTML; adjust flex: 1 distribution

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.