agentleFS
Registry

Tufte-style charts

skill · published by agentleFS · version 1 · approved by frdchang@gmail.com on 2026-10-12

Clean, directly labelled charts from a JSON spec that read in light and dark mode: stacks, lines, slopegraphs, small multiples.

Mount
assets/preview.svg
<svg width="600" height="290" id="fig" font-family="Palatino, Georgia, serif" class="tc-chart" viewBox="0 0 600 290" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Headings per README by theme, 2014 to 2025: API reference entries grew, usage and how-to sections shrank"><style>.tc-chart{--tc-bg:transparent;--tc-gap:#fffff8;--tc-ink:#111;--tc-ink2:#222;--tc-ink3:#333;--tc-ink4:#444;--tc-ink5:#555;--tc-foot:#666666;--tc-mute:#6b6b6b;--tc-faint:#737373;--tc-quiet:#706b62;--tc-grey:#6e6859;--tc-hair:#000;--tc-red:#a33a2c;--tc-blue:#4f7392;--tc-steady1:#ddd8cd;--tc-steady2:#e7e3da}@media (prefers-color-scheme:dark){.tc-chart:not([data-theme=light]){--tc-gap:#111111;--tc-ink:#ecebe4;--tc-ink2:#e2e0d8;--tc-ink3:#d6d3ca;--tc-ink4:#cac7bd;--tc-ink5:#bab7ad;--tc-foot:#a9a69d;--tc-mute:#a3a097;--tc-faint:#9c998f;--tc-quiet:#a39e94;--tc-grey:#a8a294;--tc-hair:#fff;--tc-red:#e2735f;--tc-blue:#86acd0;--tc-steady1:#3a3833;--tc-steady2:#46433d}}.tc-chart[data-theme=dark]{--tc-gap:#111111;--tc-ink:#ecebe4;--tc-ink2:#e2e0d8;--tc-ink3:#d6d3ca;--tc-ink4:#cac7bd;--tc-ink5:#bab7ad;--tc-foot:#a9a69d;--tc-mute:#a3a097;--tc-faint:#9c998f;--tc-quiet:#a39e94;--tc-grey:#a8a294;--tc-hair:#fff;--tc-red:#e2735f;--tc-blue:#86acd0;--tc-steady1:#3a3833;--tc-steady2:#46433d}</style><defs><marker id="ah" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M1,1 L9,5 L1,9" fill="none" stroke-width="1.3" style="stroke:var(--tc-ink)"/></marker></defs><rect width="600" height="290" style="fill:var(--tc-bg)"/><path d="M72.0,236.0 C75.7,236.0 79.5,236.0 83.2,236.0 C98.3,236.0 113.4,236.0 128.4,236.0 C143.5,236.0 158.5,236.0 173.5,236.0 C188.6,236.0 203.6,236.0 218.7,236.0 C233.7,236.0 248.8,236.0 263.8,236.0 C278.9,236.0 293.9,236.0 309.0,236.0 C316.5,236.0 324.0,236.0 331.5,236.0 C335.3,236.0 339.1,236.0 342.8,236.0 L342.8,210.1 C339.1,210.1 335.3,210.1 331.5,210.1 C324.0,210.1 316.5,210.1 309.0,210.1 C293.9,210.1 278.9,215.3 263.8,215.3 C248.8,215.3 233.7,215.3 218.7,215.3 C203.6,215.3 188.6,210.1 173.5,210.1 C158.5,210.1 143.5,213.0 128.4,213.0 C113.4,213.0 98.3,213.0 83.2,213.0 C79.5,213.0 75.7,213.0 72.0,213.0 Z" fill-opacity="1" stroke-width="1" style="fill:var(--tc-steady1);stroke:var(--tc-gap)"/><path d="M72.0,213.0 C75.7,213.0 79.5,213.0 83.2,213.0 C98.3,213.0 113.4,213.0 128.4,213.0 C143.5,213.0 158.5,210.1 173.5,210.1 C188.6,210.1 203.6,215.3 218.7,215.3 C233.7,215.3 248.8,215.3 263.8,215.3 C278.9,215.3 293.9,210.1 309.0,210.1 C316.5,210.1 324.0,210.1 331.5,210.1 C335.3,210.1 339.1,210.1 342.8,210.1 L342.8,184.2 C339.1,184.2 335.3,184.2 331.5,184.2 C324.0,184.2 316.5,184.2 309.0,184.2 C293.9,184.2 278.9,189.4 263.8,189.4 C248.8,189.4 233.7,189.1 218.7,187.6 C203.6,186.2 188.6,180.7 173.5,180.7 C158.5,180.7 143.5,185.5 128.4,187.1 C113.4,188.6 98.3,189.9 83.2,189.9 C79.5,189.9 75.7,189.9 72.0,189.9 Z" fill-opacity="0.46" stroke-width="1" style="fill:var(--tc-blue);stroke:var(--tc-gap)"/><path d="M72.0,189.9 C75.7,189.9 79.5,189.9 83.2,189.9 C98.3,189.9 113.4,188.6 128.4,187.1 C143.5,185.5 158.5,180.7 173.5,180.7 C188.6,180.7 203.6,186.2 218.7,187.6 C233.7,189.1 248.8,189.4 263.8,189.4 C278.9,189.4 293.9,184.2 309.0,184.2 C316.5,184.2 324.0,184.2 331.5,184.2 C335.3,184.2 339.1,184.2 342.8,184.2 L342.8,161.7 C339.1,161.7 335.3,161.7 331.5,161.7 C324.0,161.7 316.5,162.7 309.0,163.5 C293.9,164.9 278.9,168.6 263.8,168.6 C248.8,168.6 233.7,168.6 218.7,168.6 C203.6,168.6 188.6,165.9 173.5,165.2 C158.5,164.4 143.5,164.0 128.4,164.0 C113.4,164.0 98.3,166.9 83.2,166.9 C79.5,166.9 75.7,166.9 72.0,166.9 Z" fill-opacity="0.54" stroke-width="1" style="fill:var(--tc-blue);stroke:var(--tc-gap)"/><path d="M72.0,166.9 C75.7,166.9 79.5,166.9 83.2,166.9 C98.3,166.9 113.4,164.0 128.4,164.0 C143.5,164.0 158.5,164.4 173.5,165.2 C188.6,165.9 203.6,168.6 218.7,168.6 C233.7,168.6 248.8,168.6 263.8,168.6 C278.9,168.6 293.9,164.9 309.0,163.5 C316.5,162.7 324.0,161.7 331.5,161.7 C335.3,161.7 339.1,161.7 342.8,161.7 L342.8,99.5 C339.1,99.5 335.3,99.5 331.5,99.5 C324.0,99.5 316.5,104.6 309.0,106.5 C293.9,110.2 278.9,115.1 263.8,115.1 C248.8,115.1 233.7,115.1 218.7,115.1 C203.6,115.1 188.6,118.8 173.5,120.3 C158.5,121.7 143.5,123.7 128.4,123.7 C113.4,123.7 98.3,118.0 83.2,118.0 C79.5,118.0 75.7,118.0 72.0,118.0 Z" fill-opacity="0.40" stroke-width="1" style="fill:var(--tc-red);stroke:var(--tc-gap)"/><line x1="64" x2="64" y1="46.0" y2="236" stroke-width=".6" style="stroke:var(--tc-ink)"/><line x1="60" x2="64" y1="236.0" y2="236.0" stroke-width=".6" style="stroke:var(--tc-ink)"/><text x="56" y="240.0" font-size="12.5" text-anchor="end" style="fill:var(--tc-ink5)">0</text><line x1="60" x2="64" y1="201.5" y2="201.5" stroke-width=".6" style="stroke:var(--tc-ink)"/><text x="56" y="205.5" font-size="12.5" text-anchor="end" style="fill:var(--tc-ink5)">4</text><line x1="60" x2="64" y1="166.9" y2="166.9" stroke-width=".6" style="stroke:var(--tc-ink)"/><text x="56" y="170.9" font-size="12.5" text-anchor="end" style="fill:var(--tc-ink5)">8</text><line x1="60" x2="64" y1="132.4" y2="132.4" stroke-width=".6" style="stroke:var(--tc-ink)"/><text x="56" y="136.4" font-size="12.5" text-anchor="end" style="fill:var(--tc-ink5)">12</text><line x1="60" x2="64" y1="97.8" y2="97.8" stroke-width=".6" style="stroke:var(--tc-ink)"/><text x="56" y="101.8" font-size="12.5" text-anchor="end" style="fill:var(--tc-ink5)">16</text><line x1="60" x2="64" y1="63.3" y2="63.3" stroke-width=".6" style="stroke:var(--tc-ink)"/><text x="56" y="67.3" font-size="12.5" text-anchor="end" style="fill:var(--tc-ink5)">20</text><line x1="72" x2="346" y1="244" y2="244" stroke-width=".7" style="stroke:var(--tc-ink)"/><line x1="72.0" x2="72.0" y1="244" y2="250" stroke-width=".6" style="stroke:var(--tc-ink)"/><text x="83.3" y="266" font-size="13.5" text-anchor="middle" style="fill:var(--tc-ink3)">2014</text><text x="83.3" y="283" font-size="11" text-anchor="middle" style="fill:var(--tc-faint)">3</text><line x1="117.1" x2="117.1" y1="244" y2="250" stroke-width=".6" style="stroke:var(--tc-ink)"/><text x="128.4" y="266" font-size="13.5" text-anchor="middle" style="fill:var(--tc-ink3)">2016</text><text x="128.4" y="283" font-size="11" text-anchor="middle" style="fill:var(--tc-faint)">3</text><line x1="162.3" x2="162.3" y1="244" y2="250" stroke-width=".6" style="stroke:var(--tc-ink)"/><text x="173.6" y="266" font-size="13.5" text-anchor="middle" style="fill:var(--tc-ink3)">2018</text><text x="173.6" y="283" font-size="11" text-anchor="middle" style="fill:var(--tc-faint)">5</text><line x1="207.4" x2="207.4" y1="244" y2="250" stroke-width=".6" style="stroke:var(--tc-ink)"/><text x="218.7" y="266" font-size="13.5" text-anchor="middle" style="fill:var(--tc-ink3)">2020</text><text x="218.7" y="283" font-size="11" text-anchor="middle" style="fill:var(--tc-faint)">5</text><line x1="252.6" x2="252.6" y1="244" y2="250" stroke-width=".6" style="stroke:var(--tc-ink)"/><text x="263.8" y="266" font-size="13.5" text-anchor="middle" style="fill:var(--tc-ink3)">2022</text><text x="263.8" y="283" font-size="11" text-anchor="middle" style="fill:var(--tc-faint)">5</text><line x1="297.7" x2="297.7" y1="244" y2="250" stroke-width=".6" style="stroke:var(--tc-ink)"/><text x="309.0" y="266" font-size="13.5" text-anchor="middle" style="fill:var(--tc-ink3)">’24</text><text x="309.0" y="283" font-size="11" text-anchor="middle" style="fill:var(--tc-faint)">5</text><line x1="320.3" x2="320.3" y1="244" y2="250" stroke-width=".6" style="stroke:var(--tc-ink)"/><text x="331.6" y="266" font-size="13.5" text-anchor="middle" style="fill:var(--tc-ink3)">’25</text><text x="331.6" y="283" font-size="11" text-anchor="middle" style="fill:var(--tc-faint)">5</text><line x1="342.8" x2="342.8" y1="244" y2="250" stroke-width=".6" style="stroke:var(--tc-ink)"/><text x="56.0" y="283" font-size="11" text-anchor="end" style="fill:var(--tc-faint)">READMEs</text><path d="M348,130.6 C382,130.6 376,113.7 410,113.7" fill="none" stroke-opacity=".7" stroke-width=".7" style="stroke:var(--tc-red)"/><text x="416" y="117.7" font-size="14.5" font-weight="600" style="fill:var(--tc-red)">API reference entries</text><text x="416" y="132.7" font-size="12.5" style="fill:var(--tc-red)">35.9% → 45.6%</text><path d="M348,173.0 C382,173.0 376,156.0 410,156.0" fill="none" stroke-opacity=".7" stroke-width=".7" style="stroke:var(--tc-blue)"/><text x="416" y="160.0" font-size="14.5" font-weight="600" style="fill:var(--tc-blue)">How-to sections</text><text x="416" y="175.0" font-size="12.5" style="fill:var(--tc-blue)">20.5% → 16.5%</text><path d="M348,197.1 C382,197.1 376,192.0 410,192.0" fill="none" stroke-opacity=".7" stroke-width=".7" style="stroke:var(--tc-blue)"/><text x="416" y="196.0" font-size="14.5" font-weight="600" style="fill:var(--tc-blue)">Usage and examples</text><text x="416" y="211.0" font-size="12.5" style="fill:var(--tc-blue)">23.1% → 19.0%</text><path d="M348,223.0 C382,223.0 376,228.0 410,228.0" fill="none" stroke-opacity=".7" stroke-width=".7" style="stroke:var(--tc-ink5)"/><text x="416" y="232.0" font-size="14.5" style="fill:var(--tc-ink5)">Install and license</text><text x="416" y="247.0" font-size="12.5" style="fill:var(--tc-ink5)">20.5% → 19.0%</text><path d="M128.4,89.7 C199.5,85.7 260.4,35.5 331.5,65.5" fill="none" stroke-width=".9" marker-end="url(#ah)" style="stroke:var(--tc-ink)"/><text x="128.4" y="59.7" font-size="13" style="fill:var(--tc-ink2)">+22%: 13.0 → 15.8</text></svg>