feat(ui): 全项目暗黑模式适配 — 加 theme 变量 + 替换全部硬编码颜色
新增主题变量 (light + dark 两套): - --success-rgb / --danger / --danger-rgb (utils/theme.js) 全部硬编码 #XXX / rgba 颜色统一改主题变量: - progress-ring 加 trackColor prop,默认 #EEEEEE (canvas 不能直接读 CSS var,需要 caller 传字面颜色) - ui-modal sheet 背景 #FFFFFF → var(--card-bg), 加底部 padding 避开 Dock TabBar - ui-modal handle #DDD → var(--bg-soft) - ui-btn --danger 文字 #E53935 → var(--danger), 边框 rgba(229,57,53,...) → rgba(var(--danger-rgb),...) - calendar-heatmap 三个 #999/#333 文字色 → var(--text-secondary)/var(--text) - index picker: preset/custom input 背景 #F5F5F5 → var(--bg-soft), label #666 → var(--text-secondary) - index done-badge 绿色 → var(--success-rgb), pending-text #CCC → var(--text-secondary) - records empty/hint #CCC/#E0E0E0 → var(--text-secondary), danger 红 → var(--danger) - settings plan-editor-sheet 背景 #FFFFFF → var(--card-bg), avatar 背景, handle, editor-input, preview 全部跟进 - leaderboard 金/铜背景 #FFF7E6/#FFF1E6 → rgba 半透明 (dark mode 下不刺眼) Tab bar inactive 图标重新根据 dark mode 切换颜色 (#999999 light / #98989F dark) leaderboard.json 删除 backgroundColor: #F5F5F5 覆盖,让 theme.json 接管 故意保留: - 各 .wxss 中渐变按钮上的 #FFFFFF 文字色 - 排行榜金/铜文字色 #FA8C16/#D46B08 (视觉符号约定) - 各页 data 中 orange theme 默认值 (onShow 后被 themeMod 覆盖)
This commit is contained in:
+3
-3
@@ -41,7 +41,7 @@ const THEMES = [
|
||||
}
|
||||
]
|
||||
|
||||
const BASE_VARS = '--text:#333;--text-secondary:#999;--bg:#F5F5F5;--card-bg:#FFFFFF;--border:#EEE;--success:#4CAF50;--primary:#FF6B35;--primary-light:#FF8C5A;--primary-bg:#FFF3ED;--primary-rgb:255,107,53;'
|
||||
const BASE_VARS = '--text:#333;--text-secondary:#999;--bg:#F5F5F5;--card-bg:#FFFFFF;--border:#EEE;--success:#4CAF50;--success-rgb:76,175,80;--danger:#E53935;--danger-rgb:229,57,53;--primary:#FF6B35;--primary-light:#FF8C5A;--primary-bg:#FFF3ED;--primary-rgb:255,107,53;'
|
||||
const DEFAULT_THEME_ID = 'orange'
|
||||
const THEME_KEY = 'app_theme'
|
||||
let _navColorTimer = null
|
||||
@@ -97,8 +97,8 @@ const setTheme = (id) => {
|
||||
const getThemeStyle = (theme, isDark = false) => {
|
||||
const t = theme || getCurrentTheme()
|
||||
const baseVars = isDark
|
||||
? '--text:#E5E5E7;--text-secondary:#98989F;--bg:#0F0F12;--bg-gradient-start:#0F0F12;--bg-gradient-end:#14141A;--card-bg:#1C1C1E;--bg-soft:#2C2C2E;--border:#2C2C2E;--success:#30D158;'
|
||||
: '--text:#333333;--text-secondary:#999999;--bg:#F5F5F5;--bg-gradient-start:#F5F5F5;--bg-gradient-end:#FAFAFA;--card-bg:#FFFFFF;--bg-soft:#F0F0F0;--border:#EEEEEE;--success:#4CAF50;'
|
||||
? '--text:#E5E5E7;--text-secondary:#98989F;--bg:#0F0F12;--bg-gradient-start:#0F0F12;--bg-gradient-end:#14141A;--card-bg:#1C1C1E;--bg-soft:#2C2C2E;--border:#2C2C2E;--success:#30D158;--success-rgb:48,209,88;--danger:#FF6B6B;--danger-rgb:255,107,107;'
|
||||
: '--text:#333333;--text-secondary:#999999;--bg:#F5F5F5;--bg-gradient-start:#F5F5F5;--bg-gradient-end:#FAFAFA;--card-bg:#FFFFFF;--bg-soft:#F0F0F0;--border:#EEEEEE;--success:#4CAF50;--success-rgb:76,175,80;--danger:#E53935;--danger-rgb:229,57,53;'
|
||||
return `${baseVars}--primary:${t.primary};--primary-light:${t.primaryLight};--primary-bg:${t.primaryBg};--primary-rgb:${t.primaryRgb};`
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user