Om komponenten
Formål
Generisk stolpediagram for én serie etikett/verdi-par. Viser bare diagrammet og en skjult, semantisk datatabell for tilgjengelighet.
Egner seg for
- Sammenligning av diskrete kategorier når én serie stolper er nok.
- Datasett som også skal tilbys som skjult tabell med
<caption>.
Egner seg ikke for
- Flere serier, stablede stolper eller behov for legende og akseverdier; komponenten tegner bare én serie.
- Visuell fremheving av negative verdier; verdier under
0klampes til0i stolpene.
Bruk
<script type="module" src="/designsystem/komponenter/data-visualisering/chart-bar/chart-bar.js"></script>
<lm-chart-bar tittel="Omsetning per kvartal"></lm-chart-bar>
const diagram = document.querySelector("lm-chart-bar");
diagram.data = [
{label: "Q1", value: 12},
{label: "Q2", value: 18},
{label: "Q3", value: 9},
{label: "Q4", value: 15, color: "var(--category-color-one)"},
];
diagram.formatVerdi = (value) => `${value} mill. kr`;
Prøv selv
Rediger koden under - resultatet oppdateres live.
Attributter
| Attributt | Type | Standard | Beskrivelse |
|---|---|---|---|
data | Array<{label: string, value: number, color?: string}> | [] | Property. Dataserie brukt til stolper, etiketter og skjult datatabell. |
tittel | string | "" | Attributt/property. Tekst brukt som <caption> i den skjulte datatabellen. |
formatVerdi | (value: number) => string | String(value) | Property. Formatterer verdien i stolpenes native <title>-tooltip og i datatabellen. |
Parts
| Part | Beskrivelse |
|---|---|
diagram | Ytterrammen rundt diagram og tabell. |
diagram-visual | SVG-flaten. |
data-tabell | Skjult datatabell for tilgjengelighet. |
akse | Horisontal akse. |
stolpe | Hver stolpe. |
etikett | Hver kategorietikett. |
Styling med ::part()
Hver part over kan restyles direkte fra et vanlig, ytre stilark - uten å måtte endre selve komponenten eller duplisere den:
lm-chart-bar::part(diagram) {
/* egne stiler for "Ytterrammen rundt diagram og tabell." */
}
lm-chart-bar::part(diagram-visual) {
/* egne stiler for "SVG-flaten." */
}
lm-chart-bar::part(data-tabell) {
/* egne stiler for "Skjult datatabell for tilgjengelighet." */
}
lm-chart-bar::part(akse) {
/* egne stiler for "Horisontal akse." */
}
lm-chart-bar::part(stolpe) {
/* egne stiler for "Hver stolpe." */
}
lm-chart-bar::part(etikett) {
/* egne stiler for "Hver kategorietikett." */
}
Tilgjengelighet
SVG-en skjules med aria-hidden="true" og role="presentation"; skjermlesere får den skjulte <table>-en. Tabellen bruker <caption> fra tittel, <th scope="row"> og formatterte verdier. Komponenten er ren presentasjon uten tastaturstøtte. prefers-reduced-motion: reduce slår av animasjonen, og forced-colors: active bruker systemfarger.
- SVG-en skjules med
aria-hidden="true"ogrole="presentation"; skjermlesere får den skjulte<table>-en. - Tabellen bruker
<caption>fratittel,<th scope="row">og formatterte verdier. - Komponenten er ren presentasjon uten tastaturstøtte.
prefers-reduced-motion: reduceslår av animasjonen, ogforced-colors: activebruker systemfarger.
Referanser
Se også:
../chart-line/index.html - viser samme type enkle serie-data når utvikling mellom punkter er viktigere enn stolpe-sammenligning.../chart-pie/index.html - viser de samme etikett/verdi-parene som andeler av en total i stedet for som separate stolper.
Brukes av:
Ingen ennå - ny komponent.
Avhengigheter: designsystem/funksjoner/sikkerhet/escape-html/, designsystem/funksjoner/statistikk/finn-ytterpunkter/, designsystem/funksjoner/statistikk/finn-skalatrinn/