De retour sur la terre ferme. Passez votre blog du jour à la nuit, aucune île nécessaire !
Maintenant que vous savez comment créer des îles Astro pour des éléments interactifs, n’oubliez pas que vous pouvez aller assez loin avec seulement du JavaScript et du CSS !
Construisons une icône cliquable pour permettre à vos utilisateurs de basculer entre le mode clair ou sombre en utilisant une autre balise <script>
pour l’interactivité… sans envoyer de JavaScript de framework au navigateur.
Préparez-vous à…
- Créez un interrupteur de thème interactif avec seulement JavaScript et CSS
- Envoyez le moins de JavaScript possible au navigateur !
Ajoutez et stylisez une icône de bascule de thème
Titre de la section Ajoutez et stylisez une icône de bascule de thème-
Créez un nouveau fichier à
src/components/ThemeIcon.astro
et collez le code suivant dedans : -
Ajoutez l’icône à
Header.astro
de manière à ce qu’elle soit affichée sur toutes les pages. N’oubliez pas d’importer le composant. -
Visitez votre aperçu dans le navigateur à l’adresse
http://localhost:4321
pour voir l’icône désormais sur toutes vos pages. Vous pouvez essayer de cliquer dessus, mais vous n’avez pas encore écrit de script pour la rendre interactive.
Ajoutez des styles CSS pour un thème sombre
Titre de la section Ajoutez des styles CSS pour un thème sombreChoisissez quelques couleurs alternatives à utiliser en mode sombre.
-
Dans
global.css
, définissez quelques styles sombres. Vous pouvez choisir les vôtres ou copier-coller :
Ajoutez de l’interactivité côté client
Titre de la section Ajoutez de l’interactivité côté clientPour ajouter de l’interactivité à un composant Astro, vous pouvez utiliser une balise <script>
. Ce script peut vérifier et définir le thème actuel à partir de localStorage
et basculer le thème lorsque l’icône est cliquée.
-
Ajoutez la balise
<script>
suivante danssrc/components/ThemeIcon.astro
après votre balise<style>
: -
Vérifiez votre aperçu dans le navigateur à
http://localhost:4321
et cliquez sur l’icône du thème. Vérifiez que vous pouvez basculer entre les modes clair et sombre.
Testez vos connaissances
Titre de la section Testez vos connaissancesChoisissez si chacune des affirmations suivantes décrit des balises <script>
Astro, des composants de framework UI, ou les deux.
-
Ils vous permettent d’inclure des éléments d’interface utilisateur interactifs sur votre site web.
-
Ils créeront des éléments statiques sur votre site sauf si vous incluez un
client:
pour envoyer leur JavaScript au client et le faire s’exécuter dans le navigateur. -
Ils vous permettent de “tester” un nouveau framework sans vous obliger à démarrer un tout nouveau projet utilisant cette pile technologique.
-
Ils vous permettent de réutiliser du code que vous avez écrit dans d’autres frameworks et vous pouvez souvent les intégrer directement dans votre site.
-
Ils vous permettent d’ajouter de l’interactivité sans avoir besoin de connaître ou d’apprendre d’autres frameworks JavaScript.