Skeleton

Kildekode på GitHub · Les som Markdown

Skeleton viser formen av innhold som ennå ikke er lastet. Den gir en bedre brukeropplevelse enn en tom side ved å indikere hva som kommer.

Importering

import { Skeleton } from "@kilden/designsystem";

Grunnleggende bruk

<div style={{ display: "grid", gap: "0.5rem", maxWidth: "24rem" }}>
<Skeleton className="h-4 w-3/4" />
<Skeleton className="h-4 w-full" />
<Skeleton className="h-4 w-5/6" />
</div>

Profil-plassholder

<div style={{ display: "flex", alignItems: "center", gap: "1rem" }}>
<Skeleton className="h-12 w-12 rounded-full" />
<div style={{ display: "grid", gap: "0.5rem" }}>
  <Skeleton className="h-4 w-[180px]" />
  <Skeleton className="h-4 w-[120px]" />
</div>
</div>

Kort-plassholder

<Card style={{ maxWidth: "24rem" }}>
<CardHeader>
  <Skeleton className="h-5 w-2/3" />
  <Skeleton className="h-4 w-full" />
</CardHeader>
<CardContent>
  <div style={{ display: "grid", gap: "0.5rem" }}>
    <Skeleton className="h-4 w-full" />
    <Skeleton className="h-4 w-full" />
    <Skeleton className="h-4 w-3/4" />
  </div>
</CardContent>
</Card>

Liste-plassholder

<div style={{ display: "grid", gap: "1rem", maxWidth: "24rem" }}>
{[1, 2, 3].map((i) => (
  <div key={i} style={{ display: "flex", alignItems: "center", gap: "0.75rem" }}>
    <Skeleton className="h-10 w-10 rounded-md" />
    <div style={{ display: "grid", gap: "0.25rem", flex: 1 }}>
      <Skeleton className="h-4 w-3/4" />
      <Skeleton className="h-3 w-1/2" />
    </div>
  </div>
))}
</div>

Bruksanbefalinger

Match formen av innholdet

Skeletons bør ligne innholdet de erstatter — bruk riktig størrelse, avrunding og layout.

Skeleton for umiddelbart innhold → unødvendig flimmer

Ikke bruk for rask lasting

Hvis innholdet lastes på under 200ms, viser skeleton bare et flimmer. Bruk den kun for merkbar ventetid.

Tilgjengelighet

  • Skeleton er dekorativ og trenger ingen spesiell ARIA-markering
  • For skjermlesere, sørg for at lasting-tilstanden kommuniseres via aria-busy="true" på containeren
  • Bruk aria-live="polite" på området som oppdateres når innholdet er ferdig lastet

Props

Arver alle props fra <div>. Viktige utility-klasser:

KlasseBeskrivelse
h-4Høyde (tekst-linje)
w-[250px]Fast bredde
w-3/4Relativ bredde
rounded-fullSirkulær form (avatar)
rounded-mdAvrundede hjørner (standard)