Aller au contenu

Composant · Données

StackedBarChart

Documenté

Barres empilées : chaque barre cumule plusieurs séries (segments). Couleur par série (palette data-vis), légende dérivée des labels, tooltip par segment au survol et liste accessible des segments hors SVG.

Exemple

Production par trimestre

  • Q1, Composants: 20
  • Q1, Tokens: 12
  • Q1, Docs: 8
  • Q2, Composants: 26
  • Q2, Tokens: 10
  • Q2, Docs: 14
  • Q3, Composants: 16
  • Q3, Tokens: 18
  • Q3, Docs: 11
  • Composants
  • Tokens
  • Docs
Voir le code (Svelte)
<div class="docs-stacked-box">
  <StackedBarChart
    data={[{"label":"Q1","segments":[{"label":"Composants","value":20},{"label":"Tokens","value":12},{"label":"Docs","value":8}]},{"label":"Q2","segments":[{"label":"Composants","value":26},{"label":"Tokens","value":10},{"label":"Docs","value":14}]},{"label":"Q3","segments":[{"label":"Composants","value":16},{"label":"Tokens","value":18},{"label":"Docs","value":11}]}]}
    label="Production par trimestre"
  />
</div>

Légende interactive (toggle de série)

Renseignez hiddenSeries (ids/labels des séries masquées, contrôlé par le parent) et onToggleSeries pour rendre la légende cliquable. Les items deviennent des boutons accessibles (clic, Entrée/Espace, focus visible) avec aria-pressed ; les séries masquées disparaissent du rendu et de la liste accessible, et leur item est stylé « éteint ». Ici la série « Docs » est masquée par défaut.

Légende interactive

  • Q1, Composants: 20
  • Q1, Tokens: 12
  • Q2, Composants: 26
  • Q2, Tokens: 10
  • Q3, Composants: 16
  • Q3, Tokens: 18
Voir le code (Svelte)
<div class="docs-stacked-box">
  <StackedBarChart
    data={[{"label":"Q1","segments":[{"label":"Composants","value":20},{"label":"Tokens","value":12},{"label":"Docs","value":8}]},{"label":"Q2","segments":[{"label":"Composants","value":26},{"label":"Tokens","value":10},{"label":"Docs","value":14}]},{"label":"Q3","segments":[{"label":"Composants","value":16},{"label":"Tokens","value":18},{"label":"Docs","value":11}]}]}
    label="Production par trimestre (Docs masquée)"
    hiddenSeries={["Docs"]}
    onToggleSeries={undefined}
  />
</div>

API du composant

PropTypePar défaut
dataStackedBarDatum[]requis
labelstringrequis (a11y)
showLegendbooleantrue
hiddenSeriesstring[]undefined (tout visible)
onToggleSeries(seriesId: string) => voidundefined
width / heightnumber480 / 260

StackedBarDatum = { label, segments: { label, value, tone? }[] }.