Esikatselu
<Skeleton variant="paragraph" aria-label="Sisältöä ladataan." />
Käyttötarkoitus
Skeleton-komponentit ovat väliaikaisia paikkaajia sisällölle, joka ladataan tai generoidaan dynaamisesti. Sisällön tilalle luodaan skeleton
vastaamaan sisällön asettelua.
Kun sisältö on valmis latautumaan, Skeleton
korvautuu oikealla sisällöllä.
Skeleton
-komponentti toimii siten sekä asettelua että latauksen edistymistä kuvaavana visuaalisena vihjeenä.
- Kaikkia komponentteja ei tarvitse latausvaiheessa esittää Skeleton-komponentilla. Usein yksinkertaistettu versio näkymästä riittää.
- Pyri luomaan Skeleton-komponenteista mahdollisimman saman kokoisia kuin lopullisesta sisällöstä. Hyödynnä apuluokkia.
- Käytä komponenttien light-variaatiota Skeleton-latauksessa.
- Älä käytä korvaamaan staattista sisältöä, joka on heti tai hyvin nopeasti saatavilla.
Toimintaperiaate
Alla kuvitteellinen esimerkki Skeleton-latauksen käytöstä Card-komponentissa.
Tekniseen toteutukseen on eri tapoja:
- Kela Design Systemin tarjoamilla komponenteilla luodaan oma käyttöliittymäkomponentti.
- Jos komponentille ei anneta sisältöä, se renderöi Skeletonin.
- Container-komponentti hakee dynaamisesti sisältöä ulkoisen rajapinnan yli.
- Kun sisältö on vastaanotettu ja käsitelty, komponentti renderöidään oikealla sisällöllä.
Saavutettavuus
Komponentti ei itsessään takaa latausvaiheen saavutettavuutta. Skeleton-toteutuksen saavutettavuus on siten sovelluksen kehittäjän vastuulla.
Esimerkit
Tekstirivi
<Skeleton variant="text" aria-label="Sisältöä ladataan." />
Tekstikappale
<Skeleton variant="paragraph" aria-label="Sisältöä ladataan." />
Kuvake
<Skeleton variant="circle" aria-label="Sisältöä ladataan." />
Skeleton-komponentin koon muokkaus
Skeleton-komponentti käyttää oletuksena parent-elementin. Leveyttä voi muuttaa esimerkiksi apuluokkien ja className
-propin avulla.
.kds-w-[0|2|4|6|8|10|..|32]
asettaa leveyden rem-arvoina.
.kds-w-[1/4|2/4|3/4|full]
asettaa leveyden prosentteina (full = 100%).
Ulkoasua voi muokata hyödyntämällä myös muita apuluokkia.
<>
<Skeleton variant="text" className="kds-w-2/4" aria-label="Sisältöä ladataan." />
<br />
<Skeleton variant="text" className="kds-w-24" aria-label="Sisältöä ladataan." />
</>
Soveltaminen
Tekstisisältö
<>
<span className="kds-sr-only">Sisältöä ladataan.</span>
<Heading as="h1" className="kds-mt-0">
<Skeleton className="kds-w-2/4" />
</Heading>
<p>
<Skeleton variant="paragraph" />
</p>
<Heading as="h2">
<Skeleton className="kds-w-1/4" />
</Heading>
<p>
<Skeleton variant="paragraph" />
</p>
<p>
<Skeleton variant="paragraph" />
</p>
</>
Esimerkkilomake
<>
<Skeleton variant="text" className="kds-w-1/4 kds-block kds-mb-2" />
<Skeleton className="kds-p-2 kds-mb-2 kds-w-2/4 kds-mb-6" />
<Skeleton variant="text" className="kds-w-1/4 kds-block kds-mb-2" />
<Skeleton className="kds-p-2 kds-mb-2 kds-w-2/4 kds-mb-6" />
<Skeleton variant="text" className="kds-w-1/4 kds-block kds-mb-2" />
<Skeleton className="kds-p-2 kds-mb-2 kds-w-2/4 kds-mb-6" />
<Skeleton className="kds-block kds-p-2 kds-mb-2 kds-w-24" />
</>