Imaginez visiter un site Web qui s'adapte parfaitement à vos préférences, en basculant sans effort entre les thèmes clairs, sombres et basés sur le système.
Cet article continue ma série sur la RSS avec React. Dans l'article de base, nous avons exploré des configurations prêtes pour la production, tandis que dans les techniques avancées, nous avons relevé des défis tels que les erreurs d'hydratation. Nous allons désormais aller plus loin en mettant en œuvre une prise en charge de thèmes robuste qui s'intègre parfaitement à SSR.
Le problème principal est le Flash initial de thème incorrect (FOIT).
Essentiellement, les thèmes consistent simplement à modifier les variables CSS. Dans la plupart des cas, vous travaillerez avec trois thèmes :
Par défaut, le serveur rendra le HTML avec le thème clair et l'enverra au navigateur. Si un utilisateur préfère le thème sombre, il verra un changement de thème visible lors du premier chargement de la page, ce qui perturbera l'expérience utilisateur.
Il existe deux manières principales de résoudre ce problème :