Hopp til hovedinnhold
Meny

lmfaole.party / designsystem / komponenter / Linjediagram

  • Forside
  • Turer
  • Økonomi
  • Slides
  • <lm-chart-line> – Linjediagram / Line chart

    Om komponenten

    Formål

    Generisk linjediagram for én serie etikett/verdi-par. Viser bare kurven, punktmarkører og en skjult, semantisk datatabell.

    Egner seg for

    • Trendlinjer for én ordnet serie, f.eks. temperatur gjennom dagen.
    • Datasett der skjult tabell og enkel punktmarkering er nok.

    Egner seg ikke for

    • Flere serier eller behov for egen legende og y-akse; komponenten tegner bare én linje.
    • Data der x-avstanden må følge faktisk tid eller avstand; punktene fordeles jevnt etter indeks.

    Bruk

    <script type="module" src="/designsystem/komponenter/data-visualisering/chart-line/chart-line.js"></script>
    
    <lm-chart-line tittel="Temperatur gjennom dagen"></lm-chart-line>
    const diagram = document.querySelector("lm-chart-line");
    diagram.data = [
        {label: "08", value: 12},
        {label: "10", value: 15},
        {label: "12", value: 19, color: "var(--category-color-two)"},
        {label: "14", value: 17},
    ];
    diagram.formatVerdi = (value) => `${value} °C`;

    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 punkter, etiketter og skjult datatabell.
    tittelstring""Attributt/property. Tekst brukt som <caption> i den skjulte datatabellen.
    formatVerdi(value: number) => stringString(value)Property. Formatterer verdien i punktmarkørenes native <title>-tooltip og i datatabellen.

    Parts

    Part Beskrivelse
    diagramYtterrammen rundt diagram og tabell.
    diagram-visualSVG-flaten.
    data-tabellSkjult datatabell for tilgjengelighet.
    akseHorisontal akse.
    linjeSelve kurven.
    punktHver datapunktmarkør.
    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-line::part(diagram) {
        /* egne stiler for "Ytterrammen rundt diagram og tabell." */
    }
    
    lm-chart-line::part(diagram-visual) {
        /* egne stiler for "SVG-flaten." */
    }
    
    lm-chart-line::part(data-tabell) {
        /* egne stiler for "Skjult datatabell for tilgjengelighet." */
    }
    
    lm-chart-line::part(akse) {
        /* egne stiler for "Horisontal akse." */
    }
    
    lm-chart-line::part(linje) {
        /* egne stiler for "Selve kurven." */
    }
    
    lm-chart-line::part(punkt) {
        /* egne stiler for "Hver datapunktmarkør." */
    }
    
    lm-chart-line::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 punktverdier. Komponenten er ren presentasjon uten tastaturstøtte. prefers-reduced-motion: reduce slår av animasjoner, 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 punktverdier.
    • Komponenten er ren presentasjon uten tastaturstøtte.
    • prefers-reduced-motion: reduce slår av animasjoner, og forced-colors: active bruker systemfarger.

    Referanser

    Se også:

    • ../chart-bar/index.html - viser samme type enkle kategori-data når sammenligning per kategori er viktigere enn utvikling mellom punkter.
    • ../chart-pie/index.html - viser de samme etikett/verdi-parene som andeler av en total i stedet for som en sekvens.

    Brukes av:

    • okonomi/formue/index.html - nettoformue-utvikling over tid.
    • okonomi/forbruk/analyse/index.html - kategoritrend, én kategoris utgifter per måned.

    Avhengigheter: designsystem/funksjoner/sikkerhet/escape-html/, designsystem/funksjoner/statistikk/finn-ytterpunkter/, designsystem/funksjoner/statistikk/finn-skalatrinn/