Generate dark-mode-compatible inline SVG data visualization charts for blog posts. Supports horizontal bar, grouped bar, donut, line, lollipop, area, and radar charts with automatic platform detection (HTML vs JSX/MDX). Enforces chart type diversity, accessible markup (role=img, aria-labelledby), source attribution, and transparent backgrounds. Use when user says "blog chart", "generate chart", "data visualization", "svg chart", "blog graph", or "visualize data".
Blog Chart is a built-in data-visualization skill that generates dark-mode-compatible inline SVG charts for blog posts. It solves the problem of embedding accessible, theme-aware charts directly into articles without external charting libraries, automatically detecting the target platform (HTML versus JSX/MDX) and emitting the correct attribute style for each. It is invoked internally by the blog-write and blog-rewrite skills when chart-worthy data is identified, and is not a standalone user-facing command.
The skill supports seven chart types — horizontal bar, grouped bar, donut, line, lollipop, area, and radar — with a data-pattern-to-chart-type selection table and a diversity rule that avoids repeating types within a post. It enforces strict styling: transparent backgrounds, currentColor-based text and grid lines so charts work on both light and dark themes, a defined four-color palette, an accessible muted-text token, and a rule against relying on color alone (requiring direct labels, patterns, or legends for colorblind readers). Accessibility markup is mandatory (role=img, aria-labelledby with title and description elements), as is visible source attribution. It provides SVG shells for both HTML and JSX/MDX, a full HTML-to-JSX attribute conversion table, and step-by-step construction recipes for each chart type. A deterministic Python CLI (generate_chart_svg.py) is preferred for supported types.
It targets content and technical writers producing SEO- and accessibility-conscious blog posts, and the agents that orchestrate that writing, who need consistent, standards-compliant inline charts.
No. It is marked user-invokable: false and is invoked internally by the blog-write and blog-rewrite skills when chart-worthy data is found. It is not a standalone user-facing command.
Seven: horizontal bar, grouped bar, donut, line, lollipop, area, and radar. A data-pattern table maps each pattern to a recommended type, and a diversity rule discourages repeating a type within a single post.
Charts use transparent backgrounds and currentColor for text and lines so they adapt to light or dark themes, require role=img with aria-labelledby (title and description), enforce a minimum 4.5:1 contrast ratio for text on colored fills, and add labels or patterns so color is never the only signal.
Prefer the deterministic CLI: python3 skills/blog-chart/scripts/generate_chart_svg.py with an input JSON and an output file. The SKILL.md also documents manual SVG construction for each type.
Quick Setup:
.claude/skills/Repository
agricidaniel/claude-blog