fix(ui): 批量替换所有组件中残留的硬编码深色值以彻底支持浅色主题
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Canceled after 0s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Canceled after 0s
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Canceled after 1m27s

This commit is contained in:
2026-09-12 15:56:10 +08:00
parent 8b0934f6f4
commit 9fc5e3e607
42 changed files with 6081 additions and 300 deletions
+38 -38
View File
@@ -1608,7 +1608,7 @@ const vRipple = {
}
.semester-label {
color: #ffffff;
color: var(--text-primary, #ffffff);
font-size: 15px;
font-weight: 500;
margin-right: 0.75rem;
@@ -1620,7 +1620,7 @@ const vRipple = {
background: linear-gradient(135deg, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0.08) 100%);
border: 1px solid rgba(255, 255, 255, 0.25);
border-radius: 8px;
color: #ffffff;
color: var(--text-primary, #ffffff);
padding: 0.6rem 1rem;
font-size: 14px;
font-weight: 500;
@@ -1648,8 +1648,8 @@ const vRipple = {
}
.semester-select option {
background: #1a1d24;
color: #ffffff;
background: var(--bg-secondary, #1a1d24);
color: var(--text-primary, #ffffff);
padding: 0.5rem;
}
@@ -1703,14 +1703,14 @@ const vRipple = {
}
.date-item:hover {
background: #21242d;
background: var(--bg-tertiary, #21242d);
transform: translateY(-2px);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
.date-item.active {
background: #21242d;
color: #ffffff;
background: var(--bg-tertiary, #21242d);
color: var(--text-primary, #ffffff);
font-weight: 600;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(11, 90, 254, 0.2);
@@ -1775,7 +1775,7 @@ const vRipple = {
font-family: 'MiSans', sans-serif;
font-weight: 600;
font-size: 20px;
color: #ffffff;
color: var(--text-primary, #ffffff);
margin: 0;
}
@@ -1784,7 +1784,7 @@ const vRipple = {
padding: 3rem;
text-align: center;
border-radius: 10px;
background: #21242d;
background: var(--bg-tertiary, #21242d);
margin: 1rem 0;
color: rgba(255, 255, 255, 0.6);
display: flex;
@@ -1819,7 +1819,7 @@ const vRipple = {
padding: 2rem;
text-align: center;
border-radius: 10px;
background: #21242d;
background: var(--bg-tertiary, #21242d);
margin: 1rem 0;
color: rgba(255, 255, 255, 0.6);
}
@@ -1869,7 +1869,7 @@ const vRipple = {
.song-card {
width: 320px;
flex-shrink: 0;
background: #21242d;
background: var(--bg-tertiary, #21242d);
border-radius: 10px;
overflow: hidden;
position: relative;
@@ -1886,7 +1886,7 @@ const vRipple = {
border-radius: 999px;
border: 1px solid rgba(255, 255, 255, 0.1);
background: rgba(255, 255, 255, 0.1);
color: #ffffff;
color: var(--text-primary, #ffffff);
font-size: 14px;
font-weight: 500;
cursor: pointer;
@@ -1930,7 +1930,7 @@ const vRipple = {
width: 100%;
max-width: 580px;
max-height: 85vh;
background: #1e1e24;
background: var(--bg-secondary, #1e1e24);
border-radius: 20px;
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
border: 1px solid rgba(255, 255, 255, 0.08);
@@ -1964,7 +1964,7 @@ const vRipple = {
margin: 0;
font-size: 18px;
font-weight: 600;
color: #ffffff;
color: var(--text-primary, #ffffff);
letter-spacing: 0.5px;
}
@@ -1984,7 +1984,7 @@ const vRipple = {
.playlist-modal-close:hover {
background: rgba(255, 255, 255, 0.1);
color: #ffffff;
color: var(--text-primary, #ffffff);
transform: rotate(90deg);
}
@@ -1993,7 +1993,7 @@ const vRipple = {
flex: 1;
overflow-y: auto;
padding: 1.5rem;
background: #1e1e24;
background: var(--bg-secondary, #1e1e24);
}
/* 滚动条美化 */
@@ -2066,7 +2066,7 @@ const vRipple = {
height: 40px;
border-radius: 50%;
overflow: hidden;
background: #2a2a32;
background: var(--bg-tertiary, #2a2a32);
display: flex;
align-items: center;
justify-content: center;
@@ -2087,7 +2087,7 @@ const vRipple = {
.user-name {
font-weight: 600;
color: #ffffff;
color: var(--text-primary, #ffffff);
font-size: 15px;
}
@@ -2161,9 +2161,9 @@ const vRipple = {
.custom-select,
.custom-input {
width: 100%;
background: #141418;
background: var(--bg-secondary, #141418);
border: 1px solid rgba(255, 255, 255, 0.1);
color: #ffffff;
color: var(--text-primary, #ffffff);
padding: 0.75rem 1rem;
border-radius: 10px;
font-size: 14px;
@@ -2210,7 +2210,7 @@ const vRipple = {
.btn-icon:hover {
background: rgba(255, 255, 255, 0.1);
color: #ffffff;
color: var(--text-primary, #ffffff);
}
.btn-icon:disabled {
@@ -2421,7 +2421,7 @@ const vRipple = {
.song-name {
font-size: 14px;
color: #ffffff;
color: var(--text-primary, #ffffff);
font-weight: 500;
white-space: nowrap;
overflow: hidden;
@@ -2469,7 +2469,7 @@ const vRipple = {
.btn-primary {
background: var(--primary);
color: #ffffff;
color: var(--text-primary, #ffffff);
box-shadow: 0 4px 12px rgba(102, 126, 234, 0.25);
}
@@ -2488,7 +2488,7 @@ const vRipple = {
.btn-secondary {
background: rgba(255, 255, 255, 0.1);
color: #ffffff;
color: var(--text-primary, #ffffff);
}
.btn-secondary:hover {
@@ -2502,7 +2502,7 @@ const vRipple = {
.btn-ghost:hover {
background: rgba(255, 255, 255, 0.05);
color: #ffffff;
color: var(--text-primary, #ffffff);
}
/* 动画定义 */
@@ -2537,7 +2537,7 @@ const vRipple = {
border-radius: 50%;
border: 1px solid rgba(255, 255, 255, 0.1);
background: rgba(255, 255, 255, 0.1);
color: #ffffff;
color: var(--text-primary, #ffffff);
cursor: pointer;
margin-right: 0.5rem;
backdrop-filter: blur(10px);
@@ -2661,8 +2661,8 @@ const vRipple = {
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(135deg, #0043f8 0%, #0075f8 100%);
color: #ffffff;
background: linear-gradient(135deg, var(--bg-secondary, #0043f8) 0%, #0075f8 100%);
color: var(--text-primary, #ffffff);
font-size: 28px;
font-weight: bold;
font-family: 'MiSans', sans-serif;
@@ -2725,7 +2725,7 @@ const vRipple = {
font-weight: 600;
font-size: 16px;
letter-spacing: 0.04em;
color: #ffffff;
color: var(--text-primary, #ffffff);
margin-bottom: 0.5rem;
display: flex;
align-items: flex-start;
@@ -2824,7 +2824,7 @@ const vRipple = {
font-family: 'MiSans', sans-serif;
font-weight: 600;
font-size: 12px;
color: #ffffff;
color: var(--text-primary, #ffffff);
opacity: 0.4;
}
@@ -2919,7 +2919,7 @@ const vRipple = {
.date-text {
font-size: 15px;
font-weight: 600;
color: #ffffff;
color: var(--text-primary, #ffffff);
white-space: nowrap;
text-shadow:
0 0 10px rgba(255, 255, 255, 0.2),
@@ -2928,7 +2928,7 @@ const vRipple = {
.dropdown-icon {
opacity: 0.5;
color: #ffffff;
color: var(--text-primary, #ffffff);
}
.mobile-action-btn {
@@ -2937,7 +2937,7 @@ const vRipple = {
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(135deg, #0b5afe 0%, #0043f8 100%);
background: linear-gradient(135deg, var(--bg-secondary, #0b5afe) 0%, #0043f8 100%);
border: none;
border-radius: 16px;
box-shadow: 0 4px 15px rgba(11, 90, 254, 0.4);
@@ -3118,7 +3118,7 @@ const vRipple = {
font-weight: 600;
margin-bottom: 2px;
line-height: 1.4;
color: #ffffff;
color: var(--text-primary, #ffffff);
letter-spacing: 0.01em;
}
@@ -3366,7 +3366,7 @@ const vRipple = {
justify-content: space-between;
align-items: center;
margin-bottom: 1rem;
background: #21242d;
background: var(--bg-tertiary, #21242d);
border-radius: 10px;
padding: 0.75rem 1rem;
box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);
@@ -3379,7 +3379,7 @@ const vRipple = {
.date-nav-btn {
background: rgba(11, 90, 254, 0.1);
border: 1px solid rgba(11, 90, 254, 0.2);
color: #ffffff;
color: var(--text-primary, #ffffff);
border-radius: 50%;
width: 36px;
height: 36px;
@@ -3403,7 +3403,7 @@ const vRipple = {
font-family: 'MiSans', sans-serif;
font-weight: 600;
font-size: 16px;
color: #ffffff;
color: var(--text-primary, #ffffff);
text-align: center;
flex: 1;
white-space: pre-line;
@@ -3453,7 +3453,7 @@ const vRipple = {
width: 85%;
max-width: 350px;
max-height: 70vh;
background: #1a1d24;
background: var(--bg-secondary, #1a1d24);
border-radius: 12px;
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
border: 1px solid rgba(255, 255, 255, 0.1);