Loob blogipostitustesse SVG-andmegraafikuid, mis töötavad ka tumedas režiimis.
Kogu oskus — vaikeversiooni hoitakse GitHubis; sinu muudatused jäävad sinu enda klooni.
Genereerib blogipostituste jaoks tumeda režiimiga ühilduvaid reasiseseid SVG-diagramme. Kutsutakse
sisemiselt välja blog-write ja blog-rewrite poolt, kui tuvastatakse diagrammiväärilised andmed.
Ei ole eraldiseisev kasutajale suunatud käsk.
Stiili tõeallikas: skills/blog/references/visual-media.md
Toetatud diagrammitüüpide puhul eelista deterministlikku CLI-d:
python3 skills/blog-chart/scripts/generate_chart_svg.py --input chart.json --output chart.html --json
Kirjutaja või uurija annab edasi diagrammipäringu:
Chart Request:
- Type: horizontal bar
- Title: "Quarterly Signups by Product"
- Data: Product A 420, Product B 315, Product C 180
- Source: [Verified source], [publication date]
- Platform: mdx (or html)
Vali andmemustri alusel. Eelista diagrammitüüpide mitmekesisust, kuid korda tüüpi, kui võrreldavus või lugeja arusaadavus sellest selgelt võidab.
| Andmemuster | Parim diagrammitüüp |
|---|---|
| Enne/pärast võrdlus | Rühmitatud tulpdiagramm |
| Järjestatud tegurid / korrelatsioonid | Pulgakommidiagramm |
| Terviku osad / turuosa | Sõõrikdiagramm |
| Trend ajas | Joondiagramm |
| Protsentuaalne paranemine | Horisontaalne tulpdiagramm |
| Jaotus / vahemik | Pindaladiagramm |
| Mitmemõõtmeline skoorimine | Radardiagramm |
Kõik diagrammid peavad töötama nii tumedal kui ka heledal taustal:
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="var(--chart-muted, currentColor)"
Source text: fill="var(--chart-muted, currentColor)"
Label text: fill="currentColor" opacity="0.8"
Sea --chart-muted hostiteema juurdepääsetavale tekstitokenile. Kui tokenit
pole, kasuta #4b5563 heledal taustal ja #d1d5db tumedal taustal.
Ära toetu nähtava viitamise osas madala läbipaistmatusega allika- või alapealkirjatekstile.
| Värv | Hex | Kasutusjuht |
|---|---|---|
| Oranž | #f97316 |
Esmane / kõrgeim väärtus |
| Taevasinine | #38bdf8 |
Teisene / võrdlus |
| Lilla | #a78bfa |
Kolmandane / erikategooria |
| Roheline | #22c55e |
Neljandane / positiivne näitaja |
Heakskiidetud värviliste elementide sees oleva teksti jaoks: kasuta fill="#111827" koos
fontWeight="800". Kasuta valget teksti alles pärast seda, kui oled kontrollinud, et kontrastisuhe
on selle konkreetse täitevärvi vastu vähemalt 4.5:1.
Ära toetu ainult värvile. Lisa otsesildid, mustrid, joonekatkestused, markerite kujundid või legenditekst, et värvipimedad lugejad saaksid seeriaid eristada.
<svg
viewBox="0 0 560 380"
style="max-width: 100%; height: auto; font-family: 'Inter', system-ui, sans-serif"
role="img"
aria-labelledby="chart-title chart-desc"
>
<title id="chart-title">Chart Title</title>
<desc id="chart-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="var(--chart-muted, currentColor)">
Source: Source Name (Year)
</text>
</svg>
<svg
viewBox="0 0 560 380"
style={{maxWidth: '100%', height: 'auto', fontFamily: "'Inter', system-ui, sans-serif"}}
role="img"
aria-labelledby="chart-title chart-desc"
>
<title id="chart-title">Chart Title</title>
<desc id="chart-desc">Description for screen readers</desc>
{/* Chart content */}
<text x="280" y="372" textAnchor="middle" fontSize="10" fill="var(--chart-muted, currentColor)">
Source: Source Name (Year)
</text>
</svg>
| HTML | JSX |
|---|---|
stroke-width |
strokeWidth |
stroke-dasharray |
strokeDasharray |
stroke-linecap |
strokeLinecap |
text-anchor |
textAnchor |
font-size |
fontSize |
font-weight |
fontWeight |
font-family |
fontFamily |
class |
className |
style="..." |
style={{...}} |
Parim: protsentuaalsed paranemised, ühe mõõdiku võrdlused.
chartHeight / dataCount - gap (gap=8)(value / maxValue) * chartWidthy = chartY + index * (barHeight + gap)Parim: enne/pärast, A vs B võrdlused.
Parim: terviku osad, turuosa.
<path d="M... A... L... A... Z" fill="color" />Parim: trendid ajas.
stroke="currentColor" opacity="0.08"<circle cx=... cy=... r="4" fill="color" /><polyline points="..." fill="none" stroke="color" strokeWidth="2" />opacity="0.1"Parim: järjestatud tegurid, korrelatsioonid.
stroke="currentColor" opacity="0.15" strokeWidth="1"r="6" täitevärvigaParim: jaotus, kumulatiivsed andmed.
<path d="M... L... L... Z" fill="color" opacity="0.15" />stroke="color" strokeWidth="2" fill="none"Parim: mitmemõõtmeline skoorimine (5–7 telge).
fill="color" opacity="0.2" stroke="color"<tspan> ridadeks.<desc>-is või kõrvaltekstis.max-width: 100%; height: auto
stiiliga või vali tihedate siltide jaoks põhjendatud laiem viewBox.Mähi iga diagramm <figure> elementi:
HTML:
<figure>
<svg viewBox="0 0 560 380" style="max-width: 100%; height: auto; font-family: 'Inter', system-ui, sans-serif" role="img" aria-labelledby="chart-title chart-desc">
<title id="chart-title">[Chart Title]</title>
<desc id="chart-desc">[Full description with data points for screen readers]</desc>
<!-- chart content -->
<text x="280" y="372" text-anchor="middle" font-size="10" fill="var(--chart-muted, currentColor)">
Source: [Source Name] ([Year])
</text>
</svg>
<figcaption>Source: <a href="[Source URL]">[Source Name]</a>, [publication date].</figcaption>
</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-labelledby="chart-title chart-desc">
<title id="chart-title">[Chart Title]</title>
<desc id="chart-desc">[Full description]</desc>
{/* chart content with camelCase attributes */}
<text x="280" y="372" textAnchor="middle" fontSize="10" fill="var(--chart-muted, currentColor)">
Source: [Source Name] ([Year])
</text>
</svg>
<figcaption>Source: <a href="[Source URL]">[Source Name]</a>, [publication date].</figcaption>
</figure>
<figcaption> olemasrole="img" ja aria-labelledby olemas <svg>-l<title id> ja <desc id> olemas <svg> sees0 0 560 380 (standard) või põhjendatud alternatiiv