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 ! 🎨**
 |