|
|
|
|
|
:root { |
|
|
|
|
|
--tabbar-height: 49px; |
|
|
--mini-player-height: 64px; |
|
|
--list-item-height: 64px; |
|
|
--touch-target: 44px; |
|
|
--sidebar-width: 280px; |
|
|
|
|
|
|
|
|
--pc-list-item-height: 80px; |
|
|
--pc-touch-target: 48px; |
|
|
|
|
|
|
|
|
--radius-small: 12px; |
|
|
--radius-card: 20px; |
|
|
|
|
|
|
|
|
--transition-fast: 0.3s ease; |
|
|
--transition-slow: 0.5s ease; |
|
|
|
|
|
|
|
|
--bg-primary: #f8f9fa; |
|
|
--bg-card: rgba(255, 255, 255, 0.9); |
|
|
--bg-secondary: rgba(255, 255, 255, 0.85); |
|
|
--bg-overlay: rgba(255, 255, 255, 0.95); |
|
|
--bg-gradient-1: #e3f2fd; |
|
|
--bg-gradient-2: #f3e5f5; |
|
|
--bg-gradient-3: #fff3e0; |
|
|
--bg-gradient-4: #e8f5e8; |
|
|
|
|
|
|
|
|
--primary-color: #ff6b6b; |
|
|
--primary-color-hover: #ff5252; |
|
|
--primary-color-active: #ff4444; |
|
|
--primary-color-pressed: #ff3333; |
|
|
|
|
|
|
|
|
--accent-red: var(--primary-color); |
|
|
--accent-red-hover: var(--primary-color-hover); |
|
|
|
|
|
|
|
|
--text-primary: #2c3e50; |
|
|
--text-secondary: rgba(44, 62, 80, 0.8); |
|
|
--text-tertiary: rgba(44, 62, 80, 0.6); |
|
|
--text-disabled: rgba(44, 62, 80, 0.5); |
|
|
|
|
|
|
|
|
--border-light: rgba(44, 62, 80, 0.2); |
|
|
--border-lighter: rgba(44, 62, 80, 0.1); |
|
|
--border-card: rgba(44, 62, 80, 0.15); |
|
|
--border-strong: rgba(44, 62, 80, 0.3); |
|
|
|
|
|
|
|
|
--success-color: #4CAF50; |
|
|
--warning-color: #ed8936; |
|
|
--error-color: #ff4444; |
|
|
--info-color: #3182ce; |
|
|
|
|
|
|
|
|
--shadow-color: rgba(0, 0, 0, 0.12); |
|
|
--glow-color: rgba(255, 107, 107, 0.35); |
|
|
--overlay-dark: rgba(0, 0, 0, 0.6); |
|
|
--overlay-light: rgba(255, 255, 255, 0.1); |
|
|
--overlay-lighter: rgba(255, 255, 255, 0.05); |
|
|
|
|
|
|
|
|
--shadow-card: 0 8px 25px var(--shadow-color); |
|
|
--shadow-button: 0 4px 12px var(--glow-color); |
|
|
} |
|
|
|
|
|
|
|
|
[data-theme="dark"] { |
|
|
|
|
|
--bg-primary: #0c0c0c; |
|
|
--bg-card: rgba(30, 30, 30, 0.85); |
|
|
--bg-secondary: rgba(25, 25, 25, 0.9); |
|
|
--bg-overlay: rgba(0, 0, 0, 0.9); |
|
|
--bg-gradient-1: #1a1a2e; |
|
|
--bg-gradient-2: #16213e; |
|
|
--bg-gradient-3: #0f3460; |
|
|
--bg-gradient-4: #1a1a2e; |
|
|
|
|
|
|
|
|
--text-primary: #ffffff; |
|
|
--text-secondary: rgba(255, 255, 255, 0.85); |
|
|
--text-disabled: rgba(255, 255, 255, 0.5); |
|
|
--text-tertiary: rgba(255, 255, 255, 0.65); |
|
|
|
|
|
|
|
|
--border-light: rgba(255, 255, 255, 0.2); |
|
|
--border-lighter: rgba(255, 255, 255, 0.1); |
|
|
--border-card: rgba(255, 255, 255, 0.15); |
|
|
--border-strong: rgba(255, 255, 255, 0.3); |
|
|
|
|
|
|
|
|
--shadow-card: 0 8px 25px rgba(0, 0, 0, 0.4); |
|
|
--shadow-button: 0 4px 12px rgba(255, 107, 107, 0.5); |
|
|
--overlay-lighter: rgba(255, 255, 255, 0.05); |
|
|
} |
|
|
|
|
|
|
|
|
* { |
|
|
margin: 0; |
|
|
padding: 0; |
|
|
box-sizing: border-box; |
|
|
|
|
|
-webkit-touch-callout: none; |
|
|
-webkit-user-select: none; |
|
|
-khtml-user-select: none; |
|
|
-moz-user-select: none; |
|
|
-ms-user-select: none; |
|
|
user-select: none; |
|
|
-webkit-tap-highlight-color: transparent; |
|
|
} |
|
|
|
|
|
|
|
|
html, body { |
|
|
touch-action: manipulation; |
|
|
-ms-touch-action: manipulation; |
|
|
-webkit-text-size-adjust: 100%; |
|
|
-ms-text-size-adjust: 100%; |
|
|
} |
|
|
|
|
|
|
|
|
input, textarea, [contenteditable="true"] { |
|
|
-webkit-user-select: text; |
|
|
-khtml-user-select: text; |
|
|
-moz-user-select: text; |
|
|
-ms-user-select: text; |
|
|
user-select: text; |
|
|
} |
|
|
|
|
|
html, body { |
|
|
height: 100%; |
|
|
overflow-x: hidden; |
|
|
|
|
|
margin: 0; |
|
|
padding: 0; |
|
|
} |
|
|
|
|
|
|
|
|
body { |
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif; |
|
|
background: var(--bg-primary); |
|
|
color: var(--text-primary); |
|
|
line-height: 1.4; |
|
|
-webkit-font-smoothing: antialiased; |
|
|
-moz-osx-font-smoothing: grayscale; |
|
|
position: relative; |
|
|
} |
|
|
|
|
|
|
|
|
body::before { |
|
|
content: ''; |
|
|
position: fixed; |
|
|
top: 0; |
|
|
left: 0; |
|
|
width: 100%; |
|
|
height: 100%; |
|
|
background: linear-gradient(-45deg, var(--bg-gradient-1), var(--bg-gradient-2), var(--bg-gradient-3), var(--bg-gradient-4)); |
|
|
background-size: 400% 400%; |
|
|
animation: gradientBG 15s ease infinite; |
|
|
opacity: 0.4; |
|
|
z-index: -2; |
|
|
pointer-events: none; |
|
|
} |
|
|
|
|
|
|
|
|
[data-theme="dark"] body::before { |
|
|
background: linear-gradient(-45deg, var(--bg-gradient-1), var(--bg-gradient-2), var(--bg-gradient-3), var(--bg-gradient-4)); |
|
|
opacity: 0.2; |
|
|
} |
|
|
|
|
|
@keyframes gradientBG { |
|
|
0% { background-position: 0% 50%; } |
|
|
50% { background-position: 100% 50%; } |
|
|
100% { background-position: 0% 50%; } |
|
|
} |
|
|
|
|
|
#app { |
|
|
height: 100vh; |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
} |
|
|
|
|
|
|
|
|
::-webkit-scrollbar { |
|
|
width: 6px; |
|
|
} |
|
|
|
|
|
::-webkit-scrollbar-track { |
|
|
background: transparent; |
|
|
} |
|
|
|
|
|
::-webkit-scrollbar-thumb { |
|
|
background: rgba(44, 62, 80, 0.3); |
|
|
border-radius: 3px; |
|
|
} |
|
|
|
|
|
::-webkit-scrollbar-thumb:hover { |
|
|
background: rgba(44, 62, 80, 0.5); |
|
|
} |
|
|
|
|
|
|
|
|
[data-theme="dark"] ::-webkit-scrollbar-thumb { |
|
|
background: rgba(255, 255, 255, 0.4); |
|
|
} |
|
|
|
|
|
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover { |
|
|
background: rgba(255, 255, 255, 0.6); |
|
|
} |
|
|
|
|
|
|
|
|
.container { |
|
|
max-width: 100%; |
|
|
margin: 0 auto; |
|
|
padding: 0 16px; |
|
|
} |
|
|
|
|
|
.flex { |
|
|
display: flex; |
|
|
} |
|
|
|
|
|
.flex-center { |
|
|
display: flex; |
|
|
align-items: center; |
|
|
justify-content: center; |
|
|
} |
|
|
|
|
|
.flex-between { |
|
|
display: flex; |
|
|
align-items: center; |
|
|
justify-content: space-between; |
|
|
} |
|
|
|
|
|
.text-ellipsis { |
|
|
white-space: nowrap; |
|
|
overflow: hidden; |
|
|
text-overflow: ellipsis; |
|
|
} |
|
|
|
|
|
.text-center { |
|
|
text-align: center; |
|
|
} |
|
|
|
|
|
|
|
|
@media (max-width: 768px) { |
|
|
.hidden-mobile { |
|
|
display: none !important; |
|
|
} |
|
|
} |
|
|
|
|
|
@media (min-width: 769px) { |
|
|
.hidden-desktop { |
|
|
display: none !important; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.fade-enter-active, .fade-leave-active { |
|
|
transition: opacity var(--transition-fast); |
|
|
} |
|
|
|
|
|
.fade-enter-from, .fade-leave-to { |
|
|
opacity: 0; |
|
|
} |
|
|
|
|
|
.slide-up-enter-active, .slide-up-leave-active { |
|
|
transition: transform var(--transition-fast); |
|
|
} |
|
|
|
|
|
.slide-up-enter-from, .slide-up-leave-to { |
|
|
transform: translateY(100%); |
|
|
} |