Hopp til hovedinnhold
Meny

lmfaole.party / designsystem / komponenter / Stolpediagram

  • Forside
  • Turer
  • Økonomi
  • Slides
  • <lm-chart-bar> – Stolpediagram / Bar chart

    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 0 klampes til 0 i 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
    dataArray<{label: string, value: number, color?: string}>[]Property. Dataserie brukt til stolper, etiketter og skjult datatabell.
    tittelstring""Attributt/property. Tekst brukt som <caption> i den skjulte datatabellen.
    formatVerdi(value: number) => stringString(value)Property. Formatterer verdien i stolpenes native <title>-tooltip og i datatabellen.

    Parts

    Part Beskrivelse
    diagramYtterrammen rundt diagram og tabell.
    diagram-visualSVG-flaten.
    data-tabellSkjult datatabell for tilgjengelighet.
    akseHorisontal akse.
    stolpeHver stolpe.
    etikettHver 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" 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.

    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/