Hopp til hovedinnhold
Meny

lmfaole.party / designsystem / komponenter / Skjelettplassholder

  • Forside
  • Turer
  • Økonomi
  • Slides
  • <lm-skeleton> – Skjelettplassholder / Skeleton

    Om komponenten

    Formål

    Viser en nøytral, animerbar plassholder mens ekte innhold lastes eller beregnes. Komponenten dekker et reelt UI-gap mellom en ren spinner og den endelige layouten: brukeren får se hvor innholdet kommer til å ligge, uten at siden hopper når dataene blir klare.

    Egner seg for

    • Lister, kort og detaljpaneler der layouten er kjent, men innholdet ennå ikke er lastet.
    • Steder der en kortvarig, visuell plassholder oppleves roligere enn å vise en spinner alene.

    Egner seg ikke for

    • Langvarige eller uklare prosesser der brukeren trenger eksplisitt status eller fremdrift - bruk <lm-progress-bar> eller en tekstlig melding i stedet.
    • Situasjoner der det reelle innholdet allerede er tilgjengelig, men bare er skjult - da er en vanlig overgang ofte mer riktig enn en egen loading-plassholder.

    Bruk

    Bruk komponenten som rent visuelt lag mens en overordnet region står i aria-busy. Bytt den ut med ekte innhold så snart dataene er klare.

    <script type="module" src="/designsystem/komponenter/tilbakemelding/skeleton/skeleton.js"></script>
    
    <section aria-busy="true" aria-live="polite">
        <lm-skeleton variant="card"></lm-skeleton>
    </section>
    
    <lm-skeleton variant="text" lines="4"></lm-skeleton>
    <lm-skeleton variant="circle" size="small"></lm-skeleton>

    Prøv selv

    Rediger koden under - resultatet oppdateres live.

    Attributter

    Attributt Type Standard Beskrivelse
    variant"text" | "card" | "rectangle" | "circle""text"Attributt/property. Velger hvilken type plassholder som rendres.
    linesnumber3Attributt/property. Antall tekstlinjer i variant="text". Ignoreres av de andre variantene.
    size"small" | "large"Attributt. Grov størrelsesvariant for sirkel-, rektangel- og kort-plassholderne.

    Parts

    Part Beskrivelse
    skeletonDen omsluttende beholderen for den aktive plassholdervarianten.
    lineHver enkelt tekstlinje i tekst- og kort-variantene.
    shapeDen enkle sirkel- eller rektangelflaten i de tilsvarende variantene.
    thumbnailKortvariantens større toppflate.
    linesKortvariantens beholder for tekstlinjene.

    Styling med ::part()

    Hver part over kan restyles direkte fra et vanlig, ytre stilark - uten å måtte endre selve komponenten eller duplisere den:

    lm-skeleton::part(skeleton) {
        /* egne stiler for "Den omsluttende beholderen for den aktive plassholdervarianten." */
    }
    
    lm-skeleton::part(line) {
        /* egne stiler for "Hver enkelt tekstlinje i tekst- og kort-variantene." */
    }
    
    lm-skeleton::part(shape) {
        /* egne stiler for "Den enkle sirkel- eller rektangelflaten i de tilsvarende variantene." */
    }
    
    lm-skeleton::part(thumbnail) {
        /* egne stiler for "Kortvariantens større toppflate." */
    }
    
    lm-skeleton::part(lines) {
        /* egne stiler for "Kortvariantens beholder for tekstlinjene." */
    }

    Tilgjengelighet

    Komponenten er alltid aria-hidden, slik at skjermlesere ikke leser opp meningsløse plassholderlinjer. Sett aria-busy="true" på området som laster, og gi eventuelt en separat tekstlig status ved behov. prefers-reduced-motion: reduce slår av shimmer-animasjonen.

    • Komponenten er alltid aria-hidden, slik at skjermlesere ikke får støyende, meningsløst plassholderinnhold lest opp.
    • Tilgjengelig status bør komme fra området rundt, for eksempel aria-busy="true" eller en separat tekstlig statusmelding.
    • prefers-reduced-motion: reduce fjerner shimmer-animasjonen helt.

    Detaljer

    • variant="card" gir en praktisk standard for kort-lignende lastetilstander med en stor toppflate og tre tekstlinjer under.
    • Komponenten prøver bevisst ikke å gjette høyde/bredde fra innholdet den erstatter; den gir bare et lite sett med generiske former som holder markupen enkel.

    Referanser

    Se også:

    Brukes av:

    • Ingen ennå - ny komponent.

    Avhengigheter: Ingen