From armory
Creates and critiques data visualizations using Edward Tufte's principles: high data-ink ratio, direct labels, range frames, and small multiples. Covers Recharts, Plotly, matplotlib, Chart.js, ECharts, D3, SVG, and HTML.
How this skill is triggered — by the user, by Claude, or both
Slash command
/armory:chart-clarityThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create and critique charts that make quantitative comparisons obvious without decorative chartjunk. This skill adapts Caylent's MIT-licensed `tufte-data-viz` skill into armory under the broader `chart-clarity` name. It applies Edward Tufte's core data visualization principles and adds screen-first requirements for accessibility, responsiveness, dark mode, progressive disclosure, and human-reada...
assets/showcase/before-after-animated.gifassets/showcase/before-after.pngassets/showcase/small-multiples.pngassets/showcase/tufte-accessible-scatter.pngassets/showcase/tufte-bar-chart.pngassets/showcase/tufte-dark-mode.pngassets/showcase/tufte-data-table.pngassets/showcase/tufte-light-dark.pngassets/showcase/tufte-line-chart.pngassets/showcase/tufte-slopegraph.pngassets/showcase/tufte-sparklines.pngevals/cases.yamlreferences/examples/chartjs-tufte-plugin.jsreferences/examples/echarts-tufte-theme.tsreferences/examples/matplotlib-tufte-annotated.pyreferences/examples/plotly-tufte-template.pyreferences/examples/recharts-tufte-bar.tsxreferences/examples/recharts-tufte-line.tsxreferences/examples/sparkline-inline.svgreferences/interactive-demo.htmlCreate and critique charts that make quantitative comparisons obvious without decorative chartjunk. This skill adapts Caylent's MIT-licensed tufte-data-viz skill into armory under the broader chart-clarity name. It applies Edward Tufte's core data visualization principles and adds screen-first requirements for accessibility, responsiveness, dark mode, progressive disclosure, and human-readable numbers.
Use this skill whenever the user asks for a chart, graph, plot, dashboard visualization, sparkline, slopegraph, data table, or visualization review. It covers Recharts, ECharts, Chart.js, matplotlib, Plotly, seaborn, D3.js, SVG, and HTML.
| User need | Use chart-clarity | Use instead |
|---|---|---|
| Generate chart code in Recharts, Plotly, matplotlib, Chart.js, ECharts, D3, SVG, or HTML | Yes | — |
| Review an existing chart for misleading design, clutter, accessibility, or readability | Yes | — |
| Restyle dashboard charts while keeping the dashboard structure unchanged | Yes | ux-expert for broader dashboard UX |
| Build a static infographic or rich HTML artifact around charts | No | static-web-artifacts-builder |
| Design a slide deck or presentation using charts | No | html-presentation, marp-slides, or pptx |
| Design logos, posters, icons, or non-data visuals | No | concept-to-image or canvas-design |
Follow this order for every chart task.
references/rules/ unless the task compares multiple libraries.#fffff8) and intentional dark backgrounds (#151515). Avoid pure white and pure black.prefers-reduced-motion.$1.2M, 12,450, consistent precision, units stated once.Read one matching reference file for concrete implementation details:
| Library | Reference | Essential defaults |
|---|---|---|
| Recharts | references/rules/recharts.md | Hide grid, remove <Legend />, direct labels, no top/right axes, minimal tooltip |
| ECharts | references/rules/echarts.md | splitLine.show: false, legend.show: false, grid.show: false, endLabel |
| Chart.js | references/rules/chartjs.md | grid.display: false, plugins.legend.display: false, direct labels plugin |
| matplotlib/seaborn | references/rules/matplotlib.md | Hide top/right spines, set spine bounds, serif fonts, off-white figure background |
| Plotly | references/rules/plotly.md | showgrid=False, showlegend=False, plot_bgcolor='#fffff8', zeroline=False |
| D3/SVG/HTML | references/rules/svg-html.md | Minimal domains, no plot backgrounds, direct SVG text labels, accessible roles |
Cross-cutting references:
| Topic | Reference |
|---|---|
| Anti-pattern detection and one-line fixes | references/rules/anti-patterns.md |
| Accessibility, responsiveness, animation, dark mode | references/rules/interactive-and-accessible.md |
| Full palettes, font stacks, numeric typography | references/rules/typography-and-color.md |
| Small multiples, sparklines, slopegraphs | references/rules/small-multiples-sparklines.md |
| Working examples | references/examples/ |
| Interactive before/after demo, CDN-backed and reference-only | references/interactive-demo.html |
| Upstream license and provenance | references/upstream/ |
| Type | Default treatment |
|---|---|
| Line | 1.5-2px stroke, no dots unless fewer than seven points, direct label at endpoint, annotate notable events |
| Bar | Prefer horizontal bars for categories, sort descending, label values directly, use gray with one accent |
| Scatter | Small gray dots, highlight key cluster or outlier, add regression line only when analytically justified |
| Time series | Label events on the chart, compare against target or prior period, avoid dual axes |
| Small multiples | Same scale across panels, shared labels, no panel borders, direct panel titles |
| Sparkline | Word-sized, no axes or labels, min/max dots, endpoint value when useful |
| Table | Whitespace and thin rules, right-aligned numbers, no zebra striping, highlight meaningful outlier only |
| Slopegraph | Before/after endpoints labeled with names and values, gray slopes plus one highlight |
| Heatmap | Sequential or diverging palette, cell values where readable, companion table for accessibility |
Before presenting code or critique, verify:
#fffff8 or an intentional dark palette, not pure white or black.aria-label, nearby summary text, or data table.npx claudepluginhub mathews-tom/armory --plugin armoryApplies Edward Tufte's principles to design, critique, and improve data visualizations. Useful for reducing chartjunk, maximizing data-ink ratio, and ensuring graphical integrity.
Guides chart type selection and generates reproducible chart code in Python (matplotlib/seaborn) or JavaScript (Chart.js) with accessible color principles and chart anatomy.
Designs clear, accessible data visualizations with chart selection for comparisons/trends/distributions, styling principles, color palettes, responsiveness, and best practices.