From 137f3e7988a5b8658492d075bb220889f0e30e3d Mon Sep 17 00:00:00 2001
From: yuetsh <517252939@qq.com>
Date: Tue, 13 Jan 2026 22:42:14 +0800
Subject: [PATCH] update
---
index.html | 13 +-
main.js | 49 ++-
public/备案图标.png | Bin 1403 -> 0 bytes
style.css | 743 +++++++++++++++++++++++++++++++++++++++-----
4 files changed, 710 insertions(+), 95 deletions(-)
delete mode 100644 public/备案图标.png
diff --git a/index.html b/index.html
index c1529a1..6048656 100644
--- a/index.html
+++ b/index.html
@@ -30,12 +30,15 @@
tabindex="-1"
hidden
>
-
流光
- 极光
- 森林
- 日落
+ Fluent
+
+ Material You
+
- 终端
+ Terminal
+
+
+ Cyberpunk
diff --git a/main.js b/main.js
index e5433be..b1d2027 100644
--- a/main.js
+++ b/main.js
@@ -85,7 +85,9 @@ const themeToggle = document.getElementById("themeToggle")
const designThemeButton = document.getElementById("designThemeButton")
const designThemeList = document.getElementById("designThemeList")
-const DESIGN_THEMES = ["fluent", "aurora", "forest", "sunset", "terminal"]
+const DESIGN_THEMES = ["fluent", "material-you", "terminal", "cyberpunk"]
+const FORCED_DARK_DESIGN_THEMES = new Set(["terminal", "cyberpunk"])
+const THEME_BEFORE_FORCED_KEY = "themeBeforeForcedDark"
// 获取保存的主题或系统偏好
function getInitialTheme() {
@@ -108,11 +110,9 @@ function setTheme(theme) {
// 切换主题
function toggleTheme() {
- if (
- document.documentElement.getAttribute("data-design-theme") === "terminal"
- ) {
- return
- }
+ const designTheme =
+ document.documentElement.getAttribute("data-design-theme") || "fluent"
+ if (FORCED_DARK_DESIGN_THEMES.has(designTheme)) return
const currentTheme =
document.documentElement.getAttribute("data-theme") || "light"
const newTheme = currentTheme === "dark" ? "light" : "dark"
@@ -136,20 +136,32 @@ function setDesignTheme(designTheme) {
document.documentElement.setAttribute("data-design-theme", safeDesignTheme)
localStorage.setItem("designTheme", safeDesignTheme)
- if (safeDesignTheme === "terminal") {
- if (previousDesignTheme !== "terminal") {
+ const willForceDark = FORCED_DARK_DESIGN_THEMES.has(safeDesignTheme)
+ const didForceDark = FORCED_DARK_DESIGN_THEMES.has(previousDesignTheme)
+
+ if (willForceDark) {
+ if (!didForceDark) {
const currentTheme =
document.documentElement.getAttribute("data-theme") || "light"
- localStorage.setItem("themeBeforeTerminal", currentTheme)
+ localStorage.setItem(THEME_BEFORE_FORCED_KEY, currentTheme)
}
setTheme("dark")
- } else if (previousDesignTheme === "terminal") {
- const restoreTheme = localStorage.getItem("themeBeforeTerminal")
+ } else if (didForceDark) {
+ const restoreTheme =
+ localStorage.getItem(THEME_BEFORE_FORCED_KEY) ||
+ localStorage.getItem("themeBeforeTerminal")
if (restoreTheme === "dark" || restoreTheme === "light") {
setTheme(restoreTheme)
}
+ localStorage.removeItem(THEME_BEFORE_FORCED_KEY)
localStorage.removeItem("themeBeforeTerminal")
}
+
+ if (themeToggle) {
+ themeToggle.disabled = willForceDark
+ themeToggle.setAttribute("aria-disabled", willForceDark ? "true" : "false")
+ themeToggle.tabIndex = willForceDark ? -1 : 0
+ }
}
function getDesignThemeLabel(designTheme) {
@@ -159,10 +171,9 @@ function getDesignThemeLabel(designTheme) {
if (optionEl) return optionEl.textContent?.trim() || "流光"
const fallback = {
fluent: "流光",
- aurora: "极光",
- forest: "森林",
- sunset: "日落",
+ "material-you": "Material You",
terminal: "终端",
+ cyberpunk: "Cyberpunk",
}
return fallback[designTheme] || "流光"
}
@@ -194,6 +205,16 @@ function getCurrentDesignTheme() {
return document.documentElement.getAttribute("data-design-theme") || "fluent"
}
+const titleEl = document.querySelector(".title")
+if (titleEl && !titleEl.dataset.text) {
+ titleEl.dataset.text = titleEl.textContent?.trim() || ""
+}
+
+const subtitleEl = document.querySelector(".subtitle")
+if (subtitleEl && !subtitleEl.dataset.text) {
+ subtitleEl.dataset.text = subtitleEl.textContent?.trim() || ""
+}
+
// 初始化主题
const initialTheme = getInitialTheme()
setTheme(initialTheme)
diff --git a/public/备案图标.png b/public/备案图标.png
deleted file mode 100644
index 2a13ba2f4b92c4b531945a66e3e35e3ead3739f9..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1403
zcmV->1%EP)OmFb0;G+d=2euy)cVjh{yJKZrd}noklB1~I~M
zd*Iw5A@r@E47IO}f%*@p@Jx)Mdh7(KwK9h?&H%c+rbB*i1aRDTI20QU&l)3V6a5Y9
zt}ZYoLj`MYk|T#A7~w_+L-y{4&}u&!WZY<|pJEIR0yEx1Uj3A};EwJdNrUZFkX8l*
zHzEMS!$N`e#$JPgJ~RCcs?G=sAOmNu899?20~{9tS;_A3OOz#4aigG2I0I^r2|!us
z49#&4Q2mAxbnlo4RX29P@XC_nqk&1>K&!}%*3Y1(+}IODb9^2n#p&U|879DXA0K#D
zWCyt`&7s8h9jNo01F|3+kc$^U!+v{Uts5b9lQ(c&C=}=KgZ_()Kvj4+ML&aNKZx6i
zJl2Yl2ju}^YI__;juOLFM+@kT5@VldO3ezHkB9?S>Aj#VY+}m;B$XP??
zxN%T4$p}iOy$+QxG_IHqmA13M-@p>M@nKM&69R)Z0ie9J2DDXslk_!c&n?oFu$Yn7
z)OEmWd?Ds=G7Nu8xDmcQZUZ=ta{}+lt6?nX2^_cOg%H>o76q))6WX$Q%Ja*it2DIe
z|DeAVq%H{`B+^svj5H*;g7T;U9#)8bLc4Yg{E`D
zE~35ntsT+-p#J;&bICyKE=GE!LC~7x1**#)pvmVcFRlhnp%?Eb7f_t|7@BnlgS21q
z;L&<@v{ioaNVSuvIdXyMe-LZ0G$Ng{n4?6MC+sKcE2|iJSmp*j*H(ija|LL1*N8fO
z84Rzqr_=+~1y0ae?gQP5-7Tb7eL9>l7HL5AKj`-(OAee!Dq=i5$<0XHZ-^q*rG&^&
zI@b_onyZSavqhjd_h|{~$QS34uIl3li8MWWDPfVifXF`&_zeY2VF9#&n4