Aller au contenu
SkillCodex
Menu

Skeleton shimmer

Reflet de chargement

Le shimmer ajoute un reflet mobile à un espace réservé pendant l’attente du contenu. Il ne donne ni pourcentage ni promesse sur le temps restant.

Essayer le composant
Repères, sources et actions
Sources et révision
Mis à jour le
Version
v1.0.26 · r1
Sources
4 sources
Statut
Publié
Consulter les sources

Tu as peut-être cherché : un reflet traverse un espace réservémettre le reflet en pauseun aperçu de chargement statique

Toutes les formulations
Enregistrer et partager

Reconnaître

Coût et limites documentés

Rendu DOM avec transform ou opacity via Web Animations API, sans dépendance d’animation ajoutée, Canvas ou WebGL. Le module est demandé au clic sur Charger la démo. Le ressort prépare 121 points une seule fois ; le navigateur pilote ensuite la lecture. Le reflet continu continue à consommer des ressources jusqu’à sa pause ou son démontage.

Ces propriétés peuvent éviter le recalcul de mise en page ; elles ne garantissent ni composition GPU ni fluidité sur appareil modeste. Batterie, GPU et performance sur matériel réel restent non mesurés. L’état statique et le texte restent la référence lorsque le système réduit le mouvement ou que l’API manque.

web.dev · rendu et coût · MDN · Web Animations API

Mouvement et effets

Essayer

Le mouvement explique-t-il un changement, signale-t-il un état ou décore-t-il seulement ?

Reflet de chargement

Contexte commun aux essais

Un élément se déplace, change d’état ou attend un contenu. Quelle information doit rester sans mouvement ?

Reflet de chargement

Aperçu statique : l’état et le résultat restent lisibles sans mouvement. Active la démo pour comparer le paramètre, mettre en pause et essayer le repli.

Compare 1 200 et 2 400 ms par passage. La vitesse change la décoration, pas le chargement. Afficher le contenu termine cette simulation locale ; aucune requête réseau n’est lancée.

Ce que cet essai montre

Le skeleton réserve la forme du contenu ; le shimmer est une décoration facultative sur cette forme. Contrairement à une barre de progression, aucun ne mesure l’avancement.

Lequel convient à ton besoin ?

Reflet de chargement

Montre un espace réservé au chargement, accompagné d’un texte Chargement persistant.

Courbe d’animation

Rends un petit déplacement plus facile à suivre avec une durée prévisible.

Quel composant utilises-tu ici ?
Différence et sources

Le skeleton réserve la forme du contenu ; le shimmer est une décoration facultative sur cette forme. Contrairement à une barre de progression, aucun ne mesure l’avancement.

Consulter les sources

    Parties du spécimen

    Sélectionne un repère numéroté sur le schéma, ou utilise la liste ci-dessous, pour afficher son rôle. Le schéma montre l'état représentatif du concept.

    Déclencheur

    Le contrôle qui ouvre ou révèle la surface.

    Position dans l’atlas

    Carte relationnelle

    Repère le chapitre, les concepts proches et la prochaine décision utile.

    • Chapitre

      Mouvement et effets

      Reflet de chargement appartient à ce groupe de concepts comparés.

    • Ne pas confondre

      Courbe d’animation

      Choisis Reflet de chargement si tu cherches une décoration facultative d’attente. Choisis Courbe d’animation si tu cherches un rythme de durée fixée.

      Comparer cette paire
    • Ne pas confondre

      Animation à ressort

      Choisis Reflet de chargement si tu cherches une décoration facultative d’attente. Choisis Animation à ressort si tu cherches une réponse physique amortie.

      Comparer cette paire
    • Ne pas confondre

      Transition d’état

      Choisis Reflet de chargement si tu cherches une décoration facultative d’attente. Choisis Transition d’état si tu cherches un retour d’état persistant.

      Comparer cette paire
    • Ne pas confondre

      Mouvement réduit et repli

      Choisis Reflet de chargement si tu cherches une décoration facultative d’attente. Choisis Mouvement réduit et repli si tu cherches le même résultat sans mouvement.

      Comparer cette paire
    • Prochaine étape

      Compare les concepts du chapitre avant de retenir une implémentation.

      Ouvrir le chapitre

    Avec tes mots

    Comprendre

    Ce que les gens décrivent

    Alias documentés : reflet de chargement

    • un reflet traverse un espace réservé
    • mettre le reflet en pause
    • un aperçu de chargement statique
    • afficher le contenu après le skeleton
    • une décoration d’attente sans pourcentage
    • réserver la place du contenu

    Choisir

    À utiliser quand

    • Montre un espace réservé au chargement, accompagné d’un texte Chargement persistant.

    À éviter quand

    • Évite le shimmer continu sur de grandes surfaces, les attentes longues sans récupération et les faux pourcentages.

    Comparer

    Comparer les concepts proches

    Checklist de vérification

    Essaie ces gestes dans le lab, puis vérifie les mêmes comportements dans le résultat de ton agent. Adapte les noms d’exemple à ton interface.

    1. 1. À faire

      Compare un balayage rapide et un balayage lent sur les mêmes espaces de chargement.

      Résultat attendu

      Seule la vitesse du reflet change ; aucune version ne suggère un pourcentage mesuré ni une durée de chargement garantie.

    2. 2. À faire

      Mets le balayage en pause ou active son mode statique pendant le chargement.

      Résultat attendu

      Le message de chargement et l’espace réservé au contenu restent visibles sans mouvement.

    3. 3. À faire

      Affiche le contenu chargé, puis atteins le prochain vrai bouton ou lien avec Tab.

      Résultat attendu

      Le contenu remplace les espaces réservés ; le balayage ne crée jamais d’arrêt supplémentaire au clavier.

    Contrat complet
    1. 1Le résultat reste lisible sans animation
    2. 2Pause, réduction système et repli fonctionnent pendant la lecture
    3. 3Le démontage annule effets et écouteurs
    4. 4Seuls transform ou opacity changent ; le coût sur appareil reste non mesuré

    Comprendre → Reconnaître → Choisir → Comparer

    Pack pour ton agent

    Instructions pré-écrites à coller dans ton agent. Copier n’exécute rien.

    Implémenter correctement

    Construis Reflet de chargement sans casser son comportement

    # Implémenter Reflet de chargement dans ton agent
    
    ## Objectif
    Implémente Reflet de chargement pour ce comportement vérifié : Le shimmer ajoute un reflet mobile à un espace réservé pendant l’attente du contenu. Il ne donne ni pourcentage ni promesse sur le temps restant.
    
    ## Prérequis
    - Inspecte d’abord le dépôt, le design system et les tests existants.
    - Préserve les changements sans rapport et borne les fichiers modifiés.
    - Confirme que Reflet de chargement répond au besoin avant de coder.
    
    ## Comportement requis
    - Une région live annonce un nouvel état seulement si la mise à jour est importante et n’a pas déjà le focus.
    - L’activation au pointeur, avec Entrée ou Espace, exécute une action nommée une seule fois.
    
    ## États à couvrir
    - Prêt — État initial statique
    - En cours — L’effet facultatif est en cours
    - En pause — La lecture est figée
    - Résultat — Résultat persistant sans mouvement nécessaire
    
    ## Accessibilité
    - Rôle ARIA : button + select + checkbox + status
    - Le contrôle principal ou la région nommée pour Reflet de chargement possède un nom accessible stable issu d’un texte visible ou d’un libellé programmatique explicite ; le placeholder et l’infobulle ne servent pas de nom.
    - Le focus reste sur le contrôle activé. Recommencer rend le focus à son bouton.
    - Pause fige la lecture ; le repli statique l’annule. Quitter le spécimen annule son animation et retire les écouteurs.
    - Annonce les changements d’état par un texte concis, jamais les images de l’animation. Le visuel décoratif reste masqué aux technologies d’assistance.
    - Tab atteint chaque contrôle
    - Entrée ou Espace active les boutons ; les flèches changent le sélecteur natif ; Espace bascule la case du repli statique
    
    ## Quand ne pas utiliser
    - Évite le shimmer continu sur de grandes surfaces, les attentes longues sans récupération et les faux pourcentages.
    
    ## Critères d’acceptation
    - Le résultat reste lisible sans animation
    - Pause, réduction système et repli fonctionnent pendant la lecture
    - Le démontage annule effets et écouteurs
    - Seuls transform ou opacity changent ; le coût sur appareil reste non mesuré
    
    ## Garde-fous
    - Montre d’abord les changements envisagés avant toute action externe.
    - Ne publie, n’envoie, ne supprime, ne paie et ne modifie aucun état distant sans autorisation explicite.
    - Préserve les changements sans rapport et arrête-toi si le périmètre devient ambigu.
    
    ## Format de sortie
    - Résultat obtenu ou verdict.
    - Fichiers ou actions concernés.
    - Vérifications exécutées et preuves observables.
    - Blocages ou limites restantes.
    
    • Web platform
    • Prérequis · Accès au dépôt, au design system et aux tests
    Pourquoi ça marche
    • Le besoin est relié au comportement canonique avant toute décision technique.
    • Les états, l’accessibilité et les non-objectifs empêchent une implémentation seulement visuelle.
    • Les critères d’acceptation et le format de sortie rendent la vérification observable.

    À essayer ensuite

    Vérifie Reflet de chargement sur un parcours réel

    # Vérifier Reflet de chargement après l’implémentation
    
    ## Objectif
    Audite l’implémentation de Reflet de chargement au regard de son comportement, de ses états et de ses exigences d’accessibilité sans la modifier automatiquement.
    
    ## Contrôles
    - Rejoue le plus petit parcours représentatif.
    - Contrôle le clavier, le focus, le nom accessible et les annonces.
    - Relie chaque écart à un critère d’acceptation précis.
    
    ## Garde-fous
    - Montre d’abord les changements envisagés avant toute action externe.
    - Ne publie, n’envoie, ne supprime, ne paie et ne modifie aucun état distant sans autorisation explicite.
    - Préserve les changements sans rapport et arrête-toi si le périmètre devient ambigu.
    
    ## Format de sortie
    - Résultat obtenu ou verdict.
    - Fichiers ou actions concernés.
    - Vérifications exécutées et preuves observables.
    - Blocages ou limites restantes.
    

    sha256:ed483e4112412ad30d19c9773529f93d15781029d720efcc92f8a1a657c0e45d

    Diagnostiquer un problème

    Trouve et corrige le défaut de Reflet de chargement

    # Déboguer Reflet de chargement dans ton agent
    
    ## Symptôme observé
    [DÉCRIS ICI LE SYMPTÔME]
    
    ## Contrôles observables
    - Reproduis le problème avec le plus petit parcours pertinent.
    - Compare le comportement aux états et transitions documentés de Reflet de chargement.
    - Vérifie le clavier, le focus, le nom accessible et les annonces.
    
    ## Causes possibles
    - La primitive employée ne correspond pas au comportement attendu.
    - Un état, une transition ou un retour de focus manque.
    - Le composant voisin capture un événement ou masque un signal accessible.
    
    ## Corrections bornées
    - Corrige la cause reproduite sans recréer les composants voisins.
    - Conserve le contrat public et ajoute un test ciblé de non-régression.
    - N’installe aucune dépendance et ne modifie aucun état distant sans autorisation.
    
    ## Vérification finale
    - Le résultat reste lisible sans animation
    - Pause, réduction système et repli fonctionnent pendant la lecture
    - Le démontage annule effets et écouteurs
    - Seuls transform ou opacity changent ; le coût sur appareil reste non mesuré
    
    ## Garde-fous
    - Montre d’abord les changements envisagés avant toute action externe.
    - Ne publie, n’envoie, ne supprime, ne paie et ne modifie aucun état distant sans autorisation explicite.
    - Préserve les changements sans rapport et arrête-toi si le périmètre devient ambigu.
    
    ## Format de sortie
    - Résultat obtenu ou verdict.
    - Fichiers ou actions concernés.
    - Vérifications exécutées et preuves observables.
    - Blocages ou limites restantes.
    
    • Web platform
    • Prérequis · Accès au dépôt, au design system et aux tests
    Pourquoi ça marche
    • Le symptôme explicite évite de partir d’une correction supposée.
    • Les contrôles séparent comportement, accessibilité et interférences voisines.
    • La correction reste bornée et doit produire une preuve de non-régression.

    À essayer ensuite

    Verrouille la correction de Reflet de chargement

    # Empêcher la régression de Reflet de chargement
    
    ## Objectif
    Transforme la cause reproduite en test de non-régression ciblé et compare Reflet de chargement aux concepts voisins avant d’élargir la correction.
    
    ## Contrôles
    - Prouve que le test échoue avant la correction.
    - Prouve qu’il passe après la correction bornée.
    - Vérifie qu’aucun composant voisin n’a changé de comportement.
    
    ## Garde-fous
    - Montre d’abord les changements envisagés avant toute action externe.
    - Ne publie, n’envoie, ne supprime, ne paie et ne modifie aucun état distant sans autorisation explicite.
    - Préserve les changements sans rapport et arrête-toi si le périmètre devient ambigu.
    
    ## Format de sortie
    - Résultat obtenu ou verdict.
    - Fichiers ou actions concernés.
    - Vérifications exécutées et preuves observables.
    - Blocages ou limites restantes.
    

    sha256:9f2803b20de9133564684c09976314cbd0c7848531d111c81ec6ae90aacab676

    Fiche complète, enregistrement et provenance

    Instruction pré-écrite par SkillCodex — ta demande n’est ni envoyée ni utilisée pour adapter ce texte ; aucun contenu n’est généré et copier n’exécute rien.

    Digest du Pack: sha256:1c47ad255527d5fbec38af24261b65fae54c3c1800a4996765690e954d9a7552

    Dans le code

    TechnologiePrimitiveVersionLimite
    Web platform

    button, label, select, input[type=checkbox] and decorative div

    NatifDémo native du navigateur, sans nouveau widget ARIA. Le contenu statique reste utilisable.

    Détails techniques

    Comportements

    • Annoncer les changements utiles

      Une région live annonce un nouvel état seulement si la mise à jour est importante et n'a pas déjà le focus.

    • Exécuter une action

      L'activation au pointeur, avec Entrée ou Espace, exécute une action nommée une seule fois.

    États

    • Prêt

      État initial statique

    • En cours

      L’effet facultatif est en cours

    • En pause

      La lecture est figée

    • Résultat

      Résultat persistant sans mouvement nécessaire

    Transitions d’état

    • Prêt → En cours

      Active Lire lorsque le mouvement est disponible

    • En cours → En pause

      Active Pause

    • En cours → Résultat

      Termine ou active le repli statique

    Scénarios de test

    Contexte
    Montre un espace réservé au chargement, accompagné d’un texte Chargement persistant.
    Mission
    Compare 1 200 et 2 400 ms par passage. La vitesse change la décoration, pas le chargement. Afficher le contenu termine cette simulation locale ; aucune requête réseau n’est lancée.
    État principal
    Le shimmer ajoute un reflet mobile à un espace réservé pendant l’attente du contenu. Il ne donne ni pourcentage ni promesse sur le temps restant.
    Cas limite
    La réduction système ou une API indisponible conserve la même information statique. Aucune opération de données ne dépend de la lecture.

    Signaux visuels

    • Un spécimen délimité avec un départ et un résultat visibles
    • Un texte lisible sans mouvement

    Signaux comportementaux

    • Compare 1 200 et 2 400 ms par passage. La vitesse change la décoration, pas le chargement. Afficher le contenu termine cette simulation locale ; aucune requête réseau n’est lancée.
    • Démarre sur demande ; pause et repli statique restent disponibles

    Accessibilité

    Rôle
    button + select + checkbox + status
    Nom accessible
    Le contrôle principal ou la région nommée pour Reflet de chargement possède un nom accessible stable issu d’un texte visible ou d’un libellé programmatique explicite ; le placeholder et l’infobulle ne servent pas de nom.
    Focus clavier
    Le focus reste sur le contrôle activé. Recommencer rend le focus à son bouton.
    Fermeture
    Pause fige la lecture ; le repli statique l’annule. Quitter le spécimen annule son animation et retire les écouteurs.
    Défilement
    L'activation du contrôle avec Espace ne fait pas défiler la page, et le retour apparaît sans déplacer le focus ni provoquer de saut inattendu.
    Annonce
    Annonce les changements d’état par un texte concis, jamais les images de l’animation. Le visuel décoratif reste masqué aux technologies d’assistance.
    Clavier
    • Tab atteint chaque contrôle
    • Entrée ou Espace active les boutons ; les flèches changent le sélecteur natif ; Espace bascule la case du repli statique

    Implémentations

    Ouvrir la matrice HTML, ARIA, Radix et shadcn
    • button, label, select, input[type=checkbox] and decorative div

      implementationKind
      custom
      nativeElement
      button, label, select, input[type=checkbox] and decorative div
      ariaPattern
      native controls and status text
      radixPrimitive
      Non applicable
      shadcnRecipe
      Non applicable
      runtimeDependency
      Non applicable
      packageName
      Non applicable
      exportName
      Non applicable
      exactVersion
      Non applicable
      status
      exception
      sourceId
      source-ui-motion-waapi
      deprecationStatus
      active
      replacement
      Non applicable
      validFrom
      Non applicable
      validUntil
      Non applicable

      Limite d’équivalence : Démo native du navigateur, sans nouveau widget ARIA. Le contenu statique reste utilisable.

      Vérifier la source du binding

    Sources

    • WAI-ARIA 1.2: aria-busy
      sourceId
      source-ui-wai-aria-busy
      kind
      standard
      canonicalUrl
      https://www.w3.org/TR/wai-aria-1.2/#aria-busy
      publisher
      W3C WAI
      sourceRevision
      W3C-REC-wai-aria-1.2-20230606
      consultedAt
      2026-07-19
      license
      Non indiquée
      contentDigest
      sha256:c0fea16fc747779569ab754d2d25bca3e2b7e8a673b8ef5362aeb9ebc73a4849
      status
      verified

      Affirmation couverte : Reflet de chargement : l'état normatif aria-busy pour exposer une région pendant la mise à jour de son contenu.

    • Web Animations API
      sourceId
      source-ui-motion-waapi
      kind
      documentation
      canonicalUrl
      https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API
      publisher
      MDN
      sourceRevision
      Wed, 16 Sep 2026 01:08:41 GMT
      consultedAt
      2026-09-16
      license
      Non indiquée
      contentDigest
      sha256:b030cde49d8dbf6294ab507e29a03d53591011c9bd11ca2d48d87182a0abd50b
      status
      verified

      Affirmation couverte : Reflet de chargement : Lecture, pause et annulation des animations du navigateur.

    • prefers-reduced-motion
      sourceId
      source-ui-motion-reduction
      kind
      documentation
      canonicalUrl
      https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@media/prefers-reduced-motion
      publisher
      MDN
      sourceRevision
      Wed, 16 Sep 2026 01:08:49 GMT
      consultedAt
      2026-09-16
      license
      Non indiquée
      contentDigest
      sha256:573fe46ee27fed249d9c39e910a2a6c258cee26527e90554ba5b02eba1496fbf
      status
      verified

      Affirmation couverte : Reflet de chargement : Préférences de mouvement et alternative statique.

    • High-performance animations
      sourceId
      source-ui-motion-performance
      kind
      documentation
      canonicalUrl
      https://web.dev/articles/animations-guide?hl=de
      publisher
      Google web.dev
      sourceRevision
      Tue, 06 Oct 2020 07:00:00 GMT
      consultedAt
      2026-09-16
      license
      Non indiquée
      contentDigest
      sha256:2f4492e9ba7b3679936eac2f1f1e6e42dcde7fc65bf29cf6f848d076df224acd
      status
      verified

      Affirmation couverte : Reflet de chargement : Coût de rendu de transform et opacity ; la composition ne garantit pas les performances.