fix: 深色模式下高亮/占位元素正确适配
修改: - theme.js: 新增 --bg-soft 变量(浅色 #F0F0F0, 深色 #2C2C2E) - settings.wxss: .theme-item.active / .plan-item.active 改用 rgba(var(--primary-rgb), 0.12) 替代 var(--primary-bg) - leaderboard.wxss: - .period-tabs 背景用 var(--card-bg) 替代 #FFFFFF - .rank-num / .rank-avatar 用 var(--bg-soft) 替代硬编码灰 - .rank-item.is-me / .my-bar 用 rgba() 替代 var(--primary-bg) 根因: --primary-bg 是品牌色极浅版,深色模式下仍是浅色, 不适合做高亮底色。rgba() 在两种模式下都自适应。
This commit is contained in:
@@ -8,7 +8,7 @@
|
|||||||
/* Period tabs */
|
/* Period tabs */
|
||||||
.period-tabs {
|
.period-tabs {
|
||||||
display: flex;
|
display: flex;
|
||||||
background: #FFFFFF;
|
background: var(--card-bg);
|
||||||
padding: 0 32rpx;
|
padding: 0 32rpx;
|
||||||
border-bottom: 1rpx solid var(--border);
|
border-bottom: 1rpx solid var(--border);
|
||||||
position: sticky;
|
position: sticky;
|
||||||
@@ -91,7 +91,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.rank-item.is-me {
|
.rank-item.is-me {
|
||||||
background: var(--primary-bg);
|
background: rgba(var(--primary-rgb), 0.12);
|
||||||
border: 2rpx solid var(--primary);
|
border: 2rpx solid var(--primary);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,20 +106,20 @@
|
|||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: var(--text-secondary);
|
color: var(--text-secondary);
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
background: #F5F5F5;
|
background: var(--bg-soft);
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
margin-right: 16rpx;
|
margin-right: 16rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.rank-num.gold { background: #FFF7E6; color: #FA8C16; font-size: 36rpx; }
|
.rank-num.gold { background: #FFF7E6; color: #FA8C16; font-size: 36rpx; }
|
||||||
.rank-num.silver { background: #F0F0F0; color: #8C8C8C; font-size: 36rpx; }
|
.rank-num.silver { background: var(--bg-soft); color: #8C8C8C; font-size: 36rpx; }
|
||||||
.rank-num.bronze { background: #FFF1E6; color: #D46B08; font-size: 36rpx; }
|
.rank-num.bronze { background: #FFF1E6; color: #D46B08; font-size: 36rpx; }
|
||||||
|
|
||||||
.rank-avatar {
|
.rank-avatar {
|
||||||
width: 64rpx;
|
width: 64rpx;
|
||||||
height: 64rpx;
|
height: 64rpx;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
background: #F0F0F0;
|
background: var(--bg-soft);
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
margin-right: 16rpx;
|
margin-right: 16rpx;
|
||||||
opacity: 0.6;
|
opacity: 0.6;
|
||||||
@@ -162,7 +162,7 @@
|
|||||||
right: 24rpx;
|
right: 24rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background: var(--primary-bg);
|
background: rgba(var(--primary-rgb), 0.12);
|
||||||
border: 2rpx solid var(--primary);
|
border: 2rpx solid var(--primary);
|
||||||
border-radius: 16rpx;
|
border-radius: 16rpx;
|
||||||
padding: 16rpx 24rpx;
|
padding: 16rpx 24rpx;
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
.theme-item:last-child { border-bottom: none; }
|
.theme-item:last-child { border-bottom: none; }
|
||||||
|
|
||||||
.theme-item.active {
|
.theme-item.active {
|
||||||
background: var(--primary-bg);
|
background: rgba(var(--primary-rgb), 0.12);
|
||||||
margin: 0 -32rpx;
|
margin: 0 -32rpx;
|
||||||
padding-left: 32rpx;
|
padding-left: 32rpx;
|
||||||
padding-right: 32rpx;
|
padding-right: 32rpx;
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
.plan-item:last-child { border-bottom: none; }
|
.plan-item:last-child { border-bottom: none; }
|
||||||
|
|
||||||
.plan-item.active {
|
.plan-item.active {
|
||||||
background: var(--primary-bg);
|
background: rgba(var(--primary-rgb), 0.12);
|
||||||
margin: 0 -32rpx;
|
margin: 0 -32rpx;
|
||||||
padding-left: 32rpx;
|
padding-left: 32rpx;
|
||||||
padding-right: 32rpx;
|
padding-right: 32rpx;
|
||||||
|
|||||||
+2
-2
@@ -97,8 +97,8 @@ const setTheme = (id) => {
|
|||||||
const getThemeStyle = (theme, isDark = false) => {
|
const getThemeStyle = (theme, isDark = false) => {
|
||||||
const t = theme || getCurrentTheme()
|
const t = theme || getCurrentTheme()
|
||||||
const baseVars = isDark
|
const baseVars = isDark
|
||||||
? '--text:#E5E5E7;--text-secondary:#98989F;--bg:#0F0F12;--bg-gradient-start:#0F0F12;--bg-gradient-end:#14141A;--card-bg:#1C1C1E;--border:#2C2C2E;--success:#30D158;'
|
? '--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;--border:#EEEEEE;--success:#4CAF50;'
|
: '--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;'
|
||||||
return `${baseVars}--primary:${t.primary};--primary-light:${t.primaryLight};--primary-bg:${t.primaryBg};--primary-rgb:${t.primaryRgb};`
|
return `${baseVars}--primary:${t.primary};--primary-light:${t.primaryLight};--primary-bg:${t.primaryBg};--primary-rgb:${t.primaryRgb};`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user