feat: add NetEase desktop player source (1.2.2)

This commit is contained in:
yuncishu committed 2026-10-31 22:13:24 +08:00
1 parent 4d40b0bd6d
commit 1fccf2bed8
12 files changed
+2843

No files matched your search

+182
View File
@@ -0,0 +1,182 @@
"""视觉系统:深灰导航、暖白内容、克制的品牌红。"""
ACCENT = "#e6493f"
INK = "#242322"
MUTED = "#8b8882"
PAPER = "#f7f6f3"
QSS = """
* {
font-family: "Segoe UI Variable Text", "Microsoft YaHei UI", "PingFang SC", sans-serif;
color: #242322;
font-size: 13px;
}
QMainWindow, #root { background: #f7f6f3; }
QToolTip {
background: #25262a; color: #f7f6f3; border: none; border-radius: 5px;
padding: 5px 8px; font-size: 11px;
}
/* 左侧导航 */
#side { background: #1e1f23; }
#brandName { color: #f7f6f3; font-size: 14px; font-weight: 650; }
#brandSub { color: #777981; font-size: 9px; letter-spacing: 1.4px; }
#sideSection { color: #70727a; font-size: 10px; font-weight: 600; }
QPushButton#nav {
color: #a9abb2; background: transparent; border: none; border-radius: 8px;
text-align: left; padding-left: 12px; min-height: 40px; max-height: 40px;
font-size: 13px;
}
QPushButton#nav:hover { color: #f3f3f4; background: #28292e; }
QPushButton#nav[active="true"] { color: #ffffff; background: #323338; font-weight: 600; }
QPushButton#clearBtn { color: #777981; border: none; background: transparent; font-size: 11px; }
QPushButton#clearBtn:hover { color: #f0f0f1; }
QListWidget#queue { background: transparent; border: none; outline: none; }
QListWidget#queue::item {
color: #9698a0; border: none; border-radius: 7px; padding: 0 8px; height: 44px;
}
QListWidget#queue::item:hover { background: #28292e; color: #e7e7e9; }
QListWidget#queue::item:selected { background: #303137; color: #f3f3f4; }
#queueEmpty { color: #62646c; font-size: 11px; }
#versionLabel { color: #666871; font-size: 9.5px; letter-spacing: .4px; }
QPushButton#versionBtn {
color: #8b8d95; background: transparent; border: none; border-radius: 5px;
padding: 0 5px; min-height: 24px; font-size: 10px;
}
QPushButton#versionBtn:hover { color: #f0f0f1; background: #2a2b30; }
QPushButton#versionBtn[ready="true"] { color: #f27770; font-weight: 600; }
/* 主内容 */
#main { background: #f7f6f3; }
#pageEyebrow { color: #a29e97; font-size: 10px; font-weight: 600; letter-spacing: 1.6px; }
#pageTitle { color: #242322; font-size: 27px; font-weight: 700; letter-spacing: -0.6px; }
#pageMeta { color: #8b8882; font-size: 12px; }
QPushButton#textBtn {
color: #625f5a; background: transparent; border: 1px solid #dfdcd6;
border-radius: 8px; min-height: 32px; max-height: 32px; padding: 0 13px; font-size: 12px;
}
QPushButton#textBtn:hover { color: #242322; background: #fffefa; border-color: #cfcbc4; }
QPushButton#accent {
color: #ffffff; background: #e6493f; border: none; border-radius: 8px;
min-height: 34px; max-height: 34px; padding: 0 16px; font-size: 12px; font-weight: 600;
}
QPushButton#accent:hover { background: #d93e35; }
QPushButton#iconBtn { background: transparent; border: none; border-radius: 8px; }
QPushButton#iconBtn:hover { background: #e9e6e1; }
QPushButton#iconBtn:pressed { background: #dfdcd6; }
QPushButton#iconBtn[tone="dark"]:hover { background: #2c2d32; }
QPushButton#playBtn { background: #e6493f; border: none; border-radius: 21px; }
QPushButton#playBtn:hover { background: #d93e35; }
QPushButton#playBtn:pressed { background: #c9372f; }
/* 榜单:色块而不是泛白卡片 */
QPushButton#chartCard {
background: #eeece8; border: 1px solid transparent; border-radius: 14px; text-align: left;
}
QPushButton#chartCard:hover { background: #e8e4de; border-color: #ddd8d0; }
QPushButton#chartCard:pressed { background: #e2ddd6; }
#chartName { font-size: 17px; font-weight: 650; color: #2c2a27; }
#chartMeta { font-size: 11px; color: #8d8880; }
#chartIndex { font-size: 11px; color: #aaa49b; font-weight: 600; }
/* 搜索 */
QLineEdit#search {
min-height: 40px; max-height: 40px; background: #fffefa; color: #242322;
border: 1px solid #e1ded8; border-radius: 10px; padding: 0 14px; font-size: 13px;
selection-background-color: #f3c5c1;
}
QLineEdit#search:focus { border-color: #bdb7ae; background: #ffffff; }
QLineEdit#search::placeholder { color: #aaa69f; }
/* 歌曲表格 */
QTableWidget {
background: transparent; border: none; outline: none; gridline-color: transparent;
selection-background-color: #ebe8e3; selection-color: #242322; font-size: 13px;
}
QTableWidget::item { border: none; border-bottom: 1px solid #ece9e4; padding-left: 6px; }
QHeaderView::section {
background: #f7f6f3; color: #9b978f; border: none; border-bottom: 1px solid #e4e0da;
font-size: 10px; font-weight: 600; height: 32px; padding-left: 8px;
}
#emptyTitle { color: #5e5a54; font-size: 16px; font-weight: 600; }
#emptyMeta { color: #9b978f; font-size: 12px; }
QProgressBar#emptyProgress {
border: none; border-radius: 2px; background: #e9e5df;
}
QProgressBar#emptyProgress::chunk { background: #e6493f; border-radius: 2px; }
/* 底部播放栏 */
#bar { background: #fffefa; border-top: 1px solid #e7e3dd; }
#barName { font-size: 13px; font-weight: 650; color: #2c2a27; }
#barArtist { font-size: 11px; color: #918d85; }
#barHint { color: #b0aba3; font-size: 10px; }
#barPlaylist {
color: #aaa49b; font-size: 9.5px; letter-spacing: .02em;
background: transparent;
}
#timeLabel { color: #9b978f; font-size: 10px; font-family: "Segoe UI", sans-serif; }
QSlider::groove:horizontal { height: 4px; background: #e8e4de; border-radius: 2px; }
QSlider::sub-page:horizontal { height: 4px; background: #e6493f; border-radius: 2px; }
QSlider::handle:horizontal {
width: 12px; height: 12px; margin: -4px 0; border-radius: 6px;
background: #fffefa; border: 2px solid #e6493f;
}
QSlider::handle:horizontal:hover { background: #e6493f; }
QSlider#vol::groove:horizontal { height: 3px; }
QSlider#vol::sub-page:horizontal { background: #77736c; height: 3px; }
QSlider#vol::handle:horizontal { width: 10px; height: 10px; border-radius: 5px; border: 1px solid #8b8780; }
QComboBox {
min-height: 28px; max-height: 28px; border: 1px solid #e0dcd5; border-radius: 7px;
background: transparent; color: #6d6962; padding: 0 8px; font-size: 11px;
}
QComboBox:hover { background: #f3f0eb; border-color: #cec9c0; }
QComboBox::drop-down { border: none; width: 16px; }
QComboBox QAbstractItemView {
background: #fffefa; border: 1px solid #dfdcd6; outline: none; padding: 4px;
selection-background-color: #eeeae4; selection-color: #242322;
}
/* 导入歌单 */
#importCard { background:#fffefa; border:1px solid #e4dfd8; border-radius:16px; }
#importTitle { color:#22211f; font-size:19px; font-weight:700; }
#importSub { color:#8d8880; font-size:12px; }
#importInput {
min-height:42px; max-height:42px; background:#f8f5f0; color:#242322;
border:1px solid #e1dcd4; border-radius:9px; padding:0 13px; font-size:12.5px;
selection-background-color:#f3c5c1;
}
#importInput:focus { background:#fffefa; border-color:#bdb6ab; }
#importHint { color:#aaa49b; font-size:10.5px; }
#importError { color:#c83b32; font-size:11px; }
QPushButton#importCancel {
background:transparent; border:1px solid #e0dcd5; border-radius:8px;
min-height:36px; color:#6d6962; font-size:12px; padding:0 18px;
}
QPushButton#importCancel:hover { background:#f3f0eb; color:#242322; }
QPushButton#importGo {
background:#e6493f; border:none; border-radius:8px; min-height:36px;
color:#fff; font-size:12px; font-weight:600; padding:0 20px;
}
QPushButton#importGo:hover { background:#d93e35; }
QPushButton#importGo:disabled { background:#e8e4de; color:#aaa59c; }
/* 全屏播放 */
#fs { background: #f3f1ed; }
#fsEyebrow { color: #a39e95; font-size: 10px; letter-spacing: 1.5px; font-weight: 600; }
#fsName { color: #272521; font-size: 20px; font-weight: 700; letter-spacing: -0.3px; }
#fsArtist { color: #8e8981; font-size: 12px; }
#lyricViewport { background: transparent; border: none; }
#LyricView, #lyricContent { background: transparent; border: none; }
#fsControl { background: transparent; }
/* 滚动条 */
QScrollBar:vertical { background: transparent; width: 8px; margin: 2px; }
QScrollBar::handle:vertical { background: #d5d0c8; border-radius: 4px; min-height: 36px; }
QScrollBar::handle:vertical:hover { background: #bdb7ae; }
QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0; }
QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { background: transparent; }
QScrollBar:horizontal { height: 8px; background: transparent; }
QScrollBar::handle:horizontal { background: #d5d0c8; border-radius: 4px; }
QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { width: 0; }
#side QScrollBar::handle:vertical { background: #424349; }
"""