54 lines
2.7 KiB
JavaScript
54 lines
2.7 KiB
JavaScript
/**
|
|
* colorThemes.js — liste partagée des 10 thèmes de couleur d'interface
|
|
* (Admin > Général, cf. project_theme_interface.md), et de leur association
|
|
* avec la palette de graphiques correspondante (Settings > Apparence, cf.
|
|
* chartPalettes.js).
|
|
*
|
|
* Utilisé par GeneralSection.jsx (thème par défaut de l'application,
|
|
* Admin > Général) ET AppearanceSection.jsx (thème personnel de
|
|
* l'utilisateur, Settings > Apparence, 06/09/26) — auparavant dupliqué
|
|
* uniquement côté admin ; extrait ici pour que les deux sélecteurs restent
|
|
* strictement synchronisés (mêmes valeurs, mêmes libellés, même swatch).
|
|
*/
|
|
|
|
// 05/09/26 (suite, même jour) : les couleurs "Intérêts" des palettes
|
|
// indigo_teal/nuit/frais/pastel ont été retravaillées (trop proches du bleu
|
|
// classique et peu distinguables entre elles) pour une meilleure diversité
|
|
// sur tout le cercle chromatique — cf. utils/chartPalettes.js et
|
|
// project_theme_interface.md. Le swatch de chaque thème reprend exactement
|
|
// la couleur --primary (mode clair) de ce thème dans styles.css.
|
|
export const COLOR_THEMES = [
|
|
{ value: 'classique', label: 'Classique (défaut)', swatch: '#1e40af' },
|
|
{ value: 'indigo_teal', label: 'Indigo & Teal', swatch: '#20976a' },
|
|
{ value: 'frais', label: 'Frais', swatch: '#009cc1' },
|
|
{ value: 'nuit', label: 'Nuit', swatch: '#4839ac' },
|
|
{ value: 'nature', label: 'Nature', swatch: '#43a047' },
|
|
{ value: 'coucher_de_soleil', label: 'Coucher de soleil', swatch: '#ffa722' },
|
|
{ value: 'violet', label: 'Violet', swatch: '#8d57c2' },
|
|
{ value: 'contraste', label: 'Contraste', swatch: '#e53935' },
|
|
{ value: 'moderne', label: 'Moderne', swatch: '#b027b0' },
|
|
{ value: 'pastel', label: 'Pastel', swatch: '#f53d97' },
|
|
];
|
|
|
|
// Nom de la palette (Settings > Apparence, cf. utils/chartPalettes.js)
|
|
// correspondant à chaque thème : sert à adapter automatiquement les
|
|
// couleurs de graphiques d'un compte quand ce thème est choisi (admin par
|
|
// défaut, ou personnel — cf. reverse-coupling dans GeneralSection.jsx et
|
|
// AppearanceSection.jsx).
|
|
export const THEME_TO_PALETTE_NAME = {
|
|
classique: 'Classique',
|
|
indigo_teal: 'Indigo & Teal',
|
|
nuit: 'Nuit',
|
|
nature: 'Nature',
|
|
coucher_de_soleil: 'Coucher de soleil',
|
|
violet: 'Violet',
|
|
frais: 'Frais',
|
|
contraste: 'Contraste',
|
|
pastel: 'Pastel',
|
|
moderne: 'Moderne',
|
|
};
|
|
|
|
export function colorThemeSwatch(themeValue) {
|
|
return COLOR_THEMES.find(t => t.value === themeValue)?.swatch || COLOR_THEMES[0].swatch;
|
|
}
|