# Système de Thèmes ## Vue d'ensemble L'application Project Notes dispose d'un système de thèmes complet permettant aux utilisateurs de personnaliser l'apparence de l'interface. Six thèmes sombres professionnels sont disponibles par défaut. ## Thèmes Disponibles ### 🌙 Material Dark (défaut) Thème professionnel inspiré de Material Design avec des accents bleus. - Couleurs principales : Gris foncé, bleu ciel, cyan - Parfait pour un usage quotidien professionnel ### 🎨 Monokai Dark Palette Monokai classique populaire auprès des développeurs. - Couleurs principales : Vert kaki, cyan cyan, vert lime - Idéal pour ceux qui préfèrent les palettes de code ### 🧛 Dracula Thème sombre élégant avec des accents violets et cyan. - Couleurs principales : Violet foncé, cyan, violet pastel - Populaire dans la communauté des développeurs ### ⚡ One Dark Thème populaire d'Atom avec des couleurs douces. - Couleurs principales : Gris-bleu, bleu ciel, violet - Confortable pour de longues sessions ### ☀️ Solarized Dark Palette scientifiquement optimisée pour réduire la fatigue oculaire. - Couleurs principales : Bleu marine, bleu océan, cyan - Recommandé pour réduire la fatigue visuelle ### ❄️ Nord Palette arctique apaisante avec des tons bleus froids. - Couleurs principales : Gris nordique, bleu glacier, bleu ciel - Apaisant et minimaliste ### 🌸 Catppuccin Thème pastel doux et chaleureux inspiré de Catppuccin Mocha. - Couleurs principales : Bleu pastel, rose pastel, texte clair - Moderne et élégant avec des accents pastels ### 🌲 Everforest Palette naturelle inspirée de la forêt avec des tons verts et beiges. - Couleurs principales : Vert forêt, bleu aqua, beige chaud - Reposant pour les yeux avec des couleurs naturelles ## Utilisation ### Changer de thème 1. Cliquez sur le bouton **Paramètres** (⚙️) en bas de la sidebar 2. Une modale s'ouvre avec l'aperçu de tous les thèmes disponibles 3. Cliquez sur la carte du thème souhaité 4. Le thème s'applique instantanément 5. Votre choix est automatiquement sauvegardé ### Persistance Le thème sélectionné est sauvegardé dans le `localStorage` du navigateur, ce qui signifie que votre préférence sera conservée : - Entre les sessions - Après la fermeture du navigateur - Lors du rechargement de la page ## Architecture Technique ### Fichiers - **`/static/themes.css`** : Définitions des variables CSS pour tous les thèmes - **`/frontend/src/theme-manager.js`** : Gestionnaire JavaScript des thèmes - **`/templates/index.html`** : Modale de sélection de thèmes ### Variables CSS Chaque thème définit un ensemble de variables CSS : ```css [data-theme="theme-name"] { --bg-primary: #...; --bg-secondary: #...; --text-primary: #...; --accent-primary: #...; /* etc. */ } ``` ### API JavaScript ```javascript // Accès au gestionnaire de thèmes window.themeManager // Méthodes disponibles themeManager.applyTheme('theme-id') // Appliquer un thème themeManager.getCurrentTheme() // Obtenir le thème actuel themeManager.getThemes() // Liste des thèmes disponibles ``` ## Ajouter un Nouveau Thème ### 1. Définir les variables CSS dans `themes.css` ```css [data-theme="mon-theme"] { --bg-primary: #...; --bg-secondary: #...; --bg-tertiary: #...; --bg-elevated: #...; --border-primary: #...; --border-secondary: #...; --text-primary: #...; --text-secondary: #...; --text-muted: #...; --accent-primary: #...; --accent-primary-hover: #...; --accent-secondary: #...; --accent-secondary-hover: #...; --success: #...; --warning: #...; --error: #...; } ``` ### 2. Ajouter le thème dans `theme-manager.js` ```javascript { id: 'mon-theme', name: 'Mon Thème', icon: '🎨', description: 'Description de mon thème' } ``` ### 3. Créer la carte de prévisualisation dans `index.html` ```html
Description de mon thème