diff --git a/frontend/admin.html b/frontend/admin.html index d8f5ea8..6b3a55c 100644 --- a/frontend/admin.html +++ b/frontend/admin.html @@ -19,8 +19,8 @@ var mode = localStorage.getItem("obsigate-theme-mode") || "dark"; root.setAttribute("data-theme", mode); var light = mode === "light" || mode === "sepia"; - root.style.setProperty("--bg-primary", light ? "#ffffff" : "#0f1117"); - root.style.setProperty("--text-primary", light ? "#1a1a1a" : "#e6edf3"); + root.style.setProperty("--bg-primary", light ? "#fbfbfa" : "#17181a"); + root.style.setProperty("--text-primary", light ? "#242624" : "#eceeeb"); } catch (e) { root.setAttribute("data-theme", "dark"); } })(); @@ -41,8 +41,8 @@ min-height: 100vh; overflow: auto; /* override SPA style.css: body{overflow:hidden} */ height: auto; /* override SPA style.css: body{height:100vh} */ - background: var(--bg-primary, #0f1117); - color: var(--text-primary, #e6edf3); + background: var(--bg-primary, #17181a); + color: var(--text-primary, #eceeeb); font-family: "Segoe UI", system-ui, -apple-system, sans-serif; } diff --git a/frontend/index.html b/frontend/index.html index ad2a463..a92a495 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -10,7 +10,7 @@ name="description" content="Porte d'entrée web pour vos vaults Obsidian - Accédez, naviguez et recherchez dans toutes vos notes" /> - + ObsiGate, identique en structure pour + // dark et light ; seules les valeurs changent (sauf accent/ok/warn/err). + // Fidèle (valeur Spark directe) : + // fond -> --bg-primary, --surface2 ; surface -> --surface ; + // chip -> --bg-secondary, --tag-bg ; chip-survol -> --bg-hover ; + // bord -> --border ; chip-bord -> --border-md, --scrollbar, --resize-handle ; + // texte -> --text-primary, --text ; doux -> --text-secondary, --text-2 ; + // faint -> --text-muted, --text-3 ; champ -> --search-bg ; + // code -> --code-bg ; accent -> --accent, --accent-card, --purple, --ai ; + // lien -> --accent-text (variante lisible de l'accent sur fond teinté) ; + // ok -> --accent-green, --success, --green ; + // danger -> --danger ; danger-fond -> --danger-bg ; + // pastilles ok (fond) -> --success-bg, --green-bg ; + // pastilles ok (texte) -> --ok ; ambre -> --warn ; rouge -> --err. + // Approximations documentées (ObsiGate a plus de variables que Spark, + // ce ne sont PAS des valeurs Spark) : + // --bg-sidebar <- fond (Spark n'a pas de token sidebar dédié) ; + // --accent-bg <- agent (surface teintée de Spark, pas de teinte lavande) ; + // --surface3 <- agent ; --purple-bg <- appro-fond (fond teinté le plus + // proche, la palette Spark n'a pas de teinte lavande) ; + // --overlay-bg <- convention ObsiGate (rgba noir 0.3 clair / 0.5 sombre, + // aucun token voile dans la palette Spark). + // Non reportés (aucune variable ObsiGate correspondante dans les 39) : + // bulle utilisateur/envoi #2f6fed, titres approbation #9a6a1c / #e8bc7a. + // Une seule entrée 'spark' : dark et light sont ses deux modes, jamais + // deux thèmes séparés. Modes high-contrast/sepia générés comme pour les + // autres thèmes (à partir de dark/light). + 'spark': { + name: 'Spark', desc: 'Palette de la console Spark', + modes: { + dark: { + '--bg-primary': '#17181a', '--bg-secondary': '#26272b', '--bg-sidebar': '#17181a', + '--bg-hover': '#2e3036', '--border': '#33353a', '--text-primary': '#eceeeb', + '--text-secondary': '#a6aba0', '--text-muted': '#83887e', '--accent': '#7c5cd6', + '--accent-green': '#2ea36b', '--tag-bg': '#26272b', '--tag-text': '#7c5cd6', + '--code-bg': '#2c2e33', '--search-bg': '#1f2023', '--scrollbar': '#3a3c41', + '--resize-handle': '#3a3c41', '--overlay-bg': 'rgba(0,0,0,0.5)', '--danger': '#e8a08d', + '--danger-bg': '#40241f', '--success': '#2ea36b', '--success-bg': '#173d29', + '--accent-card': '#7c5cd6', '--accent-bg': '#26272b', '--accent-text': '#b39df5', + '--green': '#2ea36b', '--green-bg': '#173d29', '--purple': '#7c5cd6', + '--purple-bg': '#2a2118', '--surface': '#1f2023', '--surface2': '#17181a', + '--surface3': '#26272b', '--border-md': '#3a3c41', '--text': '#eceeeb', + '--text-2': '#a6aba0', '--text-3': '#83887e', '--ok': '#7fd6a8', + '--warn': '#e8a13c', '--ai': '#7c5cd6', '--err': '#cf4b32' + }, + light: { + '--bg-primary': '#fbfbfa', '--bg-secondary': '#f4f5f1', '--bg-sidebar': '#fbfbfa', + '--bg-hover': '#e9ebe4', '--border': '#e4e5e0', '--text-primary': '#242624', + '--text-secondary': '#6c7268', '--text-muted': '#8a8f84', '--accent': '#7c5cd6', + '--accent-green': '#2ea36b', '--tag-bg': '#f4f5f1', '--tag-text': '#7c5cd6', + '--code-bg': '#e8eae3', '--search-bg': '#ffffff', '--scrollbar': '#d6d8d1', + '--resize-handle': '#d6d8d1', '--overlay-bg': 'rgba(0,0,0,0.3)', '--danger': '#a03a28', + '--danger-bg': '#f6e3de', '--success': '#2ea36b', '--success-bg': '#dff2e7', + '--accent-card': '#7c5cd6', '--accent-bg': '#eef0ea', '--accent-text': '#5b3df0', + '--green': '#2ea36b', '--green-bg': '#dff2e7', '--purple': '#7c5cd6', + '--purple-bg': '#fdf6ec', '--surface': '#ffffff', '--surface2': '#fbfbfa', + '--surface3': '#eef0ea', '--border-md': '#d6d8d1', '--text': '#242624', + '--text-2': '#6c7268', '--text-3': '#8a8f84', '--ok': '#1d7a4c', + '--warn': '#e8a13c', '--ai': '#7c5cd6', '--err': '#cf4b32' + } + } + }, + 'github': { name: 'GitHub', desc: 'Contraste doux', modes: { @@ -523,7 +588,7 @@ var THEMES = { }; // ── Theme Engine ───────────────────────────────────────────────────── -var _currentTheme = 'defaut-obsigate'; +var _currentTheme = 'spark'; var _currentMode = 'dark'; var AVAILABLE_MODES = ['dark', 'light', 'high-contrast', 'sepia']; diff --git a/frontend/style.css b/frontend/style.css index b23887f..63fb621 100644 --- a/frontend/style.css +++ b/frontend/style.css @@ -11,58 +11,58 @@ /* ── Editor save dot state colors ── */ :root { - --ok: #34d399; - --warn: #fbbf24; - --ai: #8b5cf6; - --err: #f87171; + --ok: #7fd6a8; + --warn: #e8a13c; + --ai: #7c5cd6; + --err: #cf4b32; } /* ===== THEME — DARK (fallback default, no data-theme) ===== */ :root { - --bg-primary: #0f1117; - --bg-secondary: #161b22; - --bg-sidebar: #13161d; - --bg-hover: #1f2430; - --border: #21262d; - --text-primary: #e6edf3; - --text-secondary: #8b949e; - --text-muted: #484f58; - --accent: #58a6ff; - --accent-green: #3fb950; - --tag-bg: #1f2a3a; - --tag-text: #79c0ff; - --code-bg: #161b22; - --search-bg: #21262d; - --scrollbar: #30363d; - --resize-handle: #30363d; + --bg-primary: #17181a; + --bg-secondary: #26272b; + --bg-sidebar: #17181a; + --bg-hover: #2e3036; + --border: #33353a; + --text-primary: #eceeeb; + --text-secondary: #a6aba0; + --text-muted: #83887e; + --accent: #7c5cd6; + --accent-green: #2ea36b; + --tag-bg: #26272b; + --tag-text: #7c5cd6; + --code-bg: #2c2e33; + --search-bg: #1f2023; + --scrollbar: #3a3c41; + --resize-handle: #3a3c41; --overlay-bg: rgba(0, 0, 0, 0.5); - --danger: #ff7b72; - --danger-bg: #3d1a18; - --success: #3fb950; - --success-bg: #1a3d1f; - --accent-card: #58a6ff; - --accent-bg: #1f2a3a; - --accent-text: #79c0ff; - --green: #3fb950; - --green-bg: #1a3d1f; - --purple: #a371f7; - --purple-bg: #2d1b4e; - --surface: #161b22; - --surface2: #0f1117; - --surface3: #0d0f14; - --border-md: #30363d; - --text: #e6edf3; - --text-2: #8b949e; - --text-3: #484f58; + --danger: #e8a08d; + --danger-bg: #40241f; + --success: #2ea36b; + --success-bg: #173d29; + --accent-card: #7c5cd6; + --accent-bg: #26272b; + --accent-text: #b39df5; + --green: #2ea36b; + --green-bg: #173d29; + --purple: #7c5cd6; + --purple-bg: #2a2118; + --surface: #1f2023; + --surface2: #17181a; + --surface3: #26272b; + --border-md: #3a3c41; + --text: #eceeeb; + --text-2: #a6aba0; + --text-3: #83887e; --mono: "JetBrains Mono", monospace; --radius: 6px; --radius-lg: 10px; /* #154-A1 — data-grid tokens: the sheet reads slightly lighter than the chrome (toolbar/panels), headers are clearly distinct from cells. */ - --grid-bg: #161b22; - --grid-header-bg: #1f2430; - --grid-header-text: #e6edf3; - --grid-border: #3d444d; + --grid-bg: #1f2023; + --grid-header-bg: #2e3036; + --grid-header-text: #eceeeb; + --grid-border: #33353a; --grid-zebra: rgba(255, 255, 255, 0.025); }