322 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			322 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # 🧪 Guide de Test Rapide - Système de Théming
 | |
| 
 | |
| ## Démarrage rapide
 | |
| 
 | |
| ```bash
 | |
| # 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
 | |
| 
 | |
| 1. Ouvrir l'application
 | |
| 2. Naviguer vers **Parameters** / **Paramètres**
 | |
| 3. 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
 | |
| 
 | |
| 1. **Chrome DevTools**
 | |
|    - F12 → Lighthouse → Accessibility
 | |
|    - Vérifier les contrastes automatiquement
 | |
| 
 | |
| 2. **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
 | |
| 
 | |
| 1. **Sélectionner un thème** (ex: Obsidian Dark)
 | |
| 2. **Recharger la page** (F5)
 | |
|    - ✅ Le thème doit être conservé
 | |
|    - ✅ Pas de flash de contenu (anti-FOUC)
 | |
| 
 | |
| 3. **Fermer et rouvrir le navigateur**
 | |
|    - ✅ Le thème doit être conservé
 | |
| 
 | |
| 4. **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é
 | |
| 
 | |
| 1. **Ouvrir la page Parameters**
 | |
| 2. **Changer le mode** (Light → Dark)
 | |
|    - ✅ Changement immédiat sur toute la page
 | |
|    - ✅ Pas de rechargement nécessaire
 | |
| 
 | |
| 3. **Changer le thème** (Obsidian → Nord)
 | |
|    - ✅ Changement immédiat sur toute la page
 | |
|    - ✅ Pas de rechargement nécessaire
 | |
| 
 | |
| 4. **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 :
 | |
| 
 | |
| ```javascript
 | |
| // 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
 | |
| 
 | |
| ```javascript
 | |
| // 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
 | |
| 
 | |
| ```javascript
 | |
| // 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 :
 | |
| 
 | |
| 1. **Capturer** :
 | |
|    - Screenshot du problème
 | |
|    - Thème actif (nom + mode)
 | |
|    - Navigateur + version
 | |
|    - Résolution d'écran
 | |
| 
 | |
| 2. **Reproduire** :
 | |
|    - Étapes pour reproduire
 | |
|    - Comportement attendu
 | |
|    - Comportement observé
 | |
| 
 | |
| 3. **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 ! 🎨**
 |