Retours & statut

Squelette de chargement

هيكل التحميلSkeleton

Stablesrc/dsm/components/skeleton.tsx
Le squelette occupe la forme du contenu à venir pendant son chargement, pour réduire la sensation d'attente et éviter les sauts de mise en page.

Import

import { Skeleton } from "@/dsm/components/skeleton";

Exemples

Texte

Plusieurs lignes, la dernière plus courte.

LTR
Chargement

Variantes

text, rect et circle.

LTR
Chargement

Carte de démarche

Squelette reproduisant une carte de service en cours de chargement.

LTR
Chargement

Usage

Quand l'utiliser

  • Utilisez-le quand le contenu met plus de quelques centaines de millisecondes à arriver (liste de démarches, statut d'un dossier).
  • Reproduisez la forme réelle du contenu final (largeur, hauteur, nombre de lignes) pour une transition sans saut visuel.

Quand ne pas l'utiliser

  • N'en abusez pas pour un contenu qui s'affiche quasi instantanément : préférez ne rien montrer plutôt qu'un flash de squelette.
  • Ne l'utilisez pas comme état d'erreur : une fois le chargement en échec, affichez un `EmptyState` ou une `Alert`.

Accessibilité & langues

Accessibilité

  • `SkeletonGroup` porte `role="status"` et annonce le libellé « Chargement » aux lecteurs d'écran.
  • Chaque `Skeleton` est `aria-hidden` : seul le conteneur du groupe est annoncé, pas chaque forme individuellement.

RTL & multilingue

  • Le dégradé animé (`dsm-shimmer`) balaie horizontalement sans notion de sens de lecture : aucune adaptation n'est nécessaire.
  • La dernière ligne d'un bloc `text` est raccourcie par une largeur relative, cohérente dans les deux sens de lecture.

Propriétés

Skeleton
PropriétéTypeDéfautDescription
variant"text" | "rect" | "circle"rectForme du squelette.
linesnumber—Nombre de lignes pour `variant="text"` ; la dernière est plus courte.
classNamestring—Dimensions et rayon via des classes Tailwind (`h-4 w-32`, `size-10`…).
SkeletonGroup
PropriétéTypeDéfautDescription
childrenReactNode—Un ou plusieurs `Skeleton`, annoncés comme un seul état de chargement.

Composants liés