Moins de JavaScript : l'API Popover
Le menu mobile de Starlight — le thème de documentation officiel d'Astro — fonctionne désormais même si le JavaScript échoue ou est désactivé. Il s'appuie sur l'API Popover, une primitive du navigateur, au lieu d'un composant client.
Ce n'est pas un cas d'école : les raisons pour lesquelles le JavaScript peut ne pas s'exécuter sont plus nombreuses qu'on ne le croit — script coupé en cours de chargement, extension, proxy d'entreprise, erreur en amont. Sur un site de documentation, un menu mort transforme un site en page isolée.
Plus de JavaScript : la fin du TypeScript distribué
Un projet Astro peut publier des fichiers TypeScript sur npm : ils fonctionnent tels quels chez l'utilisateur. C'est pratique pour prototyper, et c'est ainsi que Starlight était publié depuis le début.
Le coût se paie chez le consommateur. tsc vérifie tout fichier .ts importé,
même dans node_modules, et il le fait avec votre configuration, pas celle
du thème. Sur un projet de la taille de Starlight, l'addition monte, et les
performances de types dans l'éditeur en souffrent.
La 0.42 compile donc ses sources et publie des définitions de types. Le type-check des projets utilisateurs s'en trouve plus rapide — sans rien changer au poids livré au lecteur : Starlight reste à 3 à 13× moins de JavaScript que les outils comparables, selon les relevés HTTP Archive.
Performances et accessibilité
- Le traitement des données de barre latérale est jusqu'à 1 400× plus rapide, ce qui se remarque sur les arborescences profondes ou volumineuses.
- La dernière version de Sätteri a permis d'optimiser plusieurs composants et greffons Markdown, et de réduire le nombre de dépendances du thème.
- Depuis la 0.41.3, le menu mobile piège le focus tant qu'il est ouvert : plus moyen de tabuler dans la page cachée derrière, conformément au critère WCAG 2.4.11 Focus Not Obscured.
À retenir
- Mise à jour :
npx @astrojs/upgrade, qui aligne Starlight, Astro et les autres intégrations en une fois. - Les versions
0.xrestent des mineures qui peuvent casser — le CHANGELOG du dépôt porte les instructions de migration. - Le vrai enseignement dépasse Starlight : quand une primitive du navigateur couvre le besoin, elle est plus robuste que le composant qui la réimplémente.
Source : Astro