Comment diagnostiquer et corriger du Cumulative Layout Shift (CLS) ?
lundi 21 août 2023
Dans le domaine de la Web Performance, il y a plusieurs aspects Ă prendre en compte :
- Est-ce que ma page sâaffiche rapidementâŻ?
- Est-ce que la rapiditĂ© Ă laquelle elle se charge permet Ă une personne dâinteragir facilement avec elleâŻ?
- Est-ce que les interactions sont rapides�
JusquâĂ maintenant dans les articles que jâai publiĂ© autour de la performance, jâai beaucoup parlĂ© du premier point. Nous nous sommes surtout concentrĂ©s sur celui-ci parce que le Largest Contentful Paint est certainement la mĂ©trique la plus gĂ©nĂ©rique et la plus Ă©videmment impactante pour nos utilisateurices : sâil faut attendre 10 secondes pour voir le contenu, la page est Ă©videmment lente.
Cependant, aujourdâhui je vais vous parler du deuxiĂšme aspect : comment gĂ©rer le chargement de ma page pour amĂ©liorer la performance ressentieâŻ? Notamment, avec lâavĂšnement des Core Web Vitals poussĂ©es par Google, la mĂ©trique qui va nous intĂ©resser est le Cumulative Layout Shift (CLS).
Si vous voulez en savoir plus sur la Web Performance, nâhĂ©sitez pas Ă jeter un coup dâĆil aux autres articles suivants. Si vous nâavez pas le temps de vous former Ă ces sujets ou que vous devez amĂ©liorer vos performances avant une date clĂ©, sachez aussi que je peux venir en renfort dans vos Ă©quipes afin de mener audit, correctifs ou formation.
- Pourquoi améliorer le LCP de vos pages�
- Analyser le comportement réseau pour améliorer FCP et LCP
- Optimiser les images sur le web : checklist des bonnes pratiques
- Optimiser le chargement des fonts
- Optimiser la gestion des icĂŽnes
- Comment diagnostiquer et corriger du CLSâŻ? (vous ĂȘtes ici)
- Quelles techniques pour diminuer la quantité de JavaScript� (bientÎt)
- Quelles métriques suivre en dehors des Core Web Vitals� (bientÎt)
- Et plus encore đ«¶
Quâest-ce que le CLSâŻ?
Pour comprendre ce quâest le CLS, je vous propose dâessayer de cliquer sur le bouton âRevenir Ă lâarticleâ de la vidĂ©o suivante ou en allant directement sur la dĂ©mo.
Si vous cliquez au mauvais moment, vous ne cliquerez pas sur le bouton, mais sur le titre. Câest dĂ©jĂ frustrant en soit. Mais si le titre Ă©tait un autre lien, vous vous seriez retrouvĂ© brinquebalĂ© sur une autre page. Câest par exemple le cas sur lâapplication Webtoon oĂč je lis rĂ©guliĂšrement. Quand jâarrive sur la liste des chapitres dâune sĂ©rie, je mâapprĂȘte Ă ouvrir le dernier chapitre (ici le 91), et Ă chaque fois, lâencart âDaily Passâ apparaĂźt pile au moment oĂč je clique (cf. deuxiĂšme onglet). Je me retrouve alors Ă cliquer sur âRead the latest 3 episodesâ au lieu de cliquer sur lâĂ©pisode 91, ce qui mâouvre une dropdown et mâoblige Ă faire plein de clics supplĂ©mentaires pour arriver Ă mon but. đ©

Câest un exemple inoffensif, mais si câĂ©tait une action importante (ex : acheter, supprimer, etc.), ce serait beaucoup plus Ă©nervant.
Ainsi, si on devait dĂ©finir le Layout Shift sans utiliser de termes techniques, ce serait un changement de lâaffichage de la page, qui ne vient pas dâune action de lâutilisateurice et donc qui peut entraĂźner un mauvais clic ou une perte de repĂšres au cours de la lecture.
Une subtilitĂ© Ă noter : ce Layout Shift est calculĂ© uniquement sur ce qui est visible Ă lâutilisateurice. En effet, si votre page bouge mais que ce nâest pas dans la partie visible de lâĂ©cran, ce nâest pas un problĂšme.
On a donc dĂ©finit le Layout Shift qui correspond au LS de CLS. Mais Ă quoi correspond le CâŻ? Cumulative : câest une maniĂšre de dire quâon va mesurer lâensemble des mouvements qui y a eu sur la page. Par exemple, si vous avez plusieurs bandeaux qui apparaissent les uns aprĂšs les autres, ce sera dâautant plus gĂȘnant. Mais ça veut aussi dire que si vous scrollez plus loin dans votre page et que pendant le scroll il se passe des chargements, alors ces Layouts Shifts seront aussi comptabilisĂ©s dans le CLS.
Quels outils pour mesurer et diagnostiquer le CLS�
Comme dâhabitude, la rĂ©ponse est : ça dĂ©pend đ
Obtenir une idée générale du CLS en un click : PageSpeed Insights
En renseignant lâURL que vous souhaitez tester, vous recevrez un audit Lighthouse. Vous pourrez ainsi voir si vous avez du Layout Shift ou non. Par exemple sur notre dĂ©mo, on peut voir que le CLS est de 0.328. (De maniĂšre trĂšs schĂ©matique on peut en comprendre que 1/3 de la page a Ă©tĂ© affectĂ©e par du Layout Shift â cf. Layout shift score pour plus de dĂ©tails)

Pensez Ă aussi bien vĂ©rifier sur desktop parce que les contraintes y sont trĂšs diffĂ©rentes et il est trĂšs courant dâavoir du CLS sur un device mais pas lâautre.
Lighthouse vous donnera aussi des premiĂšres pistes pour rĂ©gler les problĂšmes associĂ©s au CLS. Pour cela, il vous faut cliquer sur le petit tag âCLSâ en bas Ă droite des screenshots de votre page.

Lâautre intĂ©rĂȘt de PageSpeed Insights est que si votre site est suffisamment frĂ©quentĂ©, il vous prĂ©sentera les donnĂ©es du CrUX qui sont des donnĂ©es mises Ă disposition par Google qui indiquent quelle a Ă©tĂ© la rapiditĂ© dâaffichage de votre site pour les utilisateurices de Chrome. Cela inclut le CLS. LâintĂ©rĂȘt est que cela vous donnera une vision sur ce que ressentent rĂ©ellement vos utilisateurices plutĂŽt que de vous contenter de donnĂ©es dĂźtes de laboratoire. NâhĂ©sitez pas Ă vous rĂ©fĂ©rer Ă mon article dâintroduction pour en savoir plus sur le CrUX.

Comprendre en dĂ©tail dâoĂč vient le CLS : WebPageTest
WebPageTest peut ĂȘtre considĂ©rĂ© comme une alternative Ă une analyse de la page dans lâonglet Performance des DevTools de Chrome. Je le privilĂ©gie parce que je trouve quâil est plus facile dây faire la corrĂ©lation entre le chargement dâune ressource et lâorigine du CLS.
Notamment, aprÚs avoir lancé un audit, si vous cliquez sur un Filmstrip, vous vous retrouverez avec une vue comme celle-ci :

Si vous lisez lâarticle sur mobile, vous aurez du mal Ă le constater, mais les frames avec du Layout Shift sont encadrĂ©es en pointillĂ© (orange ou rouge). Cela donne assez rapidement une comprĂ©hension de ce qui provoque du Layout Shift :
- Le chargement des fonts
- Lâapparition du bandeau de notification
En ajustant les paramĂštres de Web Page Test vous pouvez aussi configurer le FilmStrip (âAdjust Filmstrip Settingsâ) pour raccourcir lâinterval entre chaque frame (0.5s, 0.1s, 60FPS, etc.) et cocher âHighlight Layout Shiftâ pour comprendre prĂ©cisĂ©ment lâorigine du Layout Shift.

TrĂšs pratique pour mettre en Ă©vidence le cĆur du problĂšme et Ă quel point est-ce que cela influence le CLS. Par exemple, sur le Layout Shift associĂ© au chargement des fonts, juste en dessous du screenshot, on voit que la valeur est de 0.001. Câest trĂšs faible et donc pas impactant pour le commun des mortels : inutile dâessayer de le corriger. Par contre, on va devoir se pencher sur la question du bandeau.
GĂ©nĂ©ralement je commence Ă me pencher sur du CLS si on est au delĂ de 0.01 mĂȘme si la recommendation de Google est de ne pas dĂ©passer 0.1. Ca ne veut pas dire quâil y aura forcĂ©ment quelque chose Ă corriger, simplement que cela vaut le coup de comprendre ce qui se passe pour savoir sâil y a un problĂšme plus large qui mĂ©rite dâĂȘtre adressĂ©.
Analyse le comportement lors de lâinteraction : DevTools Chrome, onglet Performance
WebPageTest est donc un trĂšs bon outil pour analyser le chargement de la page. Cependant, comme jâai pu lâĂ©voquer prĂ©cĂ©demment, le CLS ne concerne pas que le chargement initial : si vous scrollez tout en bas de votre page et que vous cherchez Ă cliquer dans votre footer mais quâun bandeau de Newsletter apparaĂźt juste au dessus au moment du clic, vous aurez aussi du Layout Shift.
Ainsi, vous pouvez vous retrouver avec Lighthouse, WebPageTest & co qui vous disent que votre CLS est Ă 0 et quand mĂȘme constater du CLS dans le CrUX. Pour cette raison, je vous conseille vivement de mettre en place des RUM afin de placer des sondes chez les vrais utilisateurices de votre site. GrĂące Ă cela, vous aurez une vue beaucoup plus fine (et cross-browser) que ce que peut proposer le CrUX qui vous dira si vous avez du CLS Ă rĂ©gler ou non.
Mais une fois que vous savez que vous avez des problĂšmes, comment savoir prĂ©cisĂ©ment dâoĂč ils viennentâŻ?
Personnellement, jâutilise les DevTools de Chrome, notamment dans lâonglet Performance :
- Charger votre page web
- Cliquer sur le petit icone âRecordâ en haut Ă gauche
- Naviguer dans la page (dans mon cas, je survol une des images de la grille)
- Recliquer sur lâicone afin dâarrĂȘter lâenregistrement

En dessous de la timeline, vous pouvez voir plusieurs lignes diffĂ©rentes : Frames, Animation, Timings, Layout Shifts, Main, etc. Selon la page et lâinteraction que vous avez rĂ©alisĂ©, le nombre de lignes affichĂ©es peut changer. Notamment, si vous nâavez pas du tout de CLS, la ligne Layout Shifts nâapparaĂźtra pas du tout.
Par contre, dans notre cas prĂ©sent, pendant la durĂ©e de lâanimation (~1000-1200ms et ~1800ms-2000ms) nous pouvons constater quâil y a bel et bien du Layout Shift. En cliquant sur les petites boĂźtes violettes, le navigateur va mettre en surbrillance lâĂ©lĂ©ment concernĂ© dans la page. De plus, en bougeant la souris sur la zone des screenshots, on va pouvoir faire le parallĂšle entre Layout Shift et ce qui sâest passĂ© Ă lâĂ©cran.
Avec tout ça, on sait donc ce qui a bougĂ© Ă lâĂ©cran et sur quel Ă©lĂ©ment du DOM il faut plus particuliĂšrement se concentrer.
Rendre le CLS visible pendant les développements
Les outils que je vous ai prĂ©sentĂ© ci-dessus sont pratiques quand vous ĂȘtes en phase de recherche ou dâaudit. Cependant, il peut ĂȘtre intĂ©ressant dâĂȘtre prĂ©venu pendant vos devs sans forcĂ©ment que cela vienne de vous.
Pour cela, lâextension Web Vitals vous permet Ă tout moment de savoir si la page que vous ĂȘtes en train de visiter respecte les critĂšres de performance ou non. TrĂšs utile donc pendant les dĂ©veloppements.
LâinconvĂ©nient que je lui trouve est quâelle ne reste pas active pendant toute la durĂ©e de la page mais uniquement sur le chargement initial. Le CLS qui surgit lors dâinteractions nâest donc pas pris en considĂ©ration.
Ainsi, je prĂ©fĂšre utiliser le WebPerf Snippet CLS qui fait partie de toute une liste de snippets trĂšs utile Ă lâanalyse de la performance de vos pages webs.
Correction du CLS
Avec les outils mentionnĂ©s ci-dessus, on a donc tout ce quâil faut pour comprendre dâoĂč vient le CLS. Câest Ă mon sens la partie la plus complexe. Il nous reste maintenant plus quâĂ corriger les Ă©lĂ©ments qui posent problĂšmes, un par un, petit Ă petit.
Pour cet article, jâai rassemblĂ© 3 cas (et demi) qui selon moi sont les plus frĂ©quents dans les dĂ©veloppements quotidiens. Vous tomberez certainement sur dâautres situations trĂšs spĂ©cifiques, mais en ayant bien compris ces cas, vous devriez avoir les bases nĂ©cessaires pour les adapter Ă votre propre besoin.
Réserver la bonne place pour des images/iframes/videos
Si on revient au diagnostic Lighthouse, un conseil mis en avant était :
Les Ă©lĂ©ments dâimage ne possĂšdent pas de
width
ni deheight
explicites
En effet, par dĂ©finition, le navigateur nâest pas capable de rĂ©server la bonne place dans la page sâil ne sait pas ce quâil doit afficher. Est-ce que lâimage tĂ©lĂ©chargĂ©e sera verticale ou horizontaleâŻ? Il ne le sait pas. Ainsi, par dĂ©faut, le navigateur allouera 0px Ă lâimage puis changera le layout une fois celle-ci tĂ©lĂ©chargĂ©e.
La mĂ©thode est donc de prĂ©venir le navigateur avant quâil ait tĂ©lĂ©chargĂ© lâimage. Pour ça il nous faut ajouter les attributs width
et height
:
<img
alt="Un chat gris bronze dans les doux rayons de soleil matinaux"
src="chat.png"
+ width="320"
+ height="240"
>
cf. Commit qui corrige la page de démo
Cette mĂ©thode marchera pour la plupart des contenus que lâon peut mettre au milieu dâune page : img
, iframe
, video
, etc.
Accéder à cette width
et height
nâest pas toujours Ă©vident selon la maniĂšre dont les images que vous manipulez sont gĂ©rĂ©es. Cela dit, si jamais vous ĂȘtes en train de concevoir un systĂšme dâupload dâimage dans votre backend, je vous conseille vivement de rĂ©cupĂ©rer les dimensions des images au moment de lâenregistrement de lâimage dans votre BDD. Elles ne vous seront peut-ĂȘtre pas utile immĂ©diatement, mais cela a toujours fini par payer sur les projets auxquels jâai contribuĂ©.
Que faire quand width
et height
ne suffisent pas�
Il reste des cas problĂ©matiques que je ne peux pas Ă©numĂ©rer tant ils sont spĂ©cifiques Ă votre situation. Cependant, gĂ©nĂ©ralement, la solution est de passer par CSS pour le rĂ©soudre. Notamment, lâenjeu va ĂȘtre soit dâessayer de jouer avec les propriĂ©tĂ©s width
et height
en utilisant des valeurs spĂ©cifiques (100%, 100vh, etc.), soit en dĂ©finissant des ratios. La solution moderne pour cela est dâĂ©crire :
img {
width: 100%;
height: auto;
aspect-ratio: 3 / 4;
}
Ainsi, peu importe les attributs et votre image, vous ĂȘtes sĂ»rs que lâimage prendra le plus de place possible mais que son ratio restera toujours 3:4. Câest dâailleurs ce que fait votre navigateur quand vous dĂ©finissez les attributs width
et height
dans le HTML : il va générer automatiquement une propriété aspect-ratio: width / height
.
A lâheure actuelle câest supportĂ© par tous les navigateurs evergreen, mais câest encore assez rĂ©cent pour Safari. Nous nâavons donc que 90% des navigateurs qui le supportent.
Cela peut toutefois parfaitement ĂȘtre utilisĂ© en tant que Progressive Enhancement, et a lâavantage dâĂȘtre utilisable sur nâimporte quel type de balise.
Réserver la bonne place pour du contenu asynchrone
Le second point Ă amĂ©liorer, que lâon a vu grĂące Ă notre audit WebPageTest, est le bandeau chargĂ© de maniĂšre asynchrone.
Dans la page dâexemple, jâai fait une balise p
qui apparaĂźt au bout de 3s avec un petit bout de JS. Câest un exemple faussĂ©, mais qui reprĂ©sente :
- une hellobar ou tout bandeau qui apparaĂźt aprĂšs le premier affichage de votre page, tout en haut du site
- ou un bandeau de pub
Dans cette situation, vous avez 2 types de solutions :
- vous faites en sorte que ce soit gĂ©rĂ© Ă la gĂ©nĂ©ration de la page plutĂŽt que de le faire en JS : ainsi, le premier affichage pour lâutilisateurice est le bon. Câest souvent la meilleure solution dâun point de vue utilisateurice. LâinconvĂ©nient est que ça peut aussi ralentir le premier affichage de la page et donc nâest pas tout le temps dans le champ des possibles.
- vous rĂ©servez suffisamment de place dans la page pour quâaprĂšs chargement, le nouvel Ă©lĂ©ment vienne remplacer une zone tampon. En UI, on parle souvent de Skeleton : prĂ©parer la page avec du contenu qui mimique lâĂ©tat final, mais qui est vide.
Dans mon cas, jâai dĂ©fini en dur la hauteur quâest censĂ© prendre le bandeau final, et jâai ajoutĂ© un lĂ©ger effet de scanner en CSS pour montrer quâil sâagit dâun Ă©tat temporaire.
Exemple de code CSS qui pour afficher le placeholder (cf. Commit)
.hellobar {
/* L'idée est d'indiquer la hauteur qu'est censé prendre la hellobar une fois terminée */
/* Utiliser min-height plutÎt que height vous permettra d'éviter de casser les choses si
finalement la hellobar finale est plus grande que prévue */
min-height: 8rem;
}
/* Si la taille est différente sur desktop que sur mobile, utilisez des @media */
@media (min-width: 1059px) {
.hellobar {
min-height: 3.5rem;
}
}
/* Partie qui concerne l'effet scanner */
.hellobar--placeholder {
position: relative;
}
.hellobar--placeholder::before {
content: '';
position: absolute;
inset: 0;
background: #eee;
}
.hellobar--placeholder::after {
content: '';
position: absolute;
inset: 0;
background: #eee;
background: linear-gradient(90deg, #eee, #fafafa, #eeeeee);
background-size: 200px 100%;
background-repeat: no-repeat;
animation: placeholderAnimation 2s infinite;
}
@keyframes placeholderAnimation {
0% {
background-position: -200px 0;
}
100% {
background-position: calc(200px + 100%) 0;
}
}
Câest quand mĂȘme vachement mieux nonâŻ?
Eviter de déplacer du contenu par animation
Enfin, dans la section oĂč je vous prĂ©sentais lâonglet Performance des Chrome DevTools, nous avons vu quâil y avait du Layout Shift sur lâanimation de la description dâune image au moment ou lâutilisateurice passe sa souris dessus.
đĄ DĂ©placer au survol du contenu qui doit ĂȘtre cliquable : câest globalement mauvaise idĂ©e. Vous naviguez sur la page, vous essayez de viser un lien et surprise, quand vous vous en approchez, il se dĂ©place. Essayez donc dâĂ©viter ce genre dâanimations. Et câest certainement la premiĂšre question que vous devriez vous poser quand vous adressez des sujets de CLS : est-ce quâil est plus pertinent de supprimer le comportement qui posait problĂšme ou dois-je trouver une maniĂšre de le corriger techniquementâŻ?
Dans le cadre de cet article, nous allons nous obstiner, notamment parce que la solution technique est intĂ©ressante et pourra vous servir. En effet, nous avons du Layout Shift parce que lâanimation se passe en changeant la propriĂ©tĂ© CSS padding-bottom
. Or, quand on change cette propriĂ©tĂ©, le navigateur est obligĂ© de refaire une phase de Layout : il doit recalculer les positions de vos Ă©lĂ©ments dans le DOM avant de sâassurer que rien ne dĂ©passe. Potentiellement cette Ă©tape est trĂšs coĂ»teuse et on veut absolument lâĂ©viter afin de garder des animations performantes sur mobile. Câest donc ce que nous allons faire.
Tout dâabord, avant de procĂ©der au changement, je vous invite Ă lire mon article sur les animations performantes oĂč jâexplique en dĂ©tail le fonctionnement du navigateur et donc ce quâil faut avoir en tĂȘte pour faire des animations performantes.
Ce quâil faut en retenir câest quâil faut Ă tout prix essayer de nâanimer que les propriĂ©tĂ©s CSS transform
et opacity
, parce que ce sont celles qui demanderont le moins de travail au navigateur (il nây aura pas de Layout).
Lâastuce ici est dâimaginer le contenu lĂ©gĂšrement diffĂ©remment. PlutĂŽt que dâagrandir le padding-bottom, je vais dĂšs le dĂ©part prĂ©voir le padding-bottom: 3rem
, et pendant lâanimation je vais prĂ©fĂ©rer animer la propriĂ©tĂ© transform: translateY(-3rem)
.

Et pour Ă©viter que le background dĂ©passe dans son Ă©tat initial, il ne nous reste plus quâĂ ajouter un overflow: hidden
. Grùce à cette méthode, je ne fait que déplacer ma balise plutÎt que de changer sa taille.
cf. Commit qui corrige la page de démo

transform
Si on relance un record dans les DevTools, on a bien la ligne âLayout Shiftsâ qui a disparu. đ
Bonus : le piĂšge de lâunitĂ© ch
Un dernier point que je mentionne au passage est lâimpact du chargement des fonts sur votre CLS. Je vous avais prĂ©sentĂ© il y a 3 semaines comment bien gĂ©rer le chargement de vos fonts, notamment en parlant de preload, de size-adjust
et dâascent-override
qui sont autant de choses à prendre compte pour améliorer la performance ressenti.
Cependant un point que je nâavais pas dĂ©taillĂ©, parce quâil ne sâagit pas de lâutilisation de la font elle mĂȘme, est lâutilisation de lâunitĂ© CSS ch
.
En effet, cette unité un peu particuliÚre permet de préciser une longueur à partir de la taille du caractÚre 0
dans votre police. Cette unitĂ© est gĂ©nĂ©ralement utilisĂ©e pour caractĂ©riser des largeur maximales dans vos textes. Notamment, en ergonomie on considĂšre que pour quâun paragraphe soit lisible il faut quâil soit entre 50 et 90 caractĂšres. Je prends une fourchette trĂšs grande parce que tout le monde nâest pas dâaccord et que ça dĂ©pend de pleins de facteurs (un mobileâŻ? un desktopâŻ? quel genre de contenuâŻ?). Mais dans lâidĂ©e on peut imaginer max-width: 70ch;
Or, ce que vous pouvez constater câest que 0
ou 0 nâont pas la mĂȘme largeur. A quelques pixels ou dixiĂšme de pixels prĂšs, mais cette diffĂ©rence existe. Et en multipliant cette diffĂ©rence par 70
, on se retrouve avec dâassez grosses diffĂ©rences entre la largeur maximale de votre paragraphe selon si câest la police de fallback (que ce soit FOUT ou FOIT) ou la police dĂ©finitive qui est affichĂ©e.
Ainsi pour Ă©viter au navigateur de recalculer la taille de vos colonnes et de vos textes, Ă©vitez dâutiliser lâunitĂ© ch
.
Récapitulatif
Nous voilĂ arrivĂ© au bout de cet article dĂ©diĂ© au CLS. La notion de Layout Shift est certainement moins Ă©vidente que dâautres mĂ©triques de performance. Mais avec les bons outils, câest aussi la plus dĂ©finitive Ă corriger. Câest pour cette raison quâun bon score devrait ĂȘtre < 0.1.
Les outils à disposition sont multiples mais je vous conseille de :
- Commencer par comprendre Ă quel point est-ce que vos vrais utilisateurices sont impactĂ©s par le CLSâŻ? Via des RUM ou a minima via le Chrome UX ReportâŻ;
- Analyser le chargement de la page problĂ©matique avec WebPageTest pour mieux visualiser lâorigine du problĂšmeproblĂšmeâŻ;
- RĂ©cupĂ©rer quelques pistes gĂ©nĂ©riques grĂące Ă un audit LighthouseâŻ;
- Utiliser lâonglet Performance des DevTools si WebPageTest et Lighthouse indiquent 0 de CLS mais que vos utilisateurices en ont quand mĂȘme.
Les quelques bonnes pratiques Ă garder en tĂȘte :
- Toujours rĂ©fĂ©rencer la taille dâun Ă©lement pour que le navigateur puisse anticiper leur affichage
- via des attributs
width
etheight
- ou en évitant des tailles dynamiques en CSS
- via des attributs
- Privilégier des Skeletons pour tout chargement asynchrone de contenu
- Faire attention aux animations afin de nâanimer que des propriĂ©tĂ©s performantes (e.g.
transform
etopacity
) - Si vous faites parti des rares Ă utiliser
ch
, arrĂȘtez đ (moi aussi jâen fais toujours le deuil)- mais veillez Ă bien configurer vos fonts
GrĂące Ă ces diffĂ©rentes techniques, nous nâavons plus de CLS sur la page de dĂ©mo (dans sa version corrigĂ©e).
Enfin, si vous cherchez plus dâinfos autour du CLS et que vous aimez les formats vidĂ©os, je vous conseille vivement la conf de RaphaĂ«l Goetter.
En tout cas, jâespĂšre que cet article vous aura Ă©tĂ© utile et que, grĂące Ă celui-ci, vous allez rendre vos sites plus utilisables. Si vous ĂȘtes face Ă un problĂšme Ă©pineux ou simplement que vous avez besoin de renfort sur ces sujets, nâhĂ©sitez pas Ă me contacter.
En ce qui me concerne, je vais continuer Ă Ă©crire rĂ©guliĂšrement des articles autour de la Web Performance. Il y en a au moins 2 dans les bacs, alors nâhĂ©sitez pas Ă me suivre sur les rĂ©seaux sociaux (Mastodon, LinkedIn ou Twitter) et Ă me dire ce que je devrais amĂ©liorer pour la suite.
đ¶âđ«ïž
Si vous voulez suivre mes publications, il paraĂźt que j'ai un feed RSS, Mastodon et un Twitter.
Si vous pensez à d'autres méthodes que vous voudriez que je mette en place (pigeon voyageur, avion en papier, etc.), n'hésitez pas à me les proposer :)