From 207e6121aa59b94c9f735f7dd0220fddd62ca675 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 1 Oct 2026 14:22:13 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20=D1=80=D0=B5=D0=B7=D1=8E=D0=BC=D0=B5=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B4=D1=85=D0=B2=D0=B0=D1=82=D1=8B=D0=B2=D0=B0?= =?UTF-8?q?=D0=B5=D1=82=20=D0=B0=D0=BA=D1=86=D0=B5=D0=BD=D1=82=20=D1=82?= =?UTF-8?q?=D0=B5=D0=BC=D1=8B=20=D0=B8=D0=B7=20localStorage=20(=D1=84?= =?UTF-8?q?=D0=BE=D1=80=D0=BC=D0=B0=D1=82=20light/dark)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/cases/ai-assistant-figma/index.html | 41 ++++++++++++------- .../cases/ai-platform-primo-rpa-2/index.html | 41 ++++++++++++------- .../cases/ai-platform-primo-rpa-v2/index.html | 41 ++++++++++++------- public/cases/ai-platform-primo-rpa/index.html | 41 ++++++++++++------- public/cases/card-columns-obsidian/index.html | 41 ++++++++++++------- public/cases/design-system/index.html | 41 ++++++++++++------- public/cases/lunacy/index.html | 41 ++++++++++++------- public/cases/manu-game-maker/index.html | 41 ++++++++++++------- .../cases/mini-projects-showcase/index.html | 41 ++++++++++++------- public/cases/mobile-clinic-app/index.html | 41 ++++++++++++------- .../obsidian-plugin-columns-view/index.html | 41 ++++++++++++------- public/cases/orc-automation-panel/index.html | 41 ++++++++++++------- public/cases/site-portfolio/index.html | 41 ++++++++++++------- .../task-distribution-concept/index.html | 41 ++++++++++++------- public/cases/task-tracker/index.html | 41 ++++++++++++------- .../cases/template-elements-demo/index.html | 41 ++++++++++++------- public/cookie-policy/index.html | 41 ++++++++++++------- public/en/cases/ai-assistant-figma/index.html | 41 ++++++++++++------- .../cases/ai-platform-primo-rpa-2/index.html | 41 ++++++++++++------- .../cases/ai-platform-primo-rpa-v2/index.html | 41 ++++++++++++------- .../en/cases/ai-platform-primo-rpa/index.html | 41 ++++++++++++------- .../en/cases/card-columns-obsidian/index.html | 41 ++++++++++++------- public/en/cases/design-system/index.html | 41 ++++++++++++------- public/en/cases/lunacy/index.html | 41 ++++++++++++------- public/en/cases/manu-game-maker/index.html | 41 ++++++++++++------- .../cases/mini-projects-showcase/index.html | 41 ++++++++++++------- public/en/cases/mobile-clinic-app/index.html | 41 ++++++++++++------- .../obsidian-plugin-columns-view/index.html | 41 ++++++++++++------- .../en/cases/orc-automation-panel/index.html | 41 ++++++++++++------- public/en/cases/site-portfolio/index.html | 41 ++++++++++++------- .../task-distribution-concept/index.html | 41 ++++++++++++------- public/en/cases/task-tracker/index.html | 41 ++++++++++++------- .../cases/template-elements-demo/index.html | 41 ++++++++++++------- public/en/cookie-policy/index.html | 41 ++++++++++++------- public/en/index.html | 41 ++++++++++++------- public/en/resume/index.html | 41 ++++++++++++------- public/index.html | 41 ++++++++++++------- public/resume/index.html | 41 ++++++++++++------- src/partials/theme-init-script.en.html | 41 ++++++++++++------- src/partials/theme-init-script.html | 41 ++++++++++++------- 40 files changed, 1040 insertions(+), 600 deletions(-) diff --git a/public/cases/ai-assistant-figma/index.html b/public/cases/ai-assistant-figma/index.html index bf9b0ad..631df1f 100644 --- a/public/cases/ai-assistant-figma/index.html +++ b/public/cases/ai-assistant-figma/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/cases/ai-platform-primo-rpa-2/index.html b/public/cases/ai-platform-primo-rpa-2/index.html index a07020e..16c1643 100644 --- a/public/cases/ai-platform-primo-rpa-2/index.html +++ b/public/cases/ai-platform-primo-rpa-2/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/cases/ai-platform-primo-rpa-v2/index.html b/public/cases/ai-platform-primo-rpa-v2/index.html index 2663a67..7831af2 100644 --- a/public/cases/ai-platform-primo-rpa-v2/index.html +++ b/public/cases/ai-platform-primo-rpa-v2/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/cases/ai-platform-primo-rpa/index.html b/public/cases/ai-platform-primo-rpa/index.html index 3fcb8e7..ca20927 100644 --- a/public/cases/ai-platform-primo-rpa/index.html +++ b/public/cases/ai-platform-primo-rpa/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/cases/card-columns-obsidian/index.html b/public/cases/card-columns-obsidian/index.html index e0cce45..fa2e9ad 100644 --- a/public/cases/card-columns-obsidian/index.html +++ b/public/cases/card-columns-obsidian/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/cases/design-system/index.html b/public/cases/design-system/index.html index 8335e9c..f0660d9 100644 --- a/public/cases/design-system/index.html +++ b/public/cases/design-system/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/cases/lunacy/index.html b/public/cases/lunacy/index.html index 206dafb..30553d5 100644 --- a/public/cases/lunacy/index.html +++ b/public/cases/lunacy/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/cases/manu-game-maker/index.html b/public/cases/manu-game-maker/index.html index caed793..d4dd471 100644 --- a/public/cases/manu-game-maker/index.html +++ b/public/cases/manu-game-maker/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/cases/mini-projects-showcase/index.html b/public/cases/mini-projects-showcase/index.html index b09a38e..2baf6a2 100644 --- a/public/cases/mini-projects-showcase/index.html +++ b/public/cases/mini-projects-showcase/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/cases/mobile-clinic-app/index.html b/public/cases/mobile-clinic-app/index.html index 046fdce..4c7ad56 100644 --- a/public/cases/mobile-clinic-app/index.html +++ b/public/cases/mobile-clinic-app/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/cases/obsidian-plugin-columns-view/index.html b/public/cases/obsidian-plugin-columns-view/index.html index 0464512..843cfd6 100644 --- a/public/cases/obsidian-plugin-columns-view/index.html +++ b/public/cases/obsidian-plugin-columns-view/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/cases/orc-automation-panel/index.html b/public/cases/orc-automation-panel/index.html index de3599e..d12cc3b 100644 --- a/public/cases/orc-automation-panel/index.html +++ b/public/cases/orc-automation-panel/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/cases/site-portfolio/index.html b/public/cases/site-portfolio/index.html index 6b4f6a9..48dee6d 100644 --- a/public/cases/site-portfolio/index.html +++ b/public/cases/site-portfolio/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/cases/task-distribution-concept/index.html b/public/cases/task-distribution-concept/index.html index 2d5da56..bcde195 100644 --- a/public/cases/task-distribution-concept/index.html +++ b/public/cases/task-distribution-concept/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/cases/task-tracker/index.html b/public/cases/task-tracker/index.html index 164fa6a..5d55e46 100644 --- a/public/cases/task-tracker/index.html +++ b/public/cases/task-tracker/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/cases/template-elements-demo/index.html b/public/cases/template-elements-demo/index.html index f0ac853..2d47710 100644 --- a/public/cases/template-elements-demo/index.html +++ b/public/cases/template-elements-demo/index.html @@ -24,21 +24,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -66,7 +77,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/cookie-policy/index.html b/public/cookie-policy/index.html index 9f08c58..8f0f639 100644 --- a/public/cookie-policy/index.html +++ b/public/cookie-policy/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/en/cases/ai-assistant-figma/index.html b/public/en/cases/ai-assistant-figma/index.html index 36afd07..ea61bb1 100644 --- a/public/en/cases/ai-assistant-figma/index.html +++ b/public/en/cases/ai-assistant-figma/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/en/cases/ai-platform-primo-rpa-2/index.html b/public/en/cases/ai-platform-primo-rpa-2/index.html index 57c5176..5604569 100644 --- a/public/en/cases/ai-platform-primo-rpa-2/index.html +++ b/public/en/cases/ai-platform-primo-rpa-2/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/en/cases/ai-platform-primo-rpa-v2/index.html b/public/en/cases/ai-platform-primo-rpa-v2/index.html index d46b535..565d2cf 100644 --- a/public/en/cases/ai-platform-primo-rpa-v2/index.html +++ b/public/en/cases/ai-platform-primo-rpa-v2/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/en/cases/ai-platform-primo-rpa/index.html b/public/en/cases/ai-platform-primo-rpa/index.html index 14fa2f7..02841a2 100644 --- a/public/en/cases/ai-platform-primo-rpa/index.html +++ b/public/en/cases/ai-platform-primo-rpa/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/en/cases/card-columns-obsidian/index.html b/public/en/cases/card-columns-obsidian/index.html index afe661a..f072ee2 100644 --- a/public/en/cases/card-columns-obsidian/index.html +++ b/public/en/cases/card-columns-obsidian/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/en/cases/design-system/index.html b/public/en/cases/design-system/index.html index be63275..07486b1 100644 --- a/public/en/cases/design-system/index.html +++ b/public/en/cases/design-system/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/en/cases/lunacy/index.html b/public/en/cases/lunacy/index.html index 78e05d9..7b2b467 100644 --- a/public/en/cases/lunacy/index.html +++ b/public/en/cases/lunacy/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/en/cases/manu-game-maker/index.html b/public/en/cases/manu-game-maker/index.html index a7d313f..3d84862 100644 --- a/public/en/cases/manu-game-maker/index.html +++ b/public/en/cases/manu-game-maker/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/en/cases/mini-projects-showcase/index.html b/public/en/cases/mini-projects-showcase/index.html index fed12d2..5b26c07 100644 --- a/public/en/cases/mini-projects-showcase/index.html +++ b/public/en/cases/mini-projects-showcase/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/en/cases/mobile-clinic-app/index.html b/public/en/cases/mobile-clinic-app/index.html index ce0a39d..bc5067b 100644 --- a/public/en/cases/mobile-clinic-app/index.html +++ b/public/en/cases/mobile-clinic-app/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/en/cases/obsidian-plugin-columns-view/index.html b/public/en/cases/obsidian-plugin-columns-view/index.html index 70c6553..355afc5 100644 --- a/public/en/cases/obsidian-plugin-columns-view/index.html +++ b/public/en/cases/obsidian-plugin-columns-view/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/en/cases/orc-automation-panel/index.html b/public/en/cases/orc-automation-panel/index.html index 1d11566..60ce70c 100644 --- a/public/en/cases/orc-automation-panel/index.html +++ b/public/en/cases/orc-automation-panel/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/en/cases/site-portfolio/index.html b/public/en/cases/site-portfolio/index.html index 832d873..e1df138 100644 --- a/public/en/cases/site-portfolio/index.html +++ b/public/en/cases/site-portfolio/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/en/cases/task-distribution-concept/index.html b/public/en/cases/task-distribution-concept/index.html index 4edf60b..c3507a8 100644 --- a/public/en/cases/task-distribution-concept/index.html +++ b/public/en/cases/task-distribution-concept/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/en/cases/task-tracker/index.html b/public/en/cases/task-tracker/index.html index 122145d..9aed3a6 100644 --- a/public/en/cases/task-tracker/index.html +++ b/public/en/cases/task-tracker/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/en/cases/template-elements-demo/index.html b/public/en/cases/template-elements-demo/index.html index 0e8415c..fdf015e 100644 --- a/public/en/cases/template-elements-demo/index.html +++ b/public/en/cases/template-elements-demo/index.html @@ -24,21 +24,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -66,7 +77,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/en/cookie-policy/index.html b/public/en/cookie-policy/index.html index c330d24..3c7b0e7 100644 --- a/public/en/cookie-policy/index.html +++ b/public/en/cookie-policy/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/en/index.html b/public/en/index.html index 7722cea..3471c21 100644 --- a/public/en/index.html +++ b/public/en/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/en/resume/index.html b/public/en/resume/index.html index bfbafbc..05a75dd 100644 --- a/public/en/resume/index.html +++ b/public/en/resume/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/index.html b/public/index.html index 80a5d1c..30c9cde 100644 --- a/public/index.html +++ b/public/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/public/resume/index.html b/public/resume/index.html index 18e3c4d..b4cce0a 100644 --- a/public/resume/index.html +++ b/public/resume/index.html @@ -27,21 +27,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -69,7 +80,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/src/partials/theme-init-script.en.html b/src/partials/theme-init-script.en.html index 8a93c60..8b0d18a 100644 --- a/src/partials/theme-init-script.en.html +++ b/src/partials/theme-init-script.en.html @@ -17,21 +17,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -59,7 +70,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") { diff --git a/src/partials/theme-init-script.html b/src/partials/theme-init-script.html index 8a93c60..8b0d18a 100644 --- a/src/partials/theme-init-script.html +++ b/src/partials/theme-init-script.html @@ -17,21 +17,32 @@ : "light" : m; d.dataset.theme = eff; - var h = typeof t.h === "number" ? t.h : typeof t.hue === "number" ? t.hue : null; - var s = typeof t.s === "number" ? t.s : typeof t.sat === "number" ? t.sat : null; - var l = typeof t.l === "number" ? t.l : typeof t.light === "number" ? t.light : null; - if (h !== null) d.style.setProperty("--theme-h", String(h)); - if (s !== null) d.style.setProperty("--theme-s", String(s)); - if (l !== null) { - var L = Number(l); - if (Number.isFinite(L)) d.style.setProperty("--theme-l", String(Math.min(70, Math.max(20, L)))); + var DEF = { h: 210, s: 90, l: 40 }; + function pickAccent(o) { + if (!o) return null; + var h = typeof o.h === "number" ? o.h : typeof o.hue === "number" ? o.hue : null; + var s = typeof o.s === "number" ? o.s : typeof o.sat === "number" ? o.sat : null; + var l = typeof o.l === "number" ? o.l : typeof o.light === "number" ? o.light : null; + if (h === null && s === null && l === null) return null; + return { + h: h === null ? DEF.h : h, + s: s === null ? DEF.s : Math.min(100, Math.max(30, s)), + l: l === null ? DEF.l : Math.min(70, Math.max(20, l)), + }; } - var hVal = h !== null ? h : 210; - var sVal = s !== null ? s : 90; - var lVal = l !== null ? Math.min(70, Math.max(20, Number(l))) : 40; - var H = (((hVal % 360) + 360) % 360) / 360; - var S = Math.min(100, Math.max(0, sVal)) / 100; - var Lv = Math.min(100, Math.max(0, lVal)) / 100; + // Текущий формат: отдельный акцент для светлой и тёмной темы ({light, dark}). + // Старый плоский формат ({h, s, l}) остаётся совместимым. + var acc = + pickAccent(eff === "dark" ? t.dark : t.light) || + pickAccent(eff === "dark" ? t.light : t.dark) || + pickAccent(t) || + DEF; + d.style.setProperty("--theme-h", String(acc.h)); + d.style.setProperty("--theme-s", String(acc.s)); + d.style.setProperty("--theme-l", String(acc.l)); + var H = (((acc.h % 360) + 360) % 360) / 360; + var S = Math.min(100, Math.max(0, acc.s)) / 100; + var Lv = Math.min(100, Math.max(0, acc.l)) / 100; var r, g, b; if (S === 0) { r = g = b = Lv; } else { @@ -59,7 +70,7 @@ var f = t.font; if (f === "onest") f = "geologica"; if (f === "anonymous") f = "mono"; - if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "merriweather"; + if (f !== "merriweather" && f !== "mono" && f !== "geologica") f = "geologica"; d.dataset.font = f; var mb = t.meshBg; if (mb === "off") {