From 8460c51706e5c2942cf44dccf02e161ef6307f5e Mon Sep 17 00:00:00 2001 From: pa Date: Sun, 11 Jan 2026 20:11:54 +0900 Subject: [PATCH] tidy up --- src/app.css | 2 +- src/localization/en.json | 2 +- src/shared/constants/themes.js | 61 ++-------------------------------- src/shared/utils/base/ui.js | 46 +------------------------ 4 files changed, 5 insertions(+), 106 deletions(-) diff --git a/src/app.css b/src/app.css index 4740d1b2..735de84e 100644 --- a/src/app.css +++ b/src/app.css @@ -384,7 +384,7 @@ html.dark, } } -:root[data-theme='darkgrey'] { +:root[data-theme='dark'] { --el-bg-color: var(--color-neutral-900); --el-bg-color-page: var(--color-neutral-900); --el-bg-color-overlay: var(--color-neutral-800); diff --git a/src/localization/en.json b/src/localization/en.json index fec70ff2..ebfeb3ea 100644 --- a/src/localization/en.json +++ b/src/localization/en.json @@ -551,7 +551,7 @@ "theme_mode_system": "System", "theme_mode_light": "Light", "theme_mode_dark": "Dark", - "theme_mode_darkgrey": "Dark Grey", + "theme_mode_midnight": "Midnight", "theme_mode_blue": "Blue", "theme_mode_darkblue": "Dark Blue", "theme_mode_amoled": "Amoled", diff --git a/src/shared/constants/themes.js b/src/shared/constants/themes.js index 7e4cb1e5..25e2dcec 100644 --- a/src/shared/constants/themes.js +++ b/src/shared/constants/themes.js @@ -1,75 +1,18 @@ -import appCss from '../../app.css?url'; -// import appLegacy from '../../assets/scss/themes/app_legacy.scss?url'; -// import material3 from '../../assets/scss/themes/theme.material3.scss?url'; - export const THEME_CONFIG = { system: { - cssFiles: [appCss], isDark: 'system', name: 'System' }, light: { - cssFiles: [appCss], isDark: false, - useDarkClass: false, name: 'Light' }, dark: { - cssFiles: [appCss], isDark: true, - useDarkClass: true, name: 'Dark' }, - darkgrey: { - cssFiles: [appCss], + midnight: { isDark: true, - useDarkClass: true, - name: 'Dark Grey' + name: 'Midnight' } - // darkold: { - // cssFiles: [appLegacy, dark], - // isDark: true, - // useDarkClass: false, - // name: 'Dark (Old)' - // }, - // darkblue: { - // cssFiles: [appLegacy, darkblue], - // isDark: true, - // useDarkClass: false, - // name: 'Dark Blue' - // }, - // amoled: { - // cssFiles: [appLegacy, amoled], - // isDark: true, - // useDarkClass: false, - // name: 'Amoled' - // }, - // darkvanillaold: { - // cssFiles: [appLegacy, darkvanillaold], - // isDark: true, - // useDarkClass: false, - // name: 'Dark Vanilla Old' - // }, - // darkvanilla: { - // cssFiles: [appLegacy, darkvanilla], - // isDark: true, - // useDarkClass: false, - // name: 'Dark Vanilla' - // }, - // pink: { - // cssFiles: [appLegacy, pink], - // isDark: true, - // useDarkClass: false, - // name: 'Pink' - // }, - // material3: { - // cssFiles: [appLegacy, material3], - // isDark: true, - // useDarkClass: false, - // name: 'Material 3', - // fontLinks: [ - // 'https://fonts.googleapis.com/css2?family=Google+Sans:wght@400;500;600&family=Noto+Sans+TC:wght@300;400;500&family=Noto+Sans+SC:wght@300;400;500&family=Noto+Sans+JP:wght@300;400;500&family=Roboto&display=swap', - // 'https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200' - // ] - // } }; diff --git a/src/shared/utils/base/ui.js b/src/shared/utils/base/ui.js index 13a7048b..7bbdeff1 100644 --- a/src/shared/utils/base/ui.js +++ b/src/shared/utils/base/ui.js @@ -50,25 +50,6 @@ function applyThemeFonts(themeKey, fontLinks = []) { }); } -function ensureStylesheetLink(id) { - const linkEl = /** @type {HTMLLinkElement | null} */ ( - document.getElementById(id) - ); - if (!linkEl) { - const created = document.createElement('link'); - created.setAttribute('id', id); - created.rel = 'stylesheet'; - document.head.appendChild(created); - return created; - } - return linkEl; -} - -function removeStylesheetLink(id) { - const linkEl = document.getElementById(id); - linkEl?.remove(); -} - function changeAppThemeStyle(themeMode) { if (themeMode === 'system') { themeMode = systemIsDarkMode() ? 'dark' : 'light'; @@ -83,36 +64,11 @@ function changeAppThemeStyle(themeMode) { themeConfig = THEME_CONFIG[themeMode]; } - const cssFiles = Array.isArray(themeConfig.cssFiles) - ? themeConfig.cssFiles.filter(Boolean) - : themeConfig.cssFile - ? [themeConfig.cssFile] - : []; - - if (cssFiles.length > 0) { - const $appThemeStyle = ensureStylesheetLink('app-theme-style'); - $appThemeStyle.href = cssFiles[0]; - } else { - removeStylesheetLink('app-theme-style'); - } - - if (cssFiles.length > 1) { - const $appThemeOverlayStyle = ensureStylesheetLink( - 'app-theme-overlay-style' - ); - $appThemeOverlayStyle.href = cssFiles[1]; - } else { - removeStylesheetLink('app-theme-overlay-style'); - } - applyThemeFonts(themeMode, themeConfig.fontLinks); document.documentElement.setAttribute('data-theme', themeMode); - const shouldUseDarkClass = - typeof themeConfig.useDarkClass === 'boolean' - ? themeConfig.useDarkClass - : Boolean(themeConfig.isDark); + const shouldUseDarkClass = Boolean(themeConfig.isDark); if (shouldUseDarkClass) { document.documentElement.classList.add('dark'); } else {