mirror of
https://framagit.org/JonathanMM/sutom.git
synced 2024-06-15 20:25:20 +02:00
59 lines
2.8 KiB
TypeScript
59 lines
2.8 KiB
TypeScript
import Configuration from "./entites/configuration";
|
|
import { Theme } from "./entites/theme";
|
|
|
|
export default class ThemeManager {
|
|
public constructor(config: Configuration) {
|
|
this.changerCouleur(config.theme ?? Configuration.Default.theme);
|
|
}
|
|
|
|
public changerCouleur(theme: Theme): void {
|
|
const root = document.documentElement;
|
|
switch (theme) {
|
|
case Theme.Clair:
|
|
case Theme.ClairAccessible:
|
|
root.style.setProperty("--couleur-fond-rgb", "245, 245, 220");
|
|
root.style.setProperty("--couleur-police", "#000000");
|
|
root.style.setProperty("--couleur-bordure", "rgb(55, 55, 55)");
|
|
root.style.setProperty("--couleur-icone", "rgb(55, 55, 55)");
|
|
root.style.setProperty("--couleur-lettre-speciale", "rgb(210, 210, 210)");
|
|
root.style.setProperty("--couleur-lettre-survole", "rgb(140, 140, 140)");
|
|
root.style.setProperty("--couleur-lettre-speciale-survole", "rgb(140, 140, 140)");
|
|
break;
|
|
default:
|
|
root.style.setProperty("--couleur-fond-rgb", "43, 43, 43");
|
|
root.style.setProperty("--couleur-police", "#ffffff");
|
|
root.style.setProperty("--couleur-bordure", "rgb(200, 200, 200)");
|
|
root.style.setProperty("--couleur-icone", "rgb(200, 200, 200)");
|
|
root.style.setProperty("--couleur-lettre-speciale", "rgb(75, 75, 75)");
|
|
root.style.setProperty("--couleur-lettre-survole", "rgba(75, 75, 75, 0.65)");
|
|
root.style.setProperty("--couleur-lettre-speciale-survole", "rgba(75, 75, 75, 0.65)");
|
|
}
|
|
switch (theme) {
|
|
case Theme.ClairAccessible:
|
|
case Theme.SombreAccessible:
|
|
root.style.setProperty("--couleur-bien-place", "rgb(9, 104, 0)");
|
|
root.style.setProperty("--couleur-mal-place", "rgb(219, 124, 0)");
|
|
break;
|
|
default:
|
|
root.style.setProperty("--couleur-bien-place", "rgb(231, 0, 42)");
|
|
root.style.setProperty("--couleur-mal-place", "rgb(255, 189, 0)");
|
|
}
|
|
switch (theme) {
|
|
case Theme.ClairAccessible:
|
|
root.style.setProperty("--couleur-lettre-survole-bien-place", "rgb(5, 61, 0)");
|
|
root.style.setProperty("--couleur-lettre-survole-mal-place", "rgb(128, 72, 0)");
|
|
break;
|
|
case Theme.SombreAccessible:
|
|
root.style.setProperty("--couleur-lettre-survole-bien-place", "rgba(9, 104, 0, 0.65)");
|
|
root.style.setProperty("--couleur-lettre-survole-mal-place", "rgba(219, 124, 0, 0.65)");
|
|
break;
|
|
case Theme.Clair:
|
|
root.style.setProperty("--couleur-lettre-survole-bien-place", "rgb(153, 0, 28)");
|
|
root.style.setProperty("--couleur-lettre-survole-mal-place", "rgb(153, 112, 0)");
|
|
default:
|
|
root.style.setProperty("--couleur-lettre-survole-bien-place", "rgba(231, 0, 42, 0.65)");
|
|
root.style.setProperty("--couleur-lettre-survole-mal-place", "rgba(255, 189, 0, 0.65)");
|
|
}
|
|
}
|
|
}
|