Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
agricidaniel avatar

Blog Chart

  • 1.7k installs
  • 1.6k repo stars
  • Updated July 23, 2026
  • agricidaniel/claude-blog

blog-chart is a Claude Code skill that creates accurate, readable charts and data visuals embedded in blog posts for developers who need inline SVG graphs, comparisons, or trend illustrations without a separate design to

About

blog-chart is a data visualization skill from agricidaniel/claude-blog that generates dark-mode-compatible inline SVG charts for blog posts. It supports 7 chart types—horizontal bar, grouped bar, donut, line, lollipop, area, and radar—with automatic platform detection for HTML versus JSX/MDX output. The skill enforces chart type diversity, accessible markup with role=img and aria-label, source attribution, and transparent backgrounds. Developers reach for blog-chart whenever a technical article needs embedded data visuals and they want production-ready SVG without Chart.js, Figma, or a separate charting pipeline.

  • Blog-ready data visuals
  • Chart generation workflow
  • Editorial storytelling
  • Metric illustration
  • claude-blog skill set

Blog Chart by the numbers

  • 1,692 all-time installs (skills.sh)
  • +42 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #180 of 1,335 Generative Media skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/agricidaniel/claude-blog --skill blog-chart

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1.7k
repo stars1.6k
Last updatedJuly 23, 2026
Repositoryagricidaniel/claude-blog

How do you embed accessible SVG charts in blog posts?

Create accurate, readable charts and data visuals embedded in blog posts when articles need graphs, comparisons, or trend illustrations without a separate design toolchain.

Who is it for?

Developers writing technical blog posts in HTML or MDX who need 7 chart types as accessible inline SVG without external charting libraries or design tools.

Skip if: Interactive dashboards, PDF report design, or editorial calendar planning without embedded visualization needs.

When should I use this skill?

User mentions blog chart, data visualization, SVG chart, blog graph, comparison visualization, or embedding charts in a blog post.

What you get

Inline SVG chart markup with aria-labels, source attribution, transparent backgrounds, and HTML or JSX/MDX platform-specific output

  • Inline SVG chart markup
  • Accessible chart embed code

By the numbers

  • Supports 7 chart types: horizontal bar, grouped bar, donut, line, lollipop, area, and radar

Files

SKILL.mdMarkdownGitHub ↗

Blog Chart: Built-In SVG Data Visualization

Generates dark-mode-compatible inline SVG charts for blog posts. Invoked internally by blog-write and blog-rewrite when chart-worthy data is identified. Not a standalone user-facing command.

Styling source of truth: references/visual-media.md

Input Format

The writer or researcher passes a chart request:

Chart Request:
- Type: horizontal bar
- Title: "AI Citation Sources by Platform"
- Data: ChatGPT 43.8%, Perplexity 6.6%, Google AI Overviews 2.2%, Reddit 7.15%
- Source: Ahrefs, December 2025
- Platform: mdx (or html)

Chart Type Selection

Select based on the data pattern. Diversity is mandatory - never repeat a type within one post.

Data PatternBest Chart Type
Before/after comparisonGrouped bar chart
Ranked factors / correlationsLollipop chart
Parts of whole / market shareDonut chart
Trend over timeLine chart
Percentage improvementHorizontal bar chart
Distribution / rangeArea chart
Multi-dimensional scoringRadar chart

Styling Rules (Non-Negotiable)

All charts must work on both dark and light backgrounds:

Text elements:     fill="currentColor"
Grid lines:        stroke="currentColor" opacity="0.08"
Axis lines:        stroke="currentColor" opacity="0.3"
Background:        transparent (no fill on root SVG)
Subtitle text:     fill="currentColor" opacity="0.45"
Source text:        fill="currentColor" opacity="0.35"
Label text:        fill="currentColor" opacity="0.8"

Color Palette

ColorHexUse Case
Orange#f97316Primary / highest value
Sky Blue#38bdf8Secondary / comparison
Purple#a78bfaTertiary / special category
Green#22c55eQuaternary / positive indicator

For text inside colored elements: fill="white" with fontWeight="800".

Standard SVG Shell (HTML)

<svg
  viewBox="0 0 560 380"
  style="max-width: 100%; height: auto; font-family: 'Inter', system-ui, sans-serif"
  role="img"
  aria-label="Chart description with key data point"
>
  <title>Chart Title</title>
  <desc>Description for screen readers with all key data points and source</desc>

  <!-- Chart content -->

  <text x="280" y="372" text-anchor="middle" font-size="10" fill="currentColor" opacity="0.35">
    Source: Source Name (Year)
  </text>
</svg>

JSX/MDX Shell (camelCase attributes)

<svg
  viewBox="0 0 560 380"
  style={{maxWidth: '100%', height: 'auto', fontFamily: "'Inter', system-ui, sans-serif"}}
  role="img"
  aria-label="Chart description"
>
  <title>Chart Title</title>
  <desc>Description for screen readers</desc>

  {/* Chart content */}

  <text x="280" y="372" textAnchor="middle" fontSize="10" fill="currentColor" opacity="0.35">
    Source: Source Name (Year)
  </text>
</svg>

JSX Attribute Conversion (Required for MDX)

HTMLJSX
stroke-widthstrokeWidth
stroke-dasharraystrokeDasharray
stroke-linecapstrokeLinecap
text-anchortextAnchor
font-sizefontSize
font-weightfontWeight
font-familyfontFamily
classclassName
style="..."style={{...}}

Chart Type Construction

Horizontal Bar Chart

Best for: percentage improvements, single-metric comparisons.

1. Define chart area: x=80, y=40, width=440, height=280 2. Calculate bar height: chartHeight / dataCount - gap (gap=8) 3. Calculate bar width: (value / maxValue) * chartWidth 4. Position bars: y = chartY + index * (barHeight + gap) 5. Label on left (right-aligned at x=75): category name 6. Value label at end of bar: percentage or number 7. Source text at bottom center

Grouped Bar Chart

Best for: before/after, A vs B comparisons.

1. Define groups along Y axis, bars within each group 2. Use 2 colors (primary + secondary) for the two series 3. Add legend at top: colored square + label for each series 4. Gap between groups > gap within groups

Donut Chart

Best for: parts of whole, market share.

1. Center: cx=280, cy=180, outer radius=140, inner radius=80 2. Calculate arc segments using cumulative angles 3. Each segment: <path d="M... A... L... A... Z" fill="color" /> 4. Center text: total or key label 5. Legend below chart with color squares + labels + values

Line Chart

Best for: trends over time.

1. X axis: time periods, evenly spaced 2. Y axis: value range with 4-5 grid lines 3. Draw grid lines: stroke="currentColor" opacity="0.08" 4. Plot data points: <circle cx=... cy=... r="4" fill="color" /> 5. Connect with: <polyline points="..." fill="none" stroke="color" strokeWidth="2" /> 6. Optional: area fill below line with opacity="0.1"

Lollipop Chart

Best for: ranked factors, correlations.

1. Horizontal orientation (like bar chart but with circles) 2. Thin line from axis to data point: stroke="currentColor" opacity="0.15" strokeWidth="1" 3. Circle at data point: r="6" with fill color 4. Value label next to circle 5. Categories on Y axis (left-aligned)

Area Chart

Best for: distribution, cumulative data.

1. Same as line chart but with filled area below 2. Area fill: <path d="M... L... L... Z" fill="color" opacity="0.15" /> 3. Line on top: stroke="color" strokeWidth="2" fill="none" 4. Grid lines behind the area

Radar Chart

Best for: multi-dimensional scoring (5-7 axes).

1. Center: cx=280, cy=190 2. Draw concentric polygons for grid (3-4 levels) 3. Calculate axis endpoints at equal angles 4. Plot data points on each axis proportional to value 5. Connect data points with filled polygon: fill="color" opacity="0.2" stroke="color" 6. Label each axis at the outer edge

Output Format

Wrap every chart in a <figure> element:

HTML:

<figure>
  <svg viewBox="0 0 560 380" style="max-width: 100%; height: auto; font-family: 'Inter', system-ui, sans-serif" role="img" aria-label="[description]">
    <title>[Chart Title]</title>
    <desc>[Full description with data points for screen readers]</desc>
    <!-- chart content -->
    <text x="280" y="372" text-anchor="middle" font-size="10" fill="currentColor" opacity="0.35">
      Source: [Source Name] ([Year])
    </text>
  </svg>
</figure>

MDX:

<figure className="chart-container" style={{margin: '2.5rem 0', textAlign: 'center', padding: '1.5rem', borderRadius: '12px'}}>
  <svg viewBox="0 0 560 380" style={{maxWidth: '100%', height: 'auto', fontFamily: "'Inter', system-ui, sans-serif"}} role="img" aria-label="[description]">
    <title>[Chart Title]</title>
    <desc>[Full description]</desc>
    {/* chart content with camelCase attributes */}
    <text x="280" y="372" textAnchor="middle" fontSize="10" fill="currentColor" opacity="0.35">
      Source: [Source Name] ([Year])
    </text>
  </svg>
</figure>

Quality Checklist (Verify Before Returning)

  • [ ] No hardcoded text colors (all use currentColor)
  • [ ] No white/light backgrounds (transparent or none)
  • [ ] Source attribution text present at bottom
  • [ ] role="img" and aria-label present on <svg>
  • [ ] <title> and <desc> present inside <svg>
  • [ ] Chart type not already used in this post
  • [ ] If MDX: all attributes camelCased (no hyphens in attribute names)
  • [ ] Data values match the source data exactly
  • [ ] Color palette uses only approved colors
  • [ ] ViewBox is 0 0 560 380 (standard) or justified alternative

Related skills

How it compares

Choose blog-chart for inline post visuals; choose blog-calendar for editorial scheduling and topic-cluster planning.

FAQ

What chart types does blog-chart support?

blog-chart supports 7 inline SVG chart types: horizontal bar, grouped bar, donut, line, lollipop, area, and radar. It enforces chart type diversity and outputs dark-mode-compatible SVG with accessible markup.

Does blog-chart work with MDX blog posts?

blog-chart automatically detects HTML versus JSX/MDX platforms and generates inline SVG with role=img, aria-label, source attribution, and transparent backgrounds suited to the target blog format.

Generative Mediacontentseodistribution

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.