Changement automatique
Calcule en temps réel le lever et le coucher du soleil et applique le thème adapté.
VToggleTheme
Notre composant publié associe horaires solaires, préférence système et sélection manuelle dans une solution flexible pour les applications Vuetify.
Paquet npm publié
Un composant Vue pour un changement de thème intelligent dans les applications Vuetify. Il change automatiquement selon le lever et le coucher du soleil, respecte facultativement la préférence système ou permet une sélection manuelle.
Logique de décision
Avec usePreference, le composant suit le réglage prefers-color-scheme.
Sinon, il change automatiquement à partir d’une position fixe et de l’heure locale.
Un changement manuel est prioritaire et arrête le contrôle automatique.
Fonctionnalités
VToggleTheme associe le contrôle automatique des thèmes au choix conscient de l’utilisateur et s’intègre aux thèmes Vuetify existants.
Calcule en temps réel le lever et le coucher du soleil et applique le thème adapté.
Les utilisateurs peuvent changer à tout moment et désactiver ainsi l’automatisme.
Prend en charge prefers-color-scheme pour l’affichage choisi dans le système d’exploitation.
Utilise le système de thèmes Vuetify et accepte les propriétés de v-btn pour la personnalisation.
Utilise des coordonnées configurables sans demander par défaut la géolocalisation du navigateur.
Conçu pour les environnements client et serveur ainsi que pour Nuxt 3.
Installation et utilisation
Le paquet nécessite Vue 3.5.13 ou plus récent et Vuetify 3.7.5 ou plus récent. sunrise-sunset-js est installé automatiquement.
npm install v-toggle-theme @mdi/js
npm install vue@^3.5.13 vuetify@^3.7.5<script setup>
import VToggleTheme from 'v-toggle-theme'
</script>
<template>
<v-toggle-theme
color="primary"
:tooltip="true"
:use-preference="true"
/>
</template>La position réelle de l’utilisateur n’est pas demandée par défaut. Le calcul utilise la fallbackLocation définie par le développeur ; sans indication, les coordonnées de Zurich sont utilisées.
Configuration
Les noms de thèmes, l’automatisme, la position de référence, les infobulles et la variante d’icônes s’adaptent au projet via les props.
themeNameLightNom du thème Vuetify clair. Par défaut : light.
themeNameDarkNom du thème Vuetify sombre. Par défaut : dark.
fallbackLocationCoordonnées pour les horaires solaires. Par défaut : Zurich, 47.36667 / 8.55.
tooltipActive les infobulles. Par défaut : false.
tipDarkTexte de l’infobulle du mode sombre. Par défaut : Dark mode.
tipLightTexte de l’infobulle du mode clair. Par défaut : Light mode.
automaticActive le changement automatique selon l’heure. Par défaut : true.
usePreferenceRespecte la préférence système via prefers-color-scheme. Par défaut : false.
mdiJsIconsUtilise les icônes SVG du paquet JavaScript MDI au lieu de la police MDI. Par défaut : false.
Le changement manuel modifie le thème et arrête le contrôle automatique.