7.0 KiB
🧪 Guide de Test Rapide - Système de Théming
Démarrage rapide
# 1. Installer les dépendances (si nécessaire)
npm install
# 2. Lancer l'application en mode dev
npm run dev
# 3. Ouvrir dans le navigateur
# http://localhost:4200
Test manuel des thèmes
Accéder aux paramètres
- Ouvrir l'application
- Naviguer vers Parameters / Paramètres
- Section Apparence / Appearance
Tester les modes
Mode System :
- Sélectionner "System"
- Changer le mode de votre OS (light/dark)
- L'application doit suivre automatiquement
Mode Light :
- Sélectionner "Light"
- Toute l'interface doit être en mode clair
Mode Dark :
- Sélectionner "Dark"
- Toute l'interface doit être en mode sombre
Tester les thèmes
Pour chaque thème, vérifier en mode Light ET Dark (si applicable) :
1. Light (thème par défaut clair)
- Mode : Light uniquement
- Palette : Blanc, gris, bleus
2. Dark (thème par défaut sombre)
- Mode : Dark uniquement
- Palette : Bleu-gris foncé, texte clair
3. Obsidian
- Mode Light : Beige chaud, texte anthracite
- Mode Dark : Gris très foncé, accents beiges
4. Nord
- Mode Light : Blanc neigeux, palette nordique pastel
- Mode Dark : Bleu-gris arctique, palette nordique
5. Notion
- Mode Light : Blanc pur, minimaliste
- Mode Dark : Noir profond, contraste élevé
6. GitHub
- Mode Light : Style GitHub classique
- Mode Dark : GitHub Dimmed Dark
7. Discord
- Mode Light : Gris très clair, violet Discord
- Mode Dark : Gris Discord, violet Discord
8. Monokai
- Mode Light : Crème, accents atténués
- Mode Dark : Vert-gris foncé, palette Monokai
Checklist de vérification
Pour chaque combinaison thème/mode, vérifier :
🏠 Page d'accueil / Liste
-
Sidebar gauche
- Fond cohérent
- Items hover visibles
- Item actif distinct
- Badges de compteurs lisibles
- Séparateurs visibles
-
Topbar
- Fond cohérent
- Barre de recherche lisible
- Placeholder visible
- Focus ring visible
- Icônes visibles
-
Liste des notes
- Items lisibles
- Hover distinct
- Selected visible
- Path muted lisible
- Séparateurs visibles
📄 Page de détail
-
Contenu markdown
- Titres (H1-H6) lisibles
- Paragraphes lisibles
- Liens visibles et hover
- Listes (ul, ol) lisibles
- Blockquotes distincts
- Code inline lisible
- Code blocks (fences) lisibles
- Tables lisibles (headers, zebra)
- HR visibles
-
Panneaux latéraux
- TOC lisible
- Propriétés lisibles
- Tags lisibles et hover
✏️ Mode édition
-
Éditeur
- Fond CodeMirror cohérent
- Texte lisible
- Sélection visible
- Gutters lisibles
- Cursor visible
- Coloration syntaxique cohérente
-
Toolbar
- Boutons lisibles
- Hover visible
- Active visible
🎨 Composants UI
-
Modales
- Fond cohérent
- Overlay visible
- Bordures visibles
- Boutons lisibles
-
Menus contextuels
- Fond cohérent
- Items hover visibles
- Séparateurs visibles
-
Toasts
- Fond cohérent
- Texte lisible
- Bordure visible
- Barre de progression visible
-
Chips/Tags
- Fond cohérent
- Texte lisible
- Hover visible
- Selected distinct
-
Inputs
- Fond cohérent
- Texte lisible
- Placeholder visible
- Focus ring visible
- Border visible
-
Buttons
- Fond cohérent
- Texte lisible
- Hover visible
- Active visible
- Disabled visible
📱 Mobile
-
Bottom navigation
- Fond cohérent
- Icônes visibles
- Active visible
-
Drawers/Sheets
- Fond cohérent
- Overlay visible
🎯 Graphes (si applicable)
- Graph view
- Nœuds visibles
- Liens visibles
- Labels lisibles
- Légende lisible
Tests de contraste
Outils recommandés
-
Chrome DevTools
- F12 → Lighthouse → Accessibility
- Vérifier les contrastes automatiquement
-
WebAIM Contrast Checker
- https://webaim.org/resources/contrastchecker/
- Tester manuellement les combinaisons critiques
Combinaisons à tester
Pour chaque thème :
- Texte principal / Fond principal (ratio ≥ 4.5:1)
- Texte muted / Fond principal (ratio ≥ 4.5:1)
- Liens / Fond principal (ratio ≥ 4.5:1)
- Boutons / Fond bouton (ratio ≥ 4.5:1)
Tests de persistance
-
Sélectionner un thème (ex: Obsidian Dark)
-
Recharger la page (F5)
- ✅ Le thème doit être conservé
- ✅ Pas de flash de contenu (anti-FOUC)
-
Fermer et rouvrir le navigateur
- ✅ Le thème doit être conservé
-
Tester en navigation privée
- ✅ Thème par défaut (Light)
- ✅ Changement de thème fonctionne
- ⚠️ Non persisté après fermeture (comportement attendu)
Tests de réactivité
-
Ouvrir la page Parameters
-
Changer le mode (Light → Dark)
- ✅ Changement immédiat sur toute la page
- ✅ Pas de rechargement nécessaire
-
Changer le thème (Obsidian → Nord)
- ✅ Changement immédiat sur toute la page
- ✅ Pas de rechargement nécessaire
-
Ouvrir plusieurs onglets
- ✅ Changement dans un onglet se reflète dans les autres (après focus)
Debugging
Vérifier le thème actif
Ouvrir la console (F12) et taper :
// Vérifier la classe dark
document.documentElement.classList.contains('dark')
// Vérifier le thème
document.documentElement.getAttribute('data-theme')
// Vérifier les préférences stockées
JSON.parse(localStorage.getItem('obsiviewer.preferences.v1'))
Forcer un thème manuellement
// Forcer dark mode
document.documentElement.classList.add('dark')
// Forcer un thème
document.documentElement.setAttribute('data-theme', 'nord')
// Recharger pour restaurer les préférences
location.reload()
Inspecter les tokens CSS
// Obtenir la valeur d'un token
getComputedStyle(document.documentElement).getPropertyValue('--bg-main')
// Lister tous les tokens
Array.from(document.styleSheets)
.flatMap(sheet => Array.from(sheet.cssRules))
.filter(rule => rule.style?.getPropertyValue('--bg'))
Rapport de bugs
Si vous trouvez un problème :
-
Capturer :
- Screenshot du problème
- Thème actif (nom + mode)
- Navigateur + version
- Résolution d'écran
-
Reproduire :
- Étapes pour reproduire
- Comportement attendu
- Comportement observé
-
Vérifier :
- Console (erreurs JS ?)
- Network (ressources manquantes ?)
- Computed styles (tokens appliqués ?)
Checklist finale
Avant de valider le système de théming :
- Les 14 combinaisons sont testées
- Tous les composants UI sont cohérents
- Les contrastes respectent WCAG AA
- La persistance fonctionne
- Pas de flash au chargement (anti-FOUC)
- Les transitions sont fluides
- Le mode System fonctionne
- Mobile est testé
- Aucune couleur hardcodée visible
- Documentation à jour
Bon test ! 🎨